NAT用户如何防邻居

本文最后更新于 74 天前, 如有失效请评论区留言.

本文只能说防止邻居扫描或者爆破等行为,而不是阻止邻居违法行为,关键也没法阻止哈。所以本文主要讲讲如何配置iptables

前因

黄鸡有客户从事违法行为被逮到了, 然后群里的用户开始扫描领居都跑了些啥服务,然后就扫到了我的默认nginx ingress backend页面, 类似如下这样

手搓iptables

从k8s方面能做的相对比较少,另外NAT机器没法配置安全组,当下只能手搓iptables.

由于集群主要是IPv4单栈,且NAT机器IPv6的不可猜测(成本相对比较高),这里仅考虑IPv4情况

禁止邻居访问

iptables -A INPUT -s 172.20.1.1 -j ACCEPT
iptables -A INPUT -s 172.20.1.0/24  -j DROP

允许网关的流量,丢弃其他子网的流量,确保IPv4能正常使用。
查看规则 iptables -L -nv, 不知道有没有用,先这样着吧,反正也没啥影响

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
  29M   21G ts-input   all  --  *      *       0.0.0.0/0            0.0.0.0/0
45520 3801K ACCEPT     all  --  *      *       172.20.1.1           0.0.0.0/0
 9856 2612K DROP       all  --  *      *       172.20.1.0/24        0.0.0.0/0

常规操作

这里就是我配置那些没有安全组机器的规则

  1. 允许访问某些端口
# 单个端口
iptables -A INPUT -p tcp --dport 7946 -j ACCEPT
# 多端口
iptables -A INPUT -p tcp -m multiport --dports 22,53,77,80,443,7946,10250 -j ACCEPT
  1. 允许与已建立的或相关的网络连接相关的数据包通过
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
  1. 允许内网ping
iptables -A INPUT -p icmp --icmp-type echo-request -s 10.0.0.0/8 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -s 172.16.0.0/12 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -s 192.168.0.0/16 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -s 100.64.0.0/10 -j ACCEPT
  1. 允许特定网口流量
iptables -A INPUT -i lo -j ACCEPT
# 纯内网互联网卡
iptables -A INPUT -i eth1 -j ACCEPT
  1. 允许私有网络流量
iptables -A INPUT -s 10.0.0.0/8 -j ACCEPT
iptables -A INPUT -s 172.16.0.0/12 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/16 -j ACCEPT
iptables -A INPUT -s 100.64.0.0/10 -j ACCEPT
  1. 允许udp
iptables -A INPUT -p udp -j ACCEPT
  1. 丢弃所有
iptables -P INPUT DROP

如何暴力清理

这里仅介绍暴力清理全部哈,通常这三者一起用,按如下顺序开始操作

# 清空计数 zero
iptables -Z
# 清除所有规则,将默认策略设置为接受所有数据包,但是会保留用户自定义的链 flush
iptables -F
# 清空自定义的链,不会清除预定义的链 delete
iptables -Z

如何避免机器重启丢失

apt-get install iptables-persistent
dpkg-reconfigure iptables-persistent
# 更新规则
iptables-save > /etc/iptables/rules.v4

主要是依托这个守护程序。另外就是经常保持规则到git上,即使丢了也能找回生效。

其他

尽量组网,使用组网的ip进行监听。

其他可以参考的,基于ipsetiptables屏蔽某IP访问某些端口, 更适合独立VPS了,NAT可能不太用的上,尤其是IPv4 NAT的机器。

Sponsor

Like this article? $1 reward

Comments

According to the relevant laws and regulations of the People's Republic of China, the comment function of the current website has been disabled. If you need to comment, please visit ysicing.me, but the comments still need to be reviewed by AI.