一、firewalld
所谓防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上构造的保护屏障.是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使Internet与Intranet之间建立起一个安全网关(Security
Gateway),从而保护内部网免受非法用户的侵入,防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成,防火墙就是一个位于计算机和它所连接的网络之间的软件或硬件。该计算机流入流出的所有网络通信和数据包均要经过此防火墙。
在网络中,所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络。换句话说,如果不通过防火墙,公司内部的人就无法访问Internet,Internet上的人也无法和公司内部的人进行通信。
实验环境准备
三台主机
server 172.25.254.127
client 1272.25.254.27 172.25.254.27
1 对iptables停止使用操作
-->systemctl stop iptables.service ##停止火墙iptables
-->systemctl disable iptables.service ##设置开机不启动
-->systemctl mask iptables.service ##冻结
2 firewall开始使用
-->systemctl unmask firewalld.service ##取消冻结
-->systemctl start firewalld.service ##开启firewalld
-->systemctl enable firewalld.service ##设置开机启动
对iptables停止使用操作
firewall开始使用
1相关命令
1 firewall-cmd --get-zones ##查看firewalld有哪些域
-->systemctl start vsftpd
2 firewall-cmd --get-default-zone ##查看默认的域
3 firewall-cmd --set-default-zone=trusted ##设置默认域为trusted
-->firewall-cmd --get-default-zone ##查看修改后的默认域
查看默认域,更改默认域为trusted
2修改端口
4 vim /etc/vsftpd/vsftpd.conf ##编辑配置文件,修改ftp的端口
-->systemctl restart vsftpd.service ##重启ftp服务
-->systemctl start httpd ##开启apache
5 firewall-cmd --set-default-zone=block ##设置默认域为block
-->firewall-cmd --get-default-zone ##查看默认域
开启httpd,将默认域设置为block,使任何服务无法通过火墙
开启前,apche可以用
ftp也可以用
设置之后http不可用
ftp也不可用
3相关策略的修改
1 firewall-cmd --add-service=http
##临时更改,在firewall策略里增加http服务
firewall-cmd --list-all ##列出当前所有的策略
firewall-cmd --reload ##重新加载
2 cd /usr/lib/firewalld/services/ ##查看服务文件的相关配置
vim http.xml
vim ftp.xml
vim /etc/firewalld/zones/public.xml
临时增加http服务,重新加载之后,该服务失效
永久更改,当前不生效,重新加载之后生效
也可以通过修改配置文件改变火墙策略
在firewalld服务的目录下有以下文件
http.xml的80端口
ftp.xml的21端口
公共网络的总配置文件,可以往里面增加服务,如图
4端口控制
3 lsmod | grep nf ##过滤当前的开启的端口
-->modprobe -r nf_conntrack_ftp ##刷新ftp的端口
4 firewall-cmd --permanent --add-port=8080/tcp
##永久增加8080端口tcp服务
firewall-cmd --permanent --remove-port=8080/tcp
##永久移除8080端口tcp服务
编辑http的配置文件
将默认端口改为6666
过滤当前nf,删除ipv4
重新加载,删除之后的ipv4又出现了,该命令临时生效
将http改为8080端口
并将该端口写入火墙策略
访问测试成功
删除8080端口并重新加载
无法访问
5ip控制
5 firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 ! -s 172.25.254.27 -p tcp --dport 22 -j ACCEPT ##除了27主机,其他主机访问22端口都接受
-->firewall-cmd --reload ##重新加载
6 firewall-cmd --direct --get-all-rules ##查看当前策略的所有规则
7 firewall-cmd --permanent --direct --remove-rule ipv4 filter INPUT 1 -s 172.25.254.0/24 -p tcp --dport 22 -j REJECT ##254网段的访问22端口都拒绝
使254ip段的都可以访问
测试连接成功
移除ssh服务
测试连接不了
拒绝254ip段的访问8080端口
测试成功
6地址伪装
6.1数据来源伪装
1 firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=172.25.254.27 forward-port port=22 protocol=tcp to-port=22 to-addr=172.25.27.227"
##27主机连接127主机,地址伪装成27.227的主机,进来127的数据来源都伪装成227
将策略写入火墙服务
测试成功
227主机连接27主机,27主机显示是127主机登陆的
6.2目的地伪装
2 firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=172.25.254.127 masquerade"
##27ip段的数据来源进来经过双网卡主机127,出去都伪装成127的ip
将策略写入火墙服务
27主机连接127主机,连接成功显示的是227主机的ip