iptables 常用規則使用例項

大雄45發表於2021-03-03
導讀 在本文中列出了一些實用的iptables規則,可以參考。
1、清空資料包流量、清空鏈、清空規則

使用下面幾個 可以清空iptables表:

# 使用-t選項選擇哪個表,表有filter, nat , mangle三個表
iptables -t filter -F
iptables -t filter -X
iptables -t filter -Z

-F清空所有鏈的規則, -X刪除自定義的鏈, -Z清空資料包流量。

2、設定預設策略

預設鏈策略是ACCEPT。對於所有INPUT,FORWARD和OUTPUT鏈,將其更改為DROP,如下所示:

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARDING DROP

將INPUT和OUTPUT鏈的預設策略都設定為DROP時,對每個防火牆規則要求,都應定義兩個規則,一個用於INPUT,一個用於OUTPUT。

如果信任內部使用者,則可以省略上面的OUTPUT。即預設情況下不丟棄所有OUTPUT資料包。在這種情況下,對於擁有的每個防火牆規則要求,只需定義一個規則即可。即只為INPUT定義規則,因為所有資料包的傳出都是ACCEPT。

3、阻止指定的IP地址進入
BLOCK_THIS_IP="x.x.x.x" iptables -A INPUT -s "$BLOCK_THIS_IP" -j DROP
或者
iptables -A INPUT -i ens160 -s "$BLOCK_THIS_IP" -j DROP
或者 iptables -A INPUT -i ens160 -p tcp -s "$BLOCK_THIS_IP" -j DROP

定義一個變數,值寫入要阻止的ip地址。上面第一條規則的意思是從某個ip進入的流量拒絕掉。第二條規則是阻止某個ip地址從eth0進入的流量。第三條規則指的是拒絕某個ip地址從eth0進入訪問tcp協議的流量。

4、允許外部使用者ssh登入本機

以下規則允許ens160介面上的所有傳入的ssh連線。

iptables -A INPUT -i ens160 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o ens160 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

下面是允許指定網段的ip地址連線本機的ssh服務:

iptables -A INPUT -i ens160 -p tcp -s 192.168.100.0/24 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o ens160 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
5、允許本機使用ssh登入遠端主機

以下規則允許傳出ssh連線。當從內部ssh連線到外部伺服器時可以使用:

iptables -A OUTPUT -o ens160 -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i ens160 -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
6、使用multiport模組,允許外部訪問本機的80,443

下面使用 multiport模組,可以減少寫入規則條數。下面例項允許外部訪問本機的http,https服務。

iptables -A INPUT -i ens160 -p tcp -m multiport --dports 80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o ens160 -p tcp -m multiport --sports 80,443 -m state --state ESTABLISHED -j ACCEPT

iptables 常用規則使用例項iptables 常用規則使用例項

7、允許本地訪問外部的http,https服務

下面 允許本機訪問外面的http,https服務:

iptables -A OUTPUT -o ens160 -p tcp -m multiport --dports 80,443 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i ens160 -p tcp -m multiport --sports 80,443 -m state --state ESTABLISHED -j ACCEPT

iptables 常用規則使用例項iptables 常用規則使用例項

8、允許外部ping本機

以下規則允許外部使用者能夠ping你的伺服器:

iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

iptables 常用規則使用例項iptables 常用規則使用例項

9、允許本機ping外部

以下規則允許從內部ping到任何外部伺服器:

iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT

iptables 常用規則使用例項iptables 常用規則使用例項

10、防DDOS攻擊

下面規則將幫助你預防Web伺服器上的拒絕服務(DoS)攻擊:

iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT
  • -m limit:使用limit模組
  • --limit 25/minute:此限制每分鐘最多25個連線。根據具體要求更改此值
  • --limit-burst 100:該值表示只有在連線總數達到limit-burst級別後,才執行limit 25/minute。
總結

在本文中列出了一些實用的iptables規則,可以參考。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2760759/,如需轉載,請註明出處,否則將追究法律責任。

相關文章