iptables防火牆規則常常初學者總是不知道放哪好,重開機規則又全部重來:
我這邊設計一個簡單的方式,業界標準的方式,原理是把規則變成一個ssh script,開機時自動載入。
我這邊利用Linux的Crontab (例行性工作排程) 實現這個功能。
1. 編輯一個firewall script,路徑就自己定囉,不限在哪。
# vi /scripts/firewall.sh
|
2. 編輯iptables規則,根據自己的需求自行增加刪減
#清除所有防火牆規則
iptables -F iptables -X #禁止icmp ping iptables -A INPUT -p icmp -j DROP; #allow port 80 iptables -A INPUT -p tcp --dport 80 -j ACCEPT; #allow port 22 iptables -A INPUT -p tcp --dport 22 -j ACCEPT; #allow port 443 iptables -A INPUT -p tcp --dport 443 -j ACCEPT; |
3. 設定script執行權限,要給root的執行權限,才能保障一定可以執行
~# chmod -c 777 /scripts/firewall.sh
|
4. 進入Crontab設定
~# crontab -e
|
5. 編輯Crontab規則,開機延遲60秒,載入防火牆規則
@reboot sleep 60;sudo /scripts/firewall.sh
|
要特別注意的是Linux不適合剛開機就做動作,因此我在crontab的指令裡面都會加一個延遲60秒 (sleep 60),這樣比較不會指令執行失敗。
這邊講一個故事,現在主機很多都在雲端,換句話說沒有一台實體的電腦可以讓你操作,如果防火牆的規則寫錯了,太快載入,如果不小心設定錯誤,或者誤阻擋管理者,至少開機後的1分鐘你還有機會補救。
沒有留言:
張貼留言