iptables實戰系列:公用網路服務防火牆

來源:互聯網
上載者:User

BKJIA獨家特稿】本文將介紹一個使用iptables保障網路服務安全的例子,需要保護的商業網路提供對外的公用網路服務,包括WWW、FTP、SMTP、DNS等。

1、應用情境和網路拓撲

在這個應用中,我們將需要使用iptables防火牆保護商業網路提供的對外的公用Internet服務,這些服務包括WWW服務、FTP服務、SMTP服務以及DNS服務具體的網路拓撲請參見圖1)。因此,這些服務起都具有有效Internet地址。

為了將內部網段210.10.18.0/24與Internet隔離,在內部網路和Internet之間使用了包過濾防火牆。具體的IP地址設定如下:

  • 防火牆的內網介面是eth0IP地址為:210.10.18.88),防火牆對外的Internet介面是eth1IP地址為:210.10.19.188);
  • WWW伺服器:IP地址為210.10.18.89;
  • FTP伺服器:IP地址為210.10.18.90;
  • DNS伺服器:IP地址為210.10.18.91;
  • SMTP伺服器:IP地址為210.10.18.92。 



圖1  防火牆部署執行個體

2、防火牆具體配置

本應用的主要目的是對企業網提供各種服務的伺服器提供保護,以使他們免受來自於外網Internet惡意使用者和流量的攻擊和危害。

1)建立有關的指令檔:在/etc/rc.d/目錄下用touch命令建立空的指令檔,執行chmod命令添加可執行許可權。

# touch /etc/rc.d/firewall-for-networkservice# chmod u+x /etc/rc.d/firewall-for-networkservice

2)編輯/etc/rc.d/rc.local檔案,在末尾加上/etc/rc.d/firewall-for-networkservice 以確保開機時能自動執行該指令碼,運行如下命令:

# echo “/etc/rc.d/firewall-for-networkservice” >>/etc/rc.d/rc.local

3)使用vi或者gedit等編輯器編輯/etc/rc.d/firewall-for-networkservice檔案,插入如下內容:

1)添加相關指令碼資訊,注意:指令碼中的注釋是採用“#”表示,而不是通常用的“//”

# 添加指令碼編寫頭部# !/bin/bash# 在螢幕上顯示資訊echo “Starting iptables rules…”# 開啟核心轉寄功能echo “1” >/proc/sys/net/ipv4/ip_forward

2)定義規則重要使用的相關變數

# 定義變數IPT=/sbin/iptablesWEB_SERVER=210.10.18.89FTP_SERVER=210.10.18.90DNS_SERVER=210.10.18.91SMTP_SERVER=210.10.18.92PROTECT_DOMAIN=“210.10.18.0/24”

3)重新整理基本的鏈規則,並禁止轉寄任意包

$IPT_LIST -F$IPT_LIST -P FORWARD DROP

4)設定有關保護伺服器的包過濾規則,並且注意由於伺服器/客戶機互動是雙向的,所以不僅僅要設定資料包出去的規則,還要設定資料包返回的規則,如下所示:

#保護WWW服務:服務連接埠為80,採用tcp或udp協議#規則為:eth1=>允許目的為內部網WWW伺服器的包$IPT_LIST -A FORWORD -p tcp udp -d $WEB_SERVER -dport www -i eth1 -j ACCEPT#保護FTP服務:服務連接埠為:命令連接埠21,資料連接埠20。FTP服務採用tcp協議。# 規則為:eth1=>允許目的為內部網FTP伺服器的包$IPT_LIST -A FORWORD -p tcp -d $FTP_SERVER -dport ftp -i eth1 -j ACCEPT#保護DNS服務:DNS連接埠53,採用tcp協議或者udp協議#規則為:eth1=>允許目的為內部網DNS伺服器的查詢請求$IPT_LIST -A FORWORD -p tcp udp -d $ DNS_SERVER -dport dns -i eth1 -j ACCEPT#保護SMTP服務:smtp連接埠25,採用tcp協議#規則為:eth1=>允許目的為內部網SMTP伺服器的smtp請求$IPT_LIST -A FORWORD -p tcp -d $ SMTP_SERVER -dport smtp -i eth1 -j ACCEPT

4)執行指令碼,使配置規則立刻生效

# /etc/rc.d/firewall-for-networkservice

到現在為止,有關使用防火牆保障網路服務的配置就完成了。通過執行上面的指令碼,我們建立了一個相對完整的防火牆。由於該防火牆只對外開放了有限的幾個連接埠,因此能夠有效地限制除這幾個服務之外的流量進入,從而達到保證安全的目的。當然,這個例子還非常簡單,使用者還可以在實際中通過針對具體服務的細化防火牆配置,比如限制外部網路並發串連WWW服務的TCP請求個數、限制外網訪問FTP伺服器的IP地址清單等來進行。這裡只是給出一個簡要的樣本,以達到拋磚引玉的目的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.