一、Firewalld防火墙规则

防火墙的作用:放行或者阻拦某些服务、端口

1、防火墙的简单操作

# 1、查看防火墙状态
systemctl status firewalld # 2、关闭防火墙
systemctl stop firewalld # 3、开启防火墙
systemctl start firewalld

2、firewall的直接规则

# 1、查看防火墙放行的服务
firewall-cmd --list-all # 2、在防火墙中放行某服务,并设为永久生效
firewall-cmd --permanent --add-service=&协议名 # 3、在防火墙中放行某端口,并设为永久生效
firewall-cmd --permanent --add-port=8088/tcp # 4、刷新(重新加载)防火墙配置
firewall-cmd --reload

网络服务及协议名对应关系:

服务名 协议名
vsftpd ftp
NFS nfs
SAMBA windows:cifs
linux:smb、nmb
APACHE http/https

3、firewall的富规则

# 1、添加一条富规则(以172.25.1.0/24网段,ftp服务为例)
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=172.25.1.0/24 service name=ftp accept' # 2、删除一条富规则
firewall-cmd --permanent --remove-rich-rule='rule family=ipv4 source address=172.25.1.0/24 service name=ftp accept' # 3、笼统的设置一个攻击域
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=172.25.1.0/24 reject' # 4、为某个具体的服务设置一个攻击域
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=172.25.1.0/24 service name=ssh reject' # 5、添加端口到防火墙中:
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=172.25.1.0/24 port port=80 protocol=tcp accept' # 6、添加端口转发:(要先添加端口才能端口转发)
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=172.25.1.0/24 forward-port port=8080 protocol=tcp to-port=80'

tcp:有去有回,类似于打电话

udp:有去无回,类似于发传真

二、SElinux安全访问规则

SElinux也是Linux操作系统的一种安全访问规则。用于确定哪个进程可以访问哪些文件、目录和端口的一组安全规则。保护的对象是服务(进程)、服务对应的文件(目录)、服务对应的端口

SElinux可以被看作是与标准权限系统并行的权限系统,如果selinux开启,以root身份运行进程,访问文件不光要受用户对文件访问权限的限制,还要受进程对文件selinux上下文类型的限制,否则,就算是root用户运行的进程,也不一定能访问某个文件。

1、selinux的三种模式(状态)

名称 模式 作用
enforcing 强制模式 拒绝非法访问并录入日志
permissive 许可模式(警告模式) 暂时允许非法访问并录入日志
disabled 禁用模式 允许非法访问且不录入日志

如何切换selinux的状态:

#获取selinux状态
[root@localhost ~]# getenforce # 临时切换:
[root@localhost ~]# setenforce 0 #临时关闭selinux策略 enforcing -> permissive
[root@localhost ~]# setenforce 1 #临时开启selinux策略 permissive -> enforcing # 永久切换:
[root@localhost ~]# vim /etc/selinux/config
SELINUX=enforcing/permissive/disabled
[root@localhost ~]# reboot

2、SELinux的上下文

在linux系统里面,每个文件、进程、端口都具有SELinux上下文,它是一种安全策略,用来判断某个进程能否访问文件、目录或端口的工具。

1.SELinux上下文类型

[root@localhost /]# ll -Z
lrwxrwxrwx. root root system_u:object_r:bin_t:s0 bin -> usr/bin
dr-xr-xr-x. root root system_u:object_r:boot_t:s0 boot
drwxr-xr-x. root root system_u:object_r:device_t:s0 dev
drwxr-xr-x. root root system_u:object_r:etc_t:s0 etc
drwxr-xr-x. root root system_u:object_r:home_root_t:s0 home
...

第四列(用户:角色:类型:敏感度)

用户 -> 系统用户(system_u);root及普通用户组成的未指定用户(unconfined_u)

角色 -> 系统角色(system_r);未指定角色(unconfined_r);对象角色(object_r)

类型 -> 以_t结尾,每个服务它的三个方面的类型要一一对应,即服务对应的文件和端口要与服务本身的SELinux上下文类型一致

敏感度 -> s0,指的是安全等级,有0、1、2三种,数值越大,灵敏度越高

2.如何查看上下文类型

# 查看文件的上下文
# 方法一:ll -Z filename
[root@localhost etc]# ll -Z samba/ # 方法二:semanage fcontext -l | grep filename
# filename要写绝对路径,且不一定能查看所有文件
[root@localhost etc]# semanage fcontext -l | grep /etc/ssh # 查看进程的上下文
# ps -auxZ | grep 进程
[root@localhost ~]# ps -auxZ | grep sshd # 查看所有端口上下文
# semamage port -l | grep 端口号
[root@localhost ~]# semanage port -l | grep 22 # 查看已经开放的端口上下文
[root@localhost ~]# netstat -pantZ

3.如何修改上下文类型

修改文件的上下文类型

# 临时修改:
# chcon -t 上下文类型 filename
# 将selinux设置成disabled后reboot,然后再设置成enforcing后reboot,修改会失效,将还原成原始默认类型 -> 不推荐使用
[root@localhost ~]# chcon -t httpd_sys_content_t /opt/testfile
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
[root@localhost ~]# reboot
[root@localhost ~]# sed -i 's/SELINUX=disabled/SELINUX=enforcing/g' /etc/selinux/config
[root@localhost ~]# reboot
[root@localhost ~]# ll -dZ /opt/testfile # 永久修改:
# semanage fcontext -a -t 上下文类型 ‘/filename(/.*)?’ #注意:这里的filename要写绝对路径
# restorecon -RFv /filename #强制递归刷新上下文类型并显示刷新过程
[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t '/opt/test(/.*)?'
[root@localhost ~]# restorecon -RFv /opt/test/

修改端口的上下文类型(添加selinux上下文类型)

# semanage port -a -t 端口上下文类型 -p tcp/udp  端口号
[root@localhost ~]# semanage port -a -t ssh_port_t -p tcp 22022
[root@localhost ~]# semanage port -l | grep ssh

3、selinux布尔值

当selinux开启时,系统默认会设置很多服务功能的开关,而且默认都是关闭的,sebool就是那个开关

getsebool -a(| grep 布尔值)	#查看
setsebool bool名 on/off #设置开启或关闭
semanage boolean -l(| grep 布尔值) #查看布尔值是否永久开启(括号中右边那个值),并显示该布尔值状态的简短描述

注意:

1、文件会默认继承父文件夹的selinux类型;

2、文件被cp到新的文件夹下,会自动继承新文件夹的selinux上下文类型,但mv不会这样,仍会保留原上下文类型;

3、如果修改了某服务的配置文件位置,则必须重新修改该文件的selinux上下文类型,以重新匹配服务,否则服务无法访问该配置文件。

Linux——防火墙、SELinux规则的更多相关文章

  1. linux防火墙过滤规则

    一.linux防火墙基础 防火墙分为硬件防火墙和软件防火墙. 1.概述 linux 防火墙体系主要工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙. 包过滤机制:netfil ...

  2. 一 SSH 无密码登陆 & Linux防火墙 & SELinux关闭

    如果系统环境崩溃.   调用/usr/bin/vim /etc/profile   SHH无密码登陆 所有要做得节点上运行   修改 host name vi /etc/sysconfig/netwo ...

  3. Linux防火墙iptables规则设置(转)

    iptables命令是Linux上常用的防火墙软件,是netfilter项目的一部分.可以直接配置,也可以通过许多前端和图形界面配置. 一.语法 iptables(选项)(参数) 二.选项 -t< ...

  4. Linux防火墙基础与编写防火墙规则

    Iptables采用了表和链的分层结构,每个规则表相当于内核空间的一个容器,根据规则集的不同用途划分为默认的四个表,raw表,mangle表,nat表,filter表,每个表容器内包括不同的规则链,根 ...

  5. Linux selinux 规则导致audit拒绝

    Linux selinux 规则导致audit拒绝 转载注明来源: 本文链接 来自osnosn的博客,写于 2019-09-26. 查看 audit2why -d audit2allow 这两个命令. ...

  6. linux日常管理-防火墙selinux

    关闭防火墙 SELINUX=disabled 可以是三种状态 # enforcing - SELinux security policy is enforced.打开# permissive - SE ...

  7. Linux防火墙:iptables禁IP与解封IP常用命令

    在Linux服务器被攻击的时候,有的时候会有几个主力IP.如果能拒绝掉这几个IP的攻击的话,会大大减轻服务器的压力,说不定服务器就能恢复正常了. 在Linux下封停IP,有封杀网段和封杀单个IP两种形 ...

  8. Linux防火墙

    9.1 认识防火墙   只要能够分析与过滤进出我们管理之网域的封包数据, 就可以称为防火墙. 硬件防火墙 由厂商设计好的主机硬件, 这部硬件防火墙内的操作系统主要以提供封包数据的过滤机制为主,并将其他 ...

  9. linux 防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

  10. Linux防火墙iptables简明教程

    前几天微魔部落再次遭受到个别别有用心的攻击者的攻击,顺便给自己充个电,复习了一下linux下常见的防火墙iptables的一些内容,但是无奈网上的很多教程都较为繁琐,本着简明化学习的目的,微魔为大家剔 ...

随机推荐

  1. 哈工大知识图谱(Knowledge Graph)课程概述

    一.什么是知识图谱 知识(Knowledge)可以理解为 精炼的数据,知识图谱(Knowledge Graph)即是对知识的图形化表示,本质上是一种大规模语义网络 (semantic network) ...

  2. windows10安装MySQL8.0.27

    1.官网下载安装包:https://dev.mysql.com/downloads/mysql/ 2.将解压文件解压到你安装的目录:D:\mysql-8.0.27-winx64 注意:不要放在有中文名 ...

  3. Redis使用过程中有哪些注意事项?看看BAT这类的公司是正确使用Redis的!!

    Redis使用过程中要注意的事项 Redis使用起来很简单,但是在实际应用过程中,一定会碰到一些比较麻烦的问题,常见的问题有 redis和数据库数据的一致性 缓存雪崩 缓存穿透 热点数据发现 下面逐一 ...

  4. springcloud(二) 微服务架构编码构建

    微服务架构编码构建 1 基础知识 1.1 版本 2 微服务cloud整体聚合父工程Project 2.1 new project 2.2 字符编码设置 utf-8 2.3 pom.xml 2.4 父工 ...

  5. JavaAgent型内存马基础

    Java Instrumentation ​ java Instrumentation指的是可以用独立于应用程序之外的代理(agent)程序来监测和协助运行在JVM上的应用程序.这种监测和协助包括但不 ...

  6. ESD

    Reverse standoff voltage是保护二极管的反向工作电压, 在这个电压, 二极管是不工作的. Breakdown voltage 是二极管的击穿电压, 超过这个电压后, 二极管迅速反 ...

  7. spring-cloud-square开发实战(三种类型全覆盖)

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 前文<五分钟搞懂spring-clou ...

  8. linux下使用shell命令通过wpa_cli控制wpa_supplicant连接wifi

    最近在调试wifi,已经把wpa_supplicant 工具编译打包好了,为了测试wif驱动及wifi模块是否ok,需要用shell命令临时启动wifi服务连接wifi热点测试. 首先板子启动用ifc ...

  9. Linux 文本三剑客之 awk

    Linux 系统中一切皆文件. 文件是个文本.可以读.可以写,如果是二进制文件,还能执行. 在使用Linux的时候,大都是要和各式各样文件打交道.熟悉文本的读取.编辑.筛选就是linux系统管理员的必 ...

  10. C++ 函数模板实现原理剖析

    C++ 函数模板实现机制原理剖析 重点 编译器并不是把函数模板处理成能够处理任意类的函数 编译器从函数模板通过具体类型来产生不同的函数 编译器会对函数模板进行两次编译 (1)在声明的位置对模板代码进行 ...