家里装了摄像头,想用手机在外面随时查看,于是你在路由器上设置了端口映射,把摄像头的端口暴露到公网。这招确实管用,可你有没有想过,黑客也可能顺着这个口子溜进来?
端口映射打开了方便之门,也带来了风险
端口映射的本质,就是把外网请求转发到内网某台设备。比如把公网IP的8080端口映射到内网192.168.1.100的80端口,这样别人访问你的公网IP:8080,就能看到你家Web服务器的页面。但这也意味着,原本藏在路由器后面的设备,现在直接面对整个互联网。
就像你家大门上了锁,结果为了收快递,在墙上开了个洞直通客厅。快递员是进来了,小偷呢?
网络边界防护就是那道墙
网络边界防护,说白了就是守住你网络的“出入口”。路由器自带的防火墙是第一道防线,但它默认策略往往只是防入不防出。很多用户做完端口映射就完事了,没去细看防火墙规则。
举个例子,你映射了22端口用于远程连接家里的Linux主机。如果不限制来源IP,全球的扫描器都能尝试暴力破解你的密码。正确的做法是,在防火墙里加一条规则,只允许你公司或家人的IP访问这个端口。
# Linux iptables 示例:只允许特定IP访问22端口
iptables -A INPUT -p tcp --dport 22 -s 123.123.123.123 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
别让默认配置害了你
很多设备出厂时都带默认账户和密码,比如admin/admin。一旦你做了端口映射又没改密码,搜索引擎随便搜一下“inurl:8080 login”,你的设备可能就排在前几页。去年有研究显示,超过三成的家用摄像头仍使用默认凭证。
还有些服务默认开启调试接口或UPnP功能,自动添加端口映射。看似省事,实则等于把钥匙交给陌生人。建议关闭UPnP,手动管理每一个映射条目。
加层代理,少点裸奔
如果你非要开放Web服务,不如把Nginx或Caddy放在前面当代理。它们能做访问控制、HTTPS加密,还能隐藏真实服务器信息。哪怕后端是台老旧的NAS,外面也只能看到标准的443端口和合法证书。
# Nginx 反向代理示例
server {
listen 443 ssl;
server_name camera.example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/privkey.pem;
location / {
proxy_pass http://192.168.1.100:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
这样一来,你只需要在路由器上映射443端口,其他端口全关掉。攻击面小了不止一点半点。
网络边界防护不是一次性设置,而是持续的习惯。每次添加端口映射前,多问一句:这扇门非开不可吗?能不能换个更安全的方式?有时候,用内网穿透工具或VPN回家,比直接开映射靠谱得多。