一、防火墙
1.概述
动态防火墙后台程序 FireWalld 提供了一个动态管理的防火墙,用以支持网络的zones,以分配对一个网络及相关连接和界面一定程度的信任;它支持以太网桥,并有分离运行时间和永久行配置选择。
2.域
home(家庭):用于家庭网络,仅接受dhcpv6-client、ipp-client、mdns、samba-client、ssh服务
internal(内部):用于内部网络,仅接受dhcpv6-client、ipp-client、mdns、samba-client、ssh服务
public(公共):用于公共区域使用,仅接受dhcpv6-client、ssh服务
trusted(信任):接受所有网络连接
work(工作):用于工作区,仅接受dhcpv6-client、ipp-client、ssh服务
block(限制):拒绝所有网络连接
dmz(非军事区):仅接受ssh服务连接
drop(丢弃):任何接收的网络数据包都被丢弃,没有任何回复
external(外部):出去的ipv4网络连接通过此区域伪装和转发,仅接受ssh服务连接
二、防火墙相关命令
1.开启防火墙及查看状态
2.查看火墙状态 firewall-cmd --state
3.查看火墙正在使用的域 firewall-cmd --get-active-zones
4.查看火墙的默认域 firewall-cmd --get-default-zone
5.查看火墙所有的域 firewall-cmd --get-zones
6.查看public域的信息 firewall-cmd --list-all --zone=public
7.查看不同通过火墙的服务 firewall-cmd --get-services
8.修改火墙的默认域
9.火墙的图形化配置工具
三、接口控制
1.接口访问控制
eth0 = 172.25.254.208
eth1 = 172.25.77.208
此时实验(连接/访问/ping均可)
254.208不通;77.208正常
2.8080端口
在接口eth1上打开8080端口
修改http服务的配置文件 /etc/httpd/conf/httpd.conf
重启http服务,网页访问8080端口
3.实验:禁止77.177主机链接
77.177主机无法链接
服务端永久变更
已连接的8主机不会断开
但是complete-reload之后,77.177主机立即断开,无法操作
四、防火墙访问控制
Direct Rules
1.接口eth0不允许http服务
2.设置规则,允许77主机访问本机
77主机可正常访问
但是77.208则无法访问
Rich Rules
1.地址转换
2.连接208主机,将直接跳转到77.177主机
[kiosk@foundation8 Desktop]$ sshroot@172.25.254.208 -X
root@172.25.254.208's password: ##主机77.177的root密码
3.主机172.25.77.177连接其他主机时,将伪装成208主机
77.177主机修改网络配置
IPADDR=172.25.77.177
GATEWAY=172.25.77.208
内核路由打开:
当77.177主机链接254.77主机时,将伪装成208主机
###注意:net.ipv4.ip_forward ####
[root@localhost ~]# sysctl -a | grep ip_forward
net.ipv4.ip_forward = 1
若net.ipv4.ip_forward = 0,编辑配置文件,重启服务即可
五、Iptables命令管理
内核3个表,5条链
filter:经过本机内核的数据,input,forward,ouput
nat:不经过本机内核的数据,input,ouput,prerouting,postrouting
mangle:所有经过主机上的数据,prerouting,input,forward,ouput,postrouting
1.显示内核三张表的信息
iptables -nL ##默认为filter表
iptables -nL -t nat ##显示nat表
iptables -nL -t mangle ##显示mangle表,备用
2.表格命令编辑 ##默认filter表
iptables -A INPUT -s 172.25.254.111 -j REJECT ##添加
iptables -D INPUT 6 ##删除INPUT链的第6条
iptables -I INPUT -s 172.25.254.111 -j REJECT ##插入至第1条
iptables -R INPUT 1 -j ACCEPT ##将INPUT第1条规则改为ACCEPT
【iptables -F ##刷新(类似删除)配置,但是重启后配置依然存在
systemctl restart iptables.service】
【iptables -F ##刷新后保存,重启后配置为空
service iptables systemctl restart iptables.service】
iptables -P FORWARD DROP ##将FORWARD链规则改为DROP
iptables -N redhat ##新建redhat自定义链
iptables -E redhat REDHAt ##修改自定义链的名称
iptables -X REDHAt ##删除自定义链
3.服务管理
iptables -A INPUT -p tcp --dport 22 -j ACCEPT ###允许所有主机链接ssh(22)
iptables -A INPUT -s 172.25.254.77 -p tcp --dport 80 -j ACCEPT ###只允许主77机链接http(80)
iptables -A INPUT ! -s 172.25.254.77 -p tcp --dport 53 -j REJECT ###除了主机77都拒链接DNS(53)
iptables -A INPUT -j REJECT ###读取以上规则后,其他所有访问拒绝 (从前到后,逐条读取)
##将修改后的配置保存在文件/etc/sysconfig/iptables中
六.Iptables地址转换
注意:
1.一定要刷新filter表 iptables -F
2.打开内核路由 ##若net.ipv4.ip_forward=0
sysctl -p == 【restart systemd-sysctl.service】
3. 0.208主机配置网络
IPADDR = 172.25.77.177 (一块网卡主机)
GATEWAY = 172.25.77.208 (两块网卡主机)
4.设定策略
[root@localhost ~]# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.208
[root@localhost ~]# iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-dest 172.25.0.208
5.当主机8访问链接208主机时,转换到0.208主机上