跳到主要内容

怎样在iptables中添加规则以ACCEPT,REJECT,DENY和DROP ssh的服务?

参考答案:

iptables中,你可以添加规则来接受(ACCEPT)、拒绝(REJECT)、拒绝但无响应(DENY)或丢弃(DROP)SSH服务。SSH通常使用TCP协议的22端口。

首先,请确保你以root用户身份或具有sudo权限的用户身份执行以下命令。

1. ACCEPT SSH 服务

接受SSH服务的规则通常放在INPUT链的开始位置,以确保其他可能拒绝或丢弃该服务的规则不会覆盖它。

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

2. REJECT SSH 服务

拒绝SSH服务,并向客户端发送一个错误消息。

iptables -A INPUT -p tcp --dport 22 -j REJECT

3. DENY SSH 服务

拒绝SSH服务,但不发送任何错误消息给客户端。

iptables -A INPUT -p tcp --dport 22 -j DENY

4. DROP SSH 服务

丢弃SSH服务的数据包,不发送任何响应给客户端。

iptables -A INPUT -p tcp --dport 22 -j DROP

注意事项:

  • 在实际的生产环境中,通常建议使用ACCEPT规则来允许SSH服务,以便管理员可以通过SSH远程访问服务器。
  • REJECTDENY之间的主要区别在于REJECT会向客户端发送一个错误消息,而DENY则不会。
  • DROP规则不会给客户端任何响应,这可能会导致客户端认为网络有问题或服务器没有运行SSH服务。
  • 当你添加新的iptables规则时,它们会按照添加的顺序进行处理。因此,确保将允许SSH服务的规则放在可能拒绝或丢弃该服务的规则之前。
  • 如果你想永久保存iptables规则,你需要根据你的Linux发行版使用特定的工具或命令。例如,在Debian或Ubuntu上,你可以使用iptables-persistent包;在CentOS或RHEL上,你可以使用iptables-servicesfirewalld
  • 在修改iptables规则之前,最好先备份当前的规则集,以便在出现问题时可以轻松恢复。你可以使用iptables-save > /path/to/backupfile命令来备份规则。