iptables設置訪問規則

1、簡介app

iptables是一個很強大的設置防火牆的工具,可使用它來限制全部對本機的訪問,容許特定的主機、特定的端口才能訪問本機,還能設置那些協議可以訪問本機。總之,很強大,也很簡單。tcp

2、filter chain原理簡述工具

在開始以前,先看一下iptables的filter chain是如何工做的:spa

 

註釋:當Input進來以後,先經過first chain,若是符合直接本機接收;不符合傳給second chain,依次到最後一個chain,着了third不必定是最後的chain,在最後chain都不符合就將包丟棄,符合的交給下層處理。code

3、綜合例子blog

經過下面的例子進行說明:ip

 

按箭頭順序來講明:get

  1. 查看當前iptables配置好了的規則的命令。
  2. 拒絕全部的INPUT(訪問),這裏說明任何外來的主機都不能訪問本機。

命令及詳解:table

iptables -P INPUT DROP原理

#      -P:--policy(策略),chain target(過濾目標),全部的輸入(INPUT)就是要過濾的目標。

#      DROP:表示丟棄全部輸入的數據包,不接受任何數據請求(拒絕全部訪問),這個全部是相對的,在咱們規則以內定義接收仍是接收的。

  1. 指向兩行數據,這裏表示容許192.168.1.113這個ip地址訪問。

命令及詳解:

iptables -A INPUT -p tcp -s 192.168.1.113 -j ACCEPT

iptables -A INPUT -p udp -s 192.168.1.113 -j ACCEPT

#       -A:--append chain,添加一條過濾規則,這裏是INPUT,還有OUTPUT、FORWARD。

#       -p:--protocol,代表協議。例如tcp、udp,icmp

#       -s:--source,源地址。接ip地址

#       -j:--jump target,當這條規則符合時,直接跳轉到目標,再也不進行下一條chain。目標有:ACCEPT、DROP、FORWARD、QUEUE

  1. 表示容許icmp協議type=8,code=0的訪問,即ping。

iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j ACCEPT

這裏只是在icmp協議後面指定那個type和code

  1. 表示容許icmp協議type=11,code=0的訪問,即traceroute。

iptables -A INPUT -p icmp --icmp-type 11 -s 0/0 -j ACCEPT

這裏只是在icmp協議後面指定那個type和code

  1. 表示能夠轉發數據包
  2. 表示能夠發送數據包

4、其餘使用

l  刪除某條規則:當須要刪除某條規則時,有2種方法:

  1. 根據列表序號來刪除。規則是有一個序號的,經過:

iptables -L -n -line-number

來查看序號,不過本人嘗試了並沒成功。知道序號以後經過:

iptables -D 」number「 來刪除

  1. 根據規則內容來刪除。使用

iptables -S

來查看規則

 

而後經過:

iptables -D 「content  -A這類不須要寫」 來刪除,例如:

iptables -D INPUT -s 192.168.1.113/32 -p tcp -j ACCEPT      來刪除本條規則

l  指定端口

經過 –dport 「port」 來指定端口

l  保存規則

iptables-save

能夠將規則保存到一個文件中,例如:

iptables-save /etc/iptables.rules

保存好以後去網卡文件(/etc/network/interface)中指定

 

相關文章
相關標籤/搜索