Splunk Cấu hình SPLUNK với NGINX reverse proxy

BlackDrag0n

Internship/Fresher
Jan 4, 2021
27
1
16
3

Cấu hình SPLUNK với NGINX reverse proxy


Reverse Proxy là gì?


Trong hệ thống mạng thông tin, reverse proxy là một loại proxy server trung gian giữa một máy chủ và các clients gửi tới các yêu cầu. Nó kiểm soát yêu cầu của các clients, nếu hợp lệ, sẽ luân chuyển đến các servers thích ứng. Trái ngược với một proxy chuyển tiếp (forward proxy), là một trung gian cho các clients liên hệ với nó liên lạc với bất kỳ máy chủ nào, Reverse proxy là một trung gian cho các máy chủ liên hệ với nó được liên lạc bởi bất kỳ clients nào.
Nguồn wiki: https://vi.wikipedia.org/wiki/Reverse_proxy

Reverse proxy ngoài việc chuyển tiếp request từ client đến Server, chúng ta có thể cấu hình để bảo mật traffic HTTP, Load balancing, tăng tốc tốc độ load web, cũng như che giấu thông tin thật sự của Server.

Reverse proxy có thể dễ dàng triển khai bằng nhiều cách như:
  • NGINX
  • Apache (Virtual hosts)
  • HAproxy
  • IIS
  • Iptables
Tuy nhiên, trong bài viết này mình sẽ sử dụng NGINX để cấu hình server reverse proxy hôm nay. Như các bạn biết thì NGINX và APACHE là 2 web server được cài đặt nhiều nhất.
1617292645117.png


Sự khác biệt giữa 2 web servers này nằm ở kiến trúc thiết kế. Apache được thiết kế theo kiểu process-driven, tạo ra mỗi thread mới để sử lý mỗi request. Còn NGINX thì sử dụng kiến trúc event-driven để xử lý nhiều request trong một thread.
Về performance thì hiệu nặng của NGINX vượt trội hơn Apache (Có bài test hiệu năng cũng như thảo luận về vấn đề performance giữa Apache và NGINX các bạn có thể tham khảo tại đây. Ngoài ra việc cấu hình config trên NGINX cũng dễ dàng hơn so với Apache. Tuy nhiên, một số chức năng nâng cao của NGINX yêu cầu trả phí. Nhưng trong việc setup hôm nay thì mình không cần sử dụng các tính năng nâng cao đó nên sẽ sử dụng NGINX để cấu hình.

Mô hình triển khai:


a.png

Chuẩn bị Server Reverse Proxy:


Ở đây mình dùng Server CentOS 7. Tiến hành cài đặt nginx
Bash:
sudo yum update && sudo yum upgrade
sudo yum install epel-release
sudo yum install nginx vim git
sudo yum install certbot python-certbot-nginx #Cấu hình SSL cho web

### Khởi chạy nginx và cho phép nginx khởi động cùng hệ thống###
sudo systemctl enable nginx
sudo systemctl start nginx
Tiếp theo mở rule firewall trên CentOS và disable SELINUX .
Bash:
### Cấu hình Firewall###
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --reload

### Disable SELINUX ####
sudo setenforce 0

Cấu hình Nginx làm reverse proxy, chỉnh sửa file /etc/nginx/nginx.conf. ở phần Server chỉnh sửa lại một số tham số

NGINX:
server {
        listen   80; ##Nếu sử dụng SSL thì cần cấu hình port 443 và ở port 80 sẽ redirect về 443
        server_name  sp.securityzone.vn;## Thay domain của bạn vào

        access_log  /var/log/nginx/access.log; #Thông tin log sẽ ghi vào file này
## Khi truy cập vào đường dẫn sp.securityzone.vn/sh1 sẽ điều hướng đến search head 1
        location /sh1 {
                proxy_pass_request_headers on;
                proxy_set_header x-real-IP $remote_addr;
                proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
                  proxy_set_header host $host;
                proxy_pass      https://<IP Search head 1>:8000;  
        }
## Khi truy cập vào đường dẫn sp.securityzone.vn/sh2 sẽ điều hướng đến search head 2
        location /sh2 {
                proxy_pass_request_headers on;
                proxy_set_header x-real-IP $remote_addr;
                proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
                  proxy_set_header host $host;
                proxy_pass      https://<IP Search head 2>:8000;  
        }
}

Sau khi chỉnh sửa xong chạy lệnh kiểm tra và restart lại nginx
Bash:
## Check config file nginx.conf
nginx -t
## Restart service nginx
sudo systemctl restart nginx


Trên search head cần cấu hình lại phần root_endpoint trong file $SPLUNK_HOME/etc/system/local/web.conf
Bash:
vim $SPLUNK_HOME/etc/system/local/web.conf
#### Thêm vào mục [settings]
root_endpoint = /sh1 #Đối với search head 1
tools.proxy.on = false

Sau đó khởi động lại Splunkweb.

Như vậy hoàn tất việc cấu hình reverse proxy cho splunk
 
Last edited:

About us

  • Securityzone.vn là một trang web chuyên về an ninh mạng và công nghệ thông tin. Trang web này cung cấp các bài viết, tin tức, video, diễn đàn và các dịch vụ liên quan đến lĩnh vực này. Securityzone.vn là một trong những cộng đồng IT lớn và uy tín tại Việt Nam, thu hút nhiều người quan tâm và tham gia. Securityzone.vn cũng là nơi để các chuyên gia, nhà nghiên cứu, sinh viên và người yêu thích an ninh mạng có thể trao đổi, học hỏi và chia sẻ kiến thức, kinh nghiệm và giải pháp về các vấn đề bảo mật trong thời đại số.

Quick Navigation

User Menu