跳到主要内容

iptables

iptables

image-20240417203558774

目录

[toc]

如何关闭iptables

更新:2023-05-19 02:52

iptables是一个Linux系统中用于网络协议包过滤的工具,它可以根据自己配置的规则,决定哪些流量允许通过系统,哪些流量需要被阻止。但在某些情况下,你需要关闭iptables,比如在测试或调试过程中,或者想暂时禁用某些规则。下面就从多个方面详细讲解如何关闭iptables。

1、通过命令行关闭iptables

在Linux系统中,可以通过iptables命令来创建、修改、删除和清空规则。要关闭iptables,可以用以下命令:

iptables -F
iptables -X
iptables -Z

- -F:清空所有规则
- -X:删除所有用户自定义链
- -Z:将所有计数器归零


service iptables save
service iptables stop #直接执行这个命令就好

以上命令的作用分别为:

  • -F:清空所有规则
  • -X:删除所有用户自定义链
  • -Z:将所有计数器归零
  • sudo service iptables save:保存规则到配置文件
  • sudo service iptables stop:停止iptables服务

在执行以上命令之后,iptables就被关闭了。如果需要重新启用iptables,只需执行以下命令:

service iptables start

2、永久关闭iptables

在有些情况下,我们需要永久关闭iptables,即使系统重启也不会再次启用iptables。这时,我们就需要在系统配置文件中进行修改。

在CentOS 7上,iptables的规则保存在/etc/sysconfig/iptables文件中。要永久关闭iptables,只需要将该文件中的规则清空即可,命令如下:

iptables-save > /etc/sysconfig/iptables

执行以上命令后,iptables的配置文件就被清空了,iptables将不再生效,除非重新添加规则。

3、使用GUI工具关闭iptables

如果你不想在命令行中输入一堆命令,还可以使用GUI工具来关闭iptables。在Linux下有许多iptables的GUI前端工具,其中比较流行的有Firewalld,ufw等。

在CentOS 7中,Firewalld已经成为系统默认的防火墙工具。如果需要关闭它,只需执行以下命令:

systemctl stop firewalld
systemctl disable firewalld

以上命令的作用分别为停止firewalld服务和禁止firewalld服务开机自启动。执行以上命令后,iptables就被关闭了。

4、打开必要的端口

在关闭iptables的时候,需要注意如果你的系统上运行着服务,比如Web服务器、数据库等,需要开启这些服务所需要的端口,否则这些服务可能会无法正常工作。

以下是一些常见的需要打开的端口列表。

  • SSH:22
  • HTTP:80
  • HTTPS:443
  • MySQL:3306
  • Postgres:5432

要打开端口,需要使用iptables的命令行

iptables -I INPUT 4 -p tcp --dport 80 -j ACCEPT

以上命令的作用是在iptables中添加一条规则,打开端口80。

5、总结

本文从多个方面详细讲解了如何关闭iptables,包括通过命令行关闭、永久关闭、使用GUI工具关闭和打开必要的端口。在实际使用中,应根据需要选择适合自己的方法。

注意:centos7版本也是可以使用ipatbles的

image-20240324151110895

案例:禁止任何ip访问本机器的80端口

[!NOTE]

未实际测试,经gpt留作记录。

linux防火墙里,禁止任何ip访问本机器的80端口,这个iptables策略改如何配置呢?

要在Linux上使用iptables来禁止任何IP访问本机的80端口,你可以添加一条规则来拒绝所有传入的连接到HTTP服务所使用的端口。以下是具体的命令:

sudo iptables -A INPUT -p tcp --dport 80 -j REJECT

这条命令的组成部分解释如下:

  • sudo: 以超级用户的权限运行命令,因为更改防火墙规则需要管理员权限。
  • iptables: 调用iptables工具,这是Linux中用来设置防火墙规则的程序。
  • -A INPUT: 向INPUT链追加(Append)一条规则。INPUT链处理所有传入的数据包。
  • -p tcp: 指定协议为TCP,因为HTTP服务通常运行在TCP协议上。
  • --dport 80: 指定目标端口为80,这是HTTP服务的默认端口。
  • -j REJECT: 指定如果数据包匹配上述条件,则执行的动作为REJECT,即拒绝数据包。默认情况下,REJECT会向发送源返回一个错误响应。

如果你想要静默丢弃数据包而不是明确拒绝,可以使用DROP动作来代替REJECT

sudo iptables -A INPUT -p tcp --dport 80 -j DROP

这条命令将不会给发送者任何响应,只是简单地丢弃对80端口的访问请求。

在配置完毕后,可以使用以下命令查看当前的iptables规则:

sudo iptables -L -v

请注意,这些规则在重启后不会自动保存。为了保持这些更改,你需要使用系统特定的方法来保存iptables规则。在某些系统中,你可能需要安装iptables-persistent软件包或使用类似的工具来保存这些规则。

关于我

我的博客主旨:

  • 排版美观,语言精炼;
  • 文档即手册,步骤明细,拒绝埋坑,提供源码;
  • 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!

🍀 微信二维码

x2675263825 (舍得), qq:2675263825。

image-20230107215114763

🍀 微信公众号

《云原生架构师实战》

image-20230107215126971

🍀 个人博客站点

https://onedayxyy.cn/

🍀 语雀

https://www.yuque.com/xyy-onlyone

🍀 csdn

https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

image-20230107215149885

🍀 知乎

https://www.zhihu.com/people/foryouone

image-20230107215203185

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!