Linux防火牆iptables基本使用方法

iptables是Linux上經常使用的防火牆軟件,通常VPS系統裏面默認都有集成。vim

一、安裝iptables防火牆bash

若是沒有安裝iptables須要先安裝,CentOS執行:
yum install iptables服務器

Debian/Ubuntu執行:
apt-get install iptables
二、清除已有iptables規則
iptables -F
iptables -X
iptables -Z

三、開放指定的端口
#容許本地迴環接口(即運行本機訪問本機)
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
# 容許已創建的或相關連的通行
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#容許全部本機向外的訪問
iptables -A OUTPUT -j ACCEPT
# 容許訪問22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#容許訪問80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#容許FTP服務的21和20端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT

#若是有其餘端口的話,規則也相似,稍微修改上述語句就行
#禁止其餘未容許的規則訪問(注意:若是22端口未加入容許規則,SSH連接會直接斷開。)
1).用DROP方法
iptables -A INPUT -p tcp -j DROP
2).用REJECT方法
iptables -A INPUT -j REJECT
iptables -A FORWARD -j REJECT

四、屏蔽IP
#若是隻是想屏蔽IP的話「三、開放指定的端口」能夠直接跳過。
#屏蔽單個IP的命令是
iptables -I INPUT -s 123.45.6.7 -j DROP
#封整個段即從123.0.0.1到123.255.255.254的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP
#封IP段即從123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP
#封IP段即從123.45.6.1到123.45.6.254的命令是
iptables -I INPUT -s 123.45.6.0/24 -j DROP
四、查看已添加的iptables規則
iptables -L -ntcp

v:顯示詳細信息,包括每條規則的匹配包數量和匹配字節數
x:在 v 的基礎上,禁止自動單位換算(K、M) vps偵探
n:只顯示IP地址和端口號,不將ip解析爲域名網站

五、刪除已添加的iptables規則spa

將全部iptables以序號標記顯示,執行:
iptables -L -n --line-numbersrest

好比要刪除INPUT裏序號爲8的規則,執行:
iptables -D INPUT 8
六、iptables的開機啓動及規則保存code

CentOS上可能會存在安裝好iptables後,iptables並不開機自啓動,能夠執行一下:
chkconfig --level 345 iptables onorm

將其加入開機啓動。vps

CentOS上能夠執行:service iptables save保存規則。

Debian/Ubuntu上iptables是不會保存規則的。

須要按以下步驟進行,讓網卡關閉是保存iptables規則,啓動時加載iptables規則。
若是當前用戶不是root,即便使用了sudo,也會提示你沒有權限,沒法保存,因此執行本命令,你必須使用root用戶.
可使用sudo -i快速轉到root,使用完成,請及時使用su username切換到普通賬戶.
爲了重啓服務器後,規則自動加載,咱們建立以下文件:
sudo vim /etc/network/if-pre-up.d/iptables#!/bin/bash
iptables-save > /etc/iptables.rules

添加執行權限。
chmod +x /etc/network/if-pre-up.d/iptables

附上基礎規則:
*filter
:INPUT ACCEPT [106:85568]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [188:168166]
:RH-Firewall-1-INPUT - [0:0]
#容許本地迴環接口(即運行本機訪問本機)
-A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
#容許已創建的或相關連的通行
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#容許全部本機向外的訪問
-A OUTPUT -j ACCEPT
#容許PPTP撥號到外網
-A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
#僅特定主機訪問Rsync數據同步服務
-A INPUT -s 8.8.8.8/32 -p tcp -m tcp --dport 873 -j ACCEPT
#僅特定主機訪問WDCP管理系統
-A INPUT -s 6.6.6.6/32 -p tcp -m tcp --dport 8080 -j ACCEPT
#容許訪問SSH
-A INPUT -p tcp -m tcp --dport 1622 -j ACCEPT
#容許訪問FTP
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
#容許訪問網站服務
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
#禁止全部未經容許的鏈接
-A INPUT -p tcp -j DROP
#注意:若是22端口未加入容許規則,SSH連接會直接斷開。
#-A INPUT -j REJECT
#-A FORWARD -j REJECT
COMMIT

可使用一下方法直接載入:
一、複製上面的規則粘貼到這裏,保存本文件
sudo vim /etc/iptables.test.rules
二、把本規則加載,使之生效,注意,iptables不須要重啓,加載一次規則就成了
sudo iptables-restore < /etc/iptables.test.rules
三、查看最新的配置,應該全部的設置都生效了.
sudo iptables -L -n
四、保存生效的配置,讓系統重啓的時候自動加載有效配置(iptables提供了保存當前運行的規則功能)
iptables-save > /etc/iptables.rules

相關文章
相關標籤/搜索