1、检查iptables的状态,看看是否安装了。
service iptables status
2、发现真的没有安装,开始安装iptables和iptables-services。
yum install -y iptables
yum install iptables-services
3、查看状态
service iptables status
4、停止和禁用防火墙
systemctl stop firewalld
systemctl mask firewalld
5、开始配置iptables
- 先允许接收一切请求:iptables -P INPUT ACCEPT
- 清空默认规则:iptables -F
- 清空自定义规则:iptables -X
- 计数器重置为0:iptables -Z
- 允许来自于lo接口的数据包:iptables -A INPUT -i lo -j ACCEPT
- 开放ssh端口22:iptables -A INPUT -p tcp --dport 22 -j ACCEPT(其他端口的开放写法一样,只要改掉相应的端口号即可)
- 开放80端口:iptables -A INPUT -p tcp --dport 80 -j ACCEPT
- 开放mysql:iptables -A INPUT -p tcp --dport mysql -j ACCEPT
- 允许ping:iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
- 对进来的包的状态进行检测。已经建立tcp连接的包以及该连接相关的包允许通过:iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
- 拒绝(DROP)INPUT方向所有请求。服务器本身网络请求也会被拒绝:iptables -P INPUT DROP
- 对上一条的取消:iptables -P INPUT ACCEPT
- 允许出站:iptables -P OUTPUT ACCEPT
- 禁止转发:iptables -P FORWARD DROP
- 添加内网ip信任(接受其所有TCP请求):iptables -A INPUT -p tcp -s 45.96.174.68 -j ACCEPT
- 过滤所有非以上规则的请求:iptables -P INPUT DROP???
- 封停一个ip:iptables -I INPUT -s ... -j DROP
- 解封一个ip:iptables -D INPUT -s ... -j DROP
6、保存
service iptables save
7、设置自启动
chkconfig iptables on
8、查看iptables的现有规则
iptables -L -n
9、重启防火墙
service iptables restart
10、批量开发端口
-A INPUT -p tcp -m tcp --dport 8080:8090:22:23:3306 -j ACCEPT
PS:每次重新添加规则后,一定要重启防火墙。不重启不生效。
注:防火墙的基本操作命令:
查询防火墙状态 : [root@localhost ~]# service iptables status
停止防火墙 : [root@localhost ~]# service iptables stop
启动防火墙 : [root@localhost ~]# service iptables start
重启防火墙 : [root@localhost ~]# service iptables restart
永久关闭防火墙 : [root@localhost ~]# chkconfig iptables off
永久关闭后启用 : [root@localhost ~]# chkconfig iptables o