编程技术文章分享与教程

网站首页 > 技术文章 正文

iptables增加、删除、修改、查询、保存防火墙策略教程

hmc789 2024-11-19 04:59:22 技术文章 1 ℃

一.查看现有防火墙策略

# iptables有filter、nat、mangle、raw四张表
# filter表下默认有PREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING五条链
# 默认查看filter表、所有链的策略
iptables -L -n

#--line-number参数会显示策略编号,该编号在删除策略时使用
iptables -L -n --line-number

# 查看指定表的所有策略
iptables -t <table_name> -L -n

# 查看指定链的策略
iptables -L <chain_name> -n

二.增加防火墙策略(以22端口为例)

iptables -A INPUT -s 192.168.220.0/24 -p TCP --dport 22 -j ACCEPT    #增加网段
iptables -A INPUT -s 192.168.1.1 -p TCP --dport 22 -j ACCEPT         #增加单个IP
iptables -A INPUT -p TCP --dport 22 -j DROP

说明:

1. -A代理在末尾追加,如果要在开头插入使用-I

2.多IP使用逗号(半角)相隔,多端口添加-m multiport然后端口使用逗号(半角)相隔

iptables -A INPUT -s 127.0.0.1,1192.168.1.1 -p tcp -m multiport --dport 22,23 -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dport 22,23 -m comment --comment "deny all 22,23" -j DROP

3.对于连续IP合用--src-range

iptables -I INPUT -m iprange --src-range 192.168.220.128-192.168.220.139 -p tcp -m multiport --dport 22,23 -m comment --comment "subnet:22,23" -j ACCEPT

注意这个语句的结果中source会变成0.0.0.0/0,但不用担心他会对所有IP放行,后边有source IP range的描述那是起作用的IP:

4. 如果原来没有策略或者不冲突的情况下,-A和-I的结果是一样的;但是在“远程添加防火墙”和“限制22端口”两个条件下,-I可能会让你陷入致命的麻烦:

iptables -I INPUT -p TCP --dport 22 -j DROP
iptables -I INPUT -s 192.168.1.1 -p TCP --dport 22 -j ACCEPT
iptables -I INPUT -s 192.168.220.0/24 -p TCP --dport 22 -j ACCEPT

看起来这三句和-A那三句结果是一样的,但防火墙策略是即时生效的也就是在“iptables -I INPUT -p TCP --dport 22 -j DROP”执行后,你的ssh就马上会断开了后边两句根本不会执行

5.-A等参数后接的是链名,比如前面我们都是INPUT链;类似的,如果我们要操作自定义的规则链,只要将INPUT改成自己的链名即可。规则链创建删除命令如下:

# 创建新规则链
iptables -N <chain_name>
# 将新建的链加追加到INPUT链
iptables -A INPUT -j <chain_name>
# 将新建的链从INPUT链移除
iptables -D INPUT -j <chain_name>
# 删除规则链
iptables -X <chain_name>

三.修改防火墙策略

iptables -R INPUT 2 -s 192.168.1.1 -p TCP --dport 22 -j DROP   #2是--line-nember查到的,所有参数都要写-R不是在原策略基础上修改而就是直接取化,所以这里的-s虽然原来就是192.168.1.1但还是要写,不然结果就是DROP掉所有ip对22端口的连接请求

四.删除防火墙策略

iptables -D INPUT 2   #2是--line-number查到的,此句会删除第2条策略(从1开始编号)

iptables -F           #此句会清空所有防火墙规则,慎用

五.保存防火墙规则

上边对防火墙的修改只是临时的,并没有存入配置文件(/etc/sysconfig/iptables),防火墙服务重启之后策略会退回到之前保存的策略状态;要防火墙配置永久生效要进行保存

service iptbales save
标签列表
最新留言