提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
Firewalld防火墙
防火墙基础一、防火墙配置二、使用防火墙安装http服务测试分别测试内网、外网、dmz三、firewalld高级配置四、配置防火墙防火墙基础
防火墙的作用和特点 防火墙的作用 对数据包进行过滤,发现可疑流量进行阻断 防火墙的特点 增强安全防止外网对内部网络发送攻击 防火墙的类型 软件防火墙 Windows防火墙、iptables、firewalld、TMG都属于软件防火墙处理数据速度慢 硬件防火墙 华为防火墙、深信服、ASA防火墙都属于硬件防火墙处理数据速度快可靠性强 防火墙功能分类 代理防火墙 过滤用户访问资源需要指定防火墙代理IP地址和端口上网 网络防火墙 对数据包进行过滤 状态防火墙 硬件防火墙属于状态化防火墙
防火墙类型:
Trusted:信任区域,允许所有流量通过属于内部区域
Public:公共区域,默认接口不设置区域属于public区域,不允许流量入站允许出站
work:工作区域允许ssh、ipp-client、dhcp其他全部拒绝
home:家庭区域,允许ssh、ipp-client、samba-cient、dhcp,拒绝其他流量入站
internal:内部区域,不允许流量入站,允许信任网络流量
external:外部区域允许ssh其他流量全部拒绝,非信任网络
dmz:非军事化区域,保存对外提供服务的服务器
block:隔离区域不允许流量入站
drop:丢弃区域,拒绝所有流量
提示:我们安装Centos 7 系统时会自动安装firewalld
一、防火墙配置
irewalld工具类型
1)firewall-cmd
适合在字符模式配置防火墙
2)firewall-config
适合图形化配置防火墙使用
[root@centos02 ~]# systemctl start firewalld//启动firewalld服务[root@centos02 ~]# systemctl enable firewalld//设置firewalld为开机自启
查看运行状态
[root@centos02 ~]# systemctl status firewalld
或者使用
[root@centos02 ~]# firewall-cmd --staterunning
禁用firewalld(代码如下)
[root@centos02 ~]# systemctl stop firewalld//停止firewalld[root@centos02 ~]# systemctl disable firewalld//设置firewalld为开机不自启动
我们可以通过一些firewall-cmd命令查看防火墙接口区域的划分
将ens32设置到trusted区域
[root@centos02 ~]# firewall-cmd --add- interface=ens32 --zone=trusted
查看trusted区域所有规则
[root@centos02 ~]# firewall-cmd --zone=trusted --list-all
查看防火墙区域类型
[root@centos02 ~]# firewall-cmd --get-zones
查看接口所在区域
[root@centos02 ~]# firewall-cmd --get-zone-of-interface=ens32
查看活动区域
[root@centos02 ~]# firewall-cmd --get-active-zones
查看默认区域
[root@centos02 ~]# firewall-cmd --get-default-zone
修改默认区域为trusted
[root@centos02 ~]# firewall-cmd --set-default-zone=trusted
修改ens2接口到dmz
[root@centos02 ~]# firewall-cmd --change-interface=ens32 --zone=dmz
将ens32接口从dmz区域移除
[root@centos02 ~]# firewall-cmd --remove-interface=ens32 --zone=dmz
二、使用防火墙安装http服务测试分别测试内网、外网、dmz
开四台虚拟机
拿一台模拟内网、一台模拟防火墙、一台模拟外网、一台模拟dmz
代码如下(示例):
将模拟防火墙的虚拟机添加网卡
添加好网卡后,进行配置网卡
打开其他三台虚拟机配置网卡
内网网卡
配置外网网卡(防火墙中配置)
dmz网卡配置以及防火墙中配置
配置结束记得重启网卡配置
记得保存网卡
开启路由功能
[root@centos02 ~]# vim /etc/sysctl.conf net.ipv4.ip_forward = 1
检查是否开启功能使用 sysctl -p
将防火漆设置开机自启
[root@centos02 ~]# systemctl start firewalld//开启服务[root@centos02 ~]# systemctl enable firewalld//设置开机自启
将防火墙中配置的ens32、ens34、ens35设置到不同的区域之中。
[root@centos02 ~]# firewall-cmd --add-interface=ens32 --zone=trusted//将ens32分配到trusted中
[root@centos02 ~]# firewall-cmd --add-interface=ens34 --zone=external//将ens34分配到external中
[root@centos02 ~]# firewall-cmd --add-interface=ens35 --zone=dmz//将ens35分配到dmz中
安装服务实现浏览器测试
通过防火墙去远程,安装https协议通信
外网安装
[root@centos03 ~]# rm -rf /etc/yum.repos.d/CentOS-*[root@centos03 ~]# mount /dev/cdrom /mnt/mount: /dev/sr0 写保护,将以只读方式挂载[root@centos03 ~]# yum -y install httpd ssl_mod
dmz中安装服务
[root@centos04 ~]# rm -rf /etc/yum.repos.d/CentOS-*[root@centos04 ~]# mount /dev/cdrom /mnt/mount: /dev/sr0 写保护,将以只读方式挂载[root@centos04 ~]# yum -y install httpd ssl_mod
分别给外网和dmz添加端口号,并允许通信
443/80
三、firewalld高级配置
端口转发
富语言规则
IP地址地址伪装
IP地址地址伪装
1)IP地址伪装的作用将多个私网IP地址映射到一个公网IP地址访问互联网2)IP地址伪装特点 节约公网IP地址隐藏内部网络增强网络安全性只能配置IPv4协议
端口转发
1)端口转发的作用 将一个IP地址和端口号映射到另一个IP地址和端口上上2)端口转发特点将内网服务器发布到互联网使用
富语言规则
1)富语言规则特点 表达式防火墙配置语言语法不严格配置灵活简单2)富语言规则动作类型accept:允许访问drop:拒绝访问,不给用户提醒reject:拒绝访问,给用户提醒log:记录到日志中3)富语言规则选项source address:源IP地址或者网络destination address:目标IP地址或者网络service:服务port:端口号protocol:协议masquerade:配置IP地址伪装 forward-port:端口转发 icmp-drop:限制icmp协议
四、配置防火墙
富语言规则使用
配置IP地址伪装
配置端口转发
代码演示(如下)(使用防火墙实现)
1)允许使用ah验证[root@centos02 ~]# firewall-cmd --zone=trusted --add-rich-rule='rule protocol value=ah accept'2)删除ah验证[root@centos02 ~]# firewall-cmd --zone=trusted --remove-rich-rule='rule protocol value=ah accept'3)查看富语言规则[root@centos02 ~]# firewall-cmd --zone=trusted --list-rich-rules 4)拒绝DMZ区域192.168.100.0/24网络通信[root@centos02 ~]# firewall-cmd --zone=dmz --add-rich-rule='rule family=ipv4 source address=192.168.100.0/24 drop'5)允许外网20和21号端口通信[root@centos02 ~]# firewall-cmd --zone=external --add-rich-rule='rule family=ipv4 source address=192.168.200.0/24 port port=20-21 protocol=tcp accept'
配置IP地址伪装(通过实现隐藏内部网络、增强网络安全性)
1)关闭系统ip地址伪装 [root@centos02 ~]# firewall-cmd --remove-masquerade --zone=external 2)配置将192.168.100.0/24网络伪装到防火墙外网接口IP地址访问[root@centos02 ~]# firewall-cmd --zone=external --add-rich-rule='rule family=ipv4 source address=192.168.100.0/24 masquerade'
配置端口转发
1)将内网服务器192.168.100.10的80端口映射到192.168.200.20的80端口上[root@centos02 ~]# firewall-cmd --zone=external --add-rich-rule='rule family=ipv4 destination address=192.168.200.20/32 forward-port port=80 protocol=tcp to-addr=192.168.100.10'2)添加防火墙规则允许http协议通信[root@centos02 ~]# firewall-cmd --add-service=http --zone=external
使用外网进行测试