Firewalld的原则:
如果一个客户端访问服务器,服务器根据以下原则决定使用哪个 zone 的策略去匹配
1.如果一个客户端数据包的源 IP 地址匹配 zone 的 sources,那么该 zone 的规则就适
用这个客户端;一个源只能属于一个zone,不能同时属于多个zone。
2.如果一个客户端数据包进入服务器的某一个接口(如eth0)区配zone的interfaces,
则么该 zone 的规则就适用这个客户端;一个接口只能属于一个zone,不能同时属于多个zone。
3.如果上述两个原则都不满足,那么缺省的 zone 将被应用
你可以使用任何一种 firewalld 配置工具来配置或者增加区域,以及修改配置。工具有例如firewall-config 这样的图形界面工具, firewall-cmd 这样的命令行工具,或者你也可以在配置文件目录中创建或者拷贝区域文件,/usr/lib/firewalld/zones 被用于默认和备用配置,/etc/firewalld/zones 被用于用户创建和自定义配置文件。
命令行工具firewall-cmd支持全部防火墙特性。(更多firewall相关命令见上篇博客)
firewall防火墙案例
一.
1.搭建web,ssh服务:使用yum仓库安装httpd可以解决依赖包的问题
搭建yum仓库也可以使用rpm -ivh 安装
安装ssh,web服务
修改IP地址添加参数:IPADDR,NETMASK,GATEWAY,DNS
2.修改服务端口
①ssh:/etc/ssh/sshd_config
重启服务查看服务端口号
②httpd:/etc/httpd/conf/httpd.conf 参数:ServerName 域名:端口号 Listen: 将要修改的端口号
启动ssh,http服务 Slinux必须关闭否则会影响访问:/etc/selinux/config
3.禁用外网ping通内网建立firewall防火墙规则:firewall-cmd --add-icmp-block=icmp类型
验证
4.192.168.31.83除了web和ssh之外,禁止任何访问 firewall-cmd --add-port=端口号/协议
二.此处需要网关两个网卡
1.打开路由转发:vim /etc/sysctl.confrwart 添加参数net.ipv4.ip_forward=1
载入设置
测试能不能访问2008服务器地址(设置的地址为案例172.31.1.2)
3.实现内网访问2008地址伪装
在网关上设置firewall-cmd --add-masquerade
查看2008服务器web服务日志可见伪装的地址
3.如要求所示:由2008访问内网web端口映射(要求所示为web为8000)
firewall-cmd --add-forward-port=port=80:proto=tcp:toport:8000:toaddr=192.168.31.83
4.由2008访问内网ssh远程管理端口映射(要求所示为ssh为10211)
firewall-cmd --add-forward-port=port=23456:proto=tcp:toport:10211:toaddr=192.168.31.83
5.网关主机禁止任何访问(查看活动区域及详情firewall-cmd [--zone=区域] --list-all)
firewall-cmd [--zone=区域] --remove-service=服务 ([--zone=区域]为指定区域)