【CentOS7】防火墙配置使用iptables

iptables 防火墙

 资料:https://www.cnblogs.com/kevingrace/p/6265113.html

安装 iptables

# 检查状态
systemctl status iptables

# 停止firewall
systemctl stop iptables

# 禁用开机启动firewall
systemctl disable iptables

# 安装 iptables
yum install -y iptables iptables-services

# 启动 iptables
systemctl start iptables

# 启用开机启动 iptables
systemctl enable iptables
vim /etc/sysconfig/iptables

默认配置

# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9200 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 9300 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5601 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5044 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8848 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 15672 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5672 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 6379 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8765 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

设置规则

参数:

-t<表>:指定要操纵的表
-A:向规则链中添加条目
-D:从规则链中删除条目
-i:向规则链中插入条目
-R:替换规则链中的条目
-L:显示规则链中已有的条目
-F:清除规则链中已有的条目
-Z:清空规则链中的数据包计算器和字节计数器
-N:创建新的用户自定义规则链
-P:定义规则链中的默认目标
-h:显示帮助信息
-p:指定要匹配的数据包协议类型
-s:指定要匹配的数据包源ip地址
-j<目标>:指定要跳转的目标
-i<网络接口>:指定数据包进入本机的网络接口
-o<网络接口>:指定数据包要离开本机所使用的网络接口
# 查看iptables现有规则
iptables -L -n

# 先允许所有,不然有可能会杯具
iptables -P INPUT ACCEPT

# 清空所有默认规则
iptables -F

# 清空所有自定义规则
iptables -X

# 所有计数器归0
iptables -Z

# 允许来自于lo接口的数据包(本地访问)
iptables -A INPUT -i lo -j ACCEPT

开放端口
iptables -A INPUT -p tcp -s IP地址 --dport 端口 -j ACCEPT

# 保存规则
service iptables save

# 允许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信任
iptables -A INPUT -p tcp -s 45.96.174.68 -j ACCEPT

# 过滤所有非以上规则的请求
iptables -P INPUT DROP

# 要封停一个IP,使用下面这条命令:
iptables -I INPUT -s IP地址 -j DROP

# 要解封一个IP,使用下面这条命令:
iptables -D INPUT -s IP地址 -j DROP

 iptables 实列

开放端口
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

# 保存规则
service iptables save

删除端口
iptables -D INPUT -p tcp --dport 3306 -j ACCEPT

常用端口

# http 80
# https 443
# https 443
# mysql 3306
# mongodb 27017
# postgre 5432
# elasticsearch 9200
# redis 6379
# rabbitmq 15672, 5672
# consul 8500
# nacos 8848
# ftp 21
# ssh 22
# telnet 23
# smtp 25
原文地址:https://www.cnblogs.com/yangchongxing/p/15640025.html