以前使用的是CentOS6.5,而且学艺不精,用啥查啥,用完就忘。而且网上大部分资料是基于CentOS7以前的版本。html
在CentOS7中,默认的防火墙不是iptables,而是firewalld。并且须要install/update/install service以后才能使用。tcp
禁用/中止自带的firewalld服务:ide
#先检查是否安装了iptables service iptables status #安装iptables yum install -y iptables #升级iptables yum update iptables #安装iptables-services yum install iptables-services
#中止firewalld服务 systemctl stop firewalld #禁用firewalld服务 systemctl mask firewalld
#查看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
#若是要添加内网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
#保存上述规则 service iptables save
#注册iptables服务 #至关于之前的chkconfig iptables on systemctl enable iptables.service #开启服务 systemctl start iptables.service #查看状态 systemctl status iptables.service
解决vsftpd在iptables开启后,没法使用被动模式的问题spa
1.首先在/etc/sysconfig/iptables-config中修改或者添加如下内容3d
#添加如下内容,注意顺序不能调换 IPTABLES_MODULES="ip_conntrack_ftp" IPTABLES_MODULES="ip_nat_ftp"
2.从新设置iptables设置rest
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
完整设置脚本:code
#!/bin/sh iptables -P INPUT ACCEPT iptables -F iptables -X iptables -Z iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 21 -j ACCEPT iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD DROP service iptables save systemctl restart iptables.service
转载自:http://www.cnblogs.com/kreo/p/4368811.htmlhtm