Firewall
一 防火墙相关概念
二 firewall服务
防火墙守护 firewalld 服务引入了一个信任级别的概念来管理与之相关联的连接与接口。它支持 ipv4 与 ipv6,并支持网桥,采用 firewall-cmd (command) 或 firewall-config (gui) 来动态的管理 kernel netfilter 的临时或永久的接口规则,并实时生效而无需重启服务。
火墙本质 kernel(内核)中的iptables(不能直接管理) --过滤数据包
firewalld是往iptables中写内容的软件 --执行内容相对较少,操作简单(偏向windows更多)
iptables 是另一个往iptables中写内容软件 --执行内容相对较多,操作难
两个管理方式只能同时开启一个
9.trusted: 信任所有连接
三 安装管理
yum install firewalld firewall-config -y
图形管理火墙
图形界面:firewall-config &(加上可同时允许两个进程)
(runtime临时修改,立即生效 permanent永久更改,需要重启)
watch -n 1 firewall-cmd --list-all --监控火墙配置(在图形管理中临时更改的内容会直接显示在上面,永久更改的重启firewalld后会在其显示)
firewall-cmd --get-services ##列出支持的服务,在列表中的服务是放行的
firewall-cmd --get-service --permanent ##检查下一次重载后将激活的服务。firewall-cmd --query-service=ftp ##查看ftp服务是否支持,返回yes或者no
firewall-cmd --zone=internal --add-port=443/tcp ##为internal域开放443/tcp协议端口
firewall-cmd --zone=internal --list-services ##列出internal域的所有servicefirewall-cmd --list-all-zones ##查看所有的域规则
firewall-cmd --set-default-zone=xxx ##设定默认域
很多时候我们需要开放端口或开放某IP访问权限,我们需要先查看我们当前默认的zone是哪个,然后在对应的zone里面添加port和source,这样对外才会有作用。
比如我当前的默认zone是public,我需要开放80端口对外访问,则执行如下命令:###### --permanent 永久更改 ######
##配置文件永久更改 /usr/lib/firewalld/zones ##
##服务设置永久更改 /usr/lib/firewalld/services ##
##当添加或卸载时不写域则为默认域 ##
五 限制IP登陆域
firewall-cmd --add-source=172.25.254.40 --zone=trusted --让此IP默认登陆trusted
firewall-cmd --add-interface=eth1 --zone=trusted --将eth1网盘添加至trusted域(先将其从其他域卸掉)
firewall-cmd --get-active-zones --查看正在运行的域
firewall-cmd --reload --重新加载火墙策略(已连接用户不会中断)
firewall-cmd --complete-reload --中断当前连接,重新加载策略(firewall的规则被保存在/etc/firewalld目录的文件中)
#### dmz
interfaces: eth0
ROL
sources: 172.25.0.252/32
trusted
interfaces: eth1
sources: 172.25.254.40 ###此为正确显示(若不行,便重启)
测试:
设置两个不同网段的ip,分别测试http服务
六 让ip能访问而不能登陆(http可用而ssh不可用)七 DirectRules
通过firewall-cmd工具,可以使用--direct选项在运行时间里增加或者移除链。如果不熟悉iptables,使用直接接口非常危险,因为您可能无意间导致防火墙被入侵。直接端口模式适用于服务或者程序,以便在运行时间内增加特定的防火墙规则。直接端口模式添加的规则优于应用。
参数:filter(本地数据限制):(-s源地址,-d目的地址,-p协议,-dport端口,-j行为/REJECT拒绝/ACCEPT同意/DROP丢弃)
firewall-cmd --direct --add-rule ipv4 filter IN_public_allow 0 -p tcp --dport 80 -j ACCEPT 添加规则
firewall-cmd --direct --get-all-rules 列出规则
firewall-cmd --direct --remove-rule ipv4 filter IN_public_allow 0 -p tcp --dport 80 -j ACCEPT 删除规则
八 RichRules
通过该地址,可以用比直接接口方式更易理解的方式建立复杂防火墙的规则。此外。还能永久保留保留设置,这种语法使用关键词值
主要参数:source源地址 destination目的地址 service服务名称 port端口 protocol协议名
地址伪装示例:
firewall-cmd --add-masquerade 开启地址伪装
firewall-cmd --add-rich-rule=‘rule family=ipv4 source address=172.25.254.111 masquerade’ 设定伪装的地址策略
端口转发示例:
firewall-cmd --add-forward-port=port=80:pooto=tcp:toport=8080:toaddr=172.25.53.100