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 !
Leave a Reply