2018/10/05

[程式設計] Ubuntu 開機自動載入防火牆 (iptables),專業工程師教你標準怎麼做

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分鐘你還有機會補救。

沒有留言:

從一次考試到感情誤解,我們如何被數字騙了?

你是否曾經因為一次考試成績不理想,就觉得自己完全不適合某個科目?或者因為朋友兩次遲到,就認定他不靠譜?這些看似合理的結論,可能正中了「小樣本偏誤」的圈套。這種心理傾向讓我們習慣用少數幾次經驗,急於下定論,卻忽略了統計學的真相:小樣本往往無法代表全貌。就像丟骰子兩次沒丟到6,就說自...