Thiết lập mật khẩu Admin và Xác thực
Mặc định, Neo4j yêu cầu bạn đặt lại mật khẩu cho người dùng neo4j ngay lần đầu khởi động để đảm bảo an toàn. Chúng ta sẽ sử dụng lệnh neo4j-admin để thiết lập mật khẩu mạnh ngay từ đầu.
Thay đổi mật khẩu mặc định giúp ngăn chặn truy cập trái phép vào dữ liệu quan trọng của hệ thống Graph ngay khi dịch vụ mới được cài đặt.
Thực hiện lệnh dưới đây, thay NewSecurePassword123! bằng mật khẩu mạnh của bạn (bao gồm chữ hoa, thường, số và ký tự đặc biệt).
sudo neo4j-admin dbms set-initial-password "NewSecurePassword123!"
Hệ thống sẽ trả về thông báo Password reset completed nếu thành công. Nếu gặp lỗi "password was already set", nghĩa là bạn đã đặt mật khẩu trước đó và cần reset lại bằng cách xóa file mật khẩu cũ hoặc dùng lệnh set-initial-password với tùy chọn force (tùy phiên bản).
Khởi động lại dịch vụ để áp dụng mật khẩu mới
Sau khi đặt mật khẩu, bạn cần khởi động lại dịch vụ Neo4j để các thay đổi có hiệu lực. Nếu dịch vụ đang chạy, hãy restart; nếu chưa chạy, hãy start.
sudo systemctl restart neo4j
Trạng thái dịch vụ chuyển sang active (running) và log khởi động không còn báo lỗi về xác thực.
Cấu hình File neo4j.conf cho Cổng Bolt và HTTP
File cấu hình chính của Neo4j nằm ở /etc/neo4j/neo4j.conf. Mặc định, Neo4j chỉ cho phép kết nối từ localhost (127.0.0.1). Để cho phép truy cập từ xa hoặc từ các container khác, bạn cần mở rộng địa chỉ IP nghe (listen address).
Việc mở cổng Bolt (36290) cho phép các ứng dụng client (driver) kết nối trực tiếp, trong khi mở cổng HTTP (7474) cho phép truy cập qua trình duyệt web để quản lý.
Chỉnh sửa file cấu hình bằng nano hoặc vi, đảm bảo bỏ comment (#) và thay đổi địa chỉ từ 127.0.0.1 sang 0.0.0.0 (nghe tất cả các giao diện mạng).
sudo nano /etc/neo4j/neo4j.conf
Tìm các dòng sau trong file và thay đổi như nội dung dưới đây (đảm bảo ghi đè hoặc thêm vào nếu chưa có):
dbms.connector.bolt.listen_address=0.0.0.0:7687
dbms.connector.http.listen_address=0.0.0.0:7474
Lưu ý: Trong các phiên bản Neo4j 5.x trở lên, cổng Bolt mặc định là 7687 và HTTP là 7474. Nếu bạn dùng phiên bản cũ hơn (4.x), cổng Bolt thường là 7687 nhưng cấu hình có thể khác. Hãy kiểm tra lại version của bạn. Nội dung trên áp dụng chuẩn cho Neo4j 5.x/Server.
Sau khi lưu file (Ctrl+O, Enter, Ctrl+X), cấu hình đã sẵn sàng. Bạn cần restart dịch vụ để áp dụng.
sudo systemctl restart neo4j
Neo4j sẽ bắt đầu lắng nghe trên tất cả các địa chỉ IP của server thay vì chỉ 127.0.0.1.
Cấu hình Firewall UFW để cho phép truy cập từ xa
Trên Ubuntu 24.04, firewall mặc định là UFW (Uncomplicated Firewall). Nếu bạn đã bật UFW, các cổng 7474 (HTTP) và 7687 (Bolt) sẽ bị chặn mặc dù Neo4j đã cấu hình sẵn sàng.
Chúng ta cần tạo quy tắc (rule) cho phép lưu lượng truy cập vào các cổng này từ bất kỳ địa chỉ IP nào (hoặc chỉ IP cụ thể nếu muốn bảo mật cao hơn). Ở đây ta mở rộng cho phép từ xa để demo.
sudo ufw allow 7474/tcp
sudo ufw allow 7687/tcp
UFW sẽ trả về Rules updated cho từng cổng, xác nhận quy tắc đã được thêm vào danh sách cho phép.
Kiểm tra trạng thái Firewall
Để đảm bảo UFW đang bật và các quy tắc mới đã được áp dụng chính xác, hãy kiểm tra lại trạng thái.
sudo ufw status verbose
Trong đầu ra, bạn phải thấy dòng Status: active và các cổng 7474/tcp và 7687/tcp nằm trong danh sách ALLOW.
Kiểm tra quyền truy cập và Xác thực qua trình duyệt
Bây giờ, hãy xác minh toàn bộ cấu hình bảo mật và mạng bằng cách truy cập trực tiếp vào giao diện quản trị của Neo4j từ trình duyệt web trên máy khách (client machine) hoặc từ chính server nếu có GUI.
Địa chỉ truy cập sẽ là http://<IP-CỦA-SERVER>:7474. Khi nhập URL này, trình duyệt sẽ chuyển hướng đến trang đăng nhập.
Nhập tên người dùng là neo4j và mật khẩu bạn đã đặt ở phần đầu tiên (NewSecurePassword123!). Nếu mọi cấu hình đúng, bạn sẽ thấy giao diện chính của Neo4j Browser với các nút điều khiển và mẫu dữ liệu thử nghiệm.
Để kiểm tra kết nối Bolt (dùng cho driver code), bạn có thể mở terminal trên server và dùng lệnh netstat hoặc ss để xem cổng đang lắng nghe.
sudo ss -tlnp | grep neo4j
Kết quả mong đợi là bạn thấy các dòng listen trên địa chỉ 0.0.0.0 (hoặc ::) cho các cổng 7474 và 7687, xác nhận dịch vụ đã mở cổng cho truy cập mạng bên ngoài.
Điều hướng series:
Mục lục: Series: Triển khai Database Graph với Neo4j và Ubuntu 24.04
« Phần 2: Cài đặt Neo4j Desktop và Neo4j Server trên Ubuntu 24.04
Phần 4: Giới thiệu cơ bản về mô hình Graph và ngôn ngữ Cypher »