首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Iptables在端口敲门规则之后删除SSH,但是nmap显示它是打开的。

Iptables在端口敲门规则之后删除SSH,但是nmap显示它是打开的。
EN

Security用户
提问于 2017-08-27 09:35:56
回答 1查看 483关注 0票数 2

我在CentOS 7上设置了端口敲门规则,如下所示:

代码语言:javascript
复制
-I INPUT -p tcp --dport 1 -m recent --set --rsource --name KNOCK1 -m limit --limit 5/min -j LOG --log-prefix "knock 1" --log-level 7
-I INPUT -p tcp --dport 2 -m recent --rcheck --rsource --seconds 20 --name KNOCK1 -m recent --set --rsource --name KNOCK2 -m limit --limit 5/min -j LOG --log-prefix "knock 2" --log-level 6
-I INPUT -p tcp --dport 3 -m recent --rcheck --rsource --seconds 20 --name KNOCK2 -m recent --set --rsource --name OPEN_NOW -m limit --limit 5/min -j LOG --log-prefix "knock 3" --log-level 6
-I INPUT -p tcp --dport 22 -m state --state NEW -m recent --rcheck --rsource --seconds 20 --name OPEN_NOW -j ACCEPT

然后我堵住了22端口:

代码语言:javascript
复制
iptables -A INPUT -p tcp --dport 22 -j DROP

它正确工作,因为在发送端口序列之前,nmap显示为:

代码语言:javascript
复制
22/tcp filtered ssh     no-response

在发送以下探测后(在Windows上):

代码语言:javascript
复制
nmap -PN --host_timeout 201 --max-retries 0 -p 1 200.xxx.xxx.xxx && nmap -PN --host_timeout 201 --max-retries 0 -p 2 200.xxx.xxx.xxx && nmap -PN --host_timeout 201 --max-retries 0 -p 3 200.xxx.xxx.xxx

nmap和nc都将其显示为打开:

代码语言:javascript
复制
nmap:
22/tcp open  ssh     syn-ack ttl 49
nc:
hostname.xxxx.xxxx [200.xxx.xxx.xxx] 22 (ssh) open

但是,我不能使用任何客户端(Putty,nc)对其进行ssh处理。当Iptables正确丢弃数据包时,就会超时。但是端口是开放的(因为探针打开了端口),这意味着DROP规则不再有效,nmap/nc获得了"Ack / Open",难道我不能使用ssh吗?

EN

回答 1

Security用户

回答已采纳

发布于 2017-08-29 04:15:59

当然,是的问题是-state只允许一个数据包到SYN,然后服务器用SYN/ACK应答,然后iptables将从客户端丢弃所有后续数据包。

但是我不想在所有的连接中使用-contrack,因为我只是偏执于性能,或者任何利用已经建立起来的连接,以某种方式超越规则的利用。

所以我添加了--状态新的,相关的,ESABLISHED --就在最后一次敲门时,这让我可以使用ssh 20秒,然后它就会断开连接,但是在这段时间里,我只需要-j接受我的IP。

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/168281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档