国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Linux實踐工程師學習筆記十四:網絡安全 Linux高級應用 卓越資源 - 專業(yè)Linu...

Linux實踐工程師學習筆記十四:網絡安全

2009-09-22 09:42 來源: plum163.cublog.cn 作者:plum163 網友評論 0 條 瀏覽次數(shù) 6
實際配置防火墻時,首先將所有門都關閉,如將三條鏈的默認策略都改為DROP,再根據(jù)服務器需要一個端口一個端口地打開。首先需要分析這臺服務器是干什么用的,假設只是一臺提供http服務的Web服務器...
防火墻的作用:過慮兩個網絡之間的數(shù)據(jù)包
Linux內核的Netfilter


進出數(shù)據(jù)包,以及發(fā)送到本機的數(shù)據(jù)包都要經過內核的處理
INPUT鏈用來過濾進入本機的數(shù)據(jù)包
OUTPUT鏈用來過濾從本機發(fā)送出去的數(shù)據(jù)包
FORWARD鏈用來過濾從本機路由出去的數(shù)據(jù)包
一個數(shù)據(jù)包的頭部包括源地址、源端口、目的地址、目的端口、協(xié)議類型
包過濾正是根據(jù)這些特征來過濾數(shù)據(jù)包
Linux 下通過在三個鏈中設置規(guī)則來過濾
包的處理方式
#iptables -A INPUT -p icmp -j DROP 將進入本機,協(xié)議類型為icmp的數(shù)據(jù)包丟棄。
-A 添加規(guī)則
INPUT 對INPUT鏈進行操作
-p 協(xié)議類型
-j 指定動作,可以是ACCEPT(接收),LOG(日志),REJECT(彈回)
#iptables -L -n 顯示三條鏈的過濾規(guī)則
-L 顯示所有鏈的所有規(guī)則
-n 以數(shù)字形式顯示
#iptables -F 清空所有鏈的所有規(guī)則
每個包進入本機時都被INPUT鏈檢查
出去時經過OUTPUT鏈檢查
轉發(fā)時經過FORWARD檢查
TCP/IP是雙向通信的,所以添加規(guī)則時必須注意使INPUT鏈和OUTPUT鏈的規(guī)則對應。

-D rulenum 刪除第幾條規(guī)則
-I rulenum 在第幾條前插入規(guī)則
-P 修改鏈的默認策略,如默認狀態(tài)ACCEPT,默認情況下數(shù)據(jù)包的處理方式
-s 源地址 -m 匹配擴展條件
-d 目的地址 -t 維護的表,默認為filter,另外還有一個nat表
--line-numbers 規(guī)則中顯示編號
#iptables -L -n --line-numbers 這樣方便刪除指定行編號的規(guī)則或在指定編號前插入

拒絕所有連接到本機21端口的所有連接
#iptables -A INPUT -P tcp -d 192.168.0.22 --dport 22 -j DROP
--dport 目的端口
--sport 源端口

在實際使用過程中服務器還不夠嚴密,還存在被利用的弱點。如22端口,為防止沒有請求過的包,在本機主動發(fā)送出去,需要檢查包的狀態(tài)。看包是否是人家請求過我,而我回應別人的。Linux的防火墻支持狀態(tài)匹配檢查。
#iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
-m 匹配狀態(tài),上面表示跟本機連接過的包才能從22端口出去
如果正在使用ssh遠程管理服務器,不要將第一條的22端口規(guī)則刪掉,等添加完上面這條規(guī)則,才能把存在弱點的第一條刪除,否則遠程管理會立刻斷掉。

80端口也同樣設置
#iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
防止服務器在80端口主動發(fā)送請求,防止病毒利用。添加完后,刪除OUTPUT中以前添加的那條80端口規(guī)則。

假設自己是ssh客戶機,訪問別人的ssh服務器,先經過OUTPUT鏈出去
#iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
當包回就,從對方22端口,如果對方有病毒,可能會使用22端口發(fā)送請求,所以只接受已建立連接的數(shù)據(jù)包。
#iptables -A INPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
#service iptables save 保存勞動成果
現(xiàn)在防火墻算配好了,不僅非常嚴密,還非常有效,有效防止別人攻擊你的服務器的各種服務,可防止主動型的病毒或木馬攻擊。

LOG目標
過濾包的檢查機制,可以指定某種要求的包寫入日志中。
#iptables -A INPUT -p tcp --dport 22 -j LOG --log-level 5 --log-prefix “IPTABLES:”
-j LOG 記錄日志
--log-level 5 寫入日志時需指定級別,與日志服務器配合使用
--log-prefix “IPTABLES:” 指定寫入日志時,記錄的前綴字符,主要方便用戶分析日志。
添加LOG目標規(guī)則時,保證規(guī)則前同樣的包沒有被丟棄或接受,即要注意添加規(guī)則的次序。
編緝日志配置文件/etc/syslog.conf 添加:
kern.=notice /var/log/firewall.log
(消息來源內核kern,級別notice),將內核這個級別消息,記錄到firewall.log文件中,等號表示剛好等于這個級別的消息。為什么是notice?因為我們曾經用man syslog知道消息的默認級別notice為5,與LOG目標一致。
注意:日志級別5要跟syslog.conf中的級別一致,級別可通過syslog的manual幫助獲得。
#service syslog restart
#tail /var/log/firewall.log
注意將前面在/etc/syslog.conf文件添加過的
*.* @192.168.0.22
那行刪除,還要將/etc/sysconfig/syslog文件中,那行還原為:
SYSLOGD_OPTIONS=”-m 0”
不管哪個服務,修改過配置文件,要立刻生效,必須重啟服務。
這樣會將進入本機22端口的包記錄在firewall.log文件,當使用ssh持續(xù)登錄使用時,由于不停記錄包信息,firewall.log文件會持續(xù)增大!

實際配置防火墻時,首先將所有門都關閉,如將三條鏈的默認策略都改為DROP,再根據(jù)服務器需要一個端口一個端口地打開。首先需要分析這臺服務器是干什么用的,假設只是一臺提供http服務的Web服務器。
首先把服務器所有端口關閉,為了方便遠程管理開一個22的端口,端口可以在/etc/services文件中查看。添加規(guī)則時分析一下數(shù)據(jù)包的格式,再確定規(guī)則參數(shù)。
#iptables -A INPUT -p tcp -d 192.168.0.22 --dport 22 -j ACCEPT
#iptables -A OUTPUT -p tcp -s 192.168.0.22 --sport 22 -j ACCEPT
注意通信的雙向性,在INPUT添加一條規(guī)則,一般要在OUTPUT添加一條與之對應,所謂有出必有入。
#iptables -P INPUT DROP
#iptables -P OUTPUT DROP
#iptables -p FORWARD DROP
上面首先打開22端口,防止正在使用的遠程管理斷掉,再改變三條鏈的默認策略。
#iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT
打開一個80端口,本機地址可省略
#service iptables save 保存勞動成果(保存規(guī)則)
將剛才添加的規(guī)則保存到/etc/sysconfig/iptables文件
或使用#iptables-save > /etc/sysconfig/iptables
系統(tǒng)啟動時會加載這個文件中的規(guī)則。
現(xiàn)在服務器擋住所有服務,只開了兩個端口80,22,對一臺網絡服務器來說,絕不能缺少DNS服務,任何聯(lián)網的主機都需要做DNS請求,目前這臺服務器還無法發(fā)送DNS請求。增加一條DNS通道,首先作為一臺客戶機出現(xiàn):
#iptables -A OUTPUT -p udp --dpott 53 -j ACCEPT 首先經過OUTPUT鏈
#iptables -A INPUT -p udp --sport 53 -j ACCEPT 請求后得到回復數(shù)據(jù)雹,允許進入
測試#host fedora.cyrich.com
如出現(xiàn)無法解析,或很慢,則#more /etc/resolv.conf查看域名解析配置文件,看是否本機為DNS服務器,如果是還需添加一條規(guī)則,在規(guī)則時,應該分析這個數(shù)據(jù)包如何進出哪條鏈,以及這人數(shù)據(jù)包的格式,如上面#host fedora.cyrich.com因為本身作為DNS服務器,所以會發(fā)送一個包到自己,
192.168.0.22:*――>102.168.0.22:53 (允許)
但當時入INPUT鏈時,沒有一條跟它匹配,所以會拒絕。所以如果同時作為DNS服務器和客戶機,還需添加下面規(guī)則:
#iptables -A INPUT -p udp --dport 53 -j ACCEPT
#iptables -A OUTPUT -p udp --sport 53 -j ACCEPT
當同時作為某種服務的服務端和客戶端時,需在規(guī)則中添加兩條規(guī)則,即源端口和目標端口。
當前的規(guī)則設置忽略了本機的內部服務,在本機上有很多端口守護在127.0.0.1上,當本機的客戶端訪問回環(huán)設備時會拒絕。
127.0.0.1上的服務如不打開,會影響本機內部服務的正常運行,打開了也不會造成服務器什么危害,所以還是最好打開:
#iptables -A INPUT -s 127.0.0.1 -j ACCEPT
#iptables -A INPUT -d 127.0.0.1 -j ACCEPT
#service iptables save (保存勞動成果)

經過FORWARD鏈的數(shù)據(jù)包不是發(fā)送給本機,而是發(fā)送給別人的,當作為路由器使用時才需配置FORWARD鏈。現(xiàn)配置一臺路由器,如允許局域網用戶瀏覽網頁配置方法與INPUT.OUTPUT一樣。
#iptables -A FORWARD -s 10.0.0.0/24 -j ACCEPT 允許局域網發(fā)送數(shù)據(jù)包
#iptables -A FORWARD -d 10.0.0.0/24 -j ACCEPT 允許局域網接收數(shù)據(jù)包
這樣相當于把局域網和互聯(lián)網打通了,任何包都可通過,在實際使用中可以加上端口,做些限制,過濾某些數(shù)據(jù)包,也可以使用LOG目標加進日志。其實光打開FORWARD鏈還不行,還需要打開內核的轉發(fā)文件。
#echo 1 >/proc/sys/net/ipv4/ip_forward (默認為0)
0表示關閉轉發(fā),1為啟用,要永久啟用,可修改配置文件/etc/sysctl.conf:
net.ipv4.ip_forward =1
如需訪問互聯(lián)網,這樣的配置還不行,因為私有地址是無法直接訪問互聯(lián)網的,這里我們做NAT網絡地址轉換,這時網需兩個地址,一個局域網的,一個互聯(lián)網的,當收到訪問互聯(lián)網的包時,將源地址替換為互聯(lián)網地址。
#iptables -t nat -L -n 查看nat表內容

Netfilter的NAT表:
三條鏈用來做包過濾
用來翻譯地址的也有三條鏈,常用的有PREROUTING,POSTROUTING


SNAT(源地址翻譯)





數(shù)據(jù)包進入內核前,首先進入PREROUTING這個點,然后進入內核進行處理,就是ROUTING那個點,如果數(shù)據(jù)包不是發(fā)送給本機,而內核啟用了轉發(fā)功能,則內核將把數(shù)據(jù)包從FORWARD,再到POSTROUTING。如果FORWARD允許數(shù)據(jù)包通過,這個包可以在POSTROUTING這個點上做源地址替換,而且只能在這個點上做,這是內核的一種機制,所以數(shù)據(jù)包的源地址是在經過POSTROUTING這個點后改變的。

DNAT(目標地址翻譯)
數(shù)據(jù)包進入時,首先進入PREROUTING。然后內核ROUTING會根據(jù)包的目標地址決定是從INPUT鏈走還是FORWARD鏈走。所以數(shù)據(jù)包的目標地址非常重要。在PREROUTING上可以做目標地址替換。

SNAT應用



網關有兩塊網卡分別連接兩臺主機或兩個網絡。
#iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j SNAT --to-source 192.168.0.254
將源地址為10.0.0.0/24的包的源地址替換為192.168.0.254,如果這是一臺ADSL撥號網關,可以將整個局域網帶進互聯(lián)網
#iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE
有人會想數(shù)據(jù)包怎么回來?其實將數(shù)據(jù)包翻譯成192.168.0.254源地址時,192.168.0.1回應一個數(shù)據(jù)包到服務器會被服務器認出來,那服務器會自動將翻譯地址還原,然后退還給10.0.0.241。所以做網關時,只要加SNAT,然后配合前面的過濾規(guī)則就可配一個安全且強大的防火墻,同時具有路由器的功能。


DNAT應用



DNAT應用一般用來做DMZ,保護局域網內部
如192.168.0.1作為一臺Web服務器,主機10.0.0.241訪問10.0.0.254網關,網關將請求發(fā)送到192.168.0.1,這樣就起到保護Web服務器的作用
#iptables -t nat -A PREROUTING -d 10.0.0.254 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.1
將訪問網關80端口的數(shù)據(jù)包目標地址翻譯或192.168.0.1,這樣本來發(fā)送給本機的數(shù)據(jù)包就會從FORWARD鏈轉發(fā)出去。

Web服務器在內部,它收到請求后回應數(shù)據(jù)包給網關,然后返回到10.0.0.241。這樣就把內部主機保護起來,外面的人只能看見那臺網關服務器,所以NAT應用非常廣,而且非常強大,更多幫助和介紹可參考www.netfilter.org

為軟件打補丁,首先用gpg導入公鑰文件,再校驗patch文件的正確性。
#bzcat 9.3.0-patch | patch -p0
一般需查文件里面的目錄,然后再將軟件目錄改名。
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
linux下用iptables做本機端口轉發(fā)方法
關于 iptables 入站 出站以及NAT實例
Linux系列-Red Hat5平臺下的Iptables防火墻應用(一)翻出老家底——咱們來學Iptables
75.iptables 之centos6系列(day75)
安卓網絡防火墻原理詳解
Linux iptables 防火墻常用規(guī)則
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服