RHEL7、CentOS7 下使用 Firewall 封IP

一 、管理端口

#列出 dmz 级别的被允许的进入端口   
firewall-cmd --zone=dmz --list-ports 

#允许 tcp 端口 8080 至 dmz 级别  
firewall-cmd --zone=dmz --add-port=8080/tcp

#允许某范围的 udp 端口至 public 级别,并永久生效
firewall-cmd --zone=public --add-port=5060-5059/udp --permanent

二、网卡接口

#列出 public zone 所有网卡
firewall-cmd --zone=public --list-interfaces

#将eth0 添加至 public zone,永久
firewall-cmd --zone=public --permanent --add-interface=eth0

#eth0 存在与 public zone,将该网卡添加至 work zone,并将之从 public zone 中删除
firewall-cmd --zone=work --permanent --change-interface=eth0

#删除 public zone 中的 eth0,永久
firewall-cmd --zone=public --permanent --remove-interface=eth0

三、管理服务

#添加 smtp 服务至 work zone
firewall-cmd --zone=work --add-service=smtp

#移除 work zone 中的 smtp 服务
firewall-cmd --zone=work --remove-service=smtp

四、配置external zone 中的ip地址伪装

#查看
firewall-cmd --zone=external --query-masquerade

#打开伪装
firewall-cmd --zone=external --add-masquerade

#关闭伪装
firewall-cmd --zone=external --remove-masquerade

五、配置 public zone 的端口转发

#要打开端口转发,则需要先
firewall-cmd --zone=public --add-masquerade

#然后转发 tcp 22 端口至 3753
firewall-cmd --zone=public--add-forward-port=port=22:proto=tcp:toport=3753

#转发 22 端口数据至另一个 ip 的相同端口上
firewall-cmd --zone=public--add-forward-port=port=22:proto=tcp:toaddr=192.168.1.100

#转发 22 端口数据至另一 ip 的 2055 端口上
firewall-cmd --zone=public --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.100

六、配置public zone 的icmp

#查看所有支持的 icmp 类型
firewall-cmd --get-icmptypes
destination-unreachable echo-reply echo-request parameter-problem redirect router-advertisement router-solicitation source-quench time-exceeded

#列出
firewall-cmd --zone=public --list-icmp-blocks

#添加 echo-request 屏蔽
firewall-cmd --zone=public --add-icmp-block=echo-request [--timeout=seconds]

#移除 echo-reply 屏蔽
firewall-cmd --zone=public --remove-icmp-block=echo-reply

七、IP封禁(常用)

reject 拒绝 accept 允许,也可以通过ipset封禁ip

#封单个IP
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='222.222.222.222' reject"

#封IP段
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='222.222.222.0/24' reject"

#允许单个IP的某个端口
firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.1.2 port port=80  protocol=tcp  accept"


ipset 封禁 ip
firewall-cmd --permanent --zone=public --new-ipset=blacklist --type=hash:ip
firewall-cmd --permanent --zone=public --ipset=blacklist --add-entry=222.222.222.222

封禁网段
firewall-cmd --permanent --zone=public --new-ipset=blacklist --type=hash:net
firewall-cmd --permanent --zone=public --ipset=blacklist --add-entry=222.222.222.0/24

倒入 ipset 规则
firewall-cmd --permanent --zone=public --new-ipset-from-file=/path/blacklist.xml

然后封禁 blacklist
firewall-cmd --permanent --zone=public --add-rich-rule='rule source ipset=blacklist drop'


firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.1.2 port port=80  protocol=tcp  accept"
只对192.168.1.2这个IP只能允许80端口访问  (拒绝访问只需把 accept 换成 reject、删除该规则把 –add-rich-rule 改成 –remove-rich-rule即可)

firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=192.168.1.2/24 port port=80  protocol=tcp  accept"
只对192.168.1.2这个IP段只能允许80端口访问(拒绝访问只需把  accept 换成 reject、删除该规则把 –add-rich-rule 改成 –remove-rich-rule即可)

八、双网卡内网网卡不受防火墙限制

#公网网卡–zone=public默认区域
firewall-cmd --permanent --zone=public --add-interface=eth1   

#内网网卡–zone=trusted是受信任区域 可接受所有的网络连接
firewall-cmd --permanent --zone=trusted --add-interface=eth2

九、重新载入以生效

firewall-cmd --reload

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白正在飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值