不同linux系統,相關軟體是否安裝,會讓iptables的某些命令不能執行,這裡收集了大多數iptables命令,不管是Ubuntu還是Centos,都能找到相關的修改、查詢、保存命令。 ...
不同linux系統,相關軟體是否安裝,會讓iptables的某些命令不能執行,這裡收集了大多數iptables命令,不管是Ubuntu還是Centos,都能找到相關的修改、查詢、保存命令。
僅允許某些IP訪問指定埠:
先禁用埠訪問:iptables -I INPUT -p tcp --dport 8000 -j DROP
允許特定IP訪問:iptables -I INPUT -s IP地址/32 -p tcp --dport 8000 -j ACCEPT
what is iptables?
Iptables is used to set up, maintain, and inspect the tables of IPv4 packet filter rules in the Linux kernel. Several different tables may be defined. Each table contains a number of built-in chains and may also contain user-defined chains.
以上是itables man手冊上的說明。
iptables包含4個表:filter,nat,mangle,raw。我們最常用的就是filter這個表。filte表有三個內建的chain:INPUT、OUTPUT和FORWORD。
INPUT:用來處理髮給本機的數據包;如主機A發給本機的數據,數據通信路徑會像這:主機A------>本機localhost
OUTPUT:用來處理本機發送出去的數據包;如本機訪問百度伺服器,數據通信路徑會像這樣,如本機localhost------>百度伺服器
FORWORD:用來處理流經本機,但又不是發給本機的數據包;如主機A要給主機B發送數據包,經過了本機,路徑會像這樣:主機A--->本機localhost--->主機B。
前面兩條chain好理解,但FORWORD怎麼理解呢?
一般主機就一張網卡,什麼時候會用到呢?
在做ARP中間人攻擊時,我們需欺騙網關和被攻擊的主機,使其兩者的通信數據經過本機,這個時候就可需設置FORWORD 這個chain下的規則了,因為預設情況下,FORWORD這個CHAIN下有一條策略是拒絕所有的數據的。
接下來看下如何查看filter表的配置:
1、filter表查看
- [root@localhost ~]# iptables -L -v
- 建議查看表時,帶上-v參數,會顯示in out 方向等信息,顯示的信息更完整、詳細。
2、filter表規則添加。
有兩種方式添加規則
iptables -A 和iptables -I
iptables -A 添加的規則是添加在最後面。如針對INPUT鏈增加一條規則,接收從eth0口進入且源地址為192.168.0.0/16網段發往本機的數據。
- [root@localhost ~]# iptables -A INPUT -i eth0 -s 192.168.0.0/16 -j ACCEPT
iptables -I 添加的規則預設添加至第一條。
如果要指定插入規則的位置,則使用iptables -I 時指定位置序號即可。
3、刪除規則
如果刪除指定則,使用iptables -D命令,命令後可接序號。效果請對比上圖。
或iptables -D 接詳細定義;
如果想把所有規則都清除掉,可使用iptables -F。
4、備份iptabes rules
使用iptables-save命令,如:
- [root@localhost ~]# iptables-save >/dd/iptables.bak
5、恢復iptables rules
使用iptables命令,如:
- [root@localhost ~]# iptables-restore </dd/iptables.bak
6、iptables 配置保存
以上做的配置修改,在設備重啟後,配置將丟失。可使用service iptables save進行保存。
- [root@localhost ~]# service iptables save