Ubuntu下Iptables的簡單運用,開放/關閉端口,禁止/容許IP或IP段訪問...

首先添加規則有兩個參數:-A和-I,其中-A是添加到規則的末尾;-I能夠插入到指定位置,沒有指定位置的話默認插入到規則的首部,因爲匹配規則是從上往下,依次查找的,可能出現配置的規則衝突致使後續的規則不起效ubuntu

保存iptables規則vim

sudo iptables-save

保存ipv6 的iptables規則服務器

sudo ip6tables-save

查看iptables規則ssh

sudo iptables -L

查看iptables規則,以數字形式tcp

sudo iptables -L -n

查看iptables規則的序號,用於刪除規則參考工具

sudo iptables -L -n --line-numbers

清除全部iptables預設表filter裏的全部規則oop

sudo iptabels -F

清除預設表filter中使用者自定鏈中的規則post

sudo iptables -X

清除單條iptables規則.net

sudo iptables -D INPUT(鏈) 3(規則對應的序號)

修改單條iptables規則,使用 -R,修改INPUT鏈序號爲3的規則爲容許,第4條規則爲拒絕,丟棄rest

sudo iptables -R INPUT 3 -j ACCEPT
sudo iptables -R INPUT 4 -j DROP

容許已經創建的鏈接發送和接收數據,以避免設置鏈爲DROP時遠程ssh斷開

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

保證VPS能夠運行的時候,能夠爲loopback網卡添加運行規則,插到第一行

sudo iptables -I INPUT 1 -i lo -j ACCEPT

容許某段IP訪問本機的全部類型的全部端口

sudo iptables -I INPUT -s 192.168.2.0/24 -p all -j ACCEPT
sudo iptables -I INPUT -s 192.168.0.0/16 -p all -j ACCEPT

容許本機127.0.0.1訪問自身全部端口

sudo iptables -I INPUT -s 127.0.0.1 -p all -j ACCEPT

容許某段IP訪問本機的TCP 3306端口

sudo iptables -I INPUT -s 192.168.2.0/24 -p tcp --dport 3306 -j ACCEPT

容許某段IP訪問本機的某段TCP端口

sudo iptables -I INPUT -s 192.168.2.0/24 -p tcp --dport 3306:65525 -j ACCEPT

向全部IP開放ssh的遠程鏈接,這裏是已經更改了的19515端口,默認爲22端口

sudo iptables -A INPUT -p tcp --dport 19515 -j ACCEPT

默認INPUT OUTPUT FORWORD 鏈都是所有接受,須要改成拒絕
確保ssh遠程鏈接端口已經添加進 IPUNT 容許規則中,不然執行如下命令將可能會斷開遠程

sudo iptables -A INPUT -p tcp --dport 19515 -j ACCEPT #這裏ssh端口爲19515
sudo iptables -P INPUT DROP

可選項,需保證SSH端口已經添加各鏈的容許規則,不然會斷開SSH鏈接並沒有法遠程鏈接

sudo iptables -P OUTPUT DROP
sudo iptables -P FORWORD DROP

iptables規則配置後,沒法訪問外網,沒法接收返回的數據,進行如下配置,並保證OUTPUT狀態爲ACCEPT,會使iptables容許由服務器自己請求的數據經過

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables 的持久化,因爲重啓ubuntu會致使iptables規則消失,須要持久化
1.安裝iptables-persistent工具幫助咱們持久化

sudo apt-get update
sudo apt-get install iptables-persistent -y

執行命令持久化

sudo netfilter-persistent save
sudo netfilter-persistent reload

2.將iptables規則存入文件,隨網卡狀態進行加載,保存
將iptables保存的規則保存入當前用戶的文件

sudo iptables-save > /home/user/iptables.rules

在/etc/network/interfaces 網卡配置文件里加入相應內容

vim /etc/network/interfaces
添加內容
pre-up iptables-restore < /home/user/iptables.rules
post-down iptables-save > /home/user/iptables.rules

用到的參數解釋:
pre-up: 網卡啓用前的動做
up: 啓用時候的動做
post-up: 啓用後的動做
pre-down: 關閉前的動做
down: 關閉時動做
post-down: 關閉後動做

iptables的關閉,使用清除規則來實現

sudo iptables-save > /home/user/iptables.rules
sudo iptables -X  清除默認filter表裏的自定義規則
sudo iptables -t nat -F   清除nat表裏的規則
sudo iptables -t nat -X
sudo iptables -t mangle -F  清除nat表裏的規則
sudo iptables -t mangle -X
sudo iptables -P INPUT ACCEPT   將INPUT鏈默認更改成所有接受
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P  FORWORD ACCEPT

若是想了解深刻一些,我我的以爲這個博主寫的挺不錯的朱雙印的我的博客-Iptables詳解

相關文章
相關標籤/搜索