iptables,是Linux下自帶的一款免費的基於包過濾的防火牆工具,可以對流入、流出、流經服務的數據包進行精細的控制,而在centos7中將iptables給取消掉了,我們需要自行安裝,下面介紹iptables的安裝及使用。
一、安裝iptables
1、查看iptables是否安裝
命令:systemctl status iptables
2、安裝iptables
命令:yum -y install iptables-services
查看安裝是否成功
3、關閉selinux與firewalld
關閉selinux,不關閉時,iptables不讀取配置文件
centos7中默認的防火牆是firewalld,使用iptables需要先關閉firewalld防火牆
關閉selinux
#查看selinux [root@serverD ~]# getenforce Permissive #臨時關閉selinux [root@serverD ~]# setenforce 0
命令:vim /etc/selinux/config 修改完成后需要重啟才能生效
關閉firewalld並關閉開機自啟
#關閉防火牆
systemctl stop firewalld
#關閉開機自啟
systemctl disable firewalld
#查看防火牆狀態
systemctl status firewalld
二、命令
1、iptables的命令
systemctl start iptables #啟動
systemctl status iptables #查看狀態
systemctl enable iptables #設置開機自啟
2、iptables常用命令
iptables -h #查詢幫助
iptables -L -n #
iptables -F #清除所有規則
三、語法
INPUT:過濾進入主機的數據包
OUTPUT:處理從本機出去的數據包
FORWARD:負責轉發流經本機但不進入本機的數據包,起到轉發作用
-A:追加到規則的最后一條
-D:刪除記錄
-I:添加到規則的第一條
-p:規定通信協議,常用協議:tcp、udp、icmp、all
-j:指定跳轉的目標,常見的目標:ACCEPT(接收數據包)、DROP(丟棄數據包)、REJECT(重定向,一般不使用會帶來安全隱患)
四、案例
1、ip過濾
禁止192.168.200.113 IP地址的所有類型數據接入
iptables -A INPUT ! -s 192.168.200.113 -j DROP
2、開發端口
iptables -A INPUT -P TCP --dport 80 -j ACCEPT #開發80端口
3、開發端口范圍
iptables -I INPUT -p tcp --dport 22:80 -j ACCEPT #開放22-80范圍的端口
4、不允許80端口流出
iptables -I OUTPUT -p tcp --dport 80 -j DROP
5、配置配置文件
vim /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
修改配置文件並重啟