歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> Linux文化 >> LINUX架設防火牆

LINUX架設防火牆

日期:2017/2/27 12:17:02   编辑:Linux文化

  隨著Internet的普及,人們的日常工作與之的關系也越來緊密,因而越來越多的單位為員工開設了Internet的代理上網服務。但當一個企業的內部網絡接上Internet之後,企業的內部資源就象待賣的羔羊一樣,面臨任人宰割的危險,因而系統的安全除了考慮計算機病毒、系統的健壯性等內部原因之外,更主要的是防止非法用戶通過Internet的入侵。而目前防止的措施主要是靠防火牆的技術完成。

一、什麼是防火牆
  防火牆(firewall)是指一個由軟件或和硬件設備組合而成,處於企業或網絡群體計算機與外界通道(Internet)之間,限制外界用戶對內部網絡訪問及管理內部用戶訪問外界網絡的權限。主要是控制對受保護的網絡(即網點)的往返訪問,逼使各連接點的通過能得到檢查和評估。

  從誕生到現在,防火牆已經歷了四個發展階段:基於路由器的防火牆、用戶化的防火牆工具套、建立在通用操作系統上的防火牆、具有安全操作系統的防火牆。目前防火牆供應商提供的大部分都是具有安全操作系統的軟硬件結合的防火牆,象NETEYE、NETSCREEN、TALENTIT等。在LINUX操作系統上的防火牆軟件也很多,除了下面要專門介紹的IPCHAINS外,還有很多,如:Sinus Firewall、Jfwadmin等。

  目前的防火牆從結構上講,可分為兩種:

  1) 代理主機結構

    內部網絡代理網關(Proxy Gateway)Internet

  2) 路由器加過濾器結構

    內部網絡過濾器(Filter)路由器(Router)Internet

二、用IPCHAINS構建局域網防火牆的原理
  其實從本質上講,用IPCHAINS構建局域網防火牆也是一種C/S模式的交互式的應用。一般服務器提供某特定功能的服務總是由特定的後台程序提供的。在TCP/IP網絡中,常常把這個特定的服務綁定到特定的TCP或UDP端口。之後,該後台程序就不斷地監聽(listen)該端口,一旦接收到符合條件的客戶端請求,該服務進行TCP握手後就同客戶端建立一個連接,響應客戶請求。與此同時,再產生一個該綁定的拷貝,繼續監聽客戶端的請求。

  IPCHAINS就是這樣的一個SERVER。對內部網通往Intenet的請求,或從外部通往內部網的請求,都進行監聽、檢查、評估、轉發、拒絕等動作。

  常用的服務、協議與默認端口。

  服務類型 協議 端口

  WWW TCP/UDP 80

  TELNET

  ICMP

  SMTP

  POP3

  FTP

  DNS

三、用IPCHAINS作防火牆的步驟
  1.安裝

  IPCHAINS現在的版本已經發展到1.3.9。一般在安裝LINUX時都會安裝上,如果沒有的話可以到www.linux.org下載。下面筆者一TLC4.0為例安裝IPCHAINS。由於它需IP-MASQ的支持,所以確定已安裝了IP-MASQ模塊。

  在TLC4.0中,把該光盤放入光驅中,

  #turbopkg

  並選擇ipchains,然後按OK就自動自動安裝了。

  如果你是下載ipchains安裝包的話:

  1)如果是rpm包:

  #rpm –ivh *.rpm

  2)如果是.tar.gz包

  #tar xvfz *.tar.gz(先把包解開)

  再到解開目錄

  #./configure

  #make

  #make install

  這樣就安裝成功了。

  2.啟用ipchains

  手工修改 /proc/sys/net/ipv4/ipforward文件,將其內容置為1。

  在/etc/rc.d/目錄下用touch命令建立rc.ipfwadm文件

  在/etc/rc.d/目錄下的rc.local文件中加上下面這段代碼:

  if [ -f /etc/rc.d/rc.ipfwadm ]; then /etc/rc.d/rc.ipfwadm; fi;

  以後所有的ipchains的配置命令都將在rc.ipfwadm文件裡修改。

  3.配置ipchains(基本應用)

  ipchains對機器的管理是通過對機器的ip地址作為標志的,因而首先得確保你的局域網的機器的ip地址已經配分配好,並且你對之相當熟悉。

  Ipchains的配置規則一般是圍繞著input、output、ipforward這三個規則進行的,其中input是指對內連接請求的過濾規則,output是指對外連接請求的過濾規則,ipforward是指對內部與外部通訊包的轉發。Ipchains的命令格式一般是:

  ipchains [ADC] ipchains規則 [ipchains 選項]。

  有關命令的詳細用法請參考有關HOWTO文檔。

  現在我們假設企業的內部網網段為192.168.1.0~192.168.1.255.其中防火牆的主機的IP地址為:192.168.1.1,假設目前防火牆是進行代理上網,拒絕所有的外部telnet。對內部用戶訪問外部站點進行限制、並授予一些機器特權可任意訪問外部機器、拒絕內部某些機器訪問Internet等。網段示意圖為:

  +--------------+

  | 內部網段 | 192.168.1.1 ISDN、PSDN

  | +------------|firewall|Internet

  | 192.168.1.0 | +--------+

  +-------------- +

  配置ipchains防火牆規則一般有兩種方式:

  1) 首先允許所有的包,然後在禁止有危險的包通過防火牆;

  2) 首先禁止所有的包,然後再根據所需要的服務允許特定的包通過防火牆。

  相比較而言,第二種方式的做法更為安全。

  下面是我的rc.ipfwadm的文件內容:

  /sbin/depmod –a

  /*自動加載所需模塊,如果覺得這樣有危險,需手動指定安裝模塊,可以如下面這一小段就是手動指定加載模塊*/

  #/sbin/modprobe /lib/modules/2.2.10/ipv4/ip_masq_ftp

  /*加載ip偽裝的ftp模塊*/

  #/sbin/modprobe /lib/modules/2.2.10/ipv4/ip_masq_irc

  /*加載ip偽裝的irc模塊*/

  #/sbin/modprobe /lib/modules/2.2.10/ipv4/ip_masq_raudio

  #/sbin/modprobe /lib/modules/2.2.10/ipv4/ip_masq_user

  #/sbin/modprobe /lib/modules/2.2.10/ipv4/ip_masq_autofw

  /sbin/modprobe -a -t /lib/modules/2.2.10/ipv4/ip_masq*

  /*自動加載ip偽裝的相關模塊*/

  ipchains –F

  /*刷新所有的ipchains規則*/

  ipchains -P forward DENY

  /*拒絕轉發所有的ip包*/

  /*下面允許特定的包通過*/

  /*開設權限比較高的主機*/

  ipchains -A forward -s 192.168.1.10/32 -j MASQ

  /*允許內部的192.168.1.10主機不受限制訪問。比如總經理*/

  ipchains -A forward -s 192.168.1.12/32 -j MASQ

  /*允許內部的192.168.1.12主機不受限制訪問。比如系統管理員,在依次添加*/

  ipchains -A forward -s 192.168.1.41/32 -j MASQ

  /*for example linuxbird的主機地址:192.168.1.41*/

  /*某些機器,因需要不能對外連接*/

  ipchains -A forward -s 192.168.1.3/32 -j DENY

  /*此機器為內部文檔專用機,不能訪問外部*/

  /*設置內部普通用戶能訪問的站點*/

  ipchains -A forward -d 202.101.98.55/32 -j MASQ # FJ-DNS

  ipchains -A forward -d 202.101.0.133/32 -j MASQ # FJ-DNS

  /*這是上網的DNS服務器,本人用的是福州電信局的DNS*/

  /*以下是普通用戶能訪問的站點,根據需要可以對其增刪改*/

  ipchains -A forward -d 202.101.98.50/32 -j MASQ

  /* public.fz.fj.cn*/

  ipchains -A forward -d 202.101.98.60/32 -j MASQ

  /* pub5.fz.fj.cn*/

  ipchains -A forward -d 202.96.44.14/24 -j MASQ

  /*freemail.263.net*/

  ipchains -A forward -d 202.99.11.120/32 -j MASQ

  /*www.linuxaid.com.cn*/

  ipchains -A forward -d 205.227.44.44/24 -j MASQ

  /* www.oracle.com*/

  ipchains -A forward -d 205.227.44.46/32 -j MASQ

  /* lliance.oracle.com*/

  #ipchains -A forward -d 205.227.44.237/32 -j MASQ

  /* support.oracle.com*/

  ipchains -A forward -d 209.246.5.38/24 -j MASQ

  /* technet.oracle.com*/

  ipchains -A forward -d 137.69.200.8/32 -j MASQ

  /* www.legato.com*/

  ipchains -A forward -d 202.96.125.102/32 -j MASQ

  /*www.188.net*/

  ipchains -A forward -d 207.105.83.51/32 -j MASQ

  /* www.borland.com*/

  ipchains -A forward -d 207.46.131.30/24 -j MASQ

  /* www.microsoft.com*/

  ipchains -A forward -d 207.46.130.30/24 -j MASQ

  /* www.microsoft.com*/

  ipchains -A forward -d 204.146.81.99/32 -j MASQ

  /* www.ibm.com*/

  ipchains -A forward -d 202.102.24.74/24 -j MASQ

  /* www.lodesoft.com*/

  ipchains -A forward -d 210.77.34.109/32 -j MASQ

  /* www.csdn.net*/

  ipchains -A forward -d 192.138.151.66/32 -j MASQ

  /* www.sybase.com*/

  ipchains -A forward -d 202.102.26.1/32 -j MASQ

  /* www.nari-china.com*/

  ipchains -A forward -d 202.102.26.51/32 -j MASQ

  /*www.aeps-info.com*/

  ipchains -A forward -d 202.106.185.2/32 -j MASQ

  /* www.sohu.com */

  ……


摘自:http://Linuxaid.com.cn


Copyright © Linux教程網 All Rights Reserved