Loading

iptables防火墙

前言

在早期的 Linux 系统中,默认使用的是 iptables 配置防火墙。尽管新型 的 firewalld 防火墙已经被投入使用多年,但是大量的企业在生产环境中依然出于各种原因而继续使用 iptables。考虑到 iptables 在当前生产环境中还具有顽强的生命力,我觉得还是有必要再好好地讲解一下这项技术。

iptables 是基于内核的防火墙,功能非常强大;iptables 内置了filternatmangle三张表。所有规则配置后,立即生效,不需要重启服务。

配置文件:

/etc/sysconfig/iptables


iptables 命令基本语法

“iptables [-t table] command [链名] [条件匹配] [-j 目标动作]

command参数

指定iptables 对我们提交的规则要做什么样的操作,以下是command常用参数:

  • -A

Append,追加一条规则(放到最后)

举例:iptables -A INPUT -j DROP #拒绝所有人访问服务器(作为最后一条规则)

  • -I

Insert,在指定的位置插入规则(忽略序号,放在最前面)

举例:iptables -I INPUT 2 -s 10.0.0.10 -j DROP #拒绝10.0.0.10访问服务器(作为第二条规则)
 

列出所有规则:

举例:iptables -nL --line-number #带序号的规则列表

删除一条规则:

举例:iptables -D INPUT 6 #删除序号为6的一条规则

允许一个IP访问:

举例:iptables -A INPUT -s 192.168.1.1 -j ACCEPT #允许192.168.1.1访问所有协议的所有端口

允许一组IP访问:

举例:iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT #允许192.168.1.0/24网段访问所有协议的所有端口

允许访问某个端口:

举例:iptables -A INPUT -p tcp --dport 8000 -j ACCEPT #开启8000端口

允许一个IP访问某个端口:

举例:iptables -I INPUT -s 10.0.0.10 -p tcp --dport 8075 -j ACCEPT

允许一组IP访问某个端口:

举例:iptables -I INPUT -s 10.0.0.0/24 -p tcp --dport 8075 -j ACCEPT

自定义分组:

举例:iptables -N white  #创建一个分组叫whit
iptables -A white -s 10.0.0.10 -j ACCEPT #在这个分组中加入10.0.0.10的允许权限
其实就是把INPUT改成自定义的分组名,常用的有whitelist,blacklist,黑白名单。

查看自定义分组的规则:

举例:iptables -nL white --line-number  #带序号的white分组的规则

删除自定义分组的规则:

举例:iptables -D white 1  #带序号的white分组的规则

删除自定义分组:

举例:iptables -X   #删除规则为空的自定义分组

删除所有规则:

举例:iptables -F   #删除规则为空的自定义分组(慎用,万一敲了,重启,别保存)

删除自定义分组规则:

举例:iptables -F white   #删除规则为空的自定义分组

保存规则:

虽然及时生效,但是重启就没了,测试正常后,保存一下。

举例:service iptables save

 

posted @ 2022-02-23 22:10  上官飞鸿  阅读(226)  评论(0)    收藏  举报