吐血整理关于防火墙

来源:互联网 发布:linux给文件夹权限 编辑:程序博客网 时间:2024/04/28 10:35

各位朋友大家好,今天来说说防火墙~
一:什么是防火墙?
防火墙指的是一个由软件和硬件设备组合而成,在内部网和外部网之间,专用网络与公共网之间的界面上构造的保护屏障,是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使Internet和Internet之间建立起一个安全网关,从而保护内部网免受非法用户的侵入,防火墙主要是由服务访问规则,验证工具,包过滤和应用网关四个部分组成。
二:
管理防火墙有两种方式:firewalld与iptables
(1)firewalld 防火墙管理工具,相对简单 ———>windows
(2)iptables 复杂,功能强大 ———>route
(1)(2)无法同时使用
三:
(1)火墙的安装
命令:yum install firewalld -y
(2)图形方法设置火墙属性
命令:firewall-config &
这里写图片描述
*火墙设置中runtime表示立即生效,重启之后服务恢复之前的状态,不会更改配置文件,permanent表示永久设置,重启之后才生效,会修改配置文件。
这里写图片描述
(3)监控配置火墙时的动态情况
watch -n 1 firewall-cmd –list-all
这里写图片描述
可以看出初始支持的服务有dhcpv6-client 和ssh
(4)临时更改
下面给其添加临时服务http
这里写图片描述
可以看到直接添加成功:
这里写图片描述
还有其他服务,读者可以自行尝试。
(5)永久更改
permanent 下,更改配置文件,重新加载后永久生效
在public区域下勾选http服务,可以看到并没有立即生效:
这里写图片描述
重新加载服务后,更改生效:
这里写图片描述
(6)更改默认区域
一般情况下,默认区域是public
选择 Options —>Change Default Zone —>trusted
点击ok之后更改成功
这里写图片描述
(8)更改区域配置文件:通过直接更改指定区域的配置文件并重启火墙服务,达到永久更改的目的
为查看方便,这里编写apache默认访问文件:vim /var/www/html/index.html
这里写图片描述
编写火墙默认的public区域配置文件,来开启服务
vim /etc/firewalld/zones/public.xml
加入http服务:
这里写图片描述
重启火墙,并且在浏览器访问,成功访问到了
这里写图片描述
查看防火墙的状态,http服务已经加进去了
这里写图片描述
四:命令行管理firewalld
关于网络区域配置:
这里写图片描述
安装软件 yum install firewalld firewall-config -y
(1)常用命令
开启防火墙:systemctl start firewalld
开机自启防火墙:systemctl enable firewalld
关闭防火墙:systemctl stop firewalld
开机自动关闭防火墙:systemctl disable firewalld
查看防火墙状态:firewall-cmd –state
查看防火墙管理设备:firewall-cmd –get-active-zones
查看防火墙生效的区域:firewall-cmd –get-default-zone
查看防火墙所有的区域:firewall-cmd –get-zones
列出关于public区域的服务设置:firewall-cmd –zone=public –list-all
列出关于trusted区域的服务设置:firewall-cmd –zone=trusted –list-all
列出可使用的服务:firewall-cmd –get-service
修改默认区域为trusted:firewall-cmd –set-default-zone=trusted
修改默认区域为public:firewall-cmd –set-default-zone=public
举例:
这里写图片描述
查看火墙状态:
这里写图片描述
(2)高级配置
临时添加服务(默认的区域)
firewall-cmd –add-service=https
这里写图片描述
查看火墙状态:
这里写图片描述
临时删除服务(默认的区域)
firewall-cmd –remove-service=https
这里写图片描述
查看火墙状态:
这里写图片描述
永久添加服务(默认的区域)
firewall-cmd –add-service=https –permanent
永久删除服务(默认的区域)
firewall-cmd –remove-service=https –permanent
临时添加端口(默认的区域)
firewall-cmd –add-port=8080/tcp
临时删除端口(默认的区域)
firewall-cmd –remove-port=8080/tcp
永久添加端口(默认的区域)
firewall-cmd –add-port=8080/tcp –permanent
永久删除端口(默认的区域)
firewall-cmd –remove-port=8080/tcp –permanent
添加接口(默认的区域)
firewall-cmd –add-interface=eth0
删除接口(默认的区域)
firewall-cmd –remove-interface=eth1
临时拒绝主机172.25.254.19的所有网络连接
firewall-cmd –add-source=172.25.254.19 –zone=block
永久拒绝主机172.25.254.19的所有网络连接
firewall-cmd –add-source=172.25.254.19 –zone=block –permanent
不中断连接,重启火墙策略
firerwall-cmd –reload
中断连接,重启防火墙策略
firewall-cmd –complete-reload
关闭上述
firewall-cmd –remove-source=172.25.254.19 –zone=block
firewall-cmd –remove-source=172.25.254.19 –zone=block –permanent
查看firewalld的服务相关配置文件
这里写图片描述
查看firewalld的区域相关配置文件
这里写图片描述
临时:直接将ens7从原来的区域转到trusted这个区域
firewall-cmd –change-interface=ens7–zone=trusted
firewall-cmd –permanent –change-interface=ens7 –zone=trusted
这里写图片描述
检验ens7是否在trusted这个区域写入配置文件
这里写图片描述
查看状态:
这里写图片描述
注意:临时设置不写入配置文件,永久配置写入配置文件
确认两块网卡的ip
这里写图片描述
(3)links
yum install links -y
links http://172.25.254.40
这里写图片描述
服务端:临时只拒绝另外一台虚拟机19到本机的ssh服务
firewall-cmd –direct –add-rule ipv4 filter INPUT 1 -s 172.25.254.19 -p tcp –dport 22 -j REJECT
这里写图片描述
客户端进行测试:
这里写图片描述
服务被拒绝,实验成功。
服务端:恢复虚拟机19到本主机的ssh服务
方法一:firewall-cmd –direct –remove-rule ipv4 filter INPUT 1 -s 172.25.254.19 -p tcp –dport 22 -j REJECT
方法二:systemctl restart firewalld
客户端检测:
这里写图片描述
服务端:临时只允许主机19使用lftp服务
这里写图片描述
服务端测试:
这里写图片描述
伪装:当客户主机访问服务主机40的22端口时,会自动转到主机100的22端口,实现ip的伪装
具体步骤:
(1)172.25.254.40的22端口转接172.25.254.100这台主机的22端口
firewall-cmd –add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.100

(2)添加防火墙伪装
firewall-cmd –add-masquerade

这里写图片描述
查看防火墙:
这里写图片描述
客户端测试:
这里写图片描述
取消转接:
firewall-cmd –remove-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.100
firewall-cmd –remove-masquerade
这里写图片描述
注意:在打开firewalld的情况下打开iptables方式则firewalld方式自动关闭
这里写图片描述
二:iptables的相关配置
(1)iptables的常用命令
这里写图片描述
(2)iptables的高级配置
关闭firewalld并且开机自动关闭
这里写图片描述
列出指定filter表的信息
这里写图片描述
查看配置文件
cat /etc/sysconfig/iptables
这里写图片描述
刷新清空iptables
iptables -F
保持状态: service iptables save
列出默认表信息:iptables -nL
所有INPUT服务都丢弃并且不回应:iptables -P INPUT DROP
这里写图片描述
添加接受本机回环地址的
iptables -A INPUT -i lo -j ACCEPT
添加接受tcp协议80端口的服务
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
添加接受tcp协议22端口的服务
iptables -A INPUT -p tcp –dport 22 -j ACCEPT
拒绝全部的INPUT链服务
iptables -A INPUT -j REJECT
查看:
这里写图片描述
1.配置链中的策略
删除指定链中的策略
方法一:根据行数删除
iptables -D INPUT 3
这里写图片描述
这里写图片描述
方法二:根据内容删除
如:删除指定策略内容
iptables -D INIPUT -p tcp –dport 22 -j ACCEPT
插入指定链中的指定行
如:将接受协议为tcp的22端口插入第三行
iptables -I INPUT 3 -p tcp –dport 22 -j ACCEPT
这里写图片描述
策略保存至配置文件
service iptables save
cat /etc/sysconfig/iptables
这里写图片描述
允许19主机可以通过tcp协议22端口连接
这里写图片描述
拉黑主机19通过tcp协议22端口连接的功能,其他主机不影响
iptables -A INPUT ! -s 172.25.254.19 -p tcp –dport 22 -j ACCEPT
2.关于链的相关配置
iptables -N REDHAT #新建一个链,名为REDHAT
iptables -E REDHAT linux #修改指定链的名称,将REDHAT修改为linux
iptables -X linux #删除指定链,删除linux
3.防火墙的策略优化
若第一次访问可以,第二次就不会再问,这就是优化状态。
注:系统重启会改变状态的数据包
状态:第一次连接:NET连接中:ESTABLISHED连接过时的:RELATED
iptables -F #刷新清空策略
service iptables save #保存
iptables -nL #查看
这里写图片描述
添加接受状态为ESTABLISHED(连接中),RELATED(连接过)的策略
iptables -A INPUT -m state NEW -i lo -j ACCEPT
添加接受状态为NEW的来自回环地址策略
iptables -A INPUT -m state –state NEW -i lo -j ACCEPT
添加接受状态为NEW的tcp协议22端口策略
iptables -A INPUT -m state –state NEW -p tcp –dport 22 -j ACCEPT
添加接受状态为NEW的tcp协议80端口策略
iptables -A INPUT -m state NEW -p tcp –dport 80 -j ACCEPT
添加拒绝全部的策略
iptables -A INPUT -j REJECT
可以查看:
这里写图片描述
4.nat表
实现不同网段之间的通信
主体思想:172.25.254.x来到eth0网络,进行伪装后,从ens7网络出去,也便和172.25.25.y统一了网段,也就可以通信了

原创粉丝点击