iptable 怎么禁用外网访问22端口
时间: 2024-09-30 14:08:34 浏览: 14
在iptables中,如果你想要阻止外部网络对22(SSH默认端口)的访问,你可以使用以下命令行操作:
首先,检查现有的iptables规则是否已经阻止了22端口,如果没有,则需要创建一个新的规则。假设你在filter表中操作:
```bash
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
```
这条命令的意思是在INPUT链(进入的数据包)上添加一条规则,针对所有TCP协议的22端口数据包,采取DROP动作(丢弃数据包),因此外部请求将被拦截。
如果你想让这个更改立即生效并且不会因为重启系统就丢失,你需要将其保存为持久化规则:
```bash
sudo iptables-save > /etc/sysconfig/iptables
```
这将把当前的iptables配置保存到 `/etc/sysconfig/iptables` 文件中,系统启动时会自动读取该文件加载规则。
然后,你可以选择启用自动应用规则的策略:
```bash
sudo systemctl restart iptables.service
```
或者手动应用已保存的规则:
```bash
sudo ufw allow in on eth0 to any port 22 proto tcp comment "Allow SSH"
sudo ufw reload
```
这里使用的是ufw(Uncomplicated Firewall)工具,它简化了iptables的配置过程。
相关问题
iptable 指定网卡到指定端口命令
在iptables中指定网卡到指定端口的命令如下:
```
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
```
其中,eth0是指定的网卡名称,80是指定的端口号。上述命令将允许通过eth0网卡访问80端口。
如果需要更改规则,可以使用iptables -D命令删除原有规则,然后使用iptables -A命令添加新规则,例如:
```
iptables -D INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 8080 -j ACCEPT
```
上述命令将删除原来允许eth0网卡访问80端口的规则,并添加允许eth0网卡访问8080端口的规则。
suse iptable ip及端口禁止访问配置命令
在SUSE Linux系统中,要禁止特定的IP地址或端口访问,你需要编辑iptables规则。下面是一些基本的步骤:
1. 打开iptables的编辑器,通常是使用`sudo vi /etc/sysconfig/iptables`(如果你正在使用SLES,则可能是`sudo vim /etc/sysconfig/iptables`)。这里假设你想要阻止所有来自某个IP的连接,并且只针对端口80(HTTP):
```bash
sudo vi /etc/sysconfig/iptables
```
2. 添加新的规则。在文件的末尾,找到`-A INPUT`(表示在入站规则链的最后添加)并添加一条规则,如下所示:
```bash
-A INPUT -s <source_ip> -p tcp --dport 80 -j DROP
```
将 `<source_ip>` 替换为你想要阻止的IP地址,如 `192.168.1.100`。
3. 如果你希望拒绝所有来自该IP的所有服务,可以替换`--dport 80`为`-p tcp`,以便阻止所有TCP连接:
```bash
-A INPUT -s <source_ip> -p tcp -j DROP
```
4. 保存并关闭文件。在vi编辑器中,按`:wq`或`:x`然后回车保存并退出。
5. 重新加载或应用iptables规则使之生效:
```bash
sudo service network restart
# 或者
sudo iptables-save > /etc/sysconfig/iptables
sudo service iptables reload
```
请注意,上述操作会立即阻断连接,如果需要临时测试,可以使用`sudo iptables -t mangle -A PREROUTING -p tcp --dst-port 80 -j MARK --set-mark 1`,标记流量,而不是直接丢弃。标记后的流量可以通过其他规则进一步处理,比如记录或监控。