说明:Centos 7 默认的防火墙是 firewall ,鉴于 iptables 使用的比较广,本文简要介绍在 CentOS7.0 系统下 iptables 服务的安装以及相关的使用方法。
关闭 firewall
为了防止与 iptables 服务冲突,先禁用 firewall 开机启动使用systemctl status firewalld
查看服务状态,active/inactive表明服务是运行/关闭状态(如下图)
- 查看firewalld状态
1 | systemctl status firewalld |
- 关闭fiewwalld
1 | systemctl stop firewalld |
- 禁止开机启动
1 | systemctl disable firewalld |
安装 iptables
1 | yum install -y iptables-services |
- 启动iptables
1 | systemctl start iptables |
- 设置开机启动
1 | systemctl enable firewalld |
iptables简单配置
- 清除已有iptables规则
1 | iptables -F |
- 开放指定的端口
1 | vim /etc/sysconfig/iptables |
- 禁止其他未允许的规则访问(注意:如果22端口未加入允许规则,SSH链接会直接断开。)
1 .用DROP方法
iptables -A INPUT -p tcp -j DROP
2 .用REJECT方法
iptables -A INPUT -j REJECT
iptables -A FORWARD -j REJECT
3 .屏蔽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
4 .查看已添加的iptables规则
iptables -L -n
v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
x:在 v 的基础上,禁止自动单位换算(K、M) vps侦探
n:只显示IP地址和端口号,不将ip解析为域名
5 .删除已添加的iptables规则
将所有iptables以序号标记显示,执行:
iptables -L -n –line-numbers
比如要删除INPUT里序号为8的规则,执行:
iptables -D INPUT 8
6 .iptables的开机启动及规则保存
CentOS上可能会存在安装好iptables后,iptables并不开机自启动,可以执行一下:
chkconfig –level 345 iptables on
或者
systemctl enable iptables.service
将其加入开机启动。