linux系统的防火墙
一,概述
动态防火墙后台程序 FireWalld提供了一个动态管理的防火墙,用以支持网络的zones,以分配对一个网络及相关连接和界面一定程度的信任;它支持以太网桥,并有分离运行时间和永久行配置选择。
域:firewalld预先准备的几套防火墙的策略,用户可以根据不同的场景选择不同的域。
trusted :允许所有的数据包
block:拒绝所有网络连接
drop:任何接受的网络数据包都被丢弃,没有任何恢复
public:用于公共区域使用,仅接受ssh,dhcpv6-client等服务
二,防火墙的相关命令
1,开启防火墙,并查看防火墙的状态
查看火墙的状态
查看火墙正在使用的域
查看火墙所有的域
查看public域的信息
查看通过火墙的服务
修改火墙默认的域
火墙的图形化配置工具
2.接口控制
首先查看接口信息
将接口eth0加入到block域中
然后就不能ping通该接口的地址,并且显示的是prohibited(被禁止的)
防火墙策略,可以访问特定的接口
首先将http服务的端口改为8080
然后对防火墙进行策略,将8080接口对外开放
然后就可以通过浏览器访问http服务
禁止某一台特定的主机访问
刚开始200这台主机还可以访问,当将这台主机的ip地址加入block域以后就不能访问
当服务端永久变革时,
[[email protected] ~]# firewall-cmd --reload:这样已经连接的主机不会断开
[[email protected] ~]# firewall-cmd --complete-reload :这样会立即断开,无法操作
防火墙的访问控制
内核防火墙的三表五链
filter(经过本机内核的数据) | input | output | forward | ||
nat(不经过本机内核的数据) | input | output | prerouting(路由前) |
postrouting(路由后) | |
mangle(所有经过本机上的数据) | input | output | forward | prerouting | postrouting |
3.rich rules
地址转换
当有人远程连接109时会转到200的主机上,填写密码时需要200这台主机的密码。
首先要进行防火墙的策略配置,
然后打开masquerade
当在209这台主机上ssh 109时会自动跳转到200这台主机上
伪装:当你去远程连接一台主机时,别人看到的时别的主机在连他
让两个不在统一网段的两台主机通信
首先需要在服务端的两个网卡上设置不同的ip
另外一台客户端的ip地址也要设置成0网段,网关是服务端eth1的地址
然后将服务端内核级的防火墙打开
通过客户端去远程连接200这台主机时,在200上显示的是服务端的eth0在连接他
三,iptables
显示内核三张表的信息
2.表格命令编辑 默认filter表
iptables -A INPUT -s 172.25.254.100 -j REJECT 添加
iptables -D INPUT 6 删除INPUT链的第6条
iptables -I INPUT -s 172.25.254.100 -j REJECT 插入至第1条
iptables -R INPUT 1 -j ACCEPT 将INPUT第1条规则改为ACCEPT
【iptables -F 刷新(类似删除)配置,但是重启后配置依然存在
systemctl restart iptables.service】
【iptables -F 刷新后保存,重启后配置为空
service iptables save
systemctl restart iptables.service】
iptables -P FORWARD DROP 将FORWARD链规则改为DROP
iptables -N redhat 新建redhat自定义链
iptables -E redhat REDHAt 修改自定义链的名称
iptables -X REDHAt 删除自定义链
3,服务管理
[[email protected] ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT
允许所有主机链接ssh(22)
[[email protected] ~]# iptables -A INPUT -s 172.25.254.8 -p tcp --dport 80 -j ACCEPT
只允许主机8链接http(80)
[[email protected] ~]# iptables -A INPUT ! -s 172.25.254.8 -p tcp --dport 53 -j REJECT
除了主机8都拒链接DNS(53)
[[email protected] ~]# iptables -A INPUT -j REJECT
读取以上规则后,其他所有访问拒绝 (从前到后,逐条读取)