亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標題: 在sco5.05上實現(xiàn)ipf [打印本頁]

作者: sdccf    時間: 2008-04-02 19:39
標題: 在sco5.05上實現(xiàn)ipf

作者:marple_feng  出處:Unix愛好者家園unix-cd.com   
在網(wǎng)上找了很長時間,發(fā)現(xiàn)相關文件很少,但最后還是基本實現(xiàn)了這個功能:
下載地址:
ftp://ftp.sco.com/pub/TLS/tls709.tar.Z
ftp://ftp.sco.com/pub/TLS/tls709.ltr
第一步:按照tls709_ltr.htm文件進行安裝:
INSTALLATION:
- Place tls709.Z in /, then run the following commands:
# cd /
# uncompress tls709.Z
# tar xvf tls709
This will install the files:
   /tmp/ipfilter/README
   /tmp/ipfilter/ip/space.c
   /tmp/ipfilter/ip/Driver.o
   /tmp/ipfilter/tcp/Driver.o
   /tmp/ipfilter/tcp/space.c
   /tmp/ipfilter/ipl-bin/ipf
   /tmp/ipfilter/ipl-bin/ipfstat
   /tmp/ipfilter/ipl-bin/ipmon
   /tmp/ipfilter/ipl-bin/ipnat
   /tmp/ipfilter/ipl-driver/Driver.o
   /tmp/ipfilter/ipl-driver/Master
   /tmp/ipfilter/ipl-driver/Node
   /tmp/ipfilter/ipl-driver/System
   /tmp/ipfilter/ipl-man/ipf.4
   /tmp/ipfilter/ipl-man/ipf.5
   /tmp/ipfilter/ipl-man/ipf.8
   /tmp/ipfilter/ipl-man/ipfilter.5
   /tmp/ipfilter/ipl-man/ipfstat.8
   /tmp/ipfilter/ipl-man/ipftest.1
   /tmp/ipfilter/ipl-man/ipl.4
   /tmp/ipfilter/ipl-man/ipmon.8
   /tmp/ipfilter/ipl-man/ipnat.1
   /tmp/ipfilter/ipl-man/ipnat.4
   /tmp/ipfilter/ipl-man/ipnat.5
   /tmp/ipfilter/ipl-man/mkfilters.1
- Make backup copies of the 'ip' and 'tcp' driver files in /etc/conf/pack.d,
then copy the new versions from /tmp/ipfilter to their respective locations
under /etc/conf/pack.d:
ip/Driver.o
ip/space.c
tcp/Driver.o
tcp/space.c
- Add the IP Filter driver ("ipl"):
cd /tmp/ipfilter/ipl-driver
/etc/conf/bin/idinstall -k -a ipl
- Copy the IP Filter configuration binaries:
cd /tmp/ipfilter/ipl-bin
cp * /etc
- Relink the kernel by running '/etc/conf/cf.d/link_unix -y', and reboot
your system.
//以上都是照著做,沒什么特殊的。
See the man pages in /tmp/ipfilter/ipl-man for configuration information.
//這個偶技術太差,看不懂。
Also see the IP Filter home page:   

http://coombs.anu.edu.au/~avalon
And the IP Filter mailing list:     mailto://majordomo@coombs.anu.edu.au
    with "subscribe ipfilter" in the body
第二步:然后又在網(wǎng)上找到在freebsd上實現(xiàn)ipf的文章,又借鑒了一下:
原文:為設置和使用ipfilter (

http://www.sina.com.cn 2000
年1月20日 15:30 王波 )
  雖然ipfw/natd已經(jīng)是相當強大的網(wǎng)絡地址轉換及防火墻系統(tǒng),然而它還是有
一定的缺點存在。其中最重要的一個缺點是natd是使用守護進程的方法來進行地
址轉換,因為它沒有運行在內核中,而是通過divert socket 來和內核通信,這
種方式雖然比較靈活,但效率顯然要低一些。
  另外,natd的功能還不能滿足有些要求,natd能做靜態(tài)地址轉換和使用一個
偽裝地址為多個內部地址服務,但其不能從一個給定的地址池中,為內部地址自
動分配IP地址。畢竟natd是一個較早的網(wǎng)絡地址轉換工具,當前的發(fā)展已經(jīng)比較
遲緩。但是由于ipfw是FreeBSD系統(tǒng)的一部分,并且過濾和地址轉換是由不同的部
分來完成的,結構清晰,因此對于大部分情況都很適合,因此一般仍應使用ipfw
/natd。
  如果ipfw/natd不能滿足使用者的需要,能避免ipfw/natd缺點的另一個網(wǎng)絡
地址轉換和數(shù)據(jù)包過濾的工具是ipfilter。雖然FreeBSD是其支持的主要系統(tǒng),但
它其實是一個支持多平臺的獨立軟件,不僅能運行在FreeBSD上,也能運行在其他
多種Unix系統(tǒng)中。由于它被包括進FreeBSD基本系統(tǒng)中,因此在FreeBSD 下配置i
pfilter同樣也非常輕松。
由于ipfilter與ipfw同為在內核級對IP數(shù)據(jù)包進行處理的系統(tǒng),因此他們相
互沖突,不能同時并存在一個內核內,否則內核的TCP/IP功能就不能正常執(zhí)行。
為了使用ipfilter,就需要重新定制內核,刪除所有 IPFIREWALL的設置,而添加
IPFILTER的設置。
#options IPFIREWALL
#options IPDIVERT
options IPFILTER
options IPFILTER_LOG
  
  
  選項IPFILTER為支持IPFILTER的基本代碼,IPFILTER_LOG為支持IPFILTER的
統(tǒng)計記錄能力。需要增加這些選項,并注釋IPFIREWALL、IPDIVERT及其相關選項
。此后,就可以重新定制、安裝新內核。然而在重新啟動之前,還需要在rc.con
f中設置firewall_enable的值為NO,當系統(tǒng)內核不存在IPFIREALL功能又設置了f
irewall_enable的時候,啟動文件就會自動載入支持這個功能的可加載模塊ipfw
.ko,載入ipfw.ko之后的系統(tǒng)內核就等同于使用IPFIREWALL內核選項的系統(tǒng),與
ipfilter發(fā)生沖突。然而ipfilter仍然需要設置gateway_enable,以打開系統(tǒng)內
核的數(shù)據(jù)包轉發(fā)功能。
  使用新內核啟動系統(tǒng)之后,如果本地計算機的網(wǎng)絡功能正常,此時再使用ip
fw就會報告錯誤。這就能使用ipfilter 來設置包過濾和網(wǎng)絡地址轉換了。
設置地址轉換
  為了在ipfilter下設置網(wǎng)絡地址轉換,首先要創(chuàng)建一個地址轉換設置文件,
例如/etc/ipflter .nat。與ipfw/natd的相似,最基本的用法為使用一個外部地
址來轉換所有內部地址,此時必須進行端口轉換,因此ipfilter.nat中應該包含
的NAT規(guī)則為:
  map fxp1 192.168.3.0/24 -> 202.102.245.60/32 portmap tcp/udp 10000
:65000
  這個設置中,首先使用map關鍵字指明是進行地址轉換的設置,此后的fxp1為
連接外部網(wǎng)絡的網(wǎng)絡界面,在這個網(wǎng)絡界面上執(zhí)行數(shù)據(jù)包的IP地址和端口地址轉
換,第三個參數(shù)為進行轉換的內部地址的范圍,此后跟隨的一個-> 符號表示進行
地址轉換,第五個參數(shù)為要轉換為的外部地址,當指定子網(wǎng)掩碼長度為32時就表
示這只是一個主機而非子網(wǎng)范圍,后面portmap關鍵字對tcp/udp協(xié)議進行端口轉
換,其使用的映射端口范圍為在10000到65000之間,也可以對tcp或udp協(xié)議分別
指定轉換端口的范圍。
  如果使用者擁有的不僅是一個主機,而是一個具備多個合法IP地址的子網(wǎng),
這樣就能設置使用地址池,為內部向外連接的計算機動態(tài)分配合法的外部IP地址
,這樣的設置更為簡單,因為不需要指定portmap進行地址轉換。
  map fxp1 192.168.3.0/24 -> 202.102.245.0/26
  顯然內部計算機的數(shù)量顯然要多于系統(tǒng)擁有的合法地址的數(shù)量,上例中內部
地址最多254個,而合法的外部地址僅僅有62個,這樣如果向外連接的計算機一多
,必然出現(xiàn)地址資源用光的問題。因此動態(tài)分配IP一般和端口轉換結合起來,以
避免出現(xiàn)地址消耗完畢的問題。
  map規(guī)則是用于轉換外出數(shù)據(jù)包的源地址,使得被轉換后的地址好象是從外部
地址中發(fā)起的。而另一個規(guī)則rdr 用于轉換數(shù)據(jù)包中的目的地址,這樣就能使得
一個數(shù)據(jù)包被轉發(fā)到某個特定計算機上進行處理,這可用于構建端口映射關系。
  
  rdr fxp1 202.102.245.60 port ftp -> 192.168.3.2 port ftp
  上面的規(guī)則將指定ipfilter在fxp1網(wǎng)絡界面上將發(fā)送給202.102.245.60,端
口為ftp 的數(shù)據(jù)包,轉換為發(fā)送給內部地址192.168.3.2。
  rdr的另一個重要用途是可以用以構建透明的代理服務器,普通代理服務器都
需要在客戶機上進行設置,如果不進行設置,客戶機將直接訪問Internet上的計
算機而不通過代理服務器,然而防火墻可以將這些應用請求轉發(fā)給代理服務器,
完成代理工作。此時對外界發(fā)送請求是在內部網(wǎng)絡界面fxp0上發(fā)起的,因此也要
在這里進行地址轉換,而使用0.0.0.0/0 代表對所有目的地址,并且是80端口的
瀏覽請求都轉發(fā)到127.0.0.1上去,而127.0.0.1 必須運行代理服務器軟件,以提
供代理服務。
  rdr fxp0 0.0.0.0/0 port 80 -> 127.0.0.1 port 80
  雖然不是所有的應用代理服務都能使用透明代理的方法來減輕客戶設置的負
擔,但絕大多數(shù)代理完全可以使用這種方法,使得客戶不需要修改軟件設置,就
能利用代理服務器,而代理服務器具備大量的緩沖區(qū),能夠節(jié)約內部網(wǎng)絡的Inte
rnet 訪問流量并加速Internet訪問速度。
  因此,一個簡單的不支持透明代理服務器的設置文件ipnat.conf例子為:
map fxp1 192.168.3.0/24 -> 202.102.245.0/26 portmap tcp/udp 10000:6500
0
map fxp1 192.168.3.0/24 -> 202.102.245.0/26
rdr fxp1 202.102.245.60 port ftp -> 192.168.3.2 port ftp
  
  
  在這樣的設置下,tcp和udp在地址資源消耗完畢之后將進行端口轉換,而其
他協(xié)議,如icmp,將直接進行地址轉換而不必進行端口轉換。此后就可以將這個
轉換規(guī)則加入系統(tǒng)中,需要執(zhí)行ipnat命令:
# ipnat -C
# ipnat -f /etc/ipnat.conf
  
  
  當前使用-C參數(shù)用于清除現(xiàn)有的轉換規(guī)則,-f用于從配置文件中讀取轉換規(guī)
則。設置了轉換規(guī)則之后,就可以使用-l參數(shù)查看當前設置的轉換規(guī)則和已經(jīng)激
活的轉換關系。
# ipnat -l
List of active MAP/Redirect filters:
map fxp1 192.168.3.0/24  -> 202.102.245.0/26  portmap tcp/udp 10000:65
000
map fxp1 192.168.3.0/24  -> 202.102.245.0/26   
rdr fxp1 202.102.245.60/32 port 21 -> 192.168.3.2 port 21 tcp
List of active sessions:
RDR 192.168.3.2     21     202.102.245.60  21    [202.102.245.25
35635] 863
992 0 407
MAP 192.168.3.2     1024   202.102.245.60  10000 [202.102.245.25
9999] 8639
93 0 1f09
  
  
設置包過濾
  ipfilter也能很好的完成包過濾任務,它的過濾規(guī)則相當復雜。下面為一些
簡單的過濾設置例子,一般這些過濾規(guī)則可以保存在/etc/ipf.conf文件中。
block in log quick all with short
block in log quick all with ipopts
  
  
  block參數(shù)用于屏蔽符合過濾條件的數(shù)據(jù)包,in代表數(shù)據(jù)包的方向,標識從網(wǎng)
絡上或其他網(wǎng)絡界面上發(fā)送到某個網(wǎng)絡界面上的數(shù)據(jù)包,log用于指出該規(guī)則過濾
的數(shù)據(jù)包應被記錄下來,quick指示ipfilter進行快速過濾處理,符合這個規(guī)則的
數(shù)據(jù)包將立即丟棄,all with short標識不完整的IP數(shù)據(jù)包,數(shù)據(jù)包的長度太小
就沒有包含合法的源地址或目標地址,從而無法被ipfilter識別,all with ipo
pts標志本身帶有路由數(shù)據(jù)的IP數(shù)據(jù)包,這些IP數(shù)據(jù)包由于包含自己的路由信息,
因此可能會帶來網(wǎng)絡安全問題。
  這兩句設置用于過濾可能會帶來安全問題的短數(shù)據(jù)包或具備路由信息的數(shù)據(jù)
包。
pass in on fxp0 all
pass out on fxp0 all
pass in on lo0 all
pass out on lo0 all
  
  
  pass用于指定數(shù)據(jù)包可以通過,out與in相反,標識從網(wǎng)絡界面向網(wǎng)絡上或其
他網(wǎng)絡界面發(fā)送的數(shù)據(jù)包,而on fxp0或on lo0標識進行處理的網(wǎng)絡界面。這里的
設置允許內部網(wǎng)絡界面、loopback網(wǎng)絡界面可以自由發(fā)送和接收數(shù)據(jù)包。
block in log on fxp1 all
block out log on fxp1 all
  
  
  為了安全起見,除了明確指定可以發(fā)送和接收的數(shù)據(jù)包之外,屏蔽其余的外
部網(wǎng)絡界面進行數(shù)據(jù)發(fā)送和接收。
block in log quick on fxp1 from 10.0.0.0/8 to any
block in log quick on fxp1 from 192.168.0.0/16 to any
block in log quick on fxp1 from 172.16.0.0/12 to any
block in log quick on fxp1 from 127.0.0.0/8 to any
  
  
  上面的設置明確屏蔽具備內部網(wǎng)絡地址的數(shù)據(jù)包被轉發(fā)到外部網(wǎng)絡去,由于
ipfilter中地址轉換和包過濾是在同一個系統(tǒng)中完成的,因此不必擔心它們會發(fā)
生沖突問題。
pass out log on fxp1 proto icmp all keep state
pass out log on fxp1 proto tcp/udp from any to any keep state
  
  
  proto用于指定不同的協(xié)議,通?梢栽O置為tcp, udp和icmp。這兩行設置允
許TCP, UDP, ICMP協(xié)議的數(shù)據(jù)包可以向外發(fā)送出去,keep state用于標識建立TC
P連接之后的數(shù)據(jù)包,或者ICMP、UDP的回應數(shù)據(jù)包,以允許回應數(shù)據(jù)包能發(fā)送回
內部網(wǎng)絡。
pass in quick on fxp1 proto tcp from any to any port = ftp-data keep s
tate
pass in quick on fxp1 proto tcp from any port = ftp-data to any port >
1023 keep state
  
  
  ftp中將打開額外的端口以進行數(shù)據(jù)傳輸,這兩個設置允許對ftp數(shù)據(jù)端口的
數(shù)據(jù)包能夠進行轉發(fā)。
block return-rst in log on fxp1 proto tcp from any to any flags S/SA
block return-icmp(net-unr) in log on fxp1 proto udp from any to any
  
  
  對于其他tcp連接請求,防火墻回應一個RST數(shù)據(jù)包關閉連接,S/SA標識TCP數(shù)
據(jù)包的標志,S為Syn, A為Ack,而S/SA表示對Syn和Ack中的Syn標志進行檢查,
這類數(shù)據(jù)包是用于設定連接的數(shù)據(jù)包。對UDP請求,防火墻回應網(wǎng)絡不可達到的I
CMP包。
  上面的例子將屏蔽外部計算機發(fā)向網(wǎng)絡內部的數(shù)據(jù)包,但允許內部向外的發(fā)
起網(wǎng)絡訪問。如果要允許外部網(wǎng)絡對內的訪問,就必須增加其他pass in規(guī)則,以
使得過濾規(guī)則能適應更復雜的情況。為了使上面的設置生效,必須將過濾規(guī)則加
入到內核中去,這需要使用ipf命令。
# ipf -Fa
# ipf -f  /etc/ipf.conf
  
  
  首先使用-Fa標志清除所有的過濾規(guī)則,然后將ipf.conf中的設置加入系統(tǒng)中
。此后,可以使用ipfstat來檢查ipfilter進行過濾的各種統(tǒng)計信息。
# ipfstat
input packets: blocked 227 passed 116210 nomatch 68219 counted 0
output packets: blocked 0 passed 74586 nomatch 20316 counted 0
input packets logged: blocked 227 passed 24883
output packets logged: blocked 0 passed 17153
packets logged: input 0 output 0
log failures: input 25028 output 17139
fragment state(in): kept 0 lost 0
fragment state(out): kept 0 lost 0
packet state(in): kept 1 lost 0
packet state(out): kept 14 lost 8
ICMP replies: 160 TCP RSTs sent: 9
Result cache hits(in): 47523 (out): 53694
IN Pullups succeeded: 0 failed: 0
OUT Pullups succeeded: 0 failed: 0
Fastroute successes: 0 failures: 0
TCP cksum fails(in): 0 (out): 0
Packet log flags set: (0x10000000)
packets passed through filter
  
  
  雖然在規(guī)則中指定了log選項,但是缺省時候syslogd并不會記錄ipfilter發(fā)
送的信息。符合規(guī)則的數(shù)據(jù)記錄并沒有真正被發(fā)送到系統(tǒng)日志記錄中,必須使用
ipmon打開記錄功能。
# ipmon -s -n -x
  
  
  由于ipmon使用的是syslog的local0通道,缺省情況下local0通道并沒有打開
,因此只有很少的錯誤信息被發(fā)送到/var/log/messages文件中。為了打開local
0通道,還需要改動syslogd.conf,增加下面的設置,以記錄ipfilter的全部記錄
。
local0.* /var/log/ipfilter.log
  
  
  為了不讓ipfilter的記錄發(fā)送到/var/log/messages等其他日志文件中,可以
在/var/log/messags設置行中添加一個記錄local.none。
  此后,使用touch創(chuàng)建ipfilter.log文件,并重新啟動syslogd,就能在/var
/log/ipfilter.log中正確記錄過濾記錄了。當一切都設置完畢之后,就能將ipf
和ipnat這兩個設置命令放入系統(tǒng)啟動文件rc.local,以便每次系統(tǒng)自動啟動都能
執(zhí)行防火墻設置。
第三步:我斷章取意,在/etc 下新建了ipf.conf文件,
block in log quick all with short
block in log quick all with ipopts
block in log quick all with frag
block in log quick all with opt lsrr
block in log quick all with opt ssrr   //以上表示將不合格的數(shù)據(jù)攔截。
pass out on net1 all
pass in on net1 all         //表示net1網(wǎng)卡上的數(shù)據(jù)都可以通過
pass in quick on net1 from 192.168.1.0/24 to any
pass in quick on net0 proto tcp from any to any port = 80 flags S/SA keep state
pass in quick on net0 proto tcp from any to any port = 23 flags S/SA keep state         //表示只允許net1網(wǎng)卡80和23斷口的數(shù)據(jù)通過
block in quick on net0 all     //net1網(wǎng)卡上其他數(shù)據(jù)都攔截。
第四步:在/etc/rc2.d/目錄中創(chuàng)建 S99ipf文件,
ipf -F a
ipf -f /etc/ipf.conf
并執(zhí)行 /etc/S99ipf
第五步:用ipfstat命令查看
其他的nat,日志我都沒有裝。怎么樣,高手給點意見。


本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/31/showart_515546.html




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2