目录
一、服务的启动与关闭命令
二、iptables介绍
1、防火墙分类
2、iptables的启动
① 在开机时禁用firewalld服务:
②安装iptables-services
③将它设置为开机自启
3、iptables 四表五链详解
链
表
表和链的关系编辑
不是所有的表都附着在同一条链上编辑
4、iptables基本用法
匹配条件
处理动作
iptables常用的选项编辑
iptables常用规则匹配编辑
iptables配置
基本匹配条件总结
扩展匹配条件总结
(补充)selinux
1、工作模式
2、如何禁用
一、服务的启动与关闭命令
|
二、iptables介绍
1、防火墙分类
①从逻辑上
②从物理上
iptables 并不是真正意义上的防火墙,我们可以理解为一个客户端工具,用户通过 ipatbles 这个客户端,将用户的安全设定执行到对应的"安全框架”中,这个"安全框架"才是真正的防火墙,这个框架的名字叫 netfilter .iptables 是一个命令行工具,位于用户空间,通过这个命令行工具来操作 netfilter 。
netfilter 才是防火墙真正的安全框架, netfilter 位于内核空间。netfilter / iptables (简称为 iptables )组成 Linux 平台下的包过滤防火墙,与大多数的 Linux 软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换( NAT )等功能。
2、iptables的启动
① 在开机时禁用firewalld服务:
[root@localhost ~]# systemctl disable firewalld
②安装iptables-services
[root@localhost ~]# yum install iptables-services -y
③将它设置为开机自启
安装以后查看服务状态显示未启动,可以将它设置为开机自启
[root@localhost ~]# systemctl enable iptables
3、iptables 四表五链详解
防火墙是按照规则办事的,我们就来说说规则( rules ),规则其实就是网络管理员预定义的条件,规则一般的定义为"如果数据包头符合这样的条件,就这样处理这个数据包"。规则存储在内核空间的信息包过滤表中,这些规则分别指定了源地址、目的地址、传输协议(如 TCP 、 UDP 、 ICMP )和服务类型(如 HTTP 、 FTP 和 SMTP )等。当数据包与规则匹配时, iptables 就根据规则所定义的方法来处理这些数据包,如放行( accept )、拒绝( reject )和丢弃( drop )等。配置防火墙的主要工作就是加、修改和删除这些规则。
当客户端访问服务器的 web 服务时,客户端发送报文到网卡,而 tcp / ip 协议栈是属于内核的一部分,所以,客户端的信息会通过内核的 TCP 协议传输到用户空间中的 web 服务中,而此时,客户端报文的目标终点为 web 服务所监听的套接字( IP : Port )上,当 web 服务需要响应客户端请求时, web 服务发出的响应报文的目标终点则为客户端,这个时候, web 服务所监听的 IP 与端口反而变成了原点,我们说过, netfilter 才是真正的防火墙,它是内核的一部分,所以,如果我们想要防火墙能够达到"防火"的目的,则需要在内核中设置关卡,所有进出的报文都要通过这些关卡,经过检查后,符合放行条件的才能放行,符合阻拦条件的则需要被阻止,于是,就出现了 input 关卡和 output 关卡,而这些关卡在 iptables 中不被称为"关卡”,而被称为“链”。
这只是一个简单的描述,除过这两个关卡以外,我们还有其他关卡,也就是其他链,他们就是“路由前"、“转发”、“路由后”,对应英文表示为 PREROUTING 、 FORWARD 、POSTROUTING .
报文的流向:
- 到本机某进程的报文: PREROUTING > INPUT
- 由本机转发的报文: PREROUTING > FORWARD > POSTROUTING
- 由本机的某进程发出报文(通常为响应报文): OUTPUT > POSTROUTING
链
防火墙的作用就在于对经过的报文匹配”规则",然后执行对应的”动作",所以,当报文经过这些关卡的时候,则必须匹配这个关卡上的规则,但是,这个关卡上可能不止有一条规则,而是有很多条规则,当我们把这些规则串到一个链条上的时候,就形成了“链”,所以,我们把每一个"关卡”想象成如下图中的模样,这样来说,把他们称为“链”更为合适,每个经过这个"关卡”的报文,都要将这条”链”上的所有规则匹配一遍,如果有符合条件的规则,则执行规则对应的动作。
表
我们把具有相同功能的规则的集合叫做"表”,不同的规则放置于不同的表中工作,在 iptables 中定义了四种表,每种表对应不同的功能。
表和链的关系
不是所有的表都附着在同一条链上
iptables 为我们定义了4张”表",当他们处于同一条”链”时,执行的优先级如下。
优先级次序(由高而低): raw -> mangle -> nat --> filter
来看一个完整的图来了解在数据传输过程中,防火墙的表和链的功能体现
4、iptables基本用法
在上述描述中我们一直在提规则,可是没有细说,现在说说它。先说说规则的概念,然后再通俗的解释它
规则:根据指定的匹配条件来尝试匹配每个流经此处的报文,一旦匹配成功,则由规则后面指定的处理动作进行处理。
在这里我们提到了两个概念,第一个匹配条件,第二个处理动作,我们通过这两个概念来解释一下什么是iptables的规则。
在上面讲解中我们提到了每一条”链"都是一个关卡,凡是要通过这个关卡就需要匹配这个关卡上面的规则,根据配规则来决定处理动作。
举个例子:大家都玩游戏,有一些关卡类游戏,就需要你完成了一些相应的任务,在通过关卡的时候才会通过,到下一个关卡,否则不能到下一个关卡。那么要想通过关卡就需要满足完成任务的"规则”,"完成任务就是一个匹配条件,完成之后就可以通过到下一个关卡,"通过"就是一个处理动作,匹配条件加上处理动作共同组成了规则。
匹配条件
处理动作
iptables常用的选项
-t 指定表
-j 处理动作 指定处理动作
--line-numbers 显示规则的序号
-v 显示详细信息
iptables常用规则匹配
iptables配置
清理原有规则: # iptables -F(临时清除) # iptables -nvL 增加规则 # iptables -t filter -I INPUT -s 192.168.100.134 -j DROP 修改(替换)规则 # iptables -t filter -R INPUT 1 -s 192.168.100.134 -j ACCEPT (替换规则一定要指明是第几条规则,替换规则未指定唯一地址) 删除规则 第一种 # iptables -D INPUT 1 (按照规则号删除) 第二种 # iptables -D INPU -s 192.168.100.134 -j ACCEPT (按照匹配规则删除) 保存规则 centos6 或者是7上禁用firewalld 安装iptables-services后 # service iptables save 保存的文件 /etc/sysconfig/iptables # iptables-save > /etc/sysconfig/iptables (这个命令保存规则到其他文件(除了/etc/sysconfig/iptables)可以通过iptables-restore恢复回来) 恢复规则 # iptables-restore < /etc/sysconfig/iptables 修改链的默认策略 慎重使用 可以采用别的方式实现白名单 # iptables -P INPUT DROP (设置了DROP后ssh就不能连接了)
iptables执行规则时,是从从规则表中从上至下顺序执行的,如果没遇到匹配的规则,就一条一条往下执行,如果遇到匹配的规则后,那么就执行本规则,执行后根据本规则的动作 (accept, reject, log等),决定下一步执行的情况。
先规定表(-t)再用选项给哪一条链制定规则,再用-s/-d匹配源地址/目标地址,再用选项设置处理动作。
我们在添加iptables规则的时候,一般会同时使用协议类型(-p)和端口号(-dport/sport)。只有这样添加的规则,iptables才会知道,我们要对哪个应用程序的通讯进行放行或者禁行的操作。
如果不指定协议,则默认为所有协议。
基本匹配条件总结
#匹配源地址 # iptables -t filter -I INPUT -s 192.168.100.142 -j REJECT # iptables -t filter -I INPUT -s 192.168.100.142,192.168.100.143 -j DROP (指定多个地址源时每个IP用逗号隔开) # iptables -t filter -I INPUT -s 192.168.100.0/24 -j DROP (指定一个网段) # iptables -t filter -I INPUT ! -s 192.168.100.0/24 -j DROP (指定除了这个网段的数据包,其他IP的数据包均丢弃) #匹配目标地址 # iptables -t filter -I OUTPUT -d 192.168.100.142 -j REJECT # iptables -t filter -I INPUT -d 192.168.100.142,192.168.100.143 -j DROP # iptables -t filter -I INPUT -d 192.168.100.0/24 -j DROP # iptables -t filter -I INPUT ! -d 192.168.100.0/24 -j DROP #匹配协议 # iptables -t filter -I INPUT -p tcp -d 192.168.100.142 -j REJECT # iptables -t filter -I INPUT -p udp -d 192.168.100.142,192.168.100.143 -j DROP # iptables -t filter -I INPUT -p tcmp -d 192.168.100.0/24 -j DROP (匹配端口时一定要加协议) #匹配入口网卡 # iptables -t filter -I INPUT -p tcp -i ens33 -j REJECT # iptables -t filter -I INPUT -p tcp -i eth0 -j REJECT
扩展匹配条件总结
(-p指定协议 -m表明它是是扩展协议) -p tcp -m tcp --sport 可以指定一个,或者用冒号指定连续端口 -p tcp -m tcp --dport 可以指定一个,或者用冒号指定连续端口 -p tcp -m multiport --sport 可以指定离散端口,用逗号分隔 -p tcp -m multiport --dport 可以指定离散端口,用逗号分隔
# iptables -t filter -I INPUT -s 192.168.100.142 -p tcp -m tcp --dport 22 -j REJECT # iptables -t filter -I INPUT -d 192.168.100.142 -p tcp -m tcp --sport 22:80 -j REJECT (拒绝连续端口) # iptables -t filter -I INPUT -d 192.168.100.142 -p tcp -m tcp --sport 22: -j REJECT (指定从22开始的连续端口) # iptables -t filter -I INPUT -d 192.168.100.142 -p tcp -m tcp --sport :80 -j REJECT (指定到80结束的连续端口) # iptables -t filter -I INPUT -d 192.168.100.142 -p tcp -m tcp ! --sport 22:80 -j REJECT # iptables -t filter -I INPUT -s 192.168.100.142 -p tcp -m multiport --dport 22,80 -j REJECT (拒绝离散端口) # iptables -t filter -I INPUT -d 192.168.100.142 -p tcp -m multiport --sport 22,80 -j REJECT
(补充)selinux
SELinux诞生的初衷是防止权限和资源的滥用
1、工作模式
SELinux 有三种工作模式,分别是:
- enforcing:强制模式。违反 SELinux 规则的行为将被阻止并记录到日志中。
- permissive:宽容模式。违反 SELinux 规则的行为只会记录到日志中。一般为调试用。
- disabled:关闭 SELinux。
SELinux 工作模式可以在 /etc/sysconfig/selinux 中设定。
如果想从 disabled 切换到 enforcing 或者 permissive 的话,需要重启系统。反过来也一样。
enforcing 和 permissive 模式可以通过 setenforce 1|0 命令快速切换。
需要注意的是,如果系统已经在关闭 SELinux 的状态下运行了一段时间,在打开 SELinux 之后的第一次重启速度可能会比较慢。因为系统必须为磁盘中的文件创建安全上下文。
一般会禁用selinux,因为可能出现莫名其妙的报错
2、如何禁用
1、编写 /etc/sysconfig/selinux文件
[root@localhost ~]# vi /etc/sysconfig/selinux
将高亮显示改为disabled
2、重启虚拟机,查看现在的状态
文章来源:https://www.toymoban.com/news/detail-447547.html
文章来源地址https://www.toymoban.com/news/detail-447547.html
到了这里,关于【Linux安全管理】iptables配置与iptables基本用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!