【Linux安全管理】iptables配置与iptables基本用法

这篇具有很好参考价值的文章主要介绍了【Linux安全管理】iptables配置与iptables基本用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、服务的启动与关闭命令

二、iptables介绍

1、防火墙分类

2、iptables的启动

① 在开机时禁用firewalld服务:

 ②安装iptables-services

③将它设置为开机自启

3、iptables 四表五链详解

 表和链的关系​编辑

 不是所有的表都附着在同一条链上​编辑

4、iptables基本用法

匹配条件 

 处理动作

 iptables常用的选项​编辑

 iptables常用规则匹配​编辑

iptables配置

基本匹配条件总结

扩展匹配条件总结

(补充)selinux

1、工作模式

2、如何禁用


一、服务的启动与关闭命令

  • 启动服务:systemctl start service
  • 关闭服务:systemctl stop service
  • 重启服务:systemctl restart service
  • 显示服务的状态:systemctl status service
  • 在开机时启用服务:systemctl enable service
  • 在开机时禁用服务:systemctl disable service
  • 查看服务是否开机启动:systemctl is-enabled service
  • 查看已启动的服务列表:systemctl list-unit-files|grep enabled
  • 查看启动失败的服务列表:systemctl --failed

二、iptables介绍

1、防火墙分类

①从逻辑上【Linux安全管理】iptables配置与iptables基本用法

  ②从物理上【Linux安全管理】iptables配置与iptables基本用法

        iptables 并不是真正意义上的防火墙,我们可以理解为一个客户端工具,用户通过 ipatbles 这个客户端,将用户的安全设定执行到对应的"安全框架”中,这个"安全框架"才是真正的防火墙,这个框架的名字叫 netfilter .iptables 是一个命令行工具,位于用户空间,通过这个命令行工具来操作 netfilter



         netfilter 才是防火墙真正的安全框架, netfilter 位于内核空间。

         netfilter / iptables (简称为 iptables )组成 Linux 平台下的包过滤防火墙,与大多数的 Linux 软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换( NAT )等功能。

【Linux安全管理】iptables配置与iptables基本用法

2、iptables的启动

① 在开机时禁用firewalld服务:

[root@localhost ~]# systemctl disable firewalld【Linux安全管理】iptables配置与iptables基本用法

 ②安装iptables-services

[root@localhost ~]# yum install iptables-services -y

【Linux安全管理】iptables配置与iptables基本用法

③将它设置为开机自启

安装以后查看服务状态显示未启动,可以将它设置为开机自启

[root@localhost ~]# systemctl enable iptables

【Linux安全管理】iptables配置与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 中不被称为"关卡”,而被称为“链”。   【Linux安全管理】iptables配置与iptables基本用法

        这只是一个简单的描述,除过这两个关卡以外,我们还有其他关卡,也就是其他链,他们就是“路由前"、“转发”、“路由后”,对应英文表示为 PREROUTING 、 FORWARD 、POSTROUTING . 

【Linux安全管理】iptables配置与iptables基本用法

报文的流向:

  • 到本机某进程的报文: PREROUTING > INPUT
  • 由本机转发的报文: PREROUTING > FORWARD > POSTROUTING
  • 由本机的某进程发出报文(通常为响应报文): OUTPUT > POSTROUTING 

        防火墙的作用就在于对经过的报文匹配”规则",然后执行对应的”动作",所以,当报文经过这些关卡的时候,则必须匹配这个关卡上的规则,但是,这个关卡上可能不止有一条规则,而是有很多条规则,当我们把这些规则串到一个链条上的时候,就形成了“链”,所以,我们把每一个"关卡”想象成如下图中的模样,这样来说,把他们称为“链”更为合适,每个经过这个"关卡”的报文,都要将这条”链”上的所有规则匹配一遍,如果有符合条件的规则,则执行规则对应的动作。

【Linux安全管理】iptables配置与iptables基本用法


        我们把具有相同功能的规则的集合叫做"表”,不同的规则放置于不同的表中工作,在 iptables 中定义了四种表,每种表对应不同的功能。【Linux安全管理】iptables配置与iptables基本用法


 表和链的关系【Linux安全管理】iptables配置与iptables基本用法


 不是所有的表都附着在同一条链上【Linux安全管理】iptables配置与iptables基本用法

 iptables 为我们定义了4张”表",当他们处于同一条”链”时,执行的优先级如下。

优先级次序(由高而低): raw -> mangle -> nat --> filter 


来看一个完整的图来了解在数据传输过程中,防火墙的表和链的功能体现

【Linux安全管理】iptables配置与iptables基本用法

4、iptables基本用法

        在上述描述中我们一直在提规则,可是没有细说,现在说说它。先说说规则的概念,然后再通俗的解释它
        规则:根据指定的匹配条件来尝试匹配每个流经此处的报文,一旦匹配成功,则由规则后面指定的处理动作进行处理。
        在这里我们提到了两个概念,第一个匹配条件,第二个处理动作,我们通过这两个概念来解释一下什么是iptables的规则。
        在上面讲解中我们提到了每一条”链"都是一个关卡,凡是要通过这个关卡就需要匹配这个关卡上面的规则,根据配规则来决定处理动作。
        举个例子:大家都玩游戏,有一些关卡类游戏,就需要你完成了一些相应的任务,在通过关卡的时候才会通过,到下一个关卡,否则不能到下一个关卡。那么要想通过关卡就需要满足完成任务的"规则”,"完成任务就是一个匹配条件,完成之后就可以通过到下一个关卡,"通过"就是一个处理动作,匹配条件加上处理动作共同组成了规则。


匹配条件 

【Linux安全管理】iptables配置与iptables基本用法


 处理动作

【Linux安全管理】iptables配置与iptables基本用法


 iptables常用的选项【Linux安全管理】iptables配置与iptables基本用法

         -t               指定表

         -j                处理动作 指定处理动作

         --line-numbers   显示规则的序号

          -v               显示详细信息


 iptables常用规则匹配【Linux安全管理】iptables配置与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 有三种工作模式,分别是:

  1. enforcing:强制模式。违反 SELinux 规则的行为将被阻止并记录到日志中。
  2. permissive:宽容模式。违反 SELinux 规则的行为只会记录到日志中。一般为调试用。
  3. 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

【Linux安全管理】iptables配置与iptables基本用法

2、重启虚拟机,查看现在的状态

【Linux安全管理】iptables配置与iptables基本用法

 
 文章来源地址https://www.toymoban.com/news/detail-447547.html

到了这里,关于【Linux安全管理】iptables配置与iptables基本用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 高级网络安全管理员 - 网络设备和安全配置:交换机端口安全配置

    高级网络安全管理员 - 网络设备和安全配置:交换机端口安全配置

    Cisco Packet Tracer 是由Cisco公司发布的一个辅助学习工具,为学习思科网络课程的初学者去设计、配置、排除网络故障提供了网络模拟环境。用户可以在软件的图形用户界面上直接使用拖曳方法建立网络拓扑,并可提供数据包在网络中行进的详细处理过程,观察网络实时运行情况

    2024年02月03日
    浏览(17)
  • K8S应用流程安全(镜像安全 配置管理 访问安全)

    K8S应用流程安全(镜像安全 配置管理 访问安全)

    1.1.1 构建原则 学习目标 这一节,我们从 基础知识、原则解读、小结 三个方面来学习。 基础知识 k8s平台使用业务环境 需求 镜像的使用流程 Docker镜像加载 UnionFS 原则解读 构建样式 构建原则 实践原则 分层效果 功能效果 小结 1.1.2 Dockerfile实践 学习目标 这一节,我们从 基础

    2024年02月13日
    浏览(14)
  • 高级网络安全管理员 - 网络设备和安全配置:SSH 配置

    高级网络安全管理员 - 网络设备和安全配置:SSH 配置

    Cisco Packet Tracer 是由Cisco公司发布的一个辅助学习工具,为学习思科网络课程的初学者去设计、配置、排除网络故障提供了网络模拟环境。用户可以在软件的图形用户界面上直接使用拖曳方法建立网络拓扑,并可提供数据包在网络中行进的详细处理过程,观察网络实时运行情况

    2024年01月25日
    浏览(15)
  • 【Linux安全管理】Firewalld详解

    【Linux安全管理】Firewalld详解

    目录 1、与iptables不同 2、配置防火墙 3、firewalld区域概念 4、filewalld 配置生效 5、firewalld服务 firewalld 端口映射 富规则 rich-rule firewalld采用区域和服务管理,而不是链式规则 动态管理规则,允许更新规则而不破坏原有会话与连接 firewall-cmd 命令行模式 推荐使用 firewall-config(如

    2024年02月12日
    浏览(13)
  • Linux——管理网络安全

    1.管理服务器防火墙 (1)Linux内核中包含netfilter是网络流量操作(如数据包过滤、网络地址转换和端口转换)的框架。Filewalld是一个动态防火墙管理器,是nftables框架的前端,它会检查进入系统的每个数据包的源地址。若源地址分配到特定区域,则应用该区域的规则;若未分

    2023年04月08日
    浏览(7)
  • 高级网络安全管理员 - 网络设备和安全配置:标准的ACL配置

    高级网络安全管理员 - 网络设备和安全配置:标准的ACL配置

    Cisco Packet Tracer 是由Cisco公司发布的一个辅助学习工具,为学习思科网络课程的初学者去设计、配置、排除网络故障提供了网络模拟环境。用户可以在软件的图形用户界面上直接使用拖曳方法建立网络拓扑,并可提供数据包在网络中行进的详细处理过程,观察网络实时运行情况

    2024年02月04日
    浏览(16)
  • 配置交换机SSH管理和端口安全——实验2:配置交换机端口安全

    配置交换机SSH管理和端口安全——实验2:配置交换机端口安全

    通过本实验可以掌握: 交换机管理地址配置及接口配置。 查看交换机的MAC地址表。 配置静态端口安全、动态端口安全和粘滞端口安全的方法 配置交换机端口安全的实验拓扑如图所示。                                                 配置交换机端口

    2024年04月25日
    浏览(43)
  • 基线管理与安全配置练习题

    一.单选 1.自动化基线检查的缺点是( A ) A.可能造成未知影响           B.检查速度慢          C.检查时间长          D.检查非常不准确 2.Windows基线人工配置主要通过( D ) A.注册表               B.控制面版               C.设置               D.组策略 3.Windows基线

    2024年01月20日
    浏览(14)
  • 配置交换机 SSH 管理和端口安全

    配置交换机 SSH 管理和端口安全

    1、实验目的 通过本实验可以掌握: 交换机基本安全配置。 SSH 的工作原理和 SSH服务端和客户端的配置。 2、实验拓扑 交换机基本安全和 SSH管理实验拓扑如图所示。 3、实验步骤 (1)配置交换机S1 (2)从SSH Client通过SSH登录到交换机S1 4、实验调试 (1)使用命令S1#show ip ssh查

    2024年04月14日
    浏览(21)
  • 高级网络安全管理员 - 网络设备和安全配置:三层交换机和ACL配置

    高级网络安全管理员 - 网络设备和安全配置:三层交换机和ACL配置

    Cisco Packet Tracer 是由Cisco公司发布的一个辅助学习工具,为学习思科网络课程的初学者去设计、配置、排除网络故障提供了网络模拟环境。用户可以在软件的图形用户界面上直接使用拖曳方法建立网络拓扑,并可提供数据包在网络中行进的详细处理过程,观察网络实时运行情况

    2024年01月16日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包