最近有位學長的網站常被打
讓我想到我還有很多文章都還沒弄上來
所以趁這個機會把之前寫的iptables筆記貼上來
一般狀況下,server是不會隨便讓任何人存取一些服務的
這個時候就需要iptables來幫助我們!
首先可以先看看目前環境中iptables的規則
iptables -L -n
-L :列出目前的 table 的規則
-n :不進行IP與hostname的反查,速度較快
列出完整的防火牆規則
iptables-save
清除規則
iptables -F iptables -X iptables -Z
-F :清除所有的規則
-X :刪除所有使用者自訂的chain
-Z :將所有的 chain 的計數與流量統計都歸零
定義預設政策(policy)
-P:定義政策
iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT
將localhost設定為信任
iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -s 127.0.0.1 -j ACCEPT
信任本機存取時相關的response
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-m 外掛模組:常見的有state和mac
--stat 封包狀態:
INVALID :無效的封包,例如資料破損的封包狀態
ESTABLISHED:已經連線成功的連線狀態;
NEW :想要新建立連線的封包狀態;
RELATED :與主機送出去的封包有關係的封包
port 21 存取設定
iptables -A INPUT -p tcp --dport 21 -j DROP iptables -A INPUT -s 192.168.0.0/16 -p tcp --dport 21 -j ACCEPT iptables -A INPUT -s 120.119.0.0/16 -p tcp --dport 21 -j ACCEPT iptables -A INPUT -s 59.127.184.43 -p tcp --dport 21 -j ACCEPT
(拒絕所有存取,只接受192.168.0.0/16、120.119.0.0/16和59.127.184.43)
--sport 埠口範圍:限制來源port,port可連續,ex 1024:65535
--dport 埠口範圍:限制目標port
-A :新增加一條規則,規則是加在最後面
-I :插入一條規則。如果沒有指定此規則的順序,預設是插入變成第一條規則
-p 協定:設定此規則適用於哪種封包格式,主要的封包格式有:tcp、udp、icmp及all
-s 來源IP/網域:設定此規則之封包的來源項目,可指定單純的 IP 或包括網域
-d 目標 IP/網域
-j :後面接動作,主要的動作有ACCEPT、DROP、REJECT及LOG
ssh設定
iptables -A INPUT -s 192.168.0.0/16 -p tcp –dport 22 -j ACCEPT iptables -A INPUT -s 120.119.0.0/16 -p tcp –dport 22 -j ACCEPT iptables -A INPUT -s 59.127.184.43 -p tcp –dport 22 -j ACCEPT
http設定
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
開機自動啟動防火牆
Ubuntu:
chmod 755 firewall.sh cd /etc/rcS.d ln -s /home/web/firewall.sh S100firewall.sh
rcS.d目錄中,只有大寫S開頭的檔案,會被執行,S後面的號碼,是執行的優先順序
CentOS:
/etc/init.d/iptables save
最後完成機器上的設定
#!/bin/bash iptables -F iptables -X iptables -Z iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p all -s 120.119.28.0/255.255.254.0 -j ACCEPT # bypass DNS iptables -A INPUT -s 192.168.0.0/16 -p tcp --dport 20:22 -j ACCEPT iptables -A INPUT -s 120.119.0.0/16 -p tcp --dport 20:22 -j LOG --log-level "NOTICE" #紀錄log iptables -A INPUT -s 120.119.0.0/16 -p tcp --dport 20:22 -j ACCEPT iptables -A INPUT -s 59.127.184.43 -p tcp --dport 20:22 -j ACCEPT iptables -A INPUT -s 120.119.0.0/16 -p tcp --dport 60000:61000 -j ACCEPT iptables -A INPUT -s 192.168.0.0/16 -p tcp --dport 60000:61000 -j ACCEPT iptables -A INPUT -s 59.127.184.43 -p tcp --dport 60000:61000 -j ACCEPT iptables -A INPUT -p tcp --dport 113 -j ACCEPT #auth認證 iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --sport 80 -j ACCEPT
如果測試ftp時一直卡在MLDS進不去,就是被動port被擋住囉
1 Comment
佛祖球球 » Blog Archive » [CentOS]Apache啟動後無法顯示網頁 · 31 7 月, 2012 at 10:05 下午
[…] 加入Rule(防火牆設定可參考這篇) […]
Comments are closed.