目標:
- 對內: 僅打開 SSH(22), HTTP(80), HTTPS(443), MYSQL(3306) PORT,其他全部封鎖
- 對外: 不設限
這樣就可以防止有心人入侵其他 Port。
本來是要下一大堆指令的,不過 iptables 可以用 iptables-save 來輸出規則,所以我直接貼出規則檔:
# Generated by iptables-save v1.4.1.1 on Tue Aug 25 12:57:50 2009
*filter
:INPUT DROP [2858:374901]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [186:47949]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT
# Completed on Tue Aug 25 12:57:50 2009
將此檔存到 /etc/iptables.up.rule。
因為每次開機後 iptables 的規則就會重置,要修改開機時能夠讀取剛才建立的規則檔,這樣我們建立的防火牆規則才有效。
用 vi 打開 /etc/network/interfaces,應該可以看到網路卡設定,加一行指令即可:
pre-up iptables-restore < /etc/iptables.up.rule
並存檔。這樣可以確保開機後自動回覆規則。
但是沒重新開機前,現在的 iptables 狀態還是空的,所以我們要手動載入規則檔,執行:
# iptables-restore < /etc/iptables.up.rule
就可以了,要查看是否成功的話可以下指令:
# iptables -L
應該會出現很多規則,這樣就成功了。
沒有留言:
張貼留言