CentOS7 默认的防火墙不是 iptables, 而是 firewalle.
安装 iptableiptable-service
# 先检查是否安装了 iptablesservice iptables status# 安装 iptablesyuminstall-y iptables# 升级 iptablesyum update iptables #安装 iptables-servicesyum install iptables-services
禁用 / 停止自带的 firewalld 服务
# 停止 firewalld 服务 systemctl stop firewalld# 禁用 firewalld 服务 systemctl mask firewalld
设置现有规则
# 查看 iptables 现有规则 iptables -L -n# 先允许所有, 不然有可能会杯具 iptables -P INPUT ACCEPT# 清空所有默认规则 iptables -F# 清空所有自定义规则 iptables -X# 所有计数器归 0iptables -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# 允许 pingiptables -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 服务
# 注册 iptables 服务 #相当于以前的 chkconfig iptables onsystemctl enable iptables.service# 开启服务 systemctl start iptables.service# 查看状态 systemctl status iptables.service
解决 vsftpd 在 iptables 开启后, 无法使用被动模式的问题
1. 首先在 / etc/sysconfig/iptables-config 中修改或者添加以下内容
# 添加以下内容, 注意顺序不能调换 IPTABLES_MODULES="ip_conntrack_ftp"IPTABLES_MODULES="ip_nat_ftp"
2. 重新设置 iptables 设置
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
以下为完整设置脚本
#!/bin/shiptables -P INPUT ACCEPTiptables -Fiptables -Xiptables -Ziptables -A INPUT -i lo -j ACCEPTiptables -A INPUT -p tcp --dport 22 -j ACCEPTiptables -A INPUT -p tcp --dport 21 -j ACCEPTiptables -A INPUT -p tcp --dport 80 -j ACCEPTiptables -A INPUT -p tcp --dport 443 -j ACCEPTiptables -A INPUT -p icmp --icmp-type 8 -j ACCEPTiptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPTiptables -P INPUT DROPiptables -P OUTPUT ACCEPTiptables -P FORWARD DROPservice iptables savesystemctl restart iptables.service
service 一般使用, chkconfig 也通用
区别
chkconfig 设置是当前不生效, linux 重启后才生效,
service 设置是即时生效, linux 关机重启后设置失效
chkconfig 重启后, 设置才生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
service 即时生效, 重启后设置失效
开启: service iptables start
关闭: service iptables stop
需要说明的是对于 Linux 下的其它服务都可以用以上命令执行开启和关闭操作.
来源: http://www.92to.com/bangong/2018/08-20/34038717.html