服务器环境:centos7.1
CentOS7 默认的防火墙不是 iptables,而是 firewalle.
- 禁用/停止自带的 firewalld 服务
## 停止firewalld服务systemctl stop firewalld## 禁用firewalld服务systemctl mask firewalld
- 安装 iptables iptables-services
## 先检查是否安装了iptablesservice iptables status## 安装iptablesyum install -y iptables## 升级iptablesyum update iptables## 安装iptables-servicesyum install iptables-services
- 设置现有规则
## 查看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## 保存上述规则service iptables save
- 其他规则设定
## 如果要添加内网ip信任(接受其所有TCP请求)## ***.***.***.***为ip地址iptables -A INPUT -p tcp -s ***.***.***.*** -j ACCEPT## 过滤所有非以上规则的请求iptables -P INPUT DROP## 要封停一个IP,使用下面这条命令:iptables -I INPUT -s ***.***.***.*** -j DROP## 要解封一个IP,使用下面这条命令:iptables -D INPUT -s ***.***.***.*** -j DROP
- 服务的启动与禁用相关命令
## 注册iptables服务开机启动## 相当于以前的chkconfig iptables onsystemctl enable iptables.service## 在开机时禁用服务systemctl disable iptables.service## 查看服务是否开机启动systemctl is-enabled iptables## 启动服务## 相对于之前service iptables stop/start/status/restart/reload等systemctl start iptables## 关闭服务systemctl stop iptables## 重启服务systemctl restart iptables## 服务状态systemctl status iptables
- 以下是 iptables 配置的脚本
#!/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
