最近学了点渗透,感觉对外暴露端口是蛮危险的事情,所以就用 nmap -O 扫了下系统指纹,顺便连端口都给扫了:
1
2
3
4
5
6
|
Host is up (0.0086s latency).
Not shown: 997 closed tcp ports (reset)
PORT STATE SERVICE
1053/tcp open remote-as
3001/tcp open nessus
8080/tcp open http-proxy
|
这里对 192.168.xx.0/24 网段直接暴露了三个端口!
所以我用 ss 扫了下端口占用情况:
1
|
sudo ss -tlnp | grep -E '1053|3001|8080'
|
1
2
3
4
5
|
Place your right index finger on the fingerprint reader
LISTEN 0 511 0.0.0.0:3001 0.0.0.0:* users:(("node-MainThread",pid=1911069,fd=25))
LISTEN 0 4096 0.0.0.0:8080 0.0.0.0:* users:(("docker-proxy",pid=28424,fd=7))
LISTEN 0 4096 *:1053 *:* users:(("mihomo",pid=2240089,fd=10))
LISTEN 0 4096 [::]:8080 [::]:* users:(("docker-proxy",pid=28455,fd=7))
|
其实都很正常的软件,但恰恰是这些软件没做好设置直接对外暴露端口了,这些应该都是仅在内网 127.0.0.1 才需要访问的。
从 1053 开始,这是你懂的软件,从配置文件上找发现 1053 是做 dns 解析用的,这里直接用 :1053,直接暴露了,listen 改成 127.0.0.1:1053 即可。
1
2
3
4
5
|
dns:
enable: true
listen: :1053
ipv6: true
enhanced-mode: fake-ip
|
然后是 3001,这个是 nodejs 服务,我跑 cloudui 来展示 claude code 的代码,看 latex 公式很好用,但是暴露出来我可就不喜欢了……
找半天没看到 cloudui 的配置,我就直接把 3001 端口用防火墙阻隔掉吧。
我电脑已经有了 ufw,但是没启用。我首先放行 22 端口,因为有时候还是需要 22 端口用来连 ssh 的,然后开启 ufw 关掉 3001 端口对外网的暴露:
1
2
3
|
sudo ufw allow ssh
sudo ufw enable
sudo ufw deny 3001/tcp
|
注:初次使用 ufw 这里还需要放行很多端口,不然都没办法上网(x
比如你需要放行 80, 443, 53 对外:
1
2
3
|
sudo ufw allow out 80
sudo ufw allow out 443
sudo ufw allow out 53
|
如果有 tun 虚拟网卡玩法的 Meta 还得额外放行,这个自己 AI。
这样 3001 外网就无法访问了。
还有最后一个 8080 由 docker 管理的 sqli_hub。一堆 sql 注入漏洞的容器,配置的时候直接给外网暴露了。
这个需要重建容器……
1
|
docker run -d --name sqli-labs -p 127.0.0.1:8080:80 acgpiano/sqli-labs
|
以后建容器记得严格管控端口。
这样一波操作后 nmap 从局域网扫笔记本就干净多了:
1
2
|
PORT STATE SERVICE
22/tcp closed ssh
|
只有 ssh 服务在我用 systemd 启用的时候才可以用。