温馨提示×

Ubuntu iptables如何进行远程管理

小樊
46
2025-10-13 20:42:43
栏目: 智能运维

1. 前提:安装并启动SSH服务
远程管理Ubuntu服务器需通过SSH协议,因此需确保SSH服务已安装并运行。若未安装,执行以下命令安装:

sudo apt-get update
sudo apt-get install openssh-server

启动SSH服务并设置开机自启:

sudo systemctl start ssh
sudo systemctl enable ssh

2. 配置iptables允许SSH远程连接
默认情况下,iptables会阻止所有未明确允许的入站流量。需添加规则允许SSH(默认端口22)的入站连接,同时限制来源IP以提升安全性:

  • 允许特定IP访问SSH(推荐):将<your-ip>替换为你的远程计算机IP地址,仅允许该IP连接SSH。
    sudo iptables -A INPUT -p tcp --dport 22 -s <your-ip> -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
    sudo iptables -A OUTPUT -p tcp --sport 22 -d <your-ip> -m conntrack --ctstate ESTABLISHED -j ACCEPT
    
  • 允许所有IP访问SSH(不推荐,仅测试用):若需临时允许所有IP连接,可添加以下规则(后续需修改为限制来源IP)。
    sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    

3. 保存iptables规则
Ubuntu重启后,iptables规则会丢失。需安装iptables-persistent工具保存规则,使其永久生效:

sudo apt-get install iptables-persistent
sudo netfilter-persistent save  # 保存当前规则
sudo netfilter-persistent reload  # 重新加载规则(可选)

4. 远程执行iptables命令
通过SSH连接到服务器后,可直接在终端执行iptables命令进行远程管理。例如:

  • 添加规则阻止特定IP:将<ip-to-block>替换为需阻止的IP地址。
    ssh username@<your-server-ip> "sudo iptables -A INPUT -s <ip-to-block> -j DROP"
    
  • 查看当前iptables规则
    ssh username@<your-server-ip> "sudo iptables -L -v -n"
    
  • 删除规则:若需删除某条规则,可先通过iptables -L --line-numbers查看规则编号,再执行删除(例如删除INPUT链的第3条规则):
    ssh username@<your-server-ip> "sudo iptables -D INPUT 3"
    

5. 安全注意事项

  • 使用SSH密钥认证:禁用密码认证,使用SSH密钥对进行身份验证,降低暴力破解风险。
  • 限制SSH端口:将SSH端口从默认的22改为其他端口(如2222),减少被扫描到的概率。
  • 定期备份规则:将iptables规则备份到本地,避免误操作导致无法恢复。
  • 监控日志:定期查看/var/log/auth.log,监控SSH登录记录,及时发现异常。

0