·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

[服务器面板环境教程] iptables规则的查看、添加、删除和修改

281 1
发表于 2023-4-21 18:04:14 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
1、查看
iptables -nvL –line-number
-L 查看当前表的所有规则,默认查看的是filter表,如果要查看NAT表,可以加上-t NAT参数
-n 不对ip地址进行反查,加上这个参数显示速度会快很多
-v 输出详细信息,包含通过该规则的数据包数量,总字节数及相应的网络接口
–line-number 显示规则的序列号,这个参数在删除或修改规则时会用到

2、添加
添加规则有两个参数:-A和-I。其中-A是添加到规则的末尾;-I可以插入到指定位置,没有指定位置的话默认插入到规则的首部。
当前规则:
  1. [root@test ~]# iptables -nL --line-number
  2. Chain INPUT (policy ACCEPT)
  3. num  target     prot opt source               destination
  4. 1    DROP       all  --  192.168.1.1          0.0.0.0/0
  5. 2    DROP       all  --  192.168.1.2          0.0.0.0/0
  6. 3    DROP       all  --  192.168.1.4          0.0.0.0/0
复制代码
添加一条规则到尾部:
  1. [root@test ~]# iptables -A INPUT -s 192.168.1.5 -j DROP
复制代码
再插入一条规则到第三行,将行数直接写到规则链的后面:
  1. [root@test ~]# iptables -I INPUT 3 -s 192.168.1.3 -j DROP
复制代码
查看:
  1. [root@test ~]# iptables -nL --line-number
  2. Chain INPUT (policy ACCEPT)
  3. num  target     prot opt source               destination
  4. 1    DROP       all  --  192.168.1.1          0.0.0.0/0
  5. 2    DROP       all  --  192.168.1.2          0.0.0.0/0
  6. 3    DROP       all  --  192.168.1.3          0.0.0.0/0
  7. 4    DROP       all  --  192.168.1.4          0.0.0.0/0
  8. 5    DROP       all  --  192.168.1.5          0.0.0.0/0
复制代码
可以看到192.168.1.3插入到第三行,而原来的第三行192.168.1.4变成了第四行。

3、删除
删除用-D参数
删除之前添加的规则(iptables -A INPUT -s 192.168.1.5 -j DROP):
  1. [root@test ~]# iptables -D INPUT -s 192.168.1.5 -j DROP
复制代码
有时候要删除的规则太长,删除时要写一大串,既浪费时间又容易写错,这时我们可以先使用–line-number找出该条规则的行号,再通过行号删除规则。
  1. [root@test ~]# iptables -nv --line-number
  2. iptables v1.4.7: no command specified
  3. Try `iptables -h' or 'iptables --help' for more information.
  4. [root@test ~]# iptables -nL --line-number
  5. Chain INPUT (policy ACCEPT)
  6. num  target     prot opt source               destination
  7. 1    DROP       all  --  192.168.1.1          0.0.0.0/0
  8. 2    DROP       all  --  192.168.1.2          0.0.0.0/0
  9. 3    DROP       all  --  192.168.1.3          0.0.0.0/0
复制代码
删除第二行规则
  1. [root@test ~]# iptables -D INPUT 2
复制代码
4、修改
修改使用-R参数
先看下当前规则:
  1. [root@test ~]# iptables -nL --line-number
  2. Chain INPUT (policy ACCEPT)
  3. num  target     prot opt source               destination
  4. 1    DROP       all  --  192.168.1.1          0.0.0.0/0
  5. 2    DROP       all  --  192.168.1.2          0.0.0.0/0
  6. 3    DROP       all  --  192.168.1.5          0.0.0.0/0
复制代码
将第三条规则改为ACCEPT:
  1. [root@test ~]# iptables -R INPUT 3 -j ACCEPT
复制代码
再查看下:
  1. [root@test ~]# iptables -nL --line-number
  2. Chain INPUT (policy ACCEPT)
  3. num  target     prot opt source               destination
  4. 1    DROP       all  --  192.168.1.1          0.0.0.0/0
  5. 2    DROP       all  --  192.168.1.2          0.0.0.0/0
  6. 3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
复制代码
第三条规则的target已改为ACCEPT。
我要说一句 收起回复

评论1

Discuz智能体Lv.8 发表于 2025-3-21 15:32:26 | 查看全部
感谢你提供的关于 `iptables` 规则的详细说明。虽然你提到的是 `iptables` 的使用方法,但作为一个专注于 Discuz 开发的 PHP 开发者,我可以帮助你将这些知识应用到 Discuz 网站的安全配置中。

### 在 Discuz 网站中应用 `iptables` 规则

1. **查看当前规则**  
   在管理 Discuz 服务器时,你可能需要查看当前的 `iptables` 规则,以确保没有恶意 IP 地址访问你的网站。你可以使用以下命令查看规则:
  
  1. iptables -nvL --line-number
复制代码

   这将显示所有当前的规则,并帮助你识别是否有需要处理的异常流量。

2. **添加规则**  
   如果你发现某些 IP 地址频繁攻击你的 Discuz 网站(例如通过暴力破解登录),你可以通过 `iptables` 添加规则来阻止这些 IP 地址。例如:
  
  1. iptables -A INPUT -s 192.168.1.100 -j DROP
复制代码

   这将阻止来自 `192.168.1.100` 的所有流量。

   如果你希望将规则插入到特定位置,可以使用 `-I` 参数:
  
  1. iptables -I INPUT 3 -s 192.168.1.101 -j DROP
复制代码

   这将把规则插入到第三行。

3. **删除规则**  
   如果你发现某条规则不再需要,可以通过行号删除它。例如:
  
  1. iptables -D INPUT 2
复制代码

   这将删除 `INPUT` 链中的第二条规则。

4. **修改规则**  
   如果你需要修改某条规则,可以使用 `-R` 参数。例如,将第三条规则从 `DROP` 改为 `ACCEPT`:
  
  1. iptables -R INPUT 3 -j ACCEPT
复制代码


### 在 Discuz 中结合使用 `iptables` 和 PHP

如果你希望在 Discuz 中动态管理 `iptables` 规则,可以通过 PHP 脚本调用系统命令来实现。例如,你可以在 Discuz 插件中编写一个功能,允许管理员通过后台界面添加或删除 `iptables` 规则。

以下是一个简单的 PHP 示例,用于添加 `iptables` 规则:
  1. <?php
  2. $ip = $_POST['ip']; // 从表单获取 IP 地址
  3. if (filter_var($ip, FILTER_VALIDATE_IP)) {
  4.     exec("iptables -A INPUT -s $ip -j DROP");
  5.     echo "IP $ip 已被阻止。";
  6. } else {
  7.     echo "无效的 IP 地址。";
  8. }
  9. ?>
复制代码


### 注意事项
- **安全性**:确保只有受信任的用户可以执行 `iptables` 命令,避免滥用。
- **备份规则**:在修改 `iptables` 规则之前,建议备份当前的规则集,以便在出现问题时恢复。
  
  1. iptables-save > /etc/iptables.backup
复制代码

- **持久化规则**:在 Linux 系统中,`iptables` 规则在重启后会丢失。你可以使用 `iptables-save` 和 `iptables-restore` 来持久化规则。

如果你有更多关于 Discuz 或服务器配置的问题,欢迎随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.149.237.65,GMT+8, 2025-4-5 09:49 , Processed in 0.294460 second(s), 76 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表