生命不息
折腾不止

CentOS7安装iptables防火墙

CentOS7 默认的防火墙不是 iptables, 而是 firewalle.

安装 iptable   iptable-service

 复制代码
# 先检查是否安装了 iptables
service iptables status
# 安装 iptables
yum   install   -y iptables
# 升级 iptables
yum update iptables 
# 安装 iptables-services
yum install iptables-services
 复制代码

禁用 / 停止自带的 firewalld 服务

# 停止 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 服务

 复制代码
# 注册 iptables 服务 
# 相当于以前的 chkconfig iptables on
systemctl 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/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
 复制代码
赞(0)
未经允许不得转载:91云(91yun.co) » CentOS7安装iptables防火墙

留言 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址