前言一、火墙介绍以及实验环境设定
1.火墙介绍2.实验环境设定3.火墙管理工具的切换 二、firewalld对火墙的管理方式以及设定
1.firewalld基础管理命令2.火墙中的三张表和五条链3.firewalld高级策略 三、iptable对火墙的管理
1.iptables基础命令2.iptable中的优化3.iptables中的nat模式 总结
前言
一、火墙介绍以及实验环境设定 1.火墙介绍
位于内部网络以及外部网络之间的防御屏障,主要保护服务器的安全1、netfilter2、iptables3、iptables|firewalld
2.实验环境设定双网卡主机vim /etc/sysconfig/network-scripts/ifcfg-enp1s0NAME=enp1s0DEVICE=enp1s0IPADDR=172.25.0.190NETMASK=255.255.255.0ONBOOT=yesBOOTPROTO=noneGATEWAY=172.25.0.90vim /etc/sysconfig/network-scripts/ifcfg-enp7s0NAME=enp7s0IPADDR=172.25.254.190PREFIX=24ONBOOT=yesBOOTPROTO=noneDEVICE=enp7s0单网卡主机vim /etc/sysconfig/network-scripts/ifcfg-enp1s0NAME=enp1s0DEVICE=enp1s0IPADDR=172.25.254.191NETMASK=255.255.255.0ONBOOT=yesBOOTPROTO=noneGATEWAY=172.25.0.90
3.火墙管理工具的切换systemctl disabled --now firewalld.serversystemctl mask firewalld.serversystemctl umask iptablessystemctl enable --now iptables##不同的火墙管理工具必须进行服务的锁定否则会互相进行影响
二、firewalld对火墙的管理方式以及设定 1.firewalld基础管理命令trusted#接受所有的网络连接home#用于家庭网络,允许接受ssh mdns ipp-client samba-client dhcp-clientwork#工作网络 ssh ipp-client dhcp-clientpublic#公共网络 ssh dhcp-clientdmz#军级网络 sshblock#拒绝所有(可以立刻拒绝客户访问)drop#丢弃所有数据全部丢弃无任何回复(只能让客户等待)internal#内部网络 ssh mdns ipp-client samba-client dhcp-clientexternal#ipv4网络地址伪装转发 sshd
火墙中默认的域都在配置文件中进行修改,重启后可以使得其生效
vim /etc/firewalld/firewalld.conf6 DefaultZone=publicvim /lib/firewalld/zones/public.xml#.xml即超文本标记语言 1 <?xml version="1.0" encoding="utf-8"?> 2
添加服务后重启火墙即可生效
vim /lib/firewalld/zones/public.xml<?xml version="1.0" encoding="utf-8"?>
firewall-cmd --get-default-zone#查看默认域firewall-cmd --set-default-zone=block#更改默认域为blockfirewall-cmd --list-all#查看默认域的火墙策略firewall-cmd --list-all --zone=work#查看指定域的火墙规则firewall-cmd --get-services#查看所有可允许的服务firewall-cmd --permanent --remove-service=http --zone=work #永久移除指定域中的服务firewall-cmd --permanent --remove-service=http #永久移除当前域中的服务firewall-cmd --reload#加载火墙策略使其生效firewall-cmd --permanent --add-source=172.25.0.91/24 --zone=block#添加指定的数据来源到某个域firewall-cmd --permanent --remove-source=172.25.0.91/24 --zone=block#删除指定来源firewall-cmd --permanent --change-source=172.25.0.91/24 --zone=work#更改指定来源到另外一个域中firewall-cmd --permanent --list-sources#查看已经写入的指定数据来源firewall-cmd --permanent --add-interface=enp1s0 --zone=block#添加网络接口到blockfirewall-cmd --permanent --remove-interface=enp1s0 --zone=block#删除网络接口firewall-cmd --permanent --change-interface=enp1s0 --zone=work#更改网络接口到指定的域上
2.火墙中的三张表和五条链默认的五条链input#输入output#输出forward#转发的请求需要转发的postrouting#路由之前的数据prerouting#路由之后的数据
系统默认的三张表filter#经过内核的数据表nat#不经过内核的数据表mangle#当filter和nat表不够时可以进行补充策略
filter表input#记录所有访问内核的输入output#记录经过内核的输出forward#记录所有需要本机转发的数据,数据在不会经过内核处理但是NAT的时候会使用内核
nat表input#不访问内核的输入策略output#不妨问内核的输出策略postrouting#路由之前的数据perouting#路由之后的数据
3.firewalld高级策略filter表
firewall-cmd --direct --get-all-rules#查看高级规则firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.0.91 -p tcp -j REJECT#-s指定IP-p指定协议-j指定状态firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 '!' -s 172.25.0.91 -p tcp -j REJECT#删除规则
nat表
firewall-cmd --permanent --add-masquerade#开启地址转换firewall-cmd --permanent --add-forward-port=port=22:poroto=tcp:toaddr=172.25.0.190#开启源地址转换
三、iptable对火墙的管理 1.iptables基础命令iptables -A INPUT -t filter -j REJECT -s 1.1.1.91 -p tcp --dport 22iptables -D INPUT 6iptables -I INPUT 1 -t filter -p tcp -s 1.1.1.91 --dport 22 -j DROPiptables -R INPUT 1 -t filter -p tcp --dport 80 -s 172.25.254.90 -j REJECTiptables -N westos#新建链iptables -E westos westosa#更改链的名称iptables -X westosa#删除链iptables-save > /etc/sysconfig/iptables#永久保存用户的火墙设定service iptables save#也可保存设定
iptables -I INPUT 2 -m state --state RELATED,ESTABLISHED -j ACCEPT#连接过的或是正在连接的可直接通过火墙iptables -I INPUT 3 -m state --state NEW -i lo -j ACCEPT#本地回环接口可以直接通过火墙service iptables save#保存火墙策略
3.iptables中的nat模式iptables -t nat -A POSTROUTING -o enp7s0 -j SNAT --to-source 172.25.254.190#开启地址转换功能使得其可以进行地址转换iptables -t nat -A PREROUTING -i enp7s0 -j DNAT --to-dest 172.25.254.90#源地址转换使得其可以进行源地址的转换
总结