日韩在线不卡免费视频一区,日韩欧美精品一区二区三区经典,日产精品码2码三码四码区,人妻无码一区二区三区免费,日本feerbbwdh少妇丰满

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發(fā)新帖

linux 學習筆記

一、配置網(wǎng)絡

linux下設置IP為什么每次重啟后會自動變? (通過ifconfig命令只能臨時改變IP地址、子網(wǎng)絡掩碼。)

我在linux下設置IP ifconfig eth0 202.119.20.59 設置網(wǎng)關(guān) route add default gw 202.119.20.1,結(jié)果電腦重啟后就變了,成類似192.168.1.33IP,怎么讓它不變?。?/span>

/etc/sysconfig/network-scripts/ifcfg-eth0 里面配置網(wǎng)卡的地址 IPADDR=XXX.XXX.XXX.XXX /etc/sysconifg/network 里面設置網(wǎng)關(guān)的地址 GATEWAY=XXX.XXX.XXX.XXX

 

 

 

二、配置Linux DHCP

linux中,dhcpd將客戶的租用信息保存在/var/lib/dhcp/dhcpd.leases文件中,該文件不斷被更新,從這里面可以查到IP地址分配的情況。

dhcpd的配置文件是:/etc/dhcpd.conf 
默認的情況下,這個文件不存在,不過當dhcp-3.0pl1-23.i386.rpm(應該是在安裝盤的第2張上。。。^_^)安裝以后,提供了一個配置文件摸板
關(guān)于模板的內(nèi)容,可以使用CAT命令查看。
#cat /usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample
DHCP
服務器的配置,我們得通過復制配置文件模板來進行修改
下面是操作的一個例子:
#cd /etc
#cp /usr/share/doc/dhcp-3.0pl1/dhcpd.conf.sample dhcp.conf
 //復制配置文件模板
#vi /etc/dhcpd.conf
 //使用vi修改/etc/dhcpd.conf
#cat /etc/dhcpd.conf
 //顯示配置文件內(nèi)容
ddns-update-style interim;
ignore client-updates;
subnet 192.168.1.0 netmask 255.255.255.0 {
   
//
設置子網(wǎng)聲明
option
routers
       
192.168.1.254;
  //DHCP用戶設置默認網(wǎng)關(guān)
option
broadcast-address
    
192.168.1.255;
  //為客戶設置廣播地址
option
subnet-mask
    
255.255.255.0;
  //為客戶設置子網(wǎng)淹碼
option
domain-name
    "hackbase.com"; 
//
為客戶設置DNS
option
domain-name-servers
    192.168.1.1,192.168.1.2;
//
為客戶設置DNS服務器地址
option
time-offset
      
-18000;
 
range dynamic-bootp 192.168.1.10
192.168.1.100;
 //設置地址池
default-lease-time 21600;
 
//
為客戶設置默認地址租期
max-lease-time 43200;
 
//
為客戶設置最大地址租期
group{
host greenpig {
 //設置主機聲明
hardware ethernet 12:34:56:78:AB:CD;
 //指定客戶的MAC地址
fixed-address 192.168.1.7;
 //對指定的MAC地址分配固定IP地址
}
啟動DHCP服務器:
#service dhcpd start
配制DHCP客戶:
LINUX
下,在圖形界面中選擇自動獲取IP地址設置使用DHCP即可,若配置WIN客戶選擇INTERNET協(xié)議(TCP/IP)單機屬性,選擇自動獲得IP地址。

 

三、1、在紅旗4.0中設置雙網(wǎng)卡共享上網(wǎng)?

在紅旗linnx里如何實現(xiàn)sygateNAT功能?
解決方法:
(1)
/etc/sysctl.conf文件中的
net.ipv4.ip_forward=0,
改成
net.ipv4.ip_forward=1
。
*
這一步也可以在控制面板->網(wǎng)絡->高級網(wǎng)關(guān)設置,選取允許啟用IP轉(zhuǎn)發(fā)功能來完成。

可以通過cat /proc/sys/net/ipv4/ip_forward 命令查看
返回1就對了。

(2)
在終端提示符下執(zhí)行如下命令
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
*
如果沒有找到iptables服務,是在安裝linux沒選擇完全安裝,只要把iptables裝上就行了。它的RPM包就在紅旗linux光盤的\redflag\RPMS目錄里。:iptable-1.2.7.a-3.i386.rpm.
(3)
在終端提示符下執(zhí)行如下命令:
iptables-save > /etc/sysconfig/iptables
*
eth1是接入Internet的設備。(eth0,eth1,ppp0)根據(jù)你的情況設定。
(4)
在終端提示符下執(zhí)行如下命令
ntsysv
并在選定iptables服務,重啟linux。
(5)
把客戶機的網(wǎng)關(guān)設成本機的IP,DNS服務器設置成當?shù)氐?/span>DNS服務器IP。
*
如果不知道DNS服務器的IP地址,可以在WindowsDOS窗口里執(zhí)行 ipconfig/all你就可以看到 2DNS服務器的IP。

 

2、本文介紹如何在linux系統(tǒng)上使用iptables建立NAT, 我們可以把它做為一個網(wǎng)關(guān), 從而局域網(wǎng)的多臺機器可以使用一個公開的ip地址連接外網(wǎng). 我使用的方法是重寫通過NAT系統(tǒng)IP包的源地址和目標地址.

準備:
CPU: PII
或更高
系統(tǒng): 任何Linux版本
軟件: Iptables
網(wǎng)卡: 2

想法:
用你的廣域網(wǎng)IP替換xx.xx.xx.xx
用你的局域網(wǎng)IP替換yy.yy.yy.yy
(
比如: 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8)

WAN = eth0 有一個外網(wǎng)ip地址 xx.xx.xx.xx
LAN = eth1
有一個內(nèi)網(wǎng)ip地址 yy.yy.yy.yy/ 255.255.0.0

過程:
步驟#1. 添加2塊網(wǎng)卡到你的Linux系統(tǒng).
步驟#2. 確認你的網(wǎng)卡是否正確安裝:

ls /etc/sysconfig/network-scripts/ifcfg-eth* | wc -l
結(jié)果輸出應為”2″

步驟#3. 配置eth0, 使用外網(wǎng)ip地址(基于ip的外部網(wǎng)絡或互連網(wǎng))

cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
BOOTPROTO=none
BROADCAST=xx.xx.xx.255 #
附加選項
HWADDR=00:50:BA:88:72:D4 #
附加選項
IPADDR=xx.xx.xx.xx
NETMASK=255.255.255.0 # ISP
提供
NETWORK=xx.xx.xx.0 #
可選
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
GATEWAY=xx.xx.xx.1 # ISP
提供

步驟#4. 配置eth1, 使用局域網(wǎng)地址(內(nèi)部網(wǎng)絡)

cat /etc/sysconfig/network-scripts/ifcfg-eth1

BOOTPROTO=none
PEERDNS=yes
HWADDR=00:50:8B:CF:9C:05 # Optional
TYPE=Ethernet
IPV6INIT=no
DEVICE=eth1
NETMASK=255.255.0.0 # Specify based on your requirement
BROADCAST=”"
IPADDR=192.168.2.1 # Gateway of the LAN
NETWORK=192.168.0.0 # Optional
USERCTL=no
ONBOOT=yes

步驟#5. 配置主機 (可選)
cat /etc/hosts
127.0.0.1 nat localhost.localdomain localhost

步驟#6. 配置網(wǎng)關(guān)
cat /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=nat
GATEWAY=xx.xx.xx.1 #
互連網(wǎng)或外網(wǎng)網(wǎng)關(guān), ISP提供

步驟#6. 配置DNS
cat /etc/resolv.conf

nameserver 203.145.184.13 # DNS服務器, ISP提供
nameserver 202.56.250.5 #
第二個DNS服務器, ISP提供

步驟#8. 使用IP Tables配置NAT
#
刪除刷新缺省表如”filter”, 其它表如”nat”需清楚標明:
iptables –flush #
刷新所有過濾規(guī)則和NAT.
iptables –table nat –flush
iptables –delete-chain

#刪除所有非缺省的規(guī)則鏈和nat
iptables –table nat –delete-chain

#建立IP轉(zhuǎn)發(fā)和偽裝
iptables –table nat –append POSTROUTING –out-interface eth0 -j MASQUERADE
iptables –append FORWARD –in-interface eth1 -j ACCEPT

#打開內(nèi)核的包轉(zhuǎn)發(fā)功能
echo 1 > /proc/sys/net/ipv4/ip_forward

#應用iptables配置
service iptables restart

步驟#9. 測試
#
用一臺客戶機ping網(wǎng)關(guān)
ping 192.168.2.1

然后測試能否訪問外網(wǎng):
ping google.com

內(nèi)部網(wǎng)絡客戶端的配置
局部辦公網(wǎng)絡的所有計算機把網(wǎng)關(guān)設置為linux(系統(tǒng))網(wǎng)關(guān)的內(nèi)網(wǎng)ip地址.
DNS
設置為ISP提供的DNS.
Windows’95,2000,XP
上的配置:

選擇開始” -> “設置” -> “控制面版
選擇網(wǎng)絡圖標
選擇配置”, 然后雙擊以太網(wǎng)絡的”TCP/IP”部分(不是TCP/IP -> 撥號適配器)
然后輸入:
網(wǎng)關(guān)”: 使用linux系統(tǒng)的內(nèi)網(wǎng)ip地址.(192.168.2.1)
“DNS
配置”: 使用IPS提供的DNS地址. (通常使用互連網(wǎng)地址)
“IP
地址”: ip地址(192.168.XXX.XXX - 靜態(tài))和掩碼(小的本地辦公網(wǎng)絡通常使用255.255.0.0).

 

 

四、netfilter/iptables 是與最新的 2.4.x 版本 Linux 內(nèi)核集成的 IP 信息包過濾系統(tǒng)。如果 Linux 系統(tǒng)連接到因特網(wǎng)或 LAN服務器或連接 LAN 和因特網(wǎng)的代理服務器,則該系統(tǒng)有利于在 Linux 系統(tǒng)上更好地控制 IP 信息包過濾和防火墻配置。 本文將介紹 netfilter/iptables 系統(tǒng),它是如何工作的、它的優(yōu)點、以及如何使用它來配置 Linux 系統(tǒng)上防火墻以過濾 IP 信息包。
注:讀者若具備 Linux OS 的中級水平知識,以及配置 Linux 內(nèi)核的經(jīng)驗,將有助于對本文的理解。

Linux 
安全性和 netfilter/iptables

Linux 
因其健壯性、可靠性、靈活性以及好象無限范圍的可定制性而在 IT 業(yè)界變得非常受歡迎。Linux 具有許多內(nèi)置的能力,開發(fā)人員可以根據(jù)自己的需要定制其工具、行為和外觀,而無需昂貴的第三方工具。如果 Linux 系統(tǒng)連接到因特網(wǎng)或 LAN、服務器或連接 LAN 和因特網(wǎng)的代理服務器,所要用到的一種內(nèi)置能力就是針對網(wǎng)絡上 Linux 系統(tǒng)的防火墻配置。可以在netfilter/iptables IP 信息包過濾系統(tǒng)(它集成在 2.4.x 版本的 Linux 內(nèi)核中)的幫助下運用這種能力。

在如 ipfwadm  ipchains 這樣的 Linux 信息包過濾解決方案中,netfilter/iptables IP 信息包過濾系統(tǒng)是最新的解決方案,而且也是第一個集成到 Linux 內(nèi)核的解決方案。對于 Linux 系統(tǒng)管理員、網(wǎng)絡管理員以及家庭用戶(他們想要根據(jù)自己特定的需求來配置防火墻、在防火墻解決方案上節(jié)省費用和對 IP 信息包過濾具有完全控制權(quán))來說,netfilter/iptables 系統(tǒng)十分理想。

理解防火墻配置和信息包過濾

對于連接到網(wǎng)絡上的 Linux 系統(tǒng)來說,防火墻是必不可少的防御機制,它只允許合法的網(wǎng)絡流量進出系統(tǒng),而禁止其它任何網(wǎng)絡流量。為了確定網(wǎng)絡流量是否合法,防火墻依靠它所包含的由網(wǎng)絡或系統(tǒng)管理員預定義的一組規(guī)則。這些規(guī)則告訴防火墻某個流量是否合法以及對于來自某個源、至某個目的地或具有某種協(xié)議類型的網(wǎng)絡流量要做些什么。術(shù)語配置防火墻是指添加、修改和除去這些規(guī)則。稍后,我將詳細討論這些規(guī)則。

網(wǎng)絡流量由 IP 信息包(或,簡稱信息包)— 以流的形式從源系統(tǒng)傳輸?shù)侥康牡叵到y(tǒng)的一些小塊數(shù)據(jù) — 組成。這些信息包有頭,即在每個包前面所附帶的一些數(shù)據(jù)位,它們包含有關(guān)信息包的源、目的地和協(xié)議類型的信息。防火墻根據(jù)一組規(guī)則檢查這些頭,來確定接受哪個信息包以及拒絕哪個信息包。我們將該過程稱為信息包過濾。

為什么要配置自己的防火墻?

出于各種因素和原因,需要根據(jù)特定需求來配置防火墻?;蛟S,最重要的原因是安全性。
管理員可能想讓他們的防火墻能夠阻止未經(jīng)授權(quán)的源訪問其 Linux 系統(tǒng),例如通過 Telnet。他們可能還想限制進出其系統(tǒng)的網(wǎng)絡流量,以便只有來自可信源的流量才可以進入其系統(tǒng),以及只有授權(quán)的流量才可以出去。家庭用戶可能通過允許所有的出站信息包都可以通過,將防火墻配置成較低的安全性級別。

另一個背后的原因是,通過阻塞來自類似廣告站點之類的源的多余流量,可以節(jié)省帶寬。
因而,可以定制防火墻配置來滿足任何特定需求和任何安全性級別需求。這就是 netfilter/iptables 系統(tǒng)的用武之處。

netfilter/iptables 
系統(tǒng)是如何工作的?

netfilter/iptables IP 
信息包過濾系統(tǒng)是一種功能強大的工具,可用于添加、編輯和除去規(guī)則,這些規(guī)則是在做信息包過濾決策時,防火墻所遵循和組成的規(guī)則。這些規(guī)則存儲在專用的信息包過濾表中,而這些表集成在 Linux 內(nèi)核中。在信息包過濾表中,則被分組放在我們所謂的鏈(chain)中。我馬上會詳細討論這些規(guī)則以及如何建立這些規(guī)則并將它們分組在鏈中。

雖然 netfilter/iptables IP 信息包過濾系統(tǒng)被稱為單個實體,但它實際上由兩個組件 netfilter  iptables 組成。

netfilter 
組件也稱為內(nèi)核空間(kernelspace),是內(nèi)核的一部分,由一些信息包過濾表組成,這些表包含內(nèi)核用來控制信息包過濾處理的規(guī)則集。

iptables 
組件是一種工具,也稱為用戶空間(userspace),它使插入、修改和除去信息包過濾表中的規(guī)則變得容易。除非您正在使用 Red Hat Linux 7.1 或更高版本,否則需要從 netfilter.org 下載該工具并安裝使用它。

通過使用用戶空間,可以構(gòu)建自己的定制規(guī)則,這些規(guī)則存儲在內(nèi)核空間的信息包過濾表中。這些規(guī)則具有目標,它們告訴內(nèi)核對來自某些源、前往某些目的地或具有某些協(xié)議類型的信息包做些什么。如果某個信息包與規(guī)則匹配,那么使用目標 ACCEPT 允許該信息包通過。還可以使用目標 DROP  REJECT 來阻塞并殺死信息包。對于可對信息包執(zhí)行的其它操作,還有許多其它目標。

根據(jù)規(guī)則所處理的信息包的類型,可以將規(guī)則分組在鏈中。處理入站信息包的規(guī)則被添加到 INPUT 鏈中。處理出站信息包的規(guī)則被添加到 OUTPUT 鏈中。處理正在轉(zhuǎn)發(fā)的信息包的規(guī)則被添加到 FORWARD 鏈中。這三個鏈是基本信息包過濾表中內(nèi)置的缺省主鏈。另外,還有其它許多可用的鏈的類型(如 PREROUTING  POSTROUTING),以及提供用戶定義的鏈。每個鏈都可以有一個策略,它
缺省目標,也就是要執(zhí)行的缺省操作,當信息包與鏈中的任何規(guī)則都不匹配時,執(zhí)行此操作。

建立規(guī)則并將鏈放在適當?shù)奈恢弥?,就可以開始進行真正的信息包過濾工作了。這時內(nèi)核空間從用戶空間接管工作。當信息包到達防火墻時,內(nèi)核先檢查信息包的頭信息,尤其是信息包的目的地。我們將這個過程稱為路由。

如果信息包源自外界并前往系統(tǒng),而且防火墻是打開的,那么內(nèi)核將它傳遞到內(nèi)核空間信息包過濾表的 INPUT 鏈。如果信息包源自系統(tǒng)內(nèi)部或系統(tǒng)所連接的內(nèi)部網(wǎng)上的其它源,并且此信息包要前往另一個外部系統(tǒng),那么信息包被傳遞到 OUTPUT 鏈。類似的,源自外部系統(tǒng)并前往外部系統(tǒng)的信息包被傳遞到 FORWARD 鏈。

接下來,將信息包的頭信息與它所傳遞到的鏈中的每條規(guī)則進行比較,看它是否與某條規(guī)則完全匹配。如果信息包與某條規(guī)則匹配,那么內(nèi)核就對該信息包執(zhí)行由該規(guī)則的目標指定的操作。但是,如果信息包與這條規(guī)則不匹配,那么它將與鏈中的下一條規(guī)則進行比較。最后,如果信息包與鏈中的任何規(guī)則都不匹配,那么內(nèi)核將參考該鏈的策略來決定如何處理該信息包。理想的策略應該告訴內(nèi)核 DROP 該信息包。

建立規(guī)則和鏈

通過向防火墻提供有關(guān)對來自某個源、到某個目的地或具有特定協(xié)議類型的信息包要做些什么的指令,規(guī)則控制信息包的過濾。通過使用 netfilter/iptables 系統(tǒng)提供的特殊命令 iptables,建立這些規(guī)則,并將其添加到內(nèi)核空間的特定信息包過濾表內(nèi)的鏈中。關(guān)于添加/除去/編輯規(guī)則的命令的一般語法如下:

$ iptables [-t table] command [match] [target]

表(table
[-t table] 
選項允許使用標準表之外的任何表。表是包含僅處理特定類型信息包的規(guī)則和鏈的信息包過濾表。有三種可用的表選項:filter、nat  mangle。該選項不是必需的,如果未指定,則 filter 用作缺省表。

filter 
表用于一般的信息包過濾,它包含 INPUT、OUTPUT  FORWARD 鏈。nat 表用于要轉(zhuǎn)發(fā)的信息包,它包含 PREROUTING、OUTPUT  POSTROUTING 鏈。如果信息包及其頭內(nèi)進行了任何更改,則使用 mangle 表。該表包含一些規(guī)則來標記用于高級路由的信息包,該表包含 PREROUTING  OUTPUT 鏈。

注:PREROUTING 鏈由指定信息包一到達防火墻就改變它們的規(guī)則所組成,而 POSTROUTING 鏈由指定正當信息包打算離開防火墻就改變它們的規(guī)則所組成。

命令(command
上面這條命令中具有強制性的 command 部分是 iptables 命令的最重要部分。它告訴 iptables 命令要做什么,例如,插入規(guī)則、將規(guī)則添加到鏈的末尾或刪除規(guī)則。以下是最常用的一些命令:

-A 
 --append:該命令將一條規(guī)則附加到鏈的末尾。
示例:
$ iptables -A INPUT -s 205.168.0.1 -j ACCEPT

該示例命令將一條規(guī)則附加到 INPUT 鏈的末尾,確定來自源地址 205.168.0.1 的信息包可以 ACCEPT。


-D 
 --delete:通過用 -D 指定要匹配的規(guī)則或者指定規(guī)則在鏈中的位置編號,該命令從鏈中刪除該規(guī)則。下面的示例顯示了這兩種方法。
示例:
$ iptables -D INPUT --dport 80 -j DROP
$ iptables -D OUTPUT 3

第一條命令從 INPUT 鏈刪除規(guī)則,它指定 DROP 前往端口 80 的信息包。第二條命令只是從 OUTPUT 鏈刪除編號為 3 的規(guī)則。


-P 
 --policy:該命令設置鏈的缺省目標,即策略。所有與鏈中任何規(guī)則都不匹配的信息包都將被強制使用此鏈的策略。
示例:
$ iptables -P INPUT DROP

該命令將 INPUT 鏈的缺省目標指定為 DROP。這意味著,將丟棄所有與 INPUT 鏈中任何規(guī)則都不匹配的信息包。


-N 
 --new-chain:用命令中所指定的名稱創(chuàng)建一個新鏈。
示例:
$ iptables -N allowed-chain

-F 
 --flush:如果指定鏈名,該命令刪除鏈中的所有規(guī)則,如果未指定鏈名,該命令刪除所有鏈中的所有規(guī)則。此參數(shù)用于快速清除。
示例:
$ iptables -F FORWARD
$ iptables -F

-L 
 --list:列出指定鏈中的所有規(guī)則。
示例:
$ iptables -L allowed-chain
$ iptables -L RH-Firewall-1-INPUT

匹配(match
iptables 
命令的可選 match 部分指定信息包與規(guī)則匹配所應具有的特征(如源和目的地地址、協(xié)議等)。匹配分為兩大類:通用匹配和特定于協(xié)議的匹配。這里,我將研究可用于采用任何協(xié)議的信息包的通用匹配。下面是一些重要的且常用的通用匹配及其示例和說明:

-p 
 --protocol:該通用協(xié)議匹配用于檢查某些特定協(xié)議。協(xié)議示例有 TCPUDP、ICMP、用逗號分隔的任何這三種協(xié)議的組合列表以及 ALL(用于所有協(xié)議)。ALL 是缺省匹配??梢允褂?span> ! 
符號,它表示不與該項匹配。
示例:
$ iptables -A INPUT -p TCP, UDP
$ iptables -A INPUT -p ! ICMP

在上述示例中,這兩條命令都執(zhí)行同一任務 — 它們指定所有 TCP  UDP 信息包都將與該規(guī)則匹配。通過指定 ! ICMP,我們打算允許所有其它協(xié)議(在這種情況下是 TCP  UDP),而將 ICMP 排除在外。


-s 
 --source:該源匹配用于根據(jù)信息包的源 IP 地址來與它們匹配。該匹配還允許對某一范圍內(nèi)的 IP 地址進行匹配,可以使用 ! 符號,表示不與該項匹配。缺省源匹配與所有 IP 地址匹配。
示例:
$ iptables -A OUTPUT -s 192.168.1.1
$ iptables -A OUTPUT -s 192.168.0.0/24
$ iptables -A OUTPUT -s ! 203.16.1.89

第二條命令指定該規(guī)則與所有來自 192.168.0.0  192.168.0.24  IP 地址范圍的信息包匹配。第三條命令指定該規(guī)則將與來自源地址 203.16.1.89 外的任何信息包匹配。


-d 
 --destination:該目的地匹配用于根據(jù)信息包的目的地 IP 地址來與它們匹配。該匹配還允許對某一范圍內(nèi) IP 地址進行匹配,可以使用 ! 符號,表示不與該項匹配。
示例:
$ iptables -A INPUT -d 192.168.1.1
$ iptables -A INPUT -d 192.168.0.0/24
$ iptables -A OUTPUT -d ! 203.16.1.89

目標(target
我們已經(jīng)知道,目標是由規(guī)則指定的操作,對與那些規(guī)則匹配的信息包執(zhí)行這些操作。除了允許用戶定義的目標之外,還有許多可選的目標選項。下面是常用的一些目標及其示例和說明:

ACCEPT
:當信息包與具有 ACCEPT 目標的規(guī)則完全匹配時,會被接受(允許它前往目的地),并且它將停止遍歷鏈(雖然該信息包可能遍歷另一個表中的其它鏈,并且有可能在那里被丟棄)。該目標被指定為 -j ACCEPT

DROP
:當信息包與具有 DROP 目標的規(guī)則完全匹配時,會阻塞該信息包,并且不對它做進一步處理。該目標被指定為 -j DROP。

REJECT
:該目標的工作方式與 DROP 目標相同,但它比 DROP 好。和 DROP 不同,REJECT 不會在服務器和客戶機上留下死套接字(socket)。另外,REJECT 將錯誤消息發(fā)回給信息包的發(fā)送方。該目標被指定為 -j REJECT。
示例:
$ iptables -A FORWARD -p TCP --dport 22 -j REJECT

RETURN
:在規(guī)則中設置的 RETURN 目標讓與該規(guī)則匹配的信息包停止遍歷包含該規(guī)則的鏈。如果鏈是如 INPUT 之類的主鏈,則使用該鏈的缺省策略處理信息包。它被指定為 -jump RETURN
示例:
$ iptables -A FORWARD -d 203.16.1.89 -jump RETURN

還有許多用于建立高級規(guī)則的其它目標,如 LOG、REDIRECT、MARK、MIRROR  MASQUERADE 等。

保存規(guī)則
現(xiàn)在,您已經(jīng)學習了如何建立基本的規(guī)則和鏈以及如何從信息包過濾表中添加或刪除它們。但是,您應該記?。河蒙鲜龇椒ㄋ⒌囊?guī)則會被保存到內(nèi)核中,當重新引導系統(tǒng)時,會丟失這些規(guī)則。所以,如果您將沒有錯誤的且有效的規(guī)則集添加到信息包過濾表,同時希望在重新引導之后再次使用這些規(guī)則,那么必須將該規(guī)則集保存在文件中。可以使用 iptables-save 命令來做到這一點:

$ iptables-save > iptables-script

現(xiàn)在,信息包過濾表中的所有規(guī)則都被保存在文件 iptables-script 中。無論何時再次引導系統(tǒng),都可以使用 iptables-restore命令將規(guī)則集從該腳本文件恢復到信息包過濾表,如下所示:

$ iptables-restore iptables-script

如果您愿意在每次引導系統(tǒng)時自動恢復該規(guī)則集,則可以將上面指定的這條命令放到任何一個初始化 shell 腳本中。

pizz注】需要注意的是,在 RedHat 9 和更高版本,我們可以使用命令 find /etc -name "iptable*" 找到默認的配置文件(/etc/iptables-config /etc/iptables)及啟動腳本(/etc/iptables.init.d ),不過RedHat注明不建議用戶自行修改該文件。


netfilter/iptables 
系統(tǒng)的優(yōu)點

netfilter/iptables 
的最大優(yōu)點是它可以配置有狀態(tài)的防火墻,這是 ipfwadm  ipchains 等以前的工具都無法提供的一種重要功能。有狀態(tài)的防火墻能夠指定并記住為發(fā)送或接收信息包所建立的連接的狀態(tài)。防火墻可以從信息包的連接跟蹤狀態(tài)獲得該信息,在決定新的信息包過濾時,防火墻所使用的這些狀態(tài)信息可以增加其效率和速度。這里有四種有效狀態(tài),名稱分別為 ESTABLISHED、INVALID、NEW  RELATED

狀態(tài) ESTABLISHED 指出該信息包屬于已建立的連接,該連接一直用于發(fā)送和接收信息包并且完全有效。INVALID 狀態(tài)指出該信息包與任何已知的流或連接都不相關(guān)聯(lián),它可能包含錯誤的數(shù)據(jù)或頭。狀態(tài) NEW 意味著該信息包已經(jīng)或?qū)有碌倪B接,或者它與尚未用于發(fā)送和接收信息包的連接相關(guān)聯(lián)。最后,RELATED 表示該信息包正在啟動新連接,以及它與已建立的連接相關(guān)聯(lián)。

netfilter/iptables 
的另一個重要優(yōu)點是,它使用戶可以完全控制防火墻配置和信息包過濾。您可以定制自己的規(guī)則來滿足您的特定需求,從而只允許您想要的網(wǎng)絡流量進入系統(tǒng)。

另外,netfilter/iptables 是免費的,這對于那些想要節(jié)省費用的人來說十分理想,它可以代替昂貴的防火墻解決方案。

最新的 Linux 內(nèi)核 2.4.x 具有 netfilter/iptables 系統(tǒng)這種內(nèi)置的 IP 信息包過濾工具,它使配置防火墻和信息包過濾變得便宜且方便。netfilter/iptables 系統(tǒng)使其用戶可以完全控制防火墻配置和信息包過濾。它允許為防火墻建立可定制化的規(guī)則來控制信息包過濾。它還允許配置有狀態(tài)的防火墻。




【附錄】
 netfilter/iptables 
系統(tǒng)的安裝

因為 netfilter/iptables  netfilter 組件是與內(nèi)核 2.4.x 集成在一起的,所以只需要下載并安裝 iptables 用戶空間工
。

需求

下面是安裝 netfilter/iptables 系統(tǒng)的需求:
硬件:要使用 netfilter/iptables,需要有一個運行 Linux OS 并連接到因特網(wǎng)、LAN  WAN 的系統(tǒng)。
軟件:帶有內(nèi)核 2.4 或更高版本的任何版本的 Linux OS??梢詮?span> http://www.kernel.org 
下載最新版本的內(nèi)核。還需要從http://www.netfilter.org 下載 iptables 這個用戶空間工具,因為這個工具不是內(nèi)核的一部分。但對于 RedHat Linux 版本7.1 或更高版本,不需要下載此工具,因為在版本 7.1 或更高版本中,標準安裝中已經(jīng)包含了此工具。
用戶:至少對 Linux OS 有中等水平的了解,以及具備配置 Linux 內(nèi)核的經(jīng)驗。

安裝前的準備

在開始安裝 iptables 用戶空間工具之前,需要對系統(tǒng)做某些修改。首先,需要使用 make config 命令來配置內(nèi)核的選項。在配置期間,必須通過將 CONFIG_NETFILTER  CONFIG_IP_NF_IPTABLES 選項設置為 Y 來打開它們,因為這是使netfilter/iptables 工作所必需的。下面是可能要打開的其它選項:

CONFIG_PACKET
:如果要使應用程序和程序直接使用某些網(wǎng)絡設備,那么這個選項是有用的。
CONFIG_IP_NF_MATCH_STATE
:如果要配置有狀態(tài)的防火墻,那么這個選項非常重要而且很有用。這類防火墻會記得先前關(guān)于信息包過濾所做的決定,并根據(jù)它們做出新的決定。我將在 netfilter/iptables 系統(tǒng)的優(yōu)點一節(jié)中進一步討論這方面的問題。
CONFIG_IP_NF_FILTER
:這個選項提供一個基本的信息包過濾框架。如果打開這個選項,則會將一個基本過濾表(帶有內(nèi)置的INPUT、FORWARD  OUTPUT 鏈)添加到內(nèi)核空間。
CONFIG_IP_NF_TARGET_REJECT
:這個選項允許指定:應該發(fā)送 ICMP 錯誤消息來響應已被 DROP 掉的入站信息包,而不是簡單地殺死它們。
現(xiàn)在,可以準備安裝這個用戶空間工具了。

安裝用戶空間工具

在下載 iptables 用戶空間工具的源代碼(它類似于 iptables-1.2.6a.tar.bz2)之后,可以開始安裝。您需要以 root 身份登錄來執(zhí)行安裝。清單 1 給出了一個示例,它指出了安裝該工具所需的命令、其必要的次序及其說明。

清單 1. 用戶空間工具安裝的示例
First, unpack the tool package into a directory:

# bzip2 -d iptables-1.2.6a.tar.bz2
# tar -xvf iptables-1.2.6a.tar

This will unpack the tool source into a directory named iptables-1.2.6a.
Now change to the iptables-1.2.6a directory:

# cd iptables-1.2.6a

The INSTALL file in this directory contains a lot of useful information
on compiling and installing this tool.
Now compile the userspace tool using the following command:

# make KERNEL_DIR=/usr/src/linux/

Here the KERNEL_DIR=/usr/src/linux/ specifies the path to the kernel's
directory. If the directory of kernel happens to be different on some
systems, the appropriate directory path should be substituted for
/usr/src/linux.
Now install the source binaries using the following command:

# make install KERNEL_DIR=/usr/src/linux/

Now the installation is complete.

注:如果您有 RedHat Linux 版本 7.1 或更高版本,就不需要執(zhí)行這里說明的前兩個步驟。正如我們所知道的,該 Linux 分發(fā)(distribution)的標準安裝中包含了 iptables 用戶空間工具。但在缺省情況下,這個工具是關(guān)閉的。為了使該工具運行,需執(zhí)行以下步驟(清單 2):

清單 2.  RedHat 7.1 系統(tǒng)上設置用戶空間工具的示例
First you'll have to turn off the old ipchains module (predecessor of
iptables) available in this OS package.
This can be done using the following command:

# chkconfig --level 0123456 ipchains off

Next, to completely stop the ipchains module from running, so that it
doesn't conflict with the iptables tool, you will have to stop the ipchains
service using the following command:

# service ipchains stop

Now if you don't want to keep this old ipchains module on your system,
uninstall it using the following command:

# rpm -e ipchains

Now you can turn on the iptables userspace tool with the following command:

# chkconfig --level 235 iptables on

Finally, you'll have to activate the iptables service to make the userspace
tool work by using this command:

# service iptables start

Now the userspace tool is ready to work on a RedHat 7.1 or higher system.

現(xiàn)在,一切都已妥當,并且 netfilter/iptables 系統(tǒng)應該正在運行。

全部回復(3)
正序查看
倒序查看
w5244338
LV.9
2
2010-10-16 11:59
完全看不懂!
0
回復
qinzutaim
LV.11
3
2010-10-16 13:35
不明白。
0
回復
paloalto
LV.6
4
2010-10-23 17:27
你是做什么的啊
0
回復
發(fā)