iptables 如何屏蔽所有端口但是自身能上网

2022-11-18 10:05:41 +08:00
 koebehshian

如题,我试了一下,貌似由于 IP 层没法区分是服务端发出的还是客户端发出的,所以屏蔽所有端口后,自身也不上了网了。TCP 有没有什么 flag 能区分一下

2040 次点击
所在节点    Linux
10 条回复
yc8332
2022-11-18 10:09:03 +08:00
通信需要端口,不管是发出还是接收。
nodesolar
2022-11-18 10:09:34 +08:00
按 input /ouput 做屏蔽呗
ihipop
2022-11-18 10:13:35 +08:00
这还不简单,如果不想要客户端能访问服务器,就禁止入站(或者入站握手)呗。
baobao1270
2022-11-18 10:20:34 +08:00
废话,IP 层当然没法判断
但是你试了一下就发现,显然是不可能的,是你的操作方法有错误。
kaedeair
2022-11-18 10:22:00 +08:00
默认 intput reject 然后配置 tcp 状态为 related 和 established 的 accpt
sujin190
2022-11-18 11:04:18 +08:00
#5 说得对,不但 tcp 有连接 established 的状态,udp 也有,iptables -m 参数可以设置匹配这个,服务器上网先走 output 表不 reject 发 sync ,然后就有连接状态可以匹配继续放行
hxysnail
2022-11-18 11:10:32 +08:00
把 lo 以外的入站握手 drop 掉就行啦
PbCopy111
2022-11-18 11:41:26 +08:00
需求说错了,先说屏蔽所有端口的目的。
koebehshian
2022-11-18 16:29:56 +08:00
@PbCopy111 是嵌入式上,开发路由器,但不用 openwrt(为了省一个芯片,直接在通信模块中实现路由功能)
JohnBull
2022-11-24 00:20:35 +08:00
最好不要直接用--syn ,改用 -m conntrack ,拦截 NEW 状态,放过 ESTABLISHED,RELATED 状态。
因为有些协议就是要派生出反向连接的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/896124

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX