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