当前位置: 首页 > article >正文

Linux操作系统安全管理概述与命令操作

前言:
       1.本文将详细描述让读者了解Linux操作系统安全管理的概述和SELinux安全上下文以及基础操作命令;
       2.本文将让读者掌握Linux操作系统防火墙firewall的结构和命令使用方法;
       3.了解Iptables防火墙配置的结构与特点以及数据包过滤的匹配流程和相关iptables命令的使用方法。

目录

一、SELinux安全上下文

1.SELinux 简介

2.基础操作命令

(1)查看SELinux状态

(2)切换工作模式

案例:

3.安全上下文(Security Context)

(1)查看上下文

(2)修改上下文

3.1chcon命令

3.2semanage 命令

4.日志分析与故障排除

(1) 查看SELinux日志

(2)生成解决方案建议

常见问题与解决方案

场景1:Web服务器无法访问文件

场景2:服务无法绑定非标准端口

5.注意事项

二、Linux防火墙-Firewalld

1. 概述

2. Linux防火墙

防火墙结构

firewalld防火墙

区域分类

区域功能

firewall-cmd命令用法

三、Linux防火墙-Iptables

1. Iptables概述

2、 Iptables 组成

表(Table)

链(Chain)

链表对应关系

数据包过滤的匹配流程

规则匹配策略​

3. Iptables防火墙配置

iptables命令

常用管理选项

总结


一、SELinux安全上下文

1.SELinux 简介

(1) SELinux(Security-Enhanced Linux)是Linux内核的强制访问控制(MAC)安全子系统,提供更细粒度的权限控制,防止进程或用户越权操作。

(2)核心思想

       最小权限原则:进程/用户只能访问其明确需要的资源。
       基于标签的访问控制:所有资源(文件、端口、进程)被赋予安全上下文(Security Context)。

(3)工作模式

模式描述
Enforcing强制执行策略,拒绝非法操作并记录日志。
Permissive仅记录违规操作,不阻止(用于调试)。
Disabled完全关闭SELinux(需重启生效)。

2.基础操作命令

(1)查看SELinux状态
 getenforce# 查看当前模式sestatus# 详细状态(模式/策略类型)
(2)切换工作模式
 setenforce 0# 切换到Permissive模式setenforce 1# 切换到Enforcing模式

注意:setenforce仅临时生效,永久修改需编辑 /etc/selinux/config 文件。

案例:

[root@ding ~]# setenforce 0
[root@ding ~]# getenforce
Permissive[root@ding ~]# setenforce 1
[root@ding ~]# getenforce
Enforcing


3.安全上下文(Security Context)

(1)查看上下文
 ls -Z /var/www/html # 查看文件/目录的上下文ps -Z -C httpd# 查看进程的上下文
(2)修改上下文
3.1chcon命令
选项说明示例消息
-t, --type TYPE设置安全上下文的类型部分已将 file.txt 的类型更改为 httpd_sys_content_t
-u, --user USER设置安全上下文的用户部分已将 file.txt 的用户更改为 system_u
-r, --role ROLE设置安全上下文的角色部分已将 file.txt 的角色更改为 object_r
--reference=FILE使用指定文件的安全上下文已从 ref_file 复制上下文到 target_file
-R, --recursive递归处理文件和目录已递归更改 dir/ 及其内容的上下文
-h, --help显示帮助信息显示帮助菜单
-v, --verbose显示操作详情正在更改 file.txt 的安全上下文
--version显示版本信息chcon (GNU coreutils) 8.32

选项使用案例

  1. 设置文件类型 将 /var/www/html/index.html 的上下文类型设为 httpd_sys_content_t:

     sudo chcon -t httpd_sys_content_t /var/www/html/index.html
  2. 设置用户部分 将 /etc/nginx/nginx.conf 的用户部分设为 system_u:

     sudo chcon -u system_u /etc/nginx/nginx.conf
  3. 设置角色部分 将 /home/user/file.txt 的角色部分设为 object_r:

     sudo chcon -r object_r /home/user/file.txt
  4. 参照文件上下文 将 file2 的上下文设置为与 file1 一致:
    实验:

    [root@ding html]# ls -Z
    system_u:object_r:httpd_sys_content_t:s0 404.html
    system_u:object_r:httpd_sys_content_t:s0 50x.html
    system_u:object_r:httpd_sys_content_t:s0 icons
    system_u:object_r:httpd_sys_content_t:s0 index.html
    system_u:object_r:httpd_sys_content_t:s0 nginx-logo.png
    system_u:object_r:httpd_sys_content_t:s0 poweredby.png
    system_u:object_r:httpd_sys_content_t:s0 system_noindex_logo.png
    [root@ding html]# ls -Z /etc/nginx/nginx.conf
    system_u:object_r:httpd_config_t:s0 /etc/nginx/nginx.conf
    [root@ding html]# chcon --reference /etc/nginx/nginx.conf ./index.html
    [root@ding html]# ls -Z
    system_u:object_r:httpd_sys_content_t:s0 404.html
    system_u:object_r:httpd_sys_content_t:s0 50x.html
    system_u:object_r:httpd_sys_content_t:s0 icons
    system_u:object_r:httpd_sys_content_t:s0 index.html
    system_u:object_r:httpd_sys_content_t:s0 nginx-logo.png
    system_u:object_r:httpd_sys_content_t:s0 poweredby.png
    system_u:object_r:httpd_sys_content_t:s0 system_noindex_logo.png
    
     sudo chcon --reference=file1 file2
  5. 递归操作目录 递归修改 /var/www/html/ 目录下所有文件的上下文类型:

     sudo chcon -R -t httpd_sys_content_t /var/www/html/
  6. 显示帮助信息

     chcon --help
  7. 显示版本信息

     chcon --version
  8. 详细模式操作 启用详细输出,修改 ~/.ssh/config 的上下文类型:

     sudo chcon -v -t ssh_home_t ~/.ssh/config

说明

  • 实际执行时,若未添加 -v 参数,chcon 默认不输出成功信息,仅在出错时显示错误。

  • 使用 -v 参数可查看操作详情(如上述表格中的“示例消息”)。

 chcon -t httpd_sys_content_t /var/www/html/index.html # 临时修改文件类型restorecon -v /var/www/html/index.html # 恢复默认上下文
3.2semanage 命令
子命令/选项用途说明常用选项示例消息/操作
semanage login管理SELinux用户与Linux账户的映射关系-a (添加)、-d (删除)、-m (修改)将用户 user1 映射到 SELinux 用户 staff_u
semanage user管理SELinux用户及其角色和权限-a、-d、-R (角色)、-L (限制)创建新SELinux用户 web_user 并分配角色 httpd_role
semanage port管理网络端口与SELinux类型的绑定关系-a、-d、-t (类型)、-p (协议)将TCP端口 8080 绑定到 http_port_t 类型
semanage interface管理网络接口与SELinux类型的绑定关系-a、-d、-t将接口 eth1 绑定到 netif_t 类型
semanage module管理SELinux策略模块(启用/禁用)-a、-d、-e (启用)、-D (禁用)启用策略模块 my_custom_module
semanage fcontext管理文件/目录的默认SELinux上下文规则-a、-d、-t、-s (范围)添加规则:/webapps(/.*)? 的上下文类型为 httpd_sys_content_t
semanage boolean管理SELinux布尔值(开关策略功能)-1 (查看)、--on、--off启用布尔值 httpd_can_network_connect
semanage dontaudit管理dontaudit规则(是否记录特定访问拒绝事件)--on、--off关闭对 sshd 的 dontaudit 规则
-h / --help显示帮助信息-显示子命令的帮助菜单
-v / --verbose显示详细操作信息-显示添加端口 8080 的详细过程
-n / --noheading输出时隐藏列标题-仅显示端口列表数据,无标题行

选项使用案例

1)管理端口绑定

将TCP端口 8080 标记为HTTP服务端口:

 sudo semanage port -a -t http_port_t -p tcp 8080

说明:允许Apache等HTTP服务使用8080端口。

2)管理文件上下文规则

为自定义Web目录 /opt/webapps 设置默认上下文:

 sudo semanage fcontext -a -t httpd_sys_content_t "/opt/webapps(/.*)?"sudo restorecon -Rv /opt/webapps

说明:添加规则后需运行 restorecon 立即生效。
 

3)管理SELinux用户映射

将Linux用户 dev_user 映射到SELinux用户 user_u:

 sudo semanage login -a -s user_u dev_user

说明:限制用户 dev_user 的SELinux权限。
 

4)管理策略模块

禁用自定义策略模块 mymodule:

 sudo semanage module -D mymodule

说明:禁用后相关规则不再生效。
 

5)查看当前端口绑定

列出所有HTTP相关端口:

 semanage port -l | grep http_port_t

输出示例

 http_port_t    tcp    80, 443, 8080

6)删除文件上下文规则

移除对 /tmp/custom_dir 的上下文规则:

 sudo semanage fcontext -d "/tmp/custom_dir(/.*)?"

注意事项

权限要求:大多数操作需 sudo 或 root 权限。持久化存储:semanage 修改的规则会保存到策略库(默认路径 /etc/selinux/targeted),重启后仍有效。结合工具使用:修改文件上下文后,需运行 restorecon 或重启服务使更改生效。
7)

4.日志分析与故障排除

(1) 查看SELinux日志
 tail -f /var/log/audit/audit.log # 直接查看原始日志ausearch -m AVC -ts recent# 使用工具过滤日志
(2)生成解决方案建议
 grep "avc: denied" /var/log/audit/audit.log | audit2allow -M mypolicysemodule -i mypolicy.pp# 编译并加载自定义策略

常见问题与解决方案

场景1:Web服务器无法访问文件
  • 现象:Apache返回403错误,但文件权限正常。

  • 解决

    1.检查文件上下文:ls -Z /var/www/html
    2.修复上下文:restorecon -Rv /var/www/html
场景2:服务无法绑定非标准端口
  • 现象:Nginx无法监听8080端口。

  • 解决

    semanage port -a -t http_port_t -p tcp 8080# 添加端口到SELinux策略

5.注意事项

(1)不要随意禁用SELinux:优先使用Permissive模式调试。

(2)谨慎使用chcon:错误修改上下文可能导致系统不稳定。

(3)备份策略:修改策略前备份 /etc/selinux 目录。

二、Linux防火墙-Firewalld

1. 概述

按表现形式划分:

软件防火墙: 集成在系统内部,Linux系统: iptables、firewalld、ufw; windows系统下: windows defender

硬件防火墙: 华为防火墙、思科防火墙、奇安信防火墙、深信服防火墙等

按技术划分:

包过滤防火墙: 检查数据包的源IP、目的IP、源端口、目的端口、TCP的syn控制位、MAC

七层防火墙:除了上述检查外,还会检查数据内容

防火墙的作用:

阻止来自网络外部的攻击、进行流量控制

2. Linux防火墙

防火墙结构

用户态:

iptables: 使用iptables命令对防火墙规则进行管理,必须深度理解网络技术和四表五链,对于初学者或者网络技术不达标的人员不友好

firewalld:使用firewall-cmd命令对防火墙进行管理,采用的是区域划分的形式。不需要连接底层的四表五链,对于初学者比较友好

ufw: 使用ufw命令对防火墙进行管理,命令简单易懂。

内核态:

四表: 从内核->用户的顺序: raw -> mangle -> nat -> filter

五链: input、output、forward、prerouting、postrouting

firewalld防火墙
区域分类

九大区域: block、dmz、drop、external、home、internal、public、trusted、work

区域功能

public:公共区域,默认区域

 public (active)target: default #区域类型规则icmp-block-inversion: nointerfaces: ens33 #属于该区域的接口sources:#来源services: dhcpv6-client ssh #放行服务的名称ports:#放行端口号protocols:#放行协议masquerade: no#NAT地址转换forward-ports:#转发端口source-ports:#源端口icmp-blocks:#ICMP的阻塞类型,ping的阻塞rich rules:#富规则

home: 家庭区域

 hometarget: defaulticmp-block-inversion: nointerfaces: sources: services: dhcpv6-client mdns samba-client sshports: protocols: masquerade: noforward-ports: source-ports: icmp-blocks: rich rules:

work: 工作区域

 worktarget: defaulticmp-block-inversion: nointerfaces: sources: services: dhcpv6-client sshports: protocols: masquerade: noforward-ports: source-ports: icmp-blocks: rich rules: 

trusted: 完全信任区域

 trustedtarget: ACCEPT#不采用默认规则,放行一切icmp-block-inversion: nointerfaces: sources: services: ports: protocols: masquerade: noforward-ports: source-ports: icmp-blocks: rich rules: 

internal: 内部区域 (连接内部网络)

 internaltarget: defaulticmp-block-inversion: nointerfaces: sources: services: dhcpv6-client mdns samba-client sshports: protocols: masquerade: noforward-ports: source-ports: icmp-blocks: rich rules: 

external: 外部区域 (连接外部网络,例如: internet网络)

 externaltarget: defaulticmp-block-inversion: nointerfaces: sources: services: sshports: protocols: masquerade: yes#默认进行NAT地址转换forward-ports: source-ports: icmp-blocks: rich rules: 

dmz: 非军事化管理区域(内部的服务器放于该区域)

 dmztarget: defaulticmp-block-inversion: nointerfaces: sources: services: sshports: protocols: masquerade: noforward-ports: source-ports: icmp-blocks: rich rules:

drop: 丢弃区域(丢弃一切流量,不给出任何回应)

 droptarget: DROPicmp-block-inversion: nointerfaces: sources: services: ports: protocols: masquerade: noforward-ports: source-ports: icmp-blocks: rich rules:

block: 阻塞区域 (拒绝任何流量,但给出回应)

 blocktarget: %%REJECT%%icmp-block-inversion: nointerfaces: sources: services: ports: protocols: masquerade: noforward-ports: source-ports: icmp-blocks: rich rules:
firewall-cmd命令用法

关键字:

 --list-*--get-*--set-*--add-*--remove-*--change-*--zone=

查看:

 #查看所有区域的详细信息[root@ding ~]# firewall-cmd --list-all-zones #查看指定区域的详细信息[root@ding ~]# firewall-cmd --list-all --zone=public #查看指定区域的放行服务[root@ding ~]# firewall-cmd --list-services --zone=public #查看指定区域的放行端口[root@ding ~]# firewall-cmd --list-ports --zone=public #查看指定区域包含的网络接口[root@ding ~]# firewall-cmd --list-interfaces --zone=public #查看指定区域的放心协议[root@ding ~]# firewall-cmd --list-protocols --zone=public#查看指定区域的ICMP阻塞类型[root@ding ~]# firewall-cmd --list-icmp-blocks --zone=public#查看指定区域的放行源地址[root@ding ~]# firewall-cmd --list-sources --zone=public#查看指定区域的源端口[root@ding ~]# firewall-cmd --list-source-ports --zone=public#查看指定区域的富规则[root@ding ~]# firewall-cmd --list-rich-rules --zone=public #查看指定区域的转发端口[root@ding ~]# firewall-cmd --list-forward-ports --zone=public #查看firewalld支持的服务类型[root@ding ~]# firewall-cmd --get-services#查看firewalld的默认区域[root@ding ~]# firewall-cmd--get-default-zone#查看firewalld支持的ICMP的阻塞类型[root@ding ~]# firewall-cmd--get-icmptypes #查看firewalld所有的活动区域[root@ding ~]# firewall-cmd --get-active-zones#查看指定网络接口所属区域[root@ding ~]# firewall-cmd --get-zone-of-interface=ens33#查看所有区域名称[root@ding ~]# firewall-cmd --get-zones

添加:

#添加指定服务到指定区域
[root@ding ~]# firewall-cmd --add-service=http --zone=public 
success
#添加端口到指定区域
[root@ding ~]# firewall-cmd --add-port=80/tcp --zone=public 
success
#添加指定协议到指定区域
[root@ding ~]# firewall-cmd --add-protocol=ah --zone=public 
success
#添加ICMP阻塞类型到指定区域
[root@ding ~]# firewall-cmd --add-icmp-block=echo-request --zone=public 
success
#windows端验证
C:\Users\ding>ping 192.168.115.129正在 Ping 192.168.115.129 具有 32 字节的数据:
来自 192.168.115.129 的回复: 无法访问目标主机。
来自 192.168.115.129 的回复: 无法访问目标主机。
来自 192.168.115.129 的回复: 无法访问目标主机。
#添加指定网络接口到指定区域
[root@ding ~]# firewall-cmd --add-interface=ens33 --zone=work 
success
#添加指定区域的放行源地址
[root@ding ~]# firewall-cmd --add-source=192.168.1.0/24 --zone=work 
success
#添加指定区域的放行源端口
[root@ding ~]# firewall-cmd --add-source-port=999/tcp --zone=work 
success
#添加转发端口到指定区域
[root@ding ~]# firewall-cmd --add-forward-port=port=8080:proto=tcp:toport=80:toaddr=192.168.115.115 --zone=work 
success
#添加地址转换功能到指定区域
[root@ding ~]# firewall-cmd --add-masquerade --zone=work 
success
#验证添加
[root@ding ~]# firewall-cmd --list-all --zone=public 

修改:

#修改默认区域[root@ding ~]# firewall-cmd --set-default-zone=worksuccess#修改网络接口所属区域[root@ding ~]# firewall-cmd --change-interface=ens33 --zone=internal success[root@ding ~]# firewall-cmd --change-zone=ens33 --zone=external success#追加指定区域的放行源地址[root@ding ~]# firewall-cmd --change-source=192.168.2.0/24 --zone=work success

删除:

 #删除指定服务到指定区域[root@ding ~]# firewall-cmd --remove-service=http --zone=public success#删除端口到指定区域[root@ding ~]# firewall-cmd --remove-port=80/tcp --zone=public success#删除指定协议到指定区域[root@ding ~]# firewall-cmd --remove-protocol=ah --zone=public success#删除ICMP阻塞类型到指定区域[root@ding ~]# firewall-cmd --remove-icmp-block=echo-request --zone=public success#删除指定网络接口到指定区域[root@ding ~]# firewall-cmd --remove-interface=ens33 --zone=work success#删除指定区域的放行源地址[root@ding ~]# firewall-cmd --remove-source=192.168.1.0/24 --zone=work success#删除指定区域的放行源端口[root@ding ~]# firewall-cmd --remove-source-port=999/tcp --zone=work success#删除转发端口到指定区域[root@ding ~]# firewall-cmd --remove-forward-port=port=8080:proto=tcp:toport=80:toremover=192.168.115.115 --zone=work success#删除地址转换功能到指定区域[root@ding ~]# firewall-cmd --remove-masquerade --zone=work success#验证删除[root@ding ~]# firewall-cmd --list-all --zone=public 
保存规则:#逐行规则保存[root@ding ~]# firewall-cmd --remove-masquerade --zone=work --permanent#一次性保存所有规则[root@ding zones]# firewall-cmd --runtime-to-permanentsuccess#保存的规则存储路径/etc/firewalld/zones

案例:

禁止外部主机ping本机

 #本机IP:192.168.115.129 ens33 NAT#外部IP:192.168.115.128#防火墙配置[root@ding ~]# firewall-cmd --add-interface=ens33 --zone=work success[root@ding ~]# firewall-cmd --add-icmp-block=echo-request --zone=work success#验证[root@localhost ~]# ping -c 4 192.168.115.129PING 192.168.115.129 (192.168.115.129) 56(84) bytes of data.From 192.168.115.129 icmp_seq=1 Destination Host ProhibitedFrom 192.168.115.129 icmp_seq=2 Destination Host ProhibitedFrom 192.168.115.129 icmp_seq=3 Destination Host ProhibitedFrom 192.168.115.129 icmp_seq=4 Destination Host Prohibited​--- 192.168.115.129 ping statistics ---4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 3001ms

允许外部主机访问本机的http服务

 #本机IP:192.168.80.128 ens34 vmnet3#外部IP:192.168.80.129#######环境配置 开始###########本机安装httpd服务#改变SElinux的规则[root@ding ~]# setenforce 0[root@ding ~]# yum install -y httpd##启动httpd服务[root@ding ~]# systemctl start httpd##修改httpd服务的监听IP[root@ding ~]# vim /etc/httpd/conf/httpd.confListen 192.168.80.128:80##重启httpd服务[root@ding ~]# systemctl restart httpd##验证服务监听状态[root@ding ~]# netstat -naptu | grep :80tcp00 192.168.80.128:800.0.0.0:* LISTEN5884/httpd #######环境配置 结束##########防火墙配置[root@ding ~]# firewall-cmd --change-interface=ens34 --zone=dmzsuccess##客户端验证访问##[root@ding ~]# curl 192.168.80.128curl: (7) Failed connect to 192.168.80.128:80; 拒绝连接##发现无法访问####服务端查看dmz区域信息[root@ding ~]# firewall-cmd --list-all --zone=dmzdmz (active)target: defaulticmp-block-inversion: nointerfaces: ens34sources: services: sshports: protocols: masquerade: noforward-ports: source-ports: icmp-blocks: rich rules: #发现没有放心http服务#配置dmz区域http服务放行策略[root@ding ~]# firewall-cmd --add-service=http --zone=dmz successdmz (active)target: defaulticmp-block-inversion: nointerfaces: ens34sources: services: http sshports: protocols: masquerade: noforward-ports: source-ports: icmp-blocks: rich rules:

允许外部主机访问本机的某个端口号

 #前置环境如上#防火墙配置[root@ding ~]# firewall-cmd --add-port=801/tcp --zone=dmz success#放行服务的本质实际上是放行了该服务的默认端口号#假如服务改变了监听端口号,只需放行对应的端口号即可#客户端验证[root@ding ~]# curl 192.168.80.128:801

三、Linux防火墙-Iptables

1. Iptables概述

Iptables 是一个用户空间程序,可以用于设置和管理 Linux 操作系统的内核级防火墙。

iptables 具有以下特点:

       Iptables 作为内核级别的防火墙,具有高效、稳定、安全等优点。

       Iptables 的表、链、规则结构非常灵活,可适应各种不同的网络环境和应用场景。

       Iptables 相对于其他防火墙工具而言比较容易学习和掌握,并且拓展性非常强。

2、 Iptables 组成

Iptables 的核心是由表(table)、链(chain)和规则(rule)三部分组成的。

表(Table)

在 iptables 中,表是一个规则的集合,每个表都包含若干个链和一些相关的规则。常用的五种 table 如下:

       raw表:确定是否对该数据包进行状态跟踪。包含两个规则链,OUTPUT、PREROUTING。

       mangle表:修改数据包内容,用来做流量整形的,给数据包设置标记。包含五个规则链,INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING。

       nat表:负责网络地址转换,用来修改数据包中的源、目标IP地址或端口。包含三个规则链,OUTPUT、PREROUTING、POSTROUTING。

       filter表:负责过滤数据包,确定是否放行该数据包(过滤)。包含三个规则链,INPUT、FORWARD、OUTPUT。

表之间的优先级

数据包到达防火墙时,规则表之间的优先顺序 ​ raw > mangle > nat > filter

链(Chain)

       在 iptables 中,链是一个规则的集合,每个链都包含一些相关联的规则。

       INPUT链: 当接收到防火墙本机地址的数据包(入站)时,应用此链中的规则。

       OUTPUT链: 当防火墙本机向外发送数据包(出站)时,应用此链中的规则。

       FORWARD链: 当接收到需要通过防火墙发送给其他地址的数据包(转发)时,应用此链中的规则。

       PREROUTING链: 在对数据包作路由选择之前,应用此链中的规则,用来修改目的地址,如DNAT。

       POSTROUTING链: 在对数据包作路由选择之后,应用此链中的规则,用来修改源地址,如SNAT。

链表对应关系

数据包过滤的匹配流程
  • 入站

入站数据包从A网络发到B网络,首先发到防火墙,先后顺序经过有PREROUTING链的三个表(raw、mangle、nat),如果都是放通状态的会经过路由选择,然后根据目的地址一层一层往上送,经过有INPUT的两个表(mangle、filter),一直送到应用程序。

  • 转发

目的地不是本机,数据包先从A网络过滤,经过PREROUTING链,看是否是自己的目的地址,如果是外网到内网需要用nat转换成内网IP,找到内网用户,经过FORWARD链进行过滤,允许放通的到达POSTROUING链,再把内网地址转换成公网,这样数据包才能回去;如果是内网往外网发顺序就是反过来。

  • 出站

从本机的应用程序发出来, 经过路由选择,让路由知道从哪里发,先后顺序经过有OUTPUT链的四个表(raw、mangle、nat、filter),都放通后到达POSTROUING链的两个表(mangle、nat),如果没有什么转换地址,就出站。

  • 总结

当一个数据包进入网卡时,数据包首先进入PREROUTING链,内核根据数据包目的IP判断是否需要转送出去。

如果数据包是进入本机的,数据包就会沿着图向上移动,到达INPUT链。数据包到达INPUT链后, 任何进程都会收到它。本机上运行的程序可以发送数据包,这些数据包经过OUTPUT链,然后发送出去。

如果数据包是要转发出去的,且内核允许转发,数据包就会向右移动,经过FORWARD链,然后到达POSTROUTING链输出。

规则匹配策略​

自上而下进行顺序匹配,匹配到即停止,不会再去查看下面的规则,然后根据允许或者丢弃或者拒绝等规则进行数据包的处理!!!

3. Iptables防火墙配置

iptables命令

语法 iptables [-t 表名] 管理选项 [链名] [匹配条件] [-j 控制类型]

注意:链名必须大写;控制类型必须大写

选项作用
-t指定表名(raw、mangle、nat、filter)
-j指定控制类型
常用管理选项
选项作用
-A (--append)在指定链的末尾追加一条新的规则
-I (--insert)在指定链的开头插入一条新的规则;未指定序号时默认作为第一条规则
-R (--replace)修改、替换指定链中的某一条规则,可指定规则序号或具体内容
-P (--policy)设置指定链的默认策略
-D (--delete)删除指定链中的某一条规则,可指定规则序号或具体内容
-F (--flush)清空指定链中的所有规则;若未指定链名,则清空表中的所有链
-L (--list)列出指定链中所有的规则;若未指定链名,则列出表中的所有链
-n (--numeric)(搭配-L使用)使用数字形式显示输出结果,如显示IP地址而不是主机名
-v(搭配-L使用)显示详细信息,包括每条规则的匹配包数量和匹配字节数
--line-numbers(搭配-L使用)查看规则时,显示规则的序号


总结:
       Linux系统的安全管理管理对于保护系统不受攻击和保护敏感数据是至关重要的。在本文中,我们将介绍一些常见的Linux安全管理,以及如何实施它们。selinux安全上下文实施其强制访问控制和开启防火墙是保护系统免受攻击的重要工具。Linux系统通常使用iptables和firewalld来配置防火墙规则。管理员应该只允许必要的网络流量通过防火墙,而禁止不必要的流量。

http://www.lryc.cn/news/2397183.html

相关文章:

  • 《操作系统真相还原》——中断
  • [yolov11改进系列]基于yolov11引入特征融合注意网络FFA-Net的python源码+训练源码
  • 助力活力生活的饮食营养指南
  • 【软件测试】测试框架(unittest/pytest)
  • Kotlin 中 companion object 扩展函数详解
  • MySQL半同步复制配置和参数详解
  • 使用FastAPI构建车牌检测识别服务
  • pikachu通关教程-File Inclusion
  • CppCon 2014 学习:Defensive Programming Done Right.
  • 《机器学习数学基础》补充资料:韩信点兵与拉格朗日插值法
  • Spring Boot中保存前端上传的图片
  • 【HTML-15.2】HTML表单按钮全面指南:从基础到高级实践
  • 2025最新 MacBook Pro苹果电脑M系列芯片安装zsh教程方法大全
  • 43. 远程分布式测试实现
  • 探索大语言模型(LLM):RSE流程详解——从文档中精准识别高相关片段
  • 【C++】类的构造函数
  • 【ISP算法精粹】动手实战:用 Python 实现 Bayer 图像的黑电平校正
  • 分布式存储技术全景解析:从架构演进到场景实践
  • JVM——从JIT到AOT:JVM编译器的云原生演进之路
  • Linux中的mysql逻辑备份与恢复
  • [HTML5]快速掌握canvas
  • Gartner《Emerging Patterns for Building LLM-Based AIAgents》学习心得
  • Hive SQL优化实践:提升大数据处理效率的关键策略
  • vue中父子参数传递双向的方式不同
  • LLM 使用 MCP 协议及其原理详解
  • DAY 36神经网络加速器easy
  • STM32 单片机启动过程全解析:从上电到主函数的旅程
  • 4.RV1126-OPENCV 图像轮廓识别
  • WEB3——开发者怎么查看自己的合约日志记录
  • TDengine 集群容错与灾备