我們的 Server 需要 24小時不斷電的開機,在網路上很容易受到攻擊,所以有必要設定防火牆,在 Linux下常用的就是 iptables.而在 Cent OS 設定 iptables 也是很簡單.方法如下
[root@benjr ~]# system-config-securitylevel
信任服務: 就是只有哪些服務可以透過防火牆(iptables)下的情況還繼續工作.
只要開啟我們想要開放的 port 即可,基本上要開的 port 也只有 WWW SMTP SSH 而已其他你可以依據需求來開啟.在開啟 www (HTTP) 要順便把 HTTPS(443:tcp) 也開啟的.至於 SMTP 是因為要寄認證信給使用者所以要開, SSH 則可以透過遠端管理 Server.
但是信任裝置是什麼呢!一開始我還天真的以為勾選的裝置都會受到防火牆(iptables)的保護!!但是全錯有 勾選的裝置是不受到防火牆(iptables)的保護!!所以如果你的 eth0 也是要受到相同的防火牆(iptables)的限制就不要去勾選他了!!是我太傻太天真了嗎??這麼久才發現.
如果你是透過遠端的 SSH 這邊還有一個可以在 Text mode 下執行的.
[root@benjr ~]# system-config-securitylevel
而設定檔會存放在 /etc/sysconfig/iptables
[root@benjr ~]# cat /etc/sysconfig/iptables # Firewall configuration written by system-config-securitylevel # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT – [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT -A RH-Firewall-1-INPUT -i lo -j ACCEPT -A RH-Firewall-1-INPUT -i ppp0 -j ACCEPT -A RH-Firewall-1-INPUT -i eth0 -j ACCEPT -A RH-Firewall-1-INPUT -p icmp –icmp-type any -j ACCEPT -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT -A RH-Firewall-1-INPUT -p udp –dport 5353 -d 224.0.0.251 -j ACCEPT -A RH-Firewall-1-INPUT -p udp -m udp –dport 631 -j ACCEPT -A RH-Firewall-1-INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 443 -j ACCEPT -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 25 -j ACCEPT -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 139 -j ACCEPT -A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 137:138 -j ACCEPT -A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited COMMIT
說明:
- port 443是 https 的通訊協定,因為網頁瀏覽會用到所以將它保留下來.
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 443 -j ACCEPT - port 22 是 SSH 的通訊協定,這是比傳統 telnet 還要好用而且安全的遠端連線.
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT - port 25 是 SMTP 的通訊協定,因為所以會寄註冊信給使用者所以這一個 port 也會開啟.
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 25 -j ACCEPT - port 80是 http 的通訊協定,因為網頁瀏覽會用到所以將它保留下來.
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT - 下面是有關於 samba 的協定 port.你可以依據自己的需求選擇要不要手動加入.
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 139 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 137:138 -j ACCEPT
如果要開機時就啟動 iptables ,使用下面這個指令,就會在每次開機時啟動 iptables
[root@benjr ~]# chkconfig iptables on
當然我不希望現在再重開機所以直接用下面的指令將 iptables 打開.
[root@benjr ~]# service iptables start Starting httpd [OK]
將目前的 iptables 設定儲存下來,設定檔將儲存在 /etc/sysconfig/iptables
[root@benjr ~]# /sbin/service iptables save
沒有解決問題,試試搜尋本站其他內容
5 thoughts on “Linux – 防火牆 iptables”