Hướng dẫn cấu hình nginx với ssl làm reverse proxy cho graylog

30/12/2020

Gray log là 1 công cụ mạnh mẽ để quản lý và phân tích các tệp nhật ký, ở các bài trước mình đã hướng dẫn các bạn cách cài đặt cũng như các thao tác cơ bản với graylog-server. Các bạn có thể tham khảo tại đây. Tuy nhiên Nhược điểm duy nhất là bạn phải truy cập Graylog UI bằng địa chỉ IP và số cổng mà không có chứng chỉ SSL được xác minh.

Trong hướng dẫn này, mình muốn hướng dẫn các bạn cách cấu hình Nginx với ssl let’s encrypt làm reverse proxy cho graylog. Bằng cách này, bạn có thể sử dụng tên miền hoặc tên máy chủ với chứng chỉ SSL đã được xác minh.

Mô hình triển khai :

Mô hình IP như sau:

Các thao tác thực hiện hoàn toàn trên Nginx-server.

Bước 1: Cài đặt Nginx

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm yum -y install nginx

Backup file cấu hình:

cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bk

Khởi chạy dịch vụ Nginx

systemctl restart nginx systemctl enable nginx

Bước 2: Tạo file config của địa chỉ truy cập

Khai báo file config của địa chỉ, mỗi địa chỉ sẽ được khai báo tương ứng với 1 file nằm trong thư mục /etc/nginx/conf.d. Các file có phần mở rộng là .conf

Ta sẽ tạo file với địa chỉ là graylog.hungnv99.com

vi /etc/nginx/conf.d/graylog.hungnv99.com.conf

Sau đó thêm nội dung sau vào file:

server {     listen 80;     server_name graylog.hungnv99.com;     client_max_body_size 1024M;          location / {             proxy_set_header   Host                  $host;             proxy_set_header   X-Real-IP             $remote_addr;             proxy_set_header   X-Forwarded-For       $proxy_add_x_forwarded_for;             proxy_set_header   X-Forwarded-Host      $host;             proxy_set_header   X-Forwarded-Server    $host;             proxy_set_header   X-Graylog-Server-URL  http://$server_name/;             proxy_pass http://10.10.34.192:9000;         } }

Kiểm tra lại file vừa tạo:

cat /etc/nginx/conf.d/graylog.hungnv99.com.conf

Kiểm tra và reload lại trạng thái Nginx

[root@nginxsrv ~]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
systemctl restart nginx

Bước 3: Kiểm tra

Truy cập trình duyệt web và gõ địa chỉ là tên miền http://graylog.hungnv99.com để kiểm tra, trình duyệt hiện ra như này là thành công.

Bước 4: Thiết lập chứng chỉ Let’s Encrypt

Cài đặt Certbot

yum install epel-release -y yum install certbot-nginx -y

Sinh SSL bằng let’s Encrypt cho site graylog.hungnv99.com

certbot --nginx -d graylog.hungnv99.com

Sau đó điền các thông số như sau:

Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator nginx, Installer nginx Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org Obtaining a new certificate Performing the following challenges: http-01 challenge for graylog.hungnv99.com Waiting for verification... Cleaning up challenges Deploying Certificate to VirtualHost /etc/nginx/conf.d/graylog.hungnv99.com.conf  Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2 Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/graylog.hungnv99.com.conf  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://graylog.hungnv99.com  You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=graylog.hungnv99.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  IMPORTANT NOTES:  - Congratulations! Your certificate and chain have been saved at:    /etc/letsencrypt/live/graylog.hungnv99.com/fullchain.pem    Your key file has been saved at:    /etc/letsencrypt/live/graylog.hungnv99.com/privkey.pem    Your cert will expire on 2020-06-29. To obtain a new or tweaked    version of this certificate in the future, simply run certbot again    with the "certonly" option. To non-interactively renew *all* of    your certificates, run "certbot renew"  - If you like Certbot, please consider supporting our work by:     Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate    Donating to EFF:                    https://eff.org/donate-le 

Vào lại file config của site để kiểm tra và sửa thông tin:

vi /etc/nginx/conf.d/graylog.hungnv99.com.conf

Khi vào file, ta thấy sau khi sinh ssl đã có thêm các thông số xuất hiện trong file.

Chuyển đến vị trí số 1 và chỉnh sửa cho giống với trong hình. Vì ở trên mình đặt là http nên sau khi cài ssl thì vị trí số 1 mình phải sửa thành https.

Khởi động lại lại nginx

systemctl restart nginx

Truy cập website bằng tên miền và kiểm tra chứng chỉ

https://graylog.hungnv99.com

Click vào tại ví trí số 1 và chọn Chứng chỉ để kiểm tra chứng chỉ ssl.

Bước 5: Cấu hình tự động renew Certification

Vì Certification sẽ bị hêt hạn trong vòng 3 tháng nên ta có thể sử dung crontab để tự động renew Certification

wget https://dl.eff.org/certbot-auto && chmod a+x certbot-auto mv certbot-auto /etc/letsencrypt/ echo "0 2 * * 1 cd /etc/letsencrypt/ && ./certbot-auto renew && systemctl restart nginx" >> /etc/crontab systemctl restart crond

Kết luận :

Như vậy mình đã hướng dẫn các bạn cách cấu hình nginx làm reverse proxy cho graylog-server. Hy vọng bài viết này sẽ giúp ích cho các bạn và mình rất mong nhận được phản hồi dưới phần bình luận. Chúc các bạn thành công !

ONET IDC thành lập vào năm 2012, là công ty chuyên nghiệp tại Việt Nam trong lĩnh vực cung cấp dịch vụ Hosting, VPS, máy chủ vật lý, dịch vụ Firewall Anti DDoS, SSL… Với 10 năm xây dựng và phát triển, ứng dụng nhiều công nghệ hiện đại, ONET IDC đã giúp hàng ngàn khách hàng tin tưởng lựa chọn, mang lại sự ổn định tuyệt đối cho website của khách hàng để thúc đẩy việc kinh doanh đạt được hiệu quả và thành công.
Bài viết liên quan

SUSE Linux Enterprise Version 15 Release Date and New Features

Four years after the last version of SUSE Linux Enterprise, SLE 12, was made available in February 2014, SUSE is finally...
28/12/2020

Hướng dẫn cài đặt WordPress trên CentOS 8

Ở bài trước mình đã hướng dẫn các bạn cách cài đặt WordPress trên 2 node với CentOS 7. Nếu bạn...
30/12/2020

Top GIF Recorders For Linux

Top GIF Recorders For Linux Whether you pronounce it as ‘gif’ or ‘jif’, it’s still a no-brainer that the Graphics...
29/12/2020