Hướng dẫn chi tiết này giúp bạn bắt đầu dùng iptables – firewall kinh điển, tin cậy – trong Linux.
Máy Linux nổi tiếng an toàn. Nghiên cứu cho thấy Linux được thiết kế an toàn. Tuy nhiên, dù có nhiều tính năng bảo mật built-in, bạn cần cấu hình đúng để chúng hoạt động. Tôi sẽ hướng dẫn setup một công cụ bảo mật máy – firewall. Dùng iptables firewall trong Linux. Giả sử bạn dùng server chạy Red Hat Enterprise Linux 4 hoặc tương tự. Hầu hết bước cũng áp dụng cho distro khác. Ta sẽ setup firewall cho server chạy Apache Web Server, FTP, và SSH.
Trước tiên xem các app dùng port nào và port nào cần mở trên firewall.
- Apache web server chạy port 80 mặc định. Phục vụ web content trên port này → phải mở.
- SSH chạy port 22. Cần remote connect → mở.
- FTP chạy port 21. Cần mở để giao tiếp.
Tiếp, kiểm tra iptables đã cài chưa. Chạy lệnh sebagai root:
# rpm -qa | grep iptables
Nếu cài rồi sẽ ra version. Nếu chưa:
# yum install iptables # /etc/init.d/iptables start
Kiểm tra config hiện tại:
# iptables –list Chain INPUT (policy ACCEPT) target prot opt source destination Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
Lệnh liệt kê tất cả firewall rule hiện tại. Giả sử chưa có rule nào. Cấu hình firewall cho phép giao tiếp trên port 80 (web), 22 (SSH), 21 (FTP), chặn port khác.
Script config firewall. Tạo file mới tên iptable-firewall.sh, copy nội dung sau:
#!/bin/sh
ANY="0/0"
OPEN_PORTS="21 22 80"iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT# Flush (-F) all specific rules
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUTfor port in $OPEN_PORTS
do
iptables -A INPUT -i eth0 -p tcp -s $ANY -d $ANY –destination-port $port –syn -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -s $ANY -d $ANY –destination-port $port –syn -j ACCEPT
doneiptables -A INPUT -i eth1 -p icmp -s $ANY -d $ANY -j ACCEPT
# Allow any related/established connections
iptables -A INPUT -i eth0 -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth1 -m state –state ESTABLISHED,RELATED -j ACCEPT# Kill everything else
iptables -A INPUT -i eth0 -j DROP
iptables -A INPUT -i eth1 -j DROP# Write for boot
iptables-save > /etc/sysconfig/iptables
Lưu file, cấp quyền thực thi và chạy:
# chmod +x iptable-firewall.sh # ./iptable-firewall.sh
Kiểm tra rule:
# iptables –list
Tất cả rule đã set. Server đã an toàn. Để sửa đổi, edit dòng OPEN_PORTS thêm/bớt port, chạy lại script.
Nếu command line quá phức tạp, xem tutorial "How to setup Firestarter – an easy to use Linux Firewall" có GUI.