要求在终端通过iptables配置规则实现:仅允许计算机通过ssh连接到 该Ubuntu 系统
时间: 2024-09-14 07:09:03 浏览: 57
Linux ssh服务器配置代码实例
要使用`iptables`在Ubuntu系统中配置规则以仅允许通过SSH连接,你需要确保只有SSH协议(默认端口22)的流量被允许。下面是具体步骤:
1. 首先,清空现有的`iptables`规则,以确保没有冲突或不必要的规则:
```bash
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
```
2. 设置默认策略为`DROP`,这样任何未明确允许的流量都会被拒绝:
```bash
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
```
3. 允许本地环回接口(通常是`lo`接口)上的所有流量,这是因为我们需要允许系统内的网络流量:
```bash
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A OUTPUT -o lo -j ACCEPT
```
4. 允许已建立的和相关的连接,这样响应和已经在会话中的数据包可以正常工作:
```bash
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
```
5. 允许SSH端口(默认是22)的流量,只允许目标端口为22的流量通过:
```bash
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
```
6. 保存规则,以便在系统重启后规则依然有效(这一步根据你的Linux发行版可能有所不同):
```bash
sudo iptables-save > /etc/iptables/rules.v4
```
执行以上步骤之后,你的Ubuntu系统将只允许通过SSH协议连接。请注意,操作`iptables`时需要管理员权限,并且在实际环境中修改网络规则之前,建议你确保已经有一个可用的远程访问方法,否则你可能会失去远程访问服务器的能力。
阅读全文