linux中的firewalld防火墙策略和iptables防火墙策略

防火墙,也相当于一个内核上的插件
两种编写防火墙策略的工具ip table,firewalld
防火墙策略,控制进出

firewalld的域

trusted信任域,	接受所有的网络连接
home家庭域		用于家庭网络,仅接受ssh,mdns,ipp-client,samba-client,dhcpv6-client服务连接
internal内部域	用于内部网络,仅接受ssh,mdns,ipp-client,samba-client,dhcpv6-client服务连接
work工作域		用于工作区,仅接受ssh,ipp-client或dhcpv6-client服务连接
public公共域		在公共区域使用。仅接受ssh或dhcpv6-client服务连接,为firewalld的默认区域
external外部域	出去的ipv4网络连接通过此区域伪装和转发,仅接受ssh服务连接
dmz非军事区		仅接受ssh服务连接
block限制		拒绝所有网络连接
drop丢弃			任何接受的网络数据包都被丢弃,没有任何回复

启用和关闭firewalld

yum install -y firewalld firewall-config
systemctl start firewalld
systemctl enable firewalld
systemctl disable firewalld
systemctl stop firewalld

linux中的firewalld防火墙策略和iptables防火墙策略_第1张图片
启用和关闭iptables

yum install -y iptables-services
systemctl start iptables
systemctl start ip6tables
systemctl enable iptables
systemctl enable ip4tables
iptables -nL

使用命令行接口配置防火墙

firewall-cmd --state					##查看防火墙状态
firewall-cmd --get-active-zones			##查看现在的信息
firewall-cmd --get-default-zone			##查看防火墙现在的域
firewall-cmd --get-zones				##查看防火墙所有域
firewall-cmd --zone=pub --list-all		##查看pub域支持的服务
firewall-cmd --get-services				##查看防火墙可以开启的服务
firewall-cmd --list-all-zones			##查看所有域支持的服务
firewall-cmd --set-default-zone=dmz		##更改防火墙的域

linux中的firewalld防火墙策略和iptables防火墙策略_第2张图片
linux中的firewalld防火墙策略和iptables防火墙策略_第3张图片
linux中的firewalld防火墙策略和iptables防火墙策略_第4张图片

五种状态 input output preouting(路由前做SNAT) postouting(路由后做DNAT) forward
filter	访问本机服务(内核)	input  output forward
net	经过防火墙但与内核无关		input  output	preouting  postouting
mangle	除了前两种			input  output	preouting  postouting  forward

设置防火墙的信任ip,防火墙不开启ssh,但信任ip依旧可以ssh连接

firewall-cmd --permanent --zone=trusted  --add-source=172.25.254.26
firewall-cmd --get-active-zones
firewall-cmd --permanent --zone=trusted  --remove-source=172.25.254.26

linux中的firewalld防火墙策略和iptables防火墙策略_第5张图片
linux中的firewalld防火墙策略和iptables防火墙策略_第6张图片
实验效果
linux中的firewalld防火墙策略和iptables防火墙策略_第7张图片
设置一个网卡可访问

firewall-cmd  --zone=public  --remove-interface=eth0	##将eth0从public域的取出
firewall-cmd  --zone=trusted  --add-interface=eth0		##将eth0放入trusted域
firewall-cmd --reload									##重启防火墙
firewall-cmd --list-all --zone=trusted					##查看trusted支持的信息					

firewall-cmd  --zone=trusted  --remove-interface=eth0	
firewall-cmd  --zone=public  --add-interface=eth0		##恢复

linux中的firewalld防火墙策略和iptables防火墙策略_第8张图片
linux中的firewalld防火墙策略和iptables防火墙策略_第9张图片
linux中的firewalld防火墙策略和iptables防火墙策略_第10张图片
可以看出即使火墙策略没有apache服务,仍然可通过访问信任网卡ip,访问httpd
linux中的firewalld防火墙策略和iptables防火墙策略_第11张图片

firewall-cmd - --zone=public   --remove-service=ssh	 ##临时阻止ssh服务(刷新后恢复)
firewall-cmd --permanent --zone=public   --list-ports##查看防火墙永久允许的端口
firewall-cmd  --zone=public   --list-ports			 ##查看防火墙临时允许的端口
firewall-cmd --permanent --zone=public   --add-port=8080/tcp##永久添加防火墙允许的端口
firewall-cmd - --zone=public   --add-port=8080/tcp	 ##临时添加防火墙允许的端口
firewall-cmd --permanent --zone=public   --remove-port=8080/tcp##删除永久允许端口

linux中的firewalld防火墙策略和iptables防火墙策略_第12张图片
linux中的firewalld防火墙策略和iptables防火墙策略_第13张图片
linux中的firewalld防火墙策略和iptables防火墙策略_第14张图片

firewall-cmd --reload					##刷新:不会中断当前已连接的服务
firewall-cmd --complete-reload			##完全刷新:切断所有正在连接的服务

Direct Rules
通过firewall-cmd工具,可以使用–direct选项在运行时间里增加或移除链,如果不熟悉 iptables,使用直接接口非常危险,因为可能无意间导致防火墙被入侵,直接端口模式,适用于服务或者程序,以便在运行时间内增加特定的防火墙规则。直接端口模式添加的规则优先应用

firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.26 -j ACCEPT##为26主机开启22端口(ssh服务的端口)
firewall-cmd --direct --get-all-rules##查看所有规则
firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -p tcp --dport 22 -s 172.25.254.26 -j ACCEPT##删除开启端口
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -p tcp --dport 22 ! -s 172.25.254.26 -j ACCEPT##为除了26主机的其他主机开启22端口(ssh服务的端口)

linux中的firewalld防火墙策略和iptables防火墙策略_第15张图片
linux中的firewalld防火墙策略和iptables防火墙策略_第16张图片
linux中的firewalld防火墙策略和iptables防火墙策略_第17张图片
linux中的firewalld防火墙策略和iptables防火墙策略_第18张图片

防火墙的伪装与转发
(1)伪装

服务端(两块网卡。一个1.1.1.126一个172.25.254.226):
firewall-cmd --permanent --add-masquerade		##开启防火墙伪装功能
firewall-cmd --reload
firewall-cmd --list-all

linux中的firewalld防火墙策略和iptables防火墙策略_第19张图片

客户端测试:
vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR0=1.1.1.126
GATEWAY0=1.1.1.126
systemctl restart network
route -n
ssh [email protected]>w -i			##查看谁在连接

linux中的firewalld防火墙策略和iptables防火墙策略_第20张图片
(2)转发
服务端

firewall-cmd --permanent --zone=public --add-forward-port=port=22:proto=tcp:toport=22:toaddr=1.1.1.126	##转发22端口的请求服务到1.1.1.226
firewall-cmd --reload
firewall-cmd --list-all

linux中的firewalld防火墙策略和iptables防火墙策略_第21张图片
真机测试:

ssh [email protected]>ifconfig##查看以连接的客户端ip--->w -i##查看谁在连接

linux中的firewalld防火墙策略和iptables防火墙策略_第22张图片

二.iptables
1.服务部署:

yum install -y iptables-services
systemctl stop firewalld
systemctl disable firewalld
systemctl start iptables
systemctl enable iptables

linux中的firewalld防火墙策略和iptables防火墙策略_第23张图片
2.常用命令

iptable 
	-t			##指定表名称
	-n			##不做解析
	-L			##列出指定表中的策略
	-A			##增加策略
	-p			##网络协议
	--dport		##端口
	-s			##数据来源
	-j			##动作
	ACCEPT		##允许
	REJECT		##拒绝
	DROP		##丢弃
	-N			##增加链
	-E			##修改链名称
	-X			##删除链
	-D			##删除指定策略
	-I			##插入
	-R			##修改策略
	-P			##修改默认策略

iptables的策略

iptables -t filter -nL		##查看filter表中的策略
iptables -nL 				##查看所有策略
service iptables save		##保存当前策略
vim /etc/sysconfig/iptables	##策略保存文件
iptables -F 				##刷掉filter表中所有策略,的那个-t没有指定,默认为filter
iptables -nL
systemctl restart iptables	
iptables -nL				##如果刷掉之前保存过策略,重启服务后,会恢复

linux中的firewalld防火墙策略和iptables防火墙策略_第24张图片
linux中的firewalld防火墙策略和iptables防火墙策略_第25张图片linux中的firewalld防火墙策略和iptables防火墙策略_第26张图片
设定iptables的策略表

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 445 -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 3260 -j ACCEPT
iptables -A INPUT -m state --state NEW -j REJECT
iptables -nL

linux中的firewalld防火墙策略和iptables防火墙策略_第27张图片
测试是否生效
linux中的firewalld防火墙策略和iptables防火墙策略_第28张图片
iptables的工作模式

iptables -P INPUT DROP		##更改INPUT工作模式为丢掉所有的包,并不回复
iptables -nL			
iptables -P INPUT ACCEPT	##更改INPUT工作模式为允许所有
iptables -nL

linux中的firewalld防火墙策略和iptables防火墙策略_第29张图片
drop模式,ssh连接时,会连接超时
linux中的firewalld防火墙策略和iptables防火墙策略_第30张图片
设回accept工作模式时,便可以连接
linux中的firewalld防火墙策略和iptables防火墙策略_第31张图片

iptables -P INPUT DROP
iptables -A INPUT -p tcp --dport 22 -s 172.25.254.26 -j ACCEPT##允许172.25.254.26
的22端口发来的tcp请求通过
iptables -nL		

linux中的firewalld防火墙策略和iptables防火墙策略_第32张图片
当DROP模式时,添加允许ip的端口,这时特定ip便可连接
在这里插入图片描述

iptables -D INPUT 1 ##删除INPUT的第一条策略
iptables -nL
linux中的firewalld防火墙策略和iptables防火墙策略_第33张图片

iptables -I INPUT 1 -s 172.25.254.26 -p tcp --dport 22 -j ACCEPT##添加策略到指定顺序
iptables -nL
iptables -R INPUT 1 -s 172.25.254.226 -p tcp --dport 22 -j ACCEPT##更改指定位置的策略
iptables -nL

linux中的firewalld防火墙策略和iptables防火墙策略_第34张图片
linux中的firewalld防火墙策略和iptables防火墙策略_第35张图片

iptables -N redhat					##添加策略表
iptables -E redhat westos			##更改策略表名称
iptables -X westos					##删除策略表
iptables -nL

linux中的firewalld防火墙策略和iptables防火墙策略_第36张图片
linux中的firewalld防火墙策略和iptables防火墙策略_第37张图片
iptables的伪装与转发

(1)iptables的伪装
服务端:

iptables -t nat -nL
iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.226
在nat表中添加,若一个ip连接26时,通过本主机的eth0伪装成172.25.254.226这个ip去连接的策略
iptables -nL -t nat

linux中的firewalld防火墙策略和iptables防火墙策略_第38张图片
客户端测试(ip为1.1.1.126)

ssh [email protected]  --->w -i

linux中的firewalld防火墙策略和iptables防火墙策略_第39张图片
linux中的firewalld防火墙策略和iptables防火墙策略_第40张图片
(2)iptables的转发

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to 1.1.1.126
##将给eth0的22端口发来的请求转发给1.1.1.126
iptables -nL -t nat

linux中的firewalld防火墙策略和iptables防火墙策略_第41张图片
真机测试:

ssh [email protected] ----> w -y---->ifconfig

linux中的firewalld防火墙策略和iptables防火墙策略_第42张图片

你可能感兴趣的:(linux中的firewalld防火墙策略和iptables防火墙策略)