Nginx phpmyadmin 403 bị cấm
Khi phát triển một trang web hoặc ứng dụng web, nhiều người dùng cần chức năng của một hệ thống cơ sở dữ liệu như MySQL. Tuy nhiên, việc tương tác với hệ thống chỉ từ ứng dụng khách dòng lệnh MySQL yêu cầu phải làm quen với Ngôn ngữ truy vấn có cấu trúc — thường được gọi là SQL — ngôn ngữ này có thể gây trở ngại lớn cho một số người dùng Show
Nội dung chính Hiển thị
phpMyAdmin được tạo để cho phép người dùng tương tác với MySQL thông qua giao diện web trực quan, chạy cùng với môi trường phát triển PHP. Hướng dẫn này sẽ hướng dẫn bạn cách cài đặt phpMyAdmin trên máy chủ Nginx Ghi chú. phpMyAdmin chạy trên máy chủ cơ sở dữ liệu, xử lý thông tin đăng nhập cơ sở dữ liệu và cho phép người dùng thực thi các câu lệnh SQL trên cơ sở dữ liệu. Kết hợp với thực tế rằng đó là một ứng dụng PHP được triển khai rộng rãi, điều này có nghĩa là phpMyAdmin thường xuyên trở thành mục tiêu tấn công. Nếu bạn cài đặt và định cấu hình phpMyAdmin mà không thực hiện các bước thích hợp để bảo vệ nó khỏi các tác nhân độc hại, thì bạn có nguy cơ bị mất hoặc đánh cắp dữ liệu Ngoài việc cài đặt ứng dụng, hướng dẫn này sẽ giới thiệu một số biện pháp bạn có thể thực hiện để tăng cường bảo mật cho bản cài đặt phpMyAdmin của mình. Nó cũng sẽ giải thích chi tiết từng biện pháp để bạn có thể đưa ra quyết định sáng suốt và bảo vệ hệ thống của mình điều kiện tiên quyếtĐể hoàn thành hướng dẫn này, bạn sẽ cần
Ngoài ra, vì phpMyAdmin xử lý xác thực bằng thông tin đăng nhập MySQL, chúng tôi thực sự khuyên bạn nên cài đặt chứng chỉ SSL/TLS để kích hoạt lưu lượng được mã hóa giữa máy chủ và máy khách. Nếu bạn không có miền hiện có được định cấu hình với chứng chỉ hợp lệ, hãy làm theo hướng dẫn này về cách bảo mật Nginx bằng Let's Encrypt trên Ubuntu 20. 04 để thiết lập cái này Cảnh báo. Nếu bạn chưa cài đặt chứng chỉ SSL/TLS trên máy chủ và bạn vẫn muốn tiếp tục, vui lòng xem xét việc thực thi quyền truy cập qua Đường hầm SSH như được giải thích trong Bước 5 của hướng dẫn này Khi bạn đã có những điều kiện tiên quyết này, bạn có thể bắt đầu làm theo Bước 1 của hướng dẫn này Bước 1 — Cài đặt phpMyAdminBạn có thể cài đặt phpMyAdmin bằng cách sử dụng APT để tải xuống gói 9 từ kho lưu trữ mặc định của UbuntuBắt đầu bằng cách cập nhật chỉ mục gói của máy chủ
Bây giờ bạn có thể cài đặt phpMyAdmin bằng cách chạy lệnh sau
During the installation process, you will be prompted to choose a web server (either Apache or Lighttpd) to configure. phpMyAdmin can automatically make a number of configuration changes to ensure that it works correctly with either of these web servers upon installation. However, because you are using Nginx as a web server you shouldn’t choose either of these options. Instead, press 0 to highlight the 1 to continue the installation process.Next, you’ll be prompted whether to use 2 for configuring the application database. Select Ghi chú. Giả sử bạn đã cài đặt MySQL bằng cách làm theo Bước 2 của hướng dẫn ngăn xếp LEMP tiên quyết, bạn có thể đã quyết định bật plugin Xác thực mật khẩu. Khi viết bài này, việc kích hoạt thành phần này sẽ gây ra lỗi khi quá trình cài đặt phpMyAdmin cố gắng đặt mật khẩu cho người dùng phpmyadmin Để giải quyết vấn đề này, hãy chọn tùy chọn hủy bỏ để dừng quá trình cài đặt. Sau đó, mở lời nhắc MySQL của bạn
Hoặc, nếu bạn đã bật xác thực mật khẩu cho người dùng MySQL gốc, hãy chạy lệnh này rồi nhập mật khẩu của bạn khi được nhắc ________số 8Từ dấu nhắc MySQL, hãy chạy lệnh sau để tắt thành phần Xác thực mật khẩu. Lưu ý rằng thao tác này sẽ không thực sự gỡ cài đặt nó mà chỉ ngăn thành phần được tải trên máy chủ MySQL của bạn
Sau đó, bạn có thể đóng máy khách MySQL
Sau đó thử cài đặt lại gói 9 và nó sẽ hoạt động như mong đợi
Sau khi cài đặt phpMyAdmin, bạn có thể mở lại lời nhắc MySQL bằng 4 hoặc 5, sau đó chạy lệnh sau để bật lại thành phần Xác thực mật khẩu 5Khi lệnh 6 hoàn thành, phpMyAdmin sẽ được cài đặt đầy đủ. Tuy nhiên, để máy chủ web Nginx tìm và phục vụ chính xác các tệp phpMyAdmin, bạn sẽ cần tạo một liên kết tượng trưng từ các tệp cài đặt đến thư mục gốc tài liệu của Nginx. Nếu bạn đã làm theo hướng dẫn ngăn xếp LEMP tiên quyết, gốc tài liệu cài đặt Nginx của bạn là 7 8Cài đặt phpMyAdmin của bạn hiện đã hoạt động. Để truy cập giao diện, hãy truy cập tên miền hoặc địa chỉ IP công cộng của máy chủ, sau đó là 8 trong trình duyệt web của bạn 0Như đã đề cập trước đây, phpMyAdmin xử lý xác thực bằng thông tin đăng nhập MySQL. Điều này có nghĩa là để đăng nhập vào phpMyAdmin, bạn sử dụng cùng tên người dùng và mật khẩu mà bạn thường sử dụng để kết nối với cơ sở dữ liệu bằng dòng lệnh hoặc bằng API. Nếu bạn cần trợ giúp tạo người dùng MySQL, hãy xem hướng dẫn này về Cách quản lý cơ sở dữ liệu SQL Ghi chú. Đăng nhập vào phpMyAdmin với tư cách là người dùng MySQL gốc không được khuyến khích vì nó thể hiện rủi ro bảo mật đáng kể. Hướng dẫn này sẽ phác thảo cách vô hiệu hóa thông tin đăng nhập với tư cách là người dùng MySQL gốc trong Bước 3 của hướng dẫn này Cài đặt phpMyAdmin của bạn hoàn toàn hoạt động vào thời điểm này. Tuy nhiên, bằng cách cài đặt giao diện web, bạn đã đưa máy chủ cơ sở dữ liệu MySQL của mình ra thế giới bên ngoài. Do tính phổ biến của phpMyAdmin và khả năng nó cung cấp quyền truy cập vào một lượng lớn dữ liệu nhạy cảm, các cài đặt như thế này là mục tiêu phổ biến cho các cuộc tấn công. Trong các phần tiếp theo của hướng dẫn này, chúng tôi sẽ giới thiệu một vài phương pháp khác nhau để bạn có thể làm cho cài đặt phpMyAdmin của mình an toàn hơn Bước 2 — Thay đổi vị trí mặc định của phpMyAdminMột cách để bảo vệ cài đặt phpMyAdmin của bạn là làm cho nó khó tìm hơn. Các bot sẽ quét các đường dẫn phổ biến, như ________ 48, ________ 30, ________ 31, ________ 32 và các tên tương tự khác. Việc thay đổi URL của giao diện từ 8 thành một thứ gì đó không chuẩn sẽ khiến các tập lệnh tự động khó tìm thấy cài đặt phpMyAdmin của bạn hơn và thực hiện các cuộc tấn công vũ phuỞ bước trước, bạn đã tạo một liên kết tượng trưng trong thư mục gốc của tài liệu web Nginx trỏ đến 4, nơi đặt các tệp ứng dụng phpMyAdmin thực tế. Bạn có thể đổi tên liên kết tượng trưng này để thay đổi URL giao diện của phpMyAdminĐể thực hiện việc này, hãy điều hướng đến thư mục gốc của tài liệu Nginx 0Sau đó chạy lệnh 5 sau để liệt kê các tệp trong thư mục gốc của tài liệu để hiểu rõ hơn về thay đổi mà bạn sẽ thực hiện. Lệnh này bao gồm tùy chọn 6, cho biết lệnh sử dụng định dạng "danh sách dài". Điều này sẽ hướng dẫn 5 trả về nhiều thông tin hơn so với cách khác 1Đầu ra của bạn sẽ chứa một dòng như sau 2Dòng này chỉ ra rằng bạn có một liên kết tượng trưng có tên 9 trong thư mục này. Bạn có thể thay đổi tên liên kết này thành bất kỳ tên nào bạn thích và làm như vậy sẽ thay đổi URL nơi bạn có thể truy cập phpMyAdmin. Điều này sẽ giúp che khuất điểm cuối khỏi các bot thực hiện tìm kiếm tự động các tên điểm cuối phổ biếnChọn một tên ẩn mục đích của điểm cuối. Hướng dẫn này sẽ đặt tên cho điểm cuối là 9 và sử dụng tên này trong các ví dụ xuyên suốt, nhưng bạn nên chọn một tên thay thếĐổi tên liên kết tượng trưng bằng lệnh 50 3Sau khi chạy lệnh này, hãy chạy lại lệnh 51 để xác nhận rằng liên kết tượng trưng đã được đổi tên chính xác 1Lần này, đầu ra sẽ chỉ ra rằng danh sách cho liên kết tượng trưng đã được cập nhật với tên mới của nó 5Bây giờ khi bạn truy cập URL mà trước đây bạn đã sử dụng để truy cập phpMyAdmin, bạn sẽ gặp lỗi 404 0Thay vào đó, bạn có thể truy cập giao diện phpMyAdmin của mình tại URL mới mà bạn vừa định cấu hình 7Bằng cách che khuất vị trí thực của phpMyAdmin trên máy chủ, bạn đang bảo vệ giao diện của nó trước các lần quét tự động và các nỗ lực vũ phu thủ công Bước 3 — Vô hiệu hóa đăng nhập gốcTrên MySQL, cũng như trong các hệ thống Linux thông thường, tài khoản root là tài khoản quản trị đặc biệt với quyền truy cập không hạn chế vào hệ thống. Ngoài việc là một tài khoản đặc quyền, đó còn là một tên đăng nhập đã biết, khiến nó trở thành mục tiêu rõ ràng cho các cuộc tấn công vũ phu. Để giảm thiểu những rủi ro này, bước này sẽ phác thảo cách định cấu hình phpMyAdmin để từ chối mọi nỗ lực đăng nhập đến từ người dùng MySQL gốc. Bằng cách này, ngay cả khi bạn cung cấp thông tin đăng nhập hợp lệ cho người dùng gốc, bạn vẫn sẽ nhận được Quyền truy cập bị từ chối. lỗi và sẽ không được phép đăng nhập Vì bạn đã chọn 2 để định cấu hình và lưu trữ cài đặt phpMyAdmin nên cấu hình mặc định của ứng dụng hiện được lưu trữ trong cơ sở dữ liệu MySQL của bạn. Bạn sẽ cần tạo một tệp 53 mới trong thư mục cấu hình của phpMyAdmin để xác định cài đặt tùy chỉnh của mình. Mặc dù các tập lệnh PHP của phpMyAdmin được đặt bên trong thư mục 4, các tệp cấu hình của ứng dụng được đặt trong 55Tạo một tệp cài đặt tùy chỉnh mới bên trong thư mục 56 và đặt tên là 57 8Sau đó thêm nội dung sau vào tệp mới /etc/phpmyadmin/conf. d/pma_secure. php 9Bằng cách bao gồm các chỉ thị 58 và 59 và đặt cả hai thành 80, tệp cấu hình này lần lượt vô hiệu hóa thông tin đăng nhập không cần mật khẩu và thông tin đăng nhập của người dùng MySQL gốcLưu ý rằng cài đặt 81 định cấu hình phpMyAdmin để sử dụng phương thức xác thực 82. phpMyAdmin sử dụng phương thức xác thực 82 theo mặc định, cho phép bạn đăng nhập vào phpMyAdmin với tư cách là bất kỳ người dùng MySQL hợp lệ nào với sự trợ giúp của cookie. Với phương pháp này, mật khẩu người dùng MySQL được lưu trữ và mã hóa bằng thuật toán Tiêu chuẩn mã hóa nâng cao (AES) trong một cookie tạm thờiTrước đây, phpMyAdmin thay vì sử dụng thuật toán Blowfish cho mục đích này. Tuy nhiên, nó vẫn tìm kiếm một lệnh có tên là 84, trỏ đến cụm mật khẩu được sử dụng nội bộ bởi thuật toán AES. Đây không phải là cụm mật khẩu bạn cần nhớ, vì vậy bất kỳ chuỗi nào chứa 32 ký tự ngẫu nhiên sẽ hoạt động ở đâyCập nhật dòng có nội dung 85 thành chuỗi ngẫu nhiên chứa ít nhất 32 ký tựGhi chú. Nếu cụm mật khẩu bạn nhập ở đây có độ dài ngắn hơn 32 ký tự, điều đó sẽ khiến các cookie được mã hóa kém an toàn hơn. Tuy nhiên, việc nhập một chuỗi dài hơn 32 ký tự sẽ không gây hại gì Để tạo một chuỗi ký tự thực sự ngẫu nhiên, bạn có thể cài đặt và sử dụng chương trình 86 với APT 0Theo mặc định, 86 tạo mật khẩu dễ phát âm, mặc dù kém an toàn hơn. Tuy nhiên, bằng cách bao gồm cờ 88, như trong lệnh sau, bạn có thể tạo một mật khẩu hoàn toàn ngẫu nhiên, khó nhớ. Lưu ý hai đối số cuối cùng cho lệnh này. 89, quy định thời lượng chuỗi mật khẩu 86 sẽ tạo ra; 1Sao chép đầu ra kết quả của lệnh này và thêm nó vào tệp 57, thay thế 85Lưu và đóng tệp khi bạn chỉnh sửa xong. Nếu bạn đã sử dụng 05, hãy làm như vậy bằng cách nhấn ______ 206, _______ 207 để xác nhận các thay đổi và sau đó nhấn 1 để quay lại dấu nhắc bashCác thay đổi sẽ tự động áp dụng. Nếu bạn tải lại trang đăng nhập ngay bây giờ và cố gắng đăng nhập bằng quyền root, bạn sẽ nhận được thông báo Truy cập bị từ chối. lỗi Đăng nhập bởi người dùng MySQL gốc hiện bị cấm khi cài đặt phpMyAdmin của bạn. Biện pháp bảo mật này sẽ chặn các tập lệnh brute-force cố gắng đoán mật khẩu của người dùng cơ sở dữ liệu gốc trên máy chủ của bạn. Hơn nữa, nó sẽ thực thi việc sử dụng các tài khoản MySQL ít đặc quyền hơn để truy cập giao diện web của phpMyAdmin, bản thân nó là một biện pháp bảo mật quan trọng Bước 4 — Tạo Cổng xác thựcẨn cài đặt phpMyAdmin của bạn ở một vị trí bất thường có thể tránh được một số bot tự động quét mạng, nhưng nó vô dụng trước các cuộc tấn công có chủ đích. Để bảo vệ tốt hơn một ứng dụng web có quyền truy cập bị hạn chế, thông thường sẽ hiệu quả hơn nếu ngăn chặn những kẻ tấn công trước khi chúng có thể tiếp cận ứng dụng. Bằng cách này, họ sẽ không thể sử dụng các khai thác chung và tấn công vũ phu để đoán thông tin đăng nhập Trong trường hợp cụ thể của phpMyAdmin, điều quan trọng hơn là phải khóa giao diện đăng nhập. Bằng cách giữ cho nó mở ra với thế giới, bạn đang cung cấp một nền tảng vũ phu để những kẻ tấn công đoán thông tin đăng nhập cơ sở dữ liệu của bạn Bước này phác thảo cách thêm một lớp xác thực bổ sung vào cài đặt phpMyAdmin của bạn để tăng tính bảo mật cho cơ sở dữ liệu MySQL của bạn. Hầu hết các máy chủ web, bao gồm cả Nginx, đều cung cấp khả năng này nguyên bản. Bằng cách hoàn thành bước này, bất kỳ ai cố gắng truy cập vào màn hình đăng nhập cài đặt phpMyAdmin của bạn trước tiên sẽ được yêu cầu chuyển qua lời nhắc xác thực HTTP bằng cách nhập tên người dùng và mật khẩu hợp lệ Để thiết lập điều này, trước tiên bạn cần tạo một tệp mật khẩu để lưu trữ thông tin đăng nhập xác thực. Nginx yêu cầu mã hóa mật khẩu bằng hàm 09. Bộ OpenSSL, được cài đặt mặc định trên máy chủ Ubuntu của bạn, bao gồm chức năng nàyĐể tạo mật khẩu được mã hóa, hãy nhập 2Bạn sẽ được nhắc nhập và xác nhận mật khẩu mà bạn muốn sử dụng. Sau đó, tiện ích sẽ hiển thị một phiên bản mật khẩu được mã hóa trông giống như thế này 3Sao chép giá trị này, vì bạn sẽ cần đưa nó vào tệp xác thực mà bạn sắp tạo Bây giờ, hãy tạo một tệp xác thực. Với mục đích của hướng dẫn này, chúng tôi sẽ gọi tệp này là 00 và đặt nó vào thư mục cấu hình Nginx 4Trong tệp này, hãy chỉ định tên người dùng bạn muốn sử dụng, theo sau là dấu hai chấm ( 01) và sau đó là phiên bản mã hóa của mật khẩu bạn nhận được từ tiện ích 02Trong ví dụ này, người dùng có tên là 03, nhưng bạn có thể chọn bất kỳ tên người dùng nào bạn muốn. Đây không cần phải là tên của hồ sơ người dùng hiện có trên máy chủ Ubuntu của bạn hoặc của người dùng MySQLSau khi thêm tên người dùng đã chọn và mật khẩu được mã hóa mà bạn đã sao chép trước đó, tệp sẽ trông như thế này /etc/nginx/pma_pass 5Lưu và đóng tệp khi hoàn tất Tiếp theo, bạn sẽ cần sửa đổi tệp cấu hình Nginx. Một lần nữa, hướng dẫn này tuân theo các quy ước được thiết lập trong hướng dẫn LEMP tiên quyết, vì vậy tệp cấu hình được sử dụng trong các ví dụ sau là 04. Đảm bảo rằng bạn sử dụng tệp cấu hình Nginx có liên quan cho vị trí web nơi cài đặt phpMyAdmin của bạn hiện được lưu trữMở tệp cấu hình Nginx của bạn trong trình soạn thảo văn bản ưa thích của bạn để bắt đầu 6Xác định vị trí khối 05 và phần 06 bên trong nó. Bạn cần tạo một phần 07 mới bên dưới khối 06 này để khớp với đường dẫn hiện tại của phpMyAdmin trên máy chủNhớ lại rằng trong Bước 2 của hướng dẫn này, bạn đã thay đổi tên của vị trí của phpMyAdmin bằng cách đổi tên liên kết tượng trưng (trong ví dụ của chúng tôi là 09). Tại đây, bạn cần nhập tên bạn đã sử dụng cho liên kết tượng trưng này. Bạn không cần bao gồm đường dẫn tệp đầy đủ, chỉ cần tên của liên kết tượng trưng liên quan đến thư mục gốc của tài liệu Nginx/etc/nginx/sites-available/your_domain 7Trong khối này, thiết lập hai chỉ thị. 10, xác định thông báo sẽ được hiển thị trên lời nhắc xác thực và 11, trỏ đến tệp xác thực bạn vừa tạo. Thêm cả hai chỉ thị này vào phần 07 mới/etc/nginx/sites-available/your_domain 8Cuối cùng, lưu ý rằng khối này có bộ chọn 13 trước định nghĩa vị trí mới. Điều này là để đảm bảo Nginx sẽ không bỏ qua các quy tắc truy cập của bạn khi nó phù hợp với quy tắc cho các tệp PHP, thường được định nghĩa là một biểu thức chính quy để bắt tất cả các tệp 14. Trong các tệp cấu hình Nginx, các định nghĩa biểu thức chính quy có mức độ ưu tiên cao hơn các định nghĩa vị trí tiêu chuẩn. Điều này có nghĩa là nếu bạn không sử dụng bộ chọn 13 ở đầu vị trí, người dùng vẫn có thể bỏ qua lời nhắc xác thực bằng cách điều hướng đến 16 trong trình duyệt của họBộ chọn 13 ở đầu định nghĩa vị trí yêu cầu Nginx bỏ qua các kết quả phù hợp khác khi tìm thấy kết quả phù hợp cho vị trí này. Điều này có nghĩa là mọi thư mục con hoặc tệp trong 18 sẽ phù hợp với quy tắc này. Tuy nhiên, vì định nghĩa để phân tích các tệp PHP sẽ bị bỏ qua do việc sử dụng bộ chọn 13, nên chúng tôi sẽ cần bao gồm một khối vị trí PHP mới bên trong định nghĩa 9. Điều này sẽ đảm bảo các tệp PHP bên trong vị trí này được phân tích cú pháp chính xác; Thêm các dòng được đánh dấu sau vào khối 07 bạn vừa thêm/etc/nginx/sites-available/your_domain 9Hãy nhớ thay thế liên kết ẩn bằng đường dẫn thực nơi có thể tìm thấy phpMyAdmin. Bạn cũng nên kiểm tra kỹ vị trí của tệp ổ cắm PHP-FPM, tệp này sẽ thay đổi tùy thuộc vào phiên bản PHP bạn hiện đã cài đặt. Trong ví dụ này, chúng tôi sử dụng 22 hợp lệ cho PHP 7. 4, phiên bản được cài đặt trên Ubuntu 20. 04 qua kho APT mặc địnhLưu và đóng tệp khi bạn hoàn tất. Để kiểm tra xem tệp cấu hình có hợp lệ hay không, hãy chạy lệnh sau 0Đầu ra sau cho biết cú pháp của tệp cấu hình là hợp lệ 1Để kích hoạt cổng xác thực mới, hãy tải lại Nginx 2Bây giờ khi bạn truy cập URL phpMyAdmin trong trình duyệt web của mình, bạn sẽ được nhắc nhập tên người dùng và mật khẩu mà bạn đã thêm vào tệp 00 7Khi bạn nhập thông tin đăng nhập của mình, bạn sẽ được đưa đến trang đăng nhập phpMyAdmin tiêu chuẩn Ghi chú. Lời nhắc xác thực có thể không xuất hiện nếu bạn đã truy cập phpMyAdmin gần đây. Để buộc lời nhắc xuất hiện, bạn có thể phải làm mới trang, xóa bộ nhớ cache hoặc mở một phiên trình duyệt khác Ngoài việc cung cấp thêm một lớp bảo mật, cổng này sẽ giúp giữ cho nhật ký MySQL của bạn sạch khỏi các nỗ lực xác thực spam Bước 5 — Thiết lập quyền truy cập qua đường hầm được mã hóaĐể tăng tính bảo mật, chỉ có thể khóa cài đặt phpMyAdmin của bạn đối với các máy chủ được ủy quyền. Bạn có thể giới hạn quyền truy cập vào phpMyAdmin bằng cách chỉ định các máy chủ được ủy quyền riêng lẻ trong tệp cấu hình Nginx của bạn. Bằng cách này, mọi yêu cầu đến từ một địa chỉ IP không có trong danh sách sẽ bị từ chối Mặc dù chỉ riêng tính năng này có thể là đủ trong một số trường hợp sử dụng, nhưng nó không phải lúc nào cũng là giải pháp lâu dài tốt nhất, chủ yếu là do hầu hết mọi người không truy cập internet từ các địa chỉ IP tĩnh. Ngay sau khi bạn nhận được địa chỉ IP mới từ nhà cung cấp internet, bạn sẽ không thể truy cập giao diện phpMyAdmin cho đến khi bạn cập nhật tệp cấu hình Nginx bằng địa chỉ IP mới của mình Để có giải pháp lâu dài mạnh mẽ hơn, bạn có thể sử dụng kiểm soát truy cập dựa trên IP để tạo thiết lập trong đó người dùng sẽ chỉ có quyền truy cập vào giao diện phpMyAdmin của bạn nếu họ đang truy cập từ địa chỉ IP được ủy quyền hoặc localhost thông qua đường hầm SSH. Chúng tôi sẽ giới thiệu cách thiết lập cả hai điều khiển truy cập này trong các phần bên dưới Kết hợp kiểm soát truy cập dựa trên IP với đường hầm SSH giúp tăng cường bảo mật đáng kể vì nó chặn hoàn toàn truy cập đến từ internet công cộng (ngoại trừ IP được ủy quyền), ngoài việc cung cấp kênh an toàn giữa người dùng và máy chủ thông qua việc sử dụng các đường hầm được mã hóa Thiết lập kiểm soát truy cập dựa trên IP trên NginxTrên Nginx, kiểm soát truy cập dựa trên IP có thể được xác định trong khối 07 tương ứng của một trang web nhất định, sử dụng các chỉ thị 25 và 26. Ví dụ: nếu bạn chỉ muốn cho phép các yêu cầu đến từ một máy chủ nhất định, bạn sẽ bao gồm hai dòng sau, theo thứ tự này, bên trong khối 07 có liên quan cho trang web mà bạn muốn bảo vệ 4Bạn có thể cho phép bao nhiêu máy chủ tùy thích và bạn chỉ cần bao gồm một dòng 25 cho mỗi máy chủ/IP được ủy quyền bên trong khối 07 tương ứng cho trang web mà bạn đang bảo vệ. Các lệnh sẽ được đánh giá theo thứ tự giống như chúng được liệt kê cho đến khi tìm thấy kết quả phù hợp hoặc yêu cầu cuối cùng bị từ chối do chỉ thị 30Trong bước này, bạn sẽ định cấu hình Nginx để chỉ cho phép các yêu cầu đến từ localhost hoặc địa chỉ IP hiện tại của bạn. Trước tiên, bạn cần biết địa chỉ IP công cộng hiện tại mà máy cục bộ của bạn đang sử dụng để kết nối với internet. Có nhiều cách khác nhau để có được thông tin này; . io. Bạn có thể mở URL 31 trong trình duyệt của mình hoặc chạy lệnh sau từ máy cục bộ của mình 5Lệnh này sẽ trả về một địa chỉ IP, như thế này 6Giá trị được lệnh này trả về là địa chỉ IP công cộng hiện tại của máy cục bộ của bạn. Bạn sẽ định cấu hình khối 07 của phpMyAdmin để chỉ cho phép các yêu cầu đến từ IP đó hoặc cục bộ từ chính máy chủĐể thực hiện việc này, một lần nữa hãy mở tệp cấu hình Nginx của trang web của bạn bằng trình soạn thảo văn bản ưa thích của bạn 6Vì bạn đã có quy tắc truy cập trong cấu hình hiện tại của mình nên bạn cần kết hợp quy tắc đó với kiểm soát truy cập dựa trên IP bằng cách sử dụng chỉ thị 33. Bằng cách này, bạn có thể giữ lời nhắc xác thực HTTP hiện tại để tăng cường bảo mậtThêm các dòng được đánh dấu sau vào khối cấu hình phpMyAdmin của bạn 07/etc/nginx/sites-available/your_domain 8Đây là giao diện của tệp sau khi thêm các chỉ thị mới này. Hãy nhớ thay thế 09 bằng đường dẫn thực nơi có thể tìm thấy phpMyAdmin và địa chỉ IP được đánh dấu bằng địa chỉ IP công cộng hiện tại của máy cục bộ của bạn/etc/nginx/sites-available/your_domain 8Lưu và đóng tệp khi bạn hoàn tất. Để kiểm tra xem tệp cấu hình có hợp lệ hay không, bạn có thể chạy 0Đầu ra sau đây được mong đợi 1Bây giờ hãy tải lại máy chủ web để các thay đổi có hiệu lực 2Vì địa chỉ IP của bạn được liệt kê rõ ràng là máy chủ được ủy quyền nên quyền truy cập của bạn sẽ không bị quấy rầy. Tuy nhiên, bất kỳ ai khác đang cố truy cập vào cài đặt phpMyAdmin của bạn sẽ gặp lỗi 36 7Phần phụ tiếp theo của hướng dẫn này sẽ cung cấp chi tiết về cách sử dụng đường hầm SSH để truy cập máy chủ web thông qua các yêu cầu cục bộ. Bằng cách này, bạn vẫn có thể truy cập vào giao diện của phpMyAdmin ngay cả khi địa chỉ IP của bạn thay đổi Truy cập phpMyAdmin thông qua đường hầm được mã hóaĐường hầm SSH hoạt động như một cách chuyển hướng lưu lượng mạng thông qua các kênh được mã hóa. Bằng cách chạy lệnh 37 tương tự như lệnh bạn sẽ sử dụng để đăng nhập vào máy chủ, bạn có thể tạo một “đường hầm” an toàn giữa máy cục bộ của mình và máy chủ đó. Sau khi thiết lập một đường hầm, tất cả lưu lượng truy cập vào một cổng cục bộ nhất định có thể được chuyển hướng qua đường hầm được mã hóa, sử dụng máy chủ từ xa làm proxy trước khi tiếp cận với internet. Điều này tương tự như những gì xảy ra khi bạn sử dụng mạng riêng ảo (VPN), nhưng đường hầm SSH thường yêu cầu ít cấu hình hơn để thiết lậpBạn có thể sử dụng đường hầm SSH để ủy quyền các yêu cầu của mình tới máy chủ web từ xa đang chạy phpMyAdmin. Bằng cách tạo một đường hầm giữa máy cục bộ của bạn và máy chủ nơi cài đặt phpMyAdmin, bạn có thể chuyển hướng các yêu cầu cục bộ đến máy chủ web từ xa. Quan trọng hơn, lưu lượng truy cập sẽ được mã hóa và các yêu cầu sẽ đến Nginx như thể chúng đến từ localhost. Bằng cách này, bất kể bạn đang kết nối từ địa chỉ IP nào, bạn sẽ có thể truy cập giao diện của phpMyAdmin một cách an toàn Vì lưu lượng giữa máy cục bộ của bạn và máy chủ web từ xa sẽ được mã hóa nên đây là giải pháp thay thế an toàn cho các trường hợp bạn không thể cài đặt chứng chỉ SSL/TLS trên máy chủ web đang chạy phpMyAdmin Từ máy cục bộ của bạn, hãy chạy lệnh này bất cứ khi nào bạn cần truy cập vào phpMyAdmin 4Hãy kiểm tra từng phần của lệnh
Ghi chú. Lệnh này sẽ chặn thiết bị đầu cuối cho đến khi bạn ngắt nó bằng cách nhấn 40, trong trường hợp đó, nó sẽ kết thúc kết nối SSH và dừng chuyển hướng gói. Nếu bạn muốn chạy lệnh này ở chế độ nền, bạn có thể bao gồm tùy chọn SSH 41Bây giờ, hãy truy cập trình duyệt của bạn và thay thế server_domain_or_IP bằng 42, trong đó 43 là 38 cho HTTP hoặc 39 cho HTTPS 5 6Ghi chú. Nếu bạn đang truy cập phpMyAdmin qua HTTPS, bạn có thể nhận được thông báo cảnh báo đặt câu hỏi về tính bảo mật của chứng chỉ SSL. Điều này xảy ra vì tên miền bạn đang sử dụng (localhost) không khớp với địa chỉ đã đăng ký trong chứng chỉ (tức là miền mà phpMyAdmin đang thực sự được phục vụ). Hãy yên tâm rằng nó là an toàn để tiếp tục Ngoài ra, hãy lưu ý rằng bạn có thể cần phải làm mới phiên trình duyệt của mình hoặc kiểm tra kỹ URL nếu bạn đã thiết lập bất kỳ chuyển hướng nào trong tệp cấu hình Nginx của mình Tất cả các yêu cầu trên 46 (HTTP) và 47 (HTTPS) hiện đang được chuyển hướng qua một đường hầm an toàn đến ứng dụng phpMyAdmin từ xa của bạn. Bạn không chỉ tăng cường bảo mật bằng cách vô hiệu hóa quyền truy cập công khai vào phpMyAdmin của mình, bạn còn bảo vệ tất cả lưu lượng giữa máy tính cục bộ của mình và máy chủ từ xa bằng cách sử dụng đường hầm được mã hóa để gửi và nhận dữ liệuNếu bạn muốn thực thi việc sử dụng đường hầm SSH cho bất kỳ ai muốn truy cập vào giao diện phpMyAdmin của bạn (bao gồm cả bạn), bạn có thể làm điều đó bằng cách xóa mọi IP được ủy quyền khác khỏi tệp cấu hình Nginx, để lại 48 làm máy chủ duy nhất được phép . Vì không ai có thể thực hiện yêu cầu trực tiếp tới phpMyAdmin, nên việc xóa xác thực HTTP là an toàn để đơn giản hóa thiết lập của bạn. Đây là cách tệp cấu hình của bạn sẽ trông như thế nào trong một tình huống như vậy/etc/nginx/sites-available/your_domain 7Khi bạn tải lại cấu hình của Nginx với 49, cài đặt phpMyAdmin của bạn sẽ bị khóa và người dùng sẽ được yêu cầu sử dụng đường hầm SSH để truy cập giao diện của phpMyAdmin thông qua các yêu cầu được chuyển hướngSự kết luậnBằng cách làm theo hướng dẫn này, bạn đã cài đặt phpMyAdmin trên Ubuntu 20. 04 chạy Nginx làm máy chủ web. Bạn cũng đã tìm hiểu về một số phương pháp nâng cao để bảo mật cài đặt phpMyAdmin trên Ubuntu, chẳng hạn như vô hiệu hóa đăng nhập root, tạo thêm một lớp xác thực và sử dụng đường hầm SSH để truy cập cài đặt phpMyAdmin chỉ thông qua các yêu cầu cục bộ Sau khi hoàn thành hướng dẫn này, bạn có thể quản lý cơ sở dữ liệu MySQL của mình từ một giao diện web khá an toàn. Giao diện người dùng này hiển thị hầu hết các chức năng có sẵn thông qua dòng lệnh MySQL. Bạn có thể duyệt cơ sở dữ liệu và lược đồ, thực hiện các truy vấn và tạo các tập dữ liệu và cấu trúc mới Nếu bạn muốn tìm hiểu thêm về cách làm việc với MySQL, chúng tôi khuyên bạn nên xem phần giới thiệu về truy vấn trong MySQL này. Để hiểu sâu hơn về SQL ngoài các truy vấn đơn thuần, bạn cũng có thể quan tâm đến loạt bài hướng dẫn Cách sử dụng SQL của chúng tôi Tôi có thể sử dụng phpMyAdmin với nginx không?Bạn sẽ có thể truy cập cơ sở dữ liệu MySQL hoặc MariaDB của mình trong phpMyAdmin bằng Nginx thông qua giao diện web đồ họa một cách dễ dàng, chạy cùng với môi trường phát triển PHP . Cách cài đặt và bảo mật phpMyAdmin với nginx trên Ubuntu 18. 04 máy chủ?Cách cài đặt và bảo mật phpMyAdmin với Nginx trên Ubuntu 18. 04 . điều kiện tiên quyết Bước 1 - Cài đặt phpMyAdmin Bước 2 - Thay đổi vị trí mặc định của phpMyAdmin Bước 3 - Vô hiệu hóa đăng nhập gốc Bước 4 - Tạo Cổng xác thực Làm cách nào để cài đặt hoàn toàn phpMyAdmin trên Ubuntu?Cài đặt phpMyAdmin Để chọn nó, nhấn phím cách rồi nhấn Enter. Nếu bạn không nhấn phím cách, các tệp cần thiết để cài đặt sẽ không được chuyển. Chọn Có và nhấn Enter. Bây giờ bạn được yêu cầu nhập mật khẩu cho cơ sở dữ liệu quản trị viên |