运维面试题分享

运维面试题分享

🧩 题目要求:

只允许 IP 地址为 10.1.8.179 的主机访问本服务器的 22 端口(SSH 端口),其他所有 IP 都拒绝。


🔍 什么是 iptables?

iptables 是 Linux 系统上用于配置防火墙规则的工具。它通过设置规则来控制网络数据包的进出,从而保护系统安全。

iptables 的规则是按顺序匹配的,一旦匹配到某条规则,就会执行该规则指定的动作(如接受、拒绝、丢弃等),后面的规则就不再检查了。


🧱 iptables 的基本结构:

iptables -A 链名 匹配条件 -j 动作

  • -A:表示 追加 一条规则到某个链(chain)的末尾。
  • 链名:常见的链有 INPUT(入站)、OUTPUT(出站)、FORWARD(转发)。
  • 匹配条件:比如协议类型(-p tcp)、目标端口(--dport 22)、源 IP(-s IP地址)等。
  • -j:表示 跳转到 某个动作,比如 ACCEPT(接受)、DROP(丢弃)、REJECT(拒绝)等。

🧪 分析你给出的答案:

第一条规则:

bash
iptables -A INPUT -p tcp --dport 22 -s 10.1.8.179 -j ACCEPT

  • 作用:允许来自 IP 地址 10.1.8.179 的 TCP 数据包访问本机的 22 端口。
  • 解释
    • -A INPUT:追加到 INPUT 链(处理入站数据包)。
    • -p tcp:指定协议为 TCP。
    • --dport 22:目标端口为 22(SSH 默认端口)。
    • -s 10.1.8.179:源 IP 地址为 10.1.8.179。
    • -j ACCEPT:接受这个数据包。

✅ 这条规则表示:只有 10.1.8.179 可以访问 22 端口,并接受连接。


第二条规则:

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

  • 作用:丢弃所有其他尝试访问 22 端口的 TCP 数据包。
  • 解释
    • • 同样作用于 INPUT 链。
    • • 同样针对 TCP 协议、目标端口 22。
    • • 但没有指定源 IP(-s),表示对所有 IP 生效。
    • -j DROP:直接丢弃数据包,不给任何回应。

✅ 这条规则表示:除了上面明确允许的 IP,其他所有 IP 都无法访问 22 端口。


⚠️ 注意事项:

  1. 1. 顺序很重要
    • iptables 是按顺序匹配规则的。
    • • 如果你先加了 DROP 规则,再加 ACCEPT 规则,那么 ACCEPT 就不会生效了,因为数据包已经被 DROP 掉了。
    • • 所以:必须先允许特定 IP,再拒绝其他所有 IP。
  2. 2. 保存规则
    • iptables 规则在重启后会丢失,除非你保存它们。
    • • 在 CentOS 上可以使用:service iptables save
    • • 在 Ubuntu 上可以使用 iptables-persistent 工具保存。
  3. 3. 远程操作风险
    • • 如果你通过 SSH 远程连接服务器,并且规则设置错误(比如把自己挡在外面),你可能会失去连接。
    • • 建议先在本地测试,或者设置定时任务清除规则(比如 5 分钟后自动清除),防止误操作。

✅ 总结:

你给出的答案是正确且合理的

iptables -A INPUT -p tcp --dport 22 -s 10.1.8.179 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

这两条规则配合使用,实现了仅允许 10.1.8.179 访问 22 端口,其他全部拒绝的需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值