2,498 瀏覽數

RHEL5 – Samba 防火牆(iptables)

當作 samba Server 一定需要24小時不斷電的開機,即使是使用在公司內部網路上也是有可能遭受到攻擊,所以有必要設定防火牆,除了有需要的 port 開啟外,其餘就不需要開啟.因為 iptables(firewall) 和 SElinux 都會影響到 Samba 分享目錄的結果.如果是要先測試使用結果建議先關閉 iptables(firewall) 和 SElinux.在Linux下常用的就是 iptables.而在 RHEL5 設定 iptables 也是很簡單.方法如下:

[root@benjr ~]# system-config-securitylevel

system-config-security03
信任服務: 就是只有哪些服務可以透過防火牆(iptables)下的情況還繼續工作.
只要開啟我們想要開放的 port 即可,基本上要開的 port 也只有 SMB /NMB 而已其他你可以依據需求來開啟.預設是沒有選項可以勾選你可以透過其他連接阜做設定.要開啟的也只有 NetBIOS (UDP ports 137 and 138, TCP ports 139) 和 TCP port 445 for SMB file sharing without NetBIOS.

如果你是透過遠端的 SSH 這邊還有一個可以在 Text mode 下執行的.

[root@benjr ~]# system-config-securitylevel-tui

fireware02
因為設定方式差不多,所以這裡就不多加以說明了.而設定檔會存放在 /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 udp -p udp –dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 138 -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 tcp -p tcp –dport 445 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited
COMMIT

說明:
下面是有關於 samba 的要開啟的 port.
-A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 138 -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 tcp -p tcp –dport 445 -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 

網友的想法

  1. 自動參照通知: RHEL5 – Samba(一) 什麼是 Samba | Benjr.tw

發表迴響