1. 程式人生 > >[linux]防火牆配置

[linux]防火牆配置

linux防火牆配置

second60  20181030

1.配置檔案

路徑: /etc/sysconfig/iptables

內容:

# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter

# 該規則表示INPUT表預設策略是ACCEPT
:INPUT ACCEPT [0:0]

# 該規則表示FORWARD表預設策略是ACCEPT
:FORWARD ACCEPT [0:0]

# 該規則表示OUTPUT表預設策略是ACCEPT
:OUTPUT ACCEPT [0:0]

# 意思是允許進入的資料包只能是剛剛我發出去的資料包的迴應,
# ESTABLISHED:已建立的連結狀態。
# RELATED:該資料包與本機發出的資料包有關。
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT


# 下兩條是在INPUT表和FORWARD表中拒絕所有其他不符合上述任何一條規則的資料包。
# 並且傳送一條host prohibited的訊息給被拒絕的主機。
# 注意:所有新加過濾規則必須要這兩條上面才有效
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited

# 提交
COMMIT

2.新增規則

新增8080埠允許

-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT

操作分類:

-A 新增一條規則

-D 刪除一條規則

-R 替換一條規則

-I 插入一條規則

防火牆鏈

INPUT : 輸入鏈

OUTPUT: 輸出鏈

FORWARD: 重定向鏈

-p  protocal (all/tcp/udp/icmp)

-s  指定源地址  (-s 0.0.0.0/0)

-d  指定目的地址(-d 192.168.1.1)

-i   指定入口網絡卡( -i eth0)

-o   指定出口網絡卡(-o eth0)

--sport 源埠 (--sport 22)

--dport 目的埠(--dport 22:80)

-j   指定要進行的動作(ACCEPT 將封包放行, DROP 丟棄包不處理, REJECT 拒絕)

3.防火牆命令

在新增好防火牆後,需要用命令讓防火牆生效

3.1停止(即時生效,重啟後復原)

service  iptables  stop  

systemctl  stop  iptables

3.2啟動(即時生效,重啟後復原)

service  iptables  start

systemctl  start  iptables

3.3 重啟(即時生效,重啟後復原)

service  iptables  restart

systemctl  restart  iptables

3.4 永久開啟

chkconfig  iptables  on

systemctl  enable  iptables

3.5 永久關閉

chkconfig  iptables  off

systemctl  disable  iptables

4 防火牆命令

iptables  --help

4.1 設定預設規則

iptables  -P  INPUT  DROP

iptables  -P  FORWARD  DROP

當超出iptables裡filter表裡的兩個鏈規則(INPUT, FORWARD)時, DROP 丟棄

iptables  -P  OUTPUT  ACCEPT

對OUTPUT鏈,流出的包,不做限制

4.2 新增規則

INPUT鏈的預設規則是DROP,所以把可以通過的規則寫成ACCEPT

4.2.1 遠端SSH埠22開放

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT (如果OUTPUT設成了DROP,要加這條)

4.2.2 開放WEB 80埠

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

4.2.3 郵件服務端 25,110埠

iptables -A INPUT -p tcp --dport 25 -j ACCEPT

iptables -A INPUT -p tcp --dport 110 -j ACCEPT

4.2.3 FTP伺服器21埠

iptables -A INPUT -p tcp --dport 21 -j ACCEPT

4.2.4 DNS伺服器53埠

iptables -A INPUT -p tcp --dport 53 -j ACCEPT

4.2.5 要開放的埠同理

iptables -A INPUT -p tcp --dport port_num -j ACCEPT

4.2.6 要禁用的埠

iptables -A INPUT -p tcp --dport port_num -j DROP

4.2.7 允許icmp包通過,允許ping

iptables -A OUTPUT -p icmp -j ACCEPT

iptables -A INPUT -p icmp -j ACCEPT

4.2.8 允許loopback(DNS)

iptables -A INPUT -i lo -p all -j ACCEPT

iptables -A OUTPUT -o lo -p all -j ACCEPT

4.2.9 減少不安全埠

iptables -A OUTPUT -p tcp --sport 31337 -j DROP

iptables -A OUTPUT -p tcp --dport 31337 -j DROP

4.2.10 只允許192.168.0.2的機器連線

iptables -A INPUT -s 192.168.0.2 -p tcp --dport 22 -j ACCEPT

4.2.11 允許一段IP連線(192.168.0.1-255)

iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT

用命令和直接修改配置是一樣的,最後修改好後,別忘了重啟防火牆生效。