之前这一段总有人问我关于防火墙的一些规则问题,虽然不能算精通但多多少少把自己需要用到的一些规则都可以实现出来。下面是总会用到的一些规则。
Firewalld的基本使用:
启动:systemctl start firewalld
关闭:systemctl stop firewalld
查看状态:systemctl status firewalld
开机禁用:systemctl disable firewalld
开机启用:systemctl enable firewalld
查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl –failed
显示状态:firewall-cmd –state
查看已被激活的 Zone 信息:firewall-cmd –get-active-zones
重载配置文件:firewall-cmd –reload
清除状态信息:firewall-cmd –complete-reload
查看Firewall规则信息:firewall-cmd –list-all
列出允许通过的端口:firewall-cmd –zone=public –list-ports
#需要永久开启的都需要在规则后面添加
--permanent
#查看
firewall-cmd --zone= public --query-port=80/tcp
#删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent
#普通端口开启
firewall-cmd --zone=public --add-port=22/tcp --permanent ; firewall-cmd --zone=public --add-port=ssh --permanent ; firewall-cmd --zone=public --add-port=80/tcp --permanent ; firewall-cmd --zone=public --add-port=http --permanent ; #允许某个端口范围通过 firewall-cmd --zone=public --add-port=1000-2000/tcp --permanent
# 禁止SSH通过 firewall-cmd --disable service=ssh # 允许SSH服务通过 firewall-cmd --enable service=ssh
#允许指定ip或ip段访问指定端口
firewall-cmd --zone=public --add-rich-rule 'rule family="ipv4" source address="192.168.10.0/8" port port=1012 protocol="tcp" accept';
#查看防火墙伪装ip(在做转发的时候需要开启,yes为开启)(–zone=external)
firewall-cmd --query-masquerade
#设置防火墙伪装ip
firewall-cmd --add-masquerade
P.S:开启IP伪装后,keepalived的vip出现问题,无法通过vip来访问80端口,关闭伪装后恢复,有遇到此情况的吗?
#端口转发将端口21326转发至某机器的80端口(需要masquerade状态yes才生效)
firewall-cmd --add-forward-port=port=21326:proto=tcp:toport=80:toaddr=192.168.1.180 --permanent;
#端口的转发
firewall-cmd --permanent --zone=public --add-forward-port=prot=1234:proto=udp:toport=4321;
#临时允许Samba服务通过600秒
firewall-cmd --enable service=samba --timeout=600
#keepalived的VIP问题
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface ens33 --destination 224.0.0.18 --protocol vrrp -j ACCEPT
Firewall 能将不同的网络连接归类到不同的信任级别,Zone 提供了以下几个级别
drop: 丢弃所有进入的包,而不给出任何响应
block: 拒绝所有外部发起的连接,允许内部发起的连接
public: 允许指定的进入连接
external: 同上,对伪装的进入连接,一般用于路由转发
dmz: 允许受限制的进入连接
work: 允许受信任的计算机被限制的进入连接,类似 workgroup
home: 同上,类似 homegroup
internal: 同上,范围针对所有互联网用户
trusted: 信任所有连接
开机伪装后,没办法限制某个ip的端口访问
有遇到吗?