Centos7.2 如何使用iptables

一、防火牆iptables 簡潔介紹

iptables 和 firewalld 都是工作在用戶空間、用來定義規則的工具,本身不是防火牆,他們定義的規則,可以讓內核空間當中的netfilter讀取,並且實現防火牆工作。

netfilter是操作系統核心層內部的一個數據包處理模塊,它具有如下功能:

  1.網絡地址轉換 nat

  2.數據包內容修改 mangle

  3.數據包過濾的防火牆功能 filter  

CentOS7.2 默認使用firewalld ;iptables默認無法被systemctl控制,需要安裝iptables-services、iptables-devel這兩個依賴包

二、將firewalld切換到 iptables

  1. 停止並禁用 firewalld

systemctl stop firewald.service

systemctl disable firewald.service

2.安裝iptables-services、iptables-devel

yum install iptables-services iptables-devel

3.啓用並啓動iptables

systemctl enable iptables.service

systemctl start iptables.service

4.查看iptables配置文件

vim /etc/sysconfig/iptables

5.開啓轉發功能

(1) 在 /etc/sysctl.conf 中添加 net.ipv4.ip_forward=1

(2) sudo sysctl -p 同步內核參數

(3) 繼續查看內核參數 less /proc/sys/net/ipv4/ip_forward 如果爲1 則配置生效

1 # sample configuration for iptables service
2 # you can edit this manually or use system-config-firewall
3 # please do not ask us to add additional ports/services to this default configuration
4 *filter
5 :INPUT ACCEPT [0:0]
6 :FORWARD ACCEPT [0:0]
7 :OUTPUT ACCEPT [0:0]
8 -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
9 -A INPUT -p icmp -j ACCEPT
10 -A INPUT -i lo -j ACCEPT
11 -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
12 -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
13 -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
14 -A INPUT -p tcp -m state --state NEW -m tcp --dport 139 -j ACCEPT
15 -A INPUT -p tcp -m state --state NEW -m tcp --dport 445 -j ACCEPT
16 -A INPUT -p tcp -m state --state NEW -m tcp --dport 137 -j ACCEPT
17 -A INPUT -p tcp -m state --state NEW -m tcp --dport 138 -j ACCEPT
18 -A INPUT -p tcp -m state --state NEW -m tcp --dport 15672 -j ACCEPT
19
20 -A INPUT -j REJECT --reject-with icmp-host-prohibited
21 -A FORWARD -j REJECT --reject-with icmp-host-prohibited
22 COMMIT
#查看iptables現有規則
iptables -L -n
#先允許所有,不然有可能會杯具
iptables -P INPUT ACCEPT
#清空所有默認規則
iptables -F
#清空所有自定義規則
iptables -X
#所有計數器歸0
iptables -Z
#允許來自於lo接口的數據包(本地訪問)
iptables -A INPUT -i lo -j ACCEPT
#開放22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#開放21端口(FTP)
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
#開放80端口(HTTP)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#開放443端口(HTTPS)
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
#允許ping
iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
#允許接受本機請求之後的返回數據 RELATED,是爲FTP設置的
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#其他入站一律丟棄
iptables -P INPUT DROP
#所有出站一律綠燈
iptables -P OUTPUT ACCEPT
#所有轉發一律丟棄
iptables -P FORWARD DROP<span style="color:#000000;border:none;background-color:inherit;"><span style="color:#000000;border:none;background-color:inherit;">
#保存上述規則
</span>service iptables save
</span>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章