centos7下iptables的使用

IPTABLES

  • 策略与规则链
  • iptables中基本的命令参数
  • 遇到的问题

在早期的Linux系统中,默认使用的是iptables防火墙管理服务来配置防火墙。尽管新型的firewalld防火墙管理服务已经被投入使用多年,但是大量的企业在生产环境中依然出于各种原因而继续使用iptables。

1.策略与规则链

防火墙会从上至下的顺序来读取配置的策略规则,在找到匹配项后就立即结束匹配工作并去执行匹配项中定义的行为(即放行或阻止)。如果在读取完所有的策略规则之后没有匹配项,就去执行默认的策略。一般而言,防火墙策略规则的设置有两种:一种是“通”(即放行),一种是“堵”(即阻止)。当防火墙的默认策略为拒绝时(堵),就要设置允许规则(通),否则谁都进不来;如果防火墙的默认策略为允许时,就要设置拒绝规则,否则谁都能进来,防火墙也就失去了防范的作用

iptables服务把用于处理或过滤流量的策略条目称之为规则,多条规则可以组成一个规则链,而规则链则依据数据包处理位置的不同进行分类,具体如下

在进行路由选择前处理数据包(PREROUTING);

处理流入的数据包(INPUT);

处理流出的数据包(OUTPUT);

处理转发的数据包(FORWARD);

在进行路由选择后处理数据包(POSTROUTING)。

一般来说,从内网向外网发送的流量一般都是可控且良性的,因此我们大多数采用的是input规则链,该规则链可以增大黑客人员从外部入侵内网的难度

其中,策列规则相对于iptables服务的有相应的控制,如下表

名称作用
ACCEPT允许流量通过
REJECT拒绝流量通过
LOG记录日志信息
DROP拒绝流量通过

其中,REJECT 跟 DROP的区别: REJECT是直接拒绝,不会委婉,当面表示无法连接流量;DROP则是委婉拒绝,你无法看到当前对方主机状态或者是否被拒绝

2.iptables中基本的命令参数

Iptables的4张表:

名称作用
filter负责过滤工程,防火墙
nat网络地址转换功能 network address translate
mangle拆解报文,做出修改,并重新封装
raw关闭nat表上启用的连接追踪机制

表链关系

名称使用表
rawPREROUTING、OUTPUT
manglePREROUTING、INPUT、FORWARD、OUTPUT、POSTROUTING
natPREROUTING、OUTPUT、POSTROUTING (注:INPUT链 centos7有,centos6没有)
filterINPUT、FORWARD、OUTPUT

iptables命令可以根据流量的源地址、目的地址、传输协议、服务类型等信息进行匹配,一旦匹配成功,iptables就会根据策略规则所预设的动作来处理这些流量。另外,防火墙策略规则的匹配顺序是从上至下的,因此要把较为严格、优先级较高的策略规则放到前面,以免发生错误

参数作用
-P设置默认策略
-F清空规则链
-L查看规则链
-A在规则链的末尾加入新规则
-I num在规则链的头部加入新规则
-D num删除某一条规则
-s匹配来源地址IP/MASK,加叹号“!”表示除这个IP外
-d匹配目标地址
-i 网卡名称匹配从这块网卡流入的数据
-o 网卡名称匹配从这块网卡流出的数据
-p匹配协议,如TCP、UDP、ICMP
–dport num匹配目标端口号
–sport num匹配来源端口号

使用iptables命令后添加-L参数查看已有的防火墙规则链

[root@centos  ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination 
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere 
INPUT_direct all -- anywhere anywhere 
INPUT_ZONES_SOURCE all -- anywhere anywhere 
###省略---

使用iptables命令后添加-F参数清空已有的防火墙规则链

[root@centos ~]# iptables -F
[root@centos ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination 

将某个规则链的默认策略设置为拒绝或者允许
格式:iptables -P 链名称 相应的策略(拒绝或允许)

向某个规则链中添加允许某个流量进入的策略规则
格式:iptables -I 链名称 -p 流量名称 -j ACCEPT

删除某个规则链中的策略
格式:-iptables -D 链名称 1

保存配置好的防火墙命令策略,使其永久生效
命令格式:service iptables save

[root@centos ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables: [ OK ]

3.遇到的问题

当我重新清空防火墙规则链,然后重新配置以后,在保存配置好的防火墙规则链的时候,出现如下错误

The service command supports only basic LSB actions (start, stop, restart, try-restart, reload, force-reload, status). For other actions, please try to use systemctl
-------------------------------------------------------------翻译如下
service命令只支持基本的LSB操作(start、stop、restart、try restart、reload、force reload、status)。对于其他操作,请尝试使用systemctl

这时候我在想是不是因为版本问题,必经很少用到service这个命令,经过多方求证之后,发下CentOS 7开始,大部分管理系统启动和管理系统服务的相关命令全部由systemctl命令来代替。service命令只保留下了极少部分使用,大部分命令都要改用systemctl使用

但还是想保存自己配置的防火墙规则链,所以最终找到一个可用的方式:

1.首先停止防火墙:systemctl stop firewalld

2.安装或更新服务:yum install iptables-services

3.设置开机启动防火墙:systemctl enable iptables

4.可以使用下面命令管理iptables :systemctl [stop|start|restart] iptables

5.保存防火墙规则:service iptables save

6.重启iptables服务:
service iptables restart
执行完毕之后/etc/syscofig/iptables文件就有了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值