一、防火墙
1、netfilter和防火墙管理工具
1)netfilter
防火墙内核模块
判断Linux是否支持防火墙功能检查内核是否有netfilter模块
2)防火墙管理工具
iptables:Centos6以前的防火墙管理工具
firewalld:Centos7以后使用,配置简单方便灵活
2、防火墙配置模式
1)运行配置模式
防火墙服务重新启动规则丢失
2)永久配置模式
服务重新启动不影响规则
3、Firewalld数据流处理的方式
1)源地址关联到区域
执行区域中的规则
2)源地址没有关联到区域
执行接口所在区域规则
3)接口没有关联到区域
执行默认所在区域规则
firewalld默认区域是public
4、firewalld区域类型
1)trusted区域
信任区域
允许所有流量
一般内部区域使用
2)internal
内部区域
内部网网络
3)public
默认区域
允许所有数据通过
4)external
拒绝所有流量进入当前区域
非信任网络
互联网接口划分在external区域
5)dmz
非军事化区域
拒绝所有流量进入区域
保存服务器对外提供服务
6)work
工作区域
拒绝流量进入允许ssh、dhcp
7)home
允许ssh、mdns、ipp-client
8)blook
允许所有流量通过
9)drop
拒绝所有通信
二、防火墙的基本应用
1、查看区域和配置默认区域
1)查看区域
[root@centos04 ~]# firewall-cmd --get-zones
2)查看防火墙默认区域
[root@centos04 ~]# firewall-cmd --get-default-zone
3)查看防火墙激活区域
[root@centos04 ~]# firewall-cmd --get-active-zones
4)修改默认区域
[root@centos04 ~]# firewall-cmd --set-default-zone=trusted
2、将防火墙接口划分到区域中
1)将ens32接口划分到trusted区域
[root@centos04 ~]# firewall-cmd --add-interface=ens32 --zone=trusted
2)查看接口所在区域
[root@centos04 ~]# firewall-cmd --get-zone-of-interface=ens32
3)将ens32接口修改到dmz区域
[root@centos04 ~]# firewall-cmd --change-interface=ens32 --zone=dmz
4)将ens32接口从truseted区域移除
[root@centos04 ~]# firewall-cmd --remove-interface=ens32 --zone=trusted
3、区域添加访问规则
1)允许外部区域使用ftp
[root@centos04 ~]# firewall-cmd --add-service=ftp --zone=external
2)查看外部区域的规则
[root@centos04 ~]# firewall-cmd --list-services --zone=external
3)显示外部区域规则详细信息
[root@centos04 ~]# firewall-cmd --list-all --zone=external
4)不允许外部区域使用ssh服务
[root@centos04 ~]# firewall-cmd --remove-service=ssh --zone=external
5)允许外部区域的443端口通信
[root@centos04 ~]# firewall-cmd --add-port=443/tcp --zone=external
6)不允许外部区域使用443端口
[root@centos04 ~]# firewall-cmd --remove-port=443/tcp --zone=external
7)查看添加的端口号规则
[root@centos04 ~]# firewall-cmd --list-ports --zone=external
4、配置阻止使用ping
1)查看是否添加规则
[root@centos04 ~]# firewall-cmd --list-icmp-blocks
2)不允许发送icmp请求
[root@centos04 ~]# firewall-cmd --add-icmp-block=echo-request --zone=trusted
3)允许发送icmp响应
[root@centos04 ~]# firewall-cmd --add-icmp-block=echo-reply --zone=trusted
4)添加永久规则
[root@centos04 ~]# firewall-cmd --add-icmp-block=echo-request --zone=trusted --permanent
实验环境
网关
[root@localhost ~]# hostname gateway-server
[root@localhost ~]# bash
[root@gateway-server ~]# ifconfig
[root@gateway-server ~]# cd /etc/sysconfig/network-scripts/
[root@gateway-server network-scripts]# ls
[root@gateway-server network-scripts]# cp ifcfg-ens33 ifcfg-ens36
[root@gateway-server network-scripts]# cp ifcfg-ens33 ifcfg-ens37
[root@gateway-server network-scripts]# vim ifcfg-ens36
[root@gateway-server network-scripts]# vim ifcfg-ens37
[root@gateway-server network-scripts]# systemctl restart network
[root@gateway-server network-scripts]# cd
[root@gateway-server ~]# ifconfig
[root@gateway-server ~]# vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
[root@gateway-server ~]# sysctl -p
Web服务
[root@ltsw ~]# hostname web
[root@ltsw ~]# bash
[root@ltsw ~]#vim /etc/sysconfig/network-scripts/ifcfg-ens32
[root@web ~]# mount /dev/cdrom /mnt
[root@web ~]# yum -y install httpd mod_ssl
[root@web ~]# systemctl enable httpd
[root@web ~]# systemctl start httpd
[root@web ~]# vim /var/www/html/index.html
this is a test web
[root@web ~]# vim /etc/ssh/sshd_config
在Port 22下面一行加Port 12345
[root@web ~]# setenforce 0
[root@web ~]# systemctl restart sshd
[root@web ~]# systemctl status firewalld
[root@web ~]# firewall-cmd --set-default-zone=dmz
[root@web ~]# firewall-cmd --zone=dmz --add-service=https --permanent
[root@web ~]# firewall-cmd --zone=dmz --add-port=12345/tcp --permanent
[root@web ~]# firewall-cmd --add-icmp-block=echo-request --zone=dmz --permanent
[root@web ~]# firewall-cmd --zone=dmz --remove-service=ssh --permanent
[root@web ~]# firewall-cmd --reload
[root@web ~]# firewall-cmd --list-all --zone=dmz
[root@web ~]# firewall-cmd --zone=dmz --add-service=http --permanent
[root@web ~]# firewall-cmd --reload
4.4
[root@gateway-server ~]# firewall-cmd --state
[root@gateway-server ~]# firewall-cmd --set-default-zone=external
[root@gateway-server ~]# firewall-cmd --list-all
[root@gateway-server ~]# firewall-cmd --change-interface=ens35 --zone=trusted
[root@gateway-server ~]# firewall-cmd --change-interface=ens34 --zone=dmz
[root@gateway-server ~]# firewall-cmd --get-active-zones
本机vm2地址2网段
[root@gateway-server ~]# firewall-cmd --zone=external --add-port=12345/tcp --permanent
[root@gateway-server ~]# firewall-cmd --zone=external --remove-service=ssh --permanent
[root@gateway-server ~]# firewall-cmd --zone=external --add-icmp-block=echo-request --permanent
[root@gateway-server ~]# firewall-cmd --reload
[root@gateway-server ~]# vim /etc/ssh/sshd_config
Port 12345
[root@gateway-server ~]# setenforce 0
[root@gateway-server ~]# systemctl restart sshd
第一台
[root@local ~]# ssh -p 12345 192.168.4.4