- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會(huì )理事單位
- 安全聯(lián)盟認證網(wǎng)站身份V標記
- 域名注冊服務(wù)機構許可:滇D3-20230001
- 代理域名注冊服務(wù)機構:新網(wǎng)數碼
一.iptables的安裝:yum -y install iptables
iptables開(kāi)機自啟動(dòng):chkconfig iptables on
iptables啟動(dòng):/etc/init.d/iptables start
iptables關(guān)閉:/etc/init.d/iptables stop
iptables的狀況查看:chkconfgi --list | grep iptables
iptables的配置文件:/etc/sysconfig/iptables
二.防火墻基礎:
1.防火墻策略一般分為兩種,一種叫“通”策略,一種叫“堵”策略,通策略,默認門(mén)是關(guān)著(zhù)的,必須要定義誰(shuí)能進(jìn)。堵策略則是,大門(mén)是洞開(kāi)的,但是你必須有身份認證,否則不能進(jìn)。所以我們要定義,讓進(jìn)來(lái)的進(jìn)來(lái),讓出去的出去,所以通,是要全通,而堵,則是要選擇。
2.iptables就根據規則所定義的方法來(lái)處理這些數據包,如放行(accept)、拒絕(reject)和丟棄(drop)等。配置防火墻的主要工作就是添加、修改和刪除這些規則。
3.表(tables)提供特定的功能,iptables內置了4個(gè)表,即filter表、nat表、mangle表和raw表,每個(gè)表的功能如下:
1.)filter:定義允許或者不允許的
2.)nat :定義地址轉換的
3.)mangle:修改報文原數據
4.)raw:數據跟蹤處理上
我們修改報文原數據就是來(lái)修改TTL的。能夠實(shí)現將數據包的元數據拆開(kāi),在里面做標記/修改內容的。而防火墻標記,其實(shí)就是靠mangle來(lái)實(shí)現的。
4.鏈(chains)是數據包傳播的路徑,每一條鏈其實(shí)就是眾多規則中的一個(gè)檢查清單,每一條鏈中可以有一條或數條規則。當一個(gè)數據包到達一個(gè)鏈時(shí),iptables就會(huì )從鏈中第一條規則開(kāi)始檢查,看該數據包是否滿(mǎn)足規則所定義的條件。如果滿(mǎn)足,系統就會(huì )根據該條規則所定義的方法處理該數據包;否則iptables將繼續檢查下一條規則,如果該數據包不符合鏈中任一條規則,iptables就會(huì )根據該鏈預先定義的默認策略來(lái)處理數據包。
5.小擴展:
對于filter表來(lái)講一般只能做在3個(gè)鏈(chain)上:INPUT ,FORWARD ,OUTPUT
對于nat表來(lái)講一般也只能做在3個(gè)鏈(chain)上:PREROUTING ,OUTPUT ,POSTROUTING
對于mangle表則是5個(gè)鏈(chain)都可以做:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
6.當一個(gè)數據包進(jìn)入時(shí):
① 當一個(gè)數據包進(jìn)入網(wǎng)卡時(shí),它首先進(jìn)入PREROUTING鏈,內核根據數據包目的IP判斷是否需要轉送出去。
② 如果數據包就是進(jìn)入本機的,它就會(huì )沿著(zhù)向下移動(dòng),到達INPUT鏈。數據包到了INPUT鏈后,任何進(jìn)程都會(huì )收到它。本機上運行的程序可以發(fā)送數據包,這些數據包會(huì )經(jīng)過(guò)OUTPUT鏈,然后到達POSTROUTING鏈輸出。
③ 如果數據包是要轉發(fā)出去的,且內核允許轉發(fā),數據包就會(huì )如圖所示向右移動(dòng),經(jīng)過(guò)FORWARD鏈,然后到達POSTROUTING鏈輸出。
三.iptables命令格式
iptables的命令格式較為復雜,一般的格式如下:
iptables [-t table] 命令 [chain] [rules] [-j target]
table——指定表明
命令——對鏈的操作命令
chain——鏈名
rules——規則
target——動(dòng)作如何進(jìn)行
1.表選項
表選項用于指定命令應用于哪個(gè)iptables內置表,iptables內置包括filter表、nat表、mangle表和raw表。
2.命令選項iptables命令格式(command)
命令 說(shuō)明
-P或–policy <鏈名> 定義默認策略
-L或–list <鏈名> 查看iptables規則列表
-A或—append <鏈名> 在規則列表的最后增加1條規則
-I或–insert <鏈名> 在指定的位置插入1條規則
-D或–delete <鏈名> 從規則列表中刪除1條規則
-R或–replace <鏈名> 替換規則列表中的某條規則
-F或–flush <鏈名> 刪除表中所有規則
-Z或–zero <鏈名> 將表中數據包計數器和流量計數器歸零
3.匹配選項(paraameters參數選項)
匹配 說(shuō)明
-i或–in-interface <網(wǎng)絡(luò )接口名> 指定數據包從哪個(gè)網(wǎng)絡(luò )接口進(jìn)入,如ppp0、eth0和eth1等
-o或–out-interface <網(wǎng)絡(luò )接口名> 指定數據包從哪塊網(wǎng)絡(luò )接口輸出,如ppp0、eth0和eth1等
-p或—proto協(xié)議類(lèi)型 < 協(xié)議類(lèi)型> 指定數據包匹配的協(xié)議,如TCP、UDP和ICMP等
-s或–source <源地址或子網(wǎng)> 指定數據包匹配的源地址
–sport <源端口號> 指定數據包匹配的源端口號,可以使用“起始端口號:結束端口號”的格式指定一個(gè)范圍的端口
-d或–destination <目標地址或子網(wǎng)> 指定數據包匹配的目標地址
–dport目標端口號 指定數據包匹配的目標端口號,可以使用“起始端口號:結束端口號”的格式指定一個(gè)范圍的端口
4.動(dòng)作選項
動(dòng)作 說(shuō)明
ACCEPT 接受數據包
DROP 丟棄數據包
REDIRECT 與DROP基本一樣,區別在于它除了阻塞包之外, 還向發(fā)送者返回錯誤信息。
SNAT 源地址轉換,即改變數據包的源地址
DNAT 目標地址轉換,即改變數據包的目的地址
MASQUERADE IP偽裝,即是常說(shuō)的NAT技術(shù),MASQUERADE只能用于A(yíng)DSL等撥號上網(wǎng)的IP偽裝,也就是主機的IP是由ISP分配動(dòng)態(tài)的;如果主機的IP地址是靜態(tài)固定的,就要使用SNAT
LOG 日志功能,將符合規則的數據包的相關(guān)信息記錄在日志中,以便管理員的分析和排錯
Iptables命令格式
Iptables過(guò)濾條件
四.iptables的語(yǔ)法
iptables定義規則的方式比較復雜:
格式:iptables [-t table] COMMAND chain CRETIRIA -j ACTION
-t table :3個(gè)filter nat mangle
COMMAND:定義如何對規則進(jìn)行管理
chain:指定你接下來(lái)的規則到底是在哪個(gè)鏈上操作的,當定義策略的時(shí)候,是可以省略的
CRETIRIA:指定匹配標準
-j ACTION :指定如何進(jìn)行處理
五.實(shí)戰演練——指定對端口的開(kāi)放
1. Iptables查看現在都有那些規則,或者直接訪(fǎng)問(wèn):vi /etc/sysconfig/iptables
通過(guò)上圖,我們發(fā)現linux主機對所有的鏈INPUT/FORWARD/OUTPUT是允許訪(fǎng)問(wèn)的。
2.關(guān)閉所有的INPUT/FORWARD/OUTPUT只對某些端口開(kāi)放.
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
3.關(guān)閉之后發(fā)現我的SecureCRT不能登陸到字符界面了,那么現在來(lái)開(kāi)通22端口。
Iptables -A INPUT -p TCP --dport 22 -j ACCEPT
Iptables -A OUTPUT -p TCP --Sport 22 -j ACCEPT
4打開(kāi)80端口,否則其他人無(wú)法訪(fǎng)問(wèn)網(wǎng)站
Iptables -A INPUT -p TCP --dport 80 -j ACCEPT
Iptables -A OUTPUT -p TCP --Sport 80 -j ACCEPT
5.我想ping 一下藍隊網(wǎng)絡(luò )的域名發(fā)現不同,這是因為DNS對應的端口是53以及使用的協(xié)議是UDP的。
iptables -A OUTPUT -p UDP --sport 53 -j ACCEPT 開(kāi)放出源端口53
iptables -A INPUT -p UDP --dport 53 -j ACCEPT 開(kāi)放進(jìn)目標端口53
iptables -A INPUT -p UDP --sport 53 -j ACCEPT
6.設置好后記得保存一下。
service iptables save
售前咨詢(xún)
售后咨詢(xún)
備案咨詢(xún)
二維碼
TOP