3.6.1 火墙介绍和火墙管理工具切换
1.netfilter 2.1iptables 2.2firewalld
2.1和2.2 都是为1服务 两者不可共存,有功能上的优劣
firewalld----->iptables
dnf install ipables-services -y
systemctl stop firewalld
systemctl disable firewalld
systemctl mask firewalld ##锁住firewalld服务
systemctl enable --now iptables
iptables----->firewalld
systemctl stop iptables
systemctl disable iptables
systemctl mask iptables
systemctl unmask firewalld ##解锁firewalld服务
systemctl enable --now firewalld
默认策略中的5条链 input?? ??? ??? ? ?? ##输入 output?? ??? ??? ?? ##输出 forward?? ??? ??? ?##转发 postrouting?? ?? ##路由之后 prerouting?? ??? ?##路由之前
默认的3张表
filter?? ??? ? ? ?? ##经过本机内核的数据(input output forward) nat?? ?? ? ? ? ? ? ##不经过内核的数据(postrouting,prerouting,input,output) mangle?? ??? ?##当filter和nat表不够用时使用(input output forward postrouting,prerouting,)
3.6.2 firewalld用法
1.firewalld的开启
dnf install firewall-config-0.8.0-4.e18.noarch -y?? ?##火墙图形模式 firewall-config?? ??? ?##开启图形
2.关于firewalld的域
trusted?? ??? ?##接受所有的网络连接 home?? ?? ? ? ##用于家庭网络,允许接受ssh mdns ipp-client samba-client dhcp-client work?? ??? ? ?? ##工作网络 ssh ipp-client dhcp-client public?? ?? ?? ##公共网络 ssh dhcp-client dmz?? ??? ? ?? ##军级网络 ssh block?? ??? ?? ##拒绝所有 drop?? ??? ??? ##丢弃?? ?所有数据全部丢弃无任何回复 internal?? ?? ##内部网络 ssh mdns ipp-client samba-client dhcp-client external?? ? ##ipv4网络地址伪装转发 sshd
3.关于firewalld的设定原理及数据存储
/etc/firewalld?? ??? ?##火墙配置目录 /lib/firewalld?? ??? ?##火墙模块目录
4. firewalld的管理命令
firewall-cmd --state?? ??? ??? ##查看火墙状态
firewall-cmd --get-active-zones ##查看当前火墙中生效的域
firewall-cmd --get-default-zone ##查看默认域
firewall-cmd --list-all?? ??? ?##查看默认域中的火墙策略
firewall-cmd --list-all --zone=work ##查看指定域的火墙策略
firewall-cmd --set-default-zone=trusted???? ##设定默认域
firewall-cmd --get-services ?? ?##查看所有可以设定的服务
firewall-cmd --permanent --remove-service=cockpit?? ?##移除服务
firewall-cmd --reload??????????????? ##刷新
firewall-cmd --permanent --add-source=172.25.254.0/24 --zone=block ##指定数据来源访问指定域
firewall-cmd --reload
firewall-cmd --permanent --remove-source=172.25.254.0/24 --zone=block ##删除自定域中的数据来源
firewall-cmd --permanent --remove-interface=ens224 --zone=public ##删除指定域的网络接口
firewall-cmd --permanent --add-interface=ens224 --zone=block ##添加指定域的网络接口
firewall-cmd --permanent --change-interface=ens224 --zone=public ##更改网络接口到指定域
5. firewalld的高级规则
firewall-cmd --direct --get-all-rules ##查看规则
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.254.22 -p tcp --dport 80 -j REJECT ##除了22其他不可访问http
添加规则 表 限制输入 除了 指定ip tcp协议 指定端口 拒绝
firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 '!' -s 172.25.254.22 -p tcp --dport 80 -j REJECT ##删除规则
6. firewalld中的NAT
SNAT (当用单网卡1.1.1.0网段连接双网卡,需给单网卡设置网关并在双网卡开启地址伪装) 单网卡: ?? ?????????vim/etc/sysconfig/network ?? ??????????????????? ?GATEWAY=1.1.1.122 双网卡: ??? ????????firewall-cmd --permanent --add-masquerade ?? ?????????firewall-cmd --reload
DNAT (主机a双网卡, 主机b 单网卡, 当有其他主机连接双网卡,会转接至222主机 ifconfig看到1.1.1.222) firewall-cmd --permanent --add-forward-port=port=22:proto=tcp:toport=22:toaddr=1.1.1.222 firewall-cmd --reload
3.6.3 iptables 的使用
1.iptables命令
iptables
-t ##指定表名称
-n ##不做解析
-L ##查看
-A ##添加策略
-p ##协议
--dport ##目的地端口
-s ##来源
-j ##动作
ACCEPT ##允许
DROP ##丢弃
REJECT ##拒绝
SNAT ##源地址转换
DNAT ##目的地地址转换
-N ##新建链
-E ##更改链名称
-X ##删除链
-D ##删除规则
-I ##插入规则
-R ##更改规则
-P ##更改默认规则 (三张表的policy后的值 ACCEPT REJECT DROP)
-F ##删除所有策略非永久
策略优化:
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT ##所有建立过连接的或者正在连接的数据包都被接受
iptables -A INPUT -m state --state NEW -i lo -j ACCEPT ##属于自身回环接口的新数据包都被接受
ptables -A INPUT -m state --state NEW -j REJECT ##其他所有新的数据包会被拒绝
iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT ##tcp网络协议 80端口数据包都被接受
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT
service iptables save ##永久保存数据策略
2.nat表中的dnat snat
snat 输出 ?? ?iptable -t nat -A POSTROUTING -o ens3 -j SNAT --to-source 172.25.254.122 ?? ?sysctl -a | grep ip_forward ?? ?vim /etc/sysctl.conf?? ??? ?##刷新配置策略 ?? ?sysctl -p
?? ?less /etc/sevices?? ?? ? ?? ##查看端口号 ?? ?cat /etc/services
?dnat 主机a双网卡1, 主机b 单网卡, 当有其他主机连接双网卡,会转接至222主机 ifconfig看到1.1.1.222 ?? ?iptables -t nat -A PREROUTING -i ens3 -j DNAT --to-dest 1.1.1.222
|