linux防火墙管理——iptable

iptable也是用来管理配置火墙的一种工具,使用iptable管理火墙比使用firewalld管理火墙要复杂一些。

iptable的四个表五条链

对于iptable我们要先了解它四个表五条链。 4个表分别为filter,nat,mangle,raw。

filter:一般的过滤功能
nat:用于nat功能(端口映射,地址映射等)
mangle:用于对特定数据包的修改
raw:有限级最高,设置raw时一般是为了不再让iptables做数据包的链接跟踪处理,提高性能

5条链分别为PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING。

PREROUTING:数据包进入路由表之前
INPUT:通过路由表后目的地为本机
FORWARD:通过路由表后,目的地不为本机
OUTPUT:由本机产生,向外转发
POSTROUTIONG:发送到网卡接口之前。

iptable的常用管理命令

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

首先我们将前面的firewalld关闭在再打开iptable。

systemctl stop firewalld					
systemctl enabled firewalld
systemctl start iptables.service

打开iptable。

iptables -nL

在这里插入图片描述
不解析列出表策略

iptable  -F

刷掉filter表中的所有策略,当没有用-t指定表名称时默认时filter。

iptables -P INPUT DROP

设置网络连接为丢弃,任何接受的网络数据包都被丢弃,没有任何回复。

iptables -P INPUT ACCEPT

设置网络连接状态为允许,允许所有网络连接。

iptables -t filter -A INPUT -p tcp --dport 22 -j REJECT

在这里插入图片描述
禁用22端口,此时使用22端口进行远程连接被拒绝了。

在这里插入图片描述
使用iptables -nL可以查看这条规则。
如果要使22端口对这台主机能使用的话,要添加这一条命令:

iptables -I INPUT 1 -p tcp --dport 22 -s 172.25.254.31 -j ACCEPT

表示允许这台主机使用22端口,并且将这条规则插入到第一条,因为iptable读取规则时是按照顺序的,所以要把规则插入到第一条。如果只是添加的话把-I参数改为-A就可以了,添加规则按照默认顺序排序。

iptables -D INPUT 2

删除规则第二条规则,可以先用查看有那些规则,再根据自己的需求删除。

iptables -N redhat

在这里插入图片描述
增加一条链

iptables -E  redhat linux

在这里插入图片描述
更改链的名字

iptables -X  linux

在这里插入图片描述
删除链

地址转换

1.源地址转换
源地址转换即内网地址向外访问时,发起访问的内网ip地址转换为指定的ip地址,这可以使内网中使用保留ip地址的主机访问外部网络,即内网的多部主机可以通过一个有效的公网ip地址访问外部网络。

iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source 172.25.254.231

此时发起访问的内网ip通过这台主机向外传送数据时,ip地址转换为172.25.254.231。
2.目标地址转换
做完源地址转换之后,其他主机去访问172.25.254.231这台主机只能访问到这台真实主机,而访问不到向它发送数据的真实主机,所以172.25.254.231这台主机需要做目标地址转换,让外部主机能找到通过172.25.254.231访问它的真实主机。

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 22 -j DNAT --to-dest 1.1.1.131

设置其他主机访问本机22端口时,将目标转为 1.1.1.131主机的22端口。

iptable对端口的控制

iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -m state --state NEW  -j REJECT

允许使用使用80端口连接,拒绝使用其他所有端口,注意这里使用的规则也是有顺序的。

猜你喜欢

转载自blog.csdn.net/qq_41961805/article/details/87917661