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以提升安全性:
<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
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-to-block>替换为需阻止的IP地址。ssh username@<your-server-ip> "sudo iptables -A INPUT -s <ip-to-block> -j DROP"
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. 安全注意事项
/var/log/auth.log,监控SSH登录记录,及时发现异常。