FreeBSD从零开始---安装后配置(三)
生活随笔
收集整理的這篇文章主要介紹了
FreeBSD从零开始---安装后配置(三)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
IPFW和IPF
一、IPFW IPFW意思可以理解為ip防火墻,主要作用是攔截設(shè)定規(guī)則外的ip包。你可以把這個理解為linux下的iptables,但是,ipfw要比iptables簡單易用。 freebsd系統(tǒng)默認是不安裝ipfw或者ipf的,你需要在內(nèi)核配置文件中啟用并重新編譯內(nèi)核。所以,你需要先運行sysinstall-->Distribution->src->選擇base,sys,然后安裝系統(tǒng)內(nèi)核源碼。 然后進行下列步驟 #cd /usr/src/sys/amd64/conf #cp GENERIC IPFW #vi IPFW在最下面加入以下內(nèi)容
options IPFIREWALL options IPFIREWALL_VERBOSE options IPFIREWALL_VERBOSE_LIMIT=10 options IPFIREWALL_DEFAULT_TO_ACCEPT 粗體字十分重要,如果你不加上的話,IPFW將默認關(guān)閉所有連結(jié),相當于物理隔離了,你將無法遠程登錄維護。 然后編譯內(nèi)核。注,你必須安裝源碼中的base,否則你將無法編譯任何東西 #cd /usr/src #make buildkernel KERNCONF=IPFW #make installkernel KERNCONF=IPFW 然后進入/etc #vi rc.conf 加入以下內(nèi)容
firewall_enable="YES" firewall_type="open" #open或規(guī)則文件絕對路徑 之后等待編譯并安裝完成。IPFW就啟用了,然后重啟就可以開始配置IPFW的規(guī)則了。你過去的kernel將放在/boot/kernel.old,如果你編譯后有任何啟動方面的問題,可以在剛開始啟動的選擇菜單選擇Load Prompt選項,然后打boot kernel.old啟動你原來沒有問題的內(nèi)核。 相比于iptables那種-m -d的選項方式的命令行,IPFW的配置更接近于人類的語言。其實目前有很多防火墻或者流控系統(tǒng)都是是基于FreeBSD的IPFW或IPF的,只是做了一個網(wǎng)頁的界面,便于不太熟悉命令行操作的人使用,比如panabit或者m0n0wall。不過我覺得,其實命令行更靈活和方便簡單。 ipfw分內(nèi)規(guī)則和外規(guī)則兩種,設(shè)定規(guī)則時,你需要給定規(guī)則編號,10000以內(nèi)為內(nèi)規(guī)則,以上是外規(guī)則。當然你也可以給10000以內(nèi)的,只要你自己看得懂就行,一條規(guī)則ID可以分配多個規(guī)則使用。關(guān)于規(guī)則ID,如果你學(xué)習(xí)過路由交換和cisco的acl,應(yīng)該是比較容易理解的。實際上Cisco的IOS就是基于BSD系統(tǒng)做嵌入式開發(fā)的。如果實在沒有概念,你可以把規(guī)則ID理解為key,規(guī)則內(nèi)容就是key對應(yīng)的value。 ipfw基本語法如下 ipfw 操作(添加|刪除) 規(guī)則編號 動作(允許|拒絕) 地址(All) from 地址(IP|ANY) to 地址(IP|ANY) 端口號 示例如下 #ipfw add 10001 deny all from any to 192.168.1.10?22 注意,請不要將這行代碼放入你的服務(wù)器里,否則你將無法訪問。 按照人類語言的描述就是,ipfw 添加 10001 拒絕 所有 從 任意地址 到 192.168.1.10的22端口。如果你需要去掉這條規(guī)則,就把add換成delete,ipfw的使用方法寫出來有好幾頁,可以去查看FreeBSD的中文手冊,BSD這點非常好,手冊非常詳細。 你也可以用ipfw做nat轉(zhuǎn)發(fā),示例如下 #ipfw nat 1 config redirect_addr 10.0.0.1 10.0.0.66 #ipfw nat 2 config redirect_port tcp 192.168.0.1:80 500 #ipfw nat 3 config redirect_proto udp 192.168.1.43 192.168.1.1 這樣來說,ipfw可以完成的事情非常多,并不比iptables差,并且由于tcp/ip協(xié)議是在bsd上先實現(xiàn)的,所以,效率更高。而且語法更簡單明了。也同樣可以對二層地址(MAC)進行訪問控制。 使用ipfw list查看當前規(guī)則 二、IPF IPFW和IPF是兩個完全不同的東西,但是功能和性能很接近,沒有誰好誰壞,看使用習(xí)慣了,但是同樣都需要重新編譯內(nèi)核才可以生效。前面幾步跟IPFW一樣。 #cp GENERIC IPF #vi IPF
插入以下內(nèi)容
options???????????????????????????????? IPFILTER options???????????????????????????????? IPFILTER_LOG 編輯/etc/rc.conf #vi /etc/rc.conf
加入
ipfilter_enable="YES" #打開ipfilter ipfilter_rules="/etc/ipf.rules" #ipfilter規(guī)則文件絕對路徑 gateway_enable="YES" #作為網(wǎng)關(guān)使用 ipnat_enable="YES" #nat轉(zhuǎn)發(fā)打開 ipnat_rules="/etc/ipnat.rules" #nat 規(guī)則文件絕對路徑 然后重新編譯,安裝內(nèi)核,重啟。 典型命令如下 #ipf -l pass in quick on lo0 all #ipf -l block in quick on em0 from any to 192.168.0.0/16 解釋一下: ipf 允許 進入 在 lo0(環(huán)回地址) 全部 ipf 鎖定 進入 在em0 從 任意 到 192.168.0.0/16(B類) 非常簡單 ipnat是ipf下可以做nat轉(zhuǎn)發(fā)的工具,我一般會把nat規(guī)則寫入到一個文件里,這樣啟動的時候會自動加載很多規(guī)則,不用一個一個去執(zhí)行。 典型文件內(nèi)容如下 map bce1 192.168.10.0/25 -> 211.103.xxx.xx1/32 #將bce1地址192.168.10.0/25(VLSM)轉(zhuǎn)發(fā)到211.103.xxx.xx1/32(固定地址)
map bce1 192.168.20.111/32 -> 211.103.xxx.xx2/32 #將bce1地址192.168.20.111/32(固定地址)轉(zhuǎn)發(fā)到211.103.xxx.xx2/32(固定地址)
rdr bce1 192.168.10.2/32 port 80 ->????211.103.xxx.xx2/32 port 8100 tcp #端口轉(zhuǎn)發(fā)(rdr) bce1 地址192.168.10.2/32(固定地址)的80端口 轉(zhuǎn)發(fā)到 211.103.xxx.xx2/32的8100端口。 ipfw和ipf大致就是這樣,還有一個過濾工具叫pf,全稱為packet filter,那個不是很熟,就不寫了。有任何疑問可以參看BSD的手冊,解說非常詳細。 增加fsck_y提供的內(nèi)核選項 options???????????? ACCEPT_FILTER_DATA options???????????? ACCEPT_FILTER_HTTP options???????????? ACCEPT_FILTER_DNS
轉(zhuǎn)載于:https://www.cnblogs.com/wenus/p/5517349.html
總結(jié)
以上是生活随笔為你收集整理的FreeBSD从零开始---安装后配置(三)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: /bin/bash: [xxxx]: c
- 下一篇: 下载SSH的jar包