一般而言,實現Linux的防火牆功能有兩種策略。一種是首先全面禁止所有的輸入、輸出和轉發數據包,然後根據用戶的具體需要逐步打開各項服務功能。這種方式的特點是安全性很高,但必須全面考慮用戶所需的各項服務功能,不能有任何遺漏,要求系統管理員清楚地知道實現某種服務和功能需要打開哪些服務和端口。第二種方式是首先默認打開所有的輸入、輸出數據包,然後禁止某些危險包、IP欺騙包、廣播包、ICMP服務類型攻擊等;對於應用層的服務,像http、sendmail、pop3、FTP等,可以有選擇地啟動或安裝。這種方式雖然沒有第一種方式安全,但比較容易配置,不需要過多地了解ipchains命令的細節就可以配置一個基本的防火牆系統。
我所管理的代理服務器是IBM的Netfinity3000,安裝了RedHat Linux 6.2、squid-2.3,有兩塊網卡,外部網卡為eth0(211.98.126.180),內部網卡為eth1 (192.168.0.1),客戶機的IP地址是192.168.0.xxx。按照第二種方法設置了一個防火牆,具體過程如下:
安裝完系統之後,以root的身份登錄,在/etc/rc.d/目錄下用vi創建一個腳本叫firewall.rules;創建完成後,執行命令chmod 755 firewall.rules,確保其為可執行文件;然後用vi打開/etc/rc.d/rc.local文件,加入一行/etc/rc.d/firewall.rules,確保機器每次啟動即可執行所設定的各項防火牆規則。
firewall.rules文件的內容略。
如果你的機器只有一塊網卡,通過Modem撥號上網,那麼連接內部網絡的網卡應該是eth0,IP地址可能是192.168.0.1,外部接口就是ppp0,你只須將firewall.rules文件內容中的eth0改為ppp0即可。設置了以上防火牆規則之後,你可以在/etc/inetd.conf中禁止所有不需要的服務,只保留ftp和telnet;同時設置/etc/hosts.allow和/etc/hosts.deny,僅允許內部某些管理用戶登錄到該防火牆。以上方法在筆者所在的環境中成功運行,並解決了Outlook eXPress收發郵件的問題。