vps服务器常用iptables规则

这篇博客分享了如何使用iptables在VPS服务器上设置防火墙规则,保护服务器安全。主要规则包括允许已建立连接、开放指定端口、限制 ICMP 请求频率、拒绝非法数据包及阻止SMTP端口等,确保服务器稳定运行并防止恶意攻击。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

个人在vps服务器上使用的iptables规则分享

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
#这里修改为自己开放的端口,若需要开放多个端口在此处增加多条对应规则
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport XXX -j ACCEPT 
iptables -A INPUT -p icmp -m limit --limit 1/sec --limit-burst 10 -j ACCEPT
iptables -A INPUT -p icmp -m limit --limit 100/sec --limit-burst 100 -j ACCEPT
iptables -A INPUT -j REJECT --reject-with icmp-host-prohibited
#丢弃无效数据包
iptables -A INPUT -m conntrack --ctstate INVALID -j DROP 
#禁止回显请求
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j DROP 
#禁止时间戳请求
iptables -A INPUT -p icmp -m icmp --icmp-type 13 -j DROP 
#禁止TTL生存时间
iptables -A INPUT -p icmp -m icmp --icmp-type 11 -j DROP 
iptables -A FORWARD -j REJECT --reject-with icmp-host-prohibited
#屏蔽SMTP传出端口
iptables -A OUTPUT -p tcp -m multiport --dports 25,465,587 -j REJECT --reject-with icmp-port-unreachable 
#禁止回显应答
iptables -A OUTPUT -p icmp -m icmp --icmp-type 0 -j DROP 
#禁止时间戳应答
iptables -A OUTPUT -p icmp -m icmp --icmp-type 14 -j DROP 
#禁止TTL生存时间
iptables -A OUTPUT -p icmp -m icmp --icmp-type 11 -j DROP 
要在 Linux 系统上开发或开放端口 3321,以便允许外部设备通过此端口访问服务器上的应用,需要按照以下几个步骤来进行设置。这通常涉及到防火墙规则的调整、应用程序监听该端口以及安全性的考虑。 ### 步骤一:确定应用程序是否已经监听端口 3321 首先,你需要确认有无程序已经在使用这个端口号。你可以使用如下的命令来查找: ```bash sudo lsof -i :3321 ``` 或者更简单的方式是用 `netstat` 或者较新的替代工具 `ss`: ```bash sudo netstat -tuln | grep 3321 # 对于传统系统 # OR sudo ss -tuln | grep 3321 # 推荐用于现代Linux发行版 ``` 如果没有找到任何结果,则说明目前没有任何服务正在占用该端口;如果有输出则表示已有其他服务占用了端口 3321 ,你可能需要选择一个不同的端口或停止现有的服务再继续下一步。 ### 步骤二:配置应用程序监听端口 3321 假设你想让某个 Web 应用或其他类型的网络服务在这个端口上运行,那么就需要修改相应软件的配置文件使其绑定到 3321 。具体的更改取决于你要部署的应用是什么样的。一般而言,可以在启动脚本中加入类似 `-p 3321:3321` 参数(如果是Docker),或者是编辑其配置文件内的端口选项(对于大多数HTTP/HTTPS等协议的服务)。 例如,如果你有一个简单的 Node.js HTTP Server 并想让它监听 3321 : ```javascript const http = require('http'); const server = http.createServer((req, res) => { res.writeHead(200); res.end('Hello World\n'); }); server.listen(3321, () => console.log(`Server running at port 3321`)); ``` 然后保存并重启你的Node.js应用程序。 ### 步骤三:添加防火墙规则以开放端口 3321 为了使外部能够连接至新开启的服务,还需更新系统的防火墙策略允许传入流量到达目标端口。这里我们以最常用iptables 和 ufw (Uncomplicated Firewall)为例进行介绍。 #### 使用 iptables 添加规则 如果你想直接操作iptables可以这样做: ```bash sudo iptables -A INPUT -p tcp --dport 3321 -j ACCEPT sudo service iptables save # CentOS/RHEL系列 # or sudo systemctl restart iptables # Ubuntu/Debian系列 ``` #### 使用 UFW 来简化防火墙管理 UFW 提供了一个更容易理解的方式来处理防火墙设置,在基于Ubuntu和其他一些发行版的操作系统中默认启用: ```bash sudo ufw allow 3321/tcp # 允许TCP请求进入端口3321 sudo ufw reload # 更新规则生效 ``` > **提示:** 如果你是云服务商提供的VPS,默认情况下它们也可能自带安全组功能控制出入站规则,请记得同样去那里做相应的放通设定。 ### 步骤四:验证端口已成功打开 完成上述所有操作之后,你可以借助 Telnet客户端或者其他在线测试网站来检验端口是否确实对外界可见并且可用。比如从另一台机器执行 telnet 测试: ```bash telnet <your_server_ip_address> 3321 ``` 如果一切正常的话,你会看到类似于“Connected to ...”的消息表明通信建立成功了。 --- **注意事项** 当对外开放端口时,请始终保持警惕并对潜在风险有所准备。确保只公开必要的最小权限集,并定期审查日志记录了解谁在尝试接入您的服务。此外还可以利用 SELinux/AppArmor 强化隔离保护机制进一步提升安全性水平。 最后别忘了备份好关键数据以防意外情况的发生! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值