Tôi đã thiết lập một máy chủ web Apache trên CentOS Linux. Làm thế nào để cấu hình tường lửa để cho phép hoặc chặn truy cập? Làm thế nào để thiết lập tường lửa cho một máy chủ web trong RHEL hoặc CentOS Linux v6.x? Các cấu hình iptables mặc định trên CentOS hoặc RHEL không cho phép truy cập vào các HTTP (TCP PORT #80) và HTTPS (TCP PORT #443), các cổng này được sử dụng bởi các máy chủ web Apache. Bạn có thể sửa đổi cài đặt cấu hình theo một trong những cách sau: /etc/sysconfig/iptables: Chỉnh sửa tập tin này để cho phép hoặc từ chối truy cập cho Apache Web Server IPv4. Bạn cũng cần phải chỉnh sửa tập tin etc/sysconfig/ip6tables/ để cho phép hoặc từ chối truy cập đến các cổng của Apache Web Server IPv6. lệnh system-config-firewall-tui (chạy trên ssh text dựa trên session) hoặc lệnh system-config-firewall (chạy trên GUI dựa trên session): Đây là một giao diện người dùng đồ họa để thiết lập các quy tắc tường lửa cơ bản. Công cụ này sẽ luôn luôn ghi đè lên tập tin /etc/sysconfig/iptables. Lệnh /sbin/iptables: Sử dụng các lệnh iptable trực tiếp để sửa đổi/bổ sung/thêm các quy tắc tường lửa. Các quy tắc có thể được lưu vào tập tin /etc/sysconfig/iptables với lệnh /sbin/service iptables save. Lệnh /usr/sbin/lokkit: Đây là một công cụ cấu hình tường lửa cơ bản, được thiết kế để dễ sử dụng và cấu hình. Công cụ này cũng hỗ trợ tùy chọn cấu hình SELinux. Công cụ này được coi là lỗi thời và không được nói đến trong hướng dẫn này. Phương pháp # 1: Chỉnh sửa tập tin /etc/sysconfig/iptables Chỉnh sửa IPv4 /etc/sysconfig/iptables, nhập lệnh: Mã: vi /etc/sysconfig/iptables Thêm các dòng sau đây, đảm bảo rằng chúng xuất hiện trước dòng có LOG hoặc DROP của chuỗi INPUT: Mã: ## allow everyone to access port 80 and 443 (IPv4 Only)## -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT Lưu lại và đóng tập tin. Khởi động lại dịch vụ iptables IPv4: Mã: service iptables start Chỉnh sửa IPv6 /etc/sysconfig/iptables, nhập lệnh: Mã: vi /etc/sysconfig/ip6tables Thêm các dòng sau đây, đảm bảo rằng chúng xuất hiện trước dòng có LOG hoặc DROP của chuỗi INPUT: Mã: ## allow everyone to access port 80 and 443 (IPv6 Only)## -A INPUT -m state --state NEW –m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -m state --state NEW –m tcp -p tcp --dport 443 -j ACCEPT Lưu lại và đóng tập tin. Khởi động lại dịch vụ iptables IPv6: Mã: service ip6tables start Phương pháp # 2: Công cụ cấu hình tường lửa GUI/TUI Lệnh system-config-firewall là một giao diện người dùng đồ họa để thiết lập quy tắc tường lửa cơ bản. Bạn cần có KDE hoặc Gnome cài đặt trên hệ thống. Mở một terminal và gõ lệnh sau đây sử dụng user root: Mã: system-config-firewall Ví dụ kết quả đầu ra: Chọn dịch vụ như WWW, SSH, HTTPS để mở cổng cho tất cả mọi người. Click vào nút Apply. Công cụ này sẽ tạo tập tin /etc/sysconfig/iptables như sau: Một lưu ý về văn bản dựa trên công cụ cấu hình (đề nghị cho máy chủ từ xa truy cập ssh) sysystem-config-firewall-tui là một công cụ dòng lệnh mà không có GUI được cài đặt trên máy chủ: Mã: system-config-firewall-tui Ví dụ kết quả đầu ra: Chọn Enabled và nhấn phím Tab để chọn " Customization": Cuộn xuống or lên và chọn SSH, WWW, Secure WWW (HTTPS) và cổng cần thiết khác mà bạn muốn mở. Sau đó, chọn nút Close. Cuối cùng, nhấn nút OK để kích hoạt các thiết lập tường lửa mới. Phương pháp # 3: tiện ích dòng lệnh /sbin/iptables Gõ lệnh iptables sử dụng user root để mở cổng 80/443: Mã: ## open port 80 and 443 for everyone ## /sbin/iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT /sbin/iptables -A INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT ## save newly added firewall rules ## /sbin/service iptables save ## verify new firewall settings /sbin/iptables -L -n -v /sbin/iptables -L INPUT -n -v /sbin/iptables -L INPUT -n -v | grep :80 /sbin/iptables -L INPUT -n -v | grep :443 Các quy tắc sau đây cho phép truy cập đến cổng 80 và 443 chỉ dành cho subnet 192.168.1.0/24 Mã: ## Find an appropriate network block, and network mask ## representing the machines on your network which should operate as ## clients of the Apache Web-server ## Open port 80 and 443 for 192.168.1.0/24 subnet only ## /sbin/iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 80 -j ACCEPT /sbin/iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 443 -j ACCEPT ## save newly added firewall rules ## /sbin/service iptables save ## verify new firewall settings /sbin/iptables -L -n -v /sbin/iptables -L INPUT -n -v /sbin/iptables -L INPUT -n -v | grep :80 /sbin/iptables -L INPUT -n -v | grep :443 Bạn có thể block/drop các địa chỉ IP 202.54.1.1 hoặc subnet 202.54.1.2/29 như sau sử dụng iptables: Mã: ## Block access to port 80 ## iptables -A INPUT -s 202.54.1.1 -p tcp --dport 80 -j DROP iptables -A INPUT -s 202.54.1.2/29 -p tcp --dport 80 -j DROP ## block and drop access to port 443 (secure apache web-server) iptables -A INPUT -s 202.54.1.1 -p tcp --dport 443 -j DROP iptables -A INPUT -s 202.54.1.2/29 -p tcp --dport 443 -j DROP ## save newly added firewall rules ## /sbin/service iptables save ## verify new firewall settings /sbin/iptables -L -n -v /sbin/iptables -L INPUT -n -v | grep 202.54.1.1 Thêm các quy tắc FTP (rất được sử dụng trong một máy chủ web): Mã: #FTP iptables -A INPUT -p tcp –dport 20:21 -j ACCEPT #Passive FTP Ports Maybe: #(Again, specifying ports 50000 through 50050 in one rule iptables -A INPUT -p tcp –dport 50000:50050 -j ACCEPT