在Linux中一个服务被访问的过程!!!!(osi七层模型角度看这个服务过程点这里!)
iptables/firewall/ebtables→Tcp wrappers →服务本身策略→SELinux→最终才能被访问
第一步----防火墙 netfilter模块(网络过滤器)
管理这个模块有三个工具就是 iptables/ebtables/firewall
iptables
###如果不进行配置,默认是允许所有,但是在iptables列表中默认的是有拒绝所有的策略,所有需要先清空一下列表
firewall
###根据zone的不同,默认不同,block,drop无论如何都是拒绝的,public打钩允许,不打钩拒绝,trusted无论如何都是允许的
ebtables
这三个工具是冲突的,所以只能使用一个,Linux6上推选使用iptables,Linux7上推选使用firewall
systemctl stop iptables/ebtables/firewall 关闭
systemctl disable iptables/ebtables/firewall 下次开启不启动
systemctl mask iptables/ebtables/firewall 锁住
###停止并锁定服务,以免发生冲突
第二步经历tcp wrappres
概念:
Tcp wrappers : Transmission Control Protocol (传输控制协议) Wrappers 为由 Xinetd 生成的服务提供了增强的安全性。
TCP Wrappers 是一种对使用 /etc/inetd.sec 的替换方法。TCP Wrappers 提供防止主机名和主机地址欺骗的保护。
欺骗是一种伪装成有效用户或主机以获得对系统进行未经授权的访问的方法。
用处:
TCP Wrappers 使用访问控制列表 (ACL) 来防止欺骗。ACL 包括 /etc/hosts.allow 和 /etc/hosts.deny 文件中的系统列表。
在配置为验证主机名到 IP 地址映射,以及拒绝使用 IP 源路由的软件包时,TCP Wrappers 提供某些防止 IP 欺骗的保护。
###########################################################################################################
小结:Tcp_Wrappers是一个用来分析TCP/IP封包的软件,类似的IP封包软件还有iptables。Linux默认都安装了Tcp_Wrappers。
作为一个安全的系统,Linux本身有两层安全防火墙,通过IP过滤机制的iptables实现第一层防护。
iptables防火墙通过直观地监视系统的运行状况,阻挡网络中的一些恶意攻击,保护整个系统正常运行,免遭攻击和破坏。
如果通过了第一层防护,那么下一层防护就是tcp_wrappers了。
通过Tcp_Wrappers可以实现对系统中提供的某些服务的开放与关闭、允许和禁止,从而更有效地保证系统安全运行,文件系统安全.
#########################################################################################################################
第三步 服务本身策略
这是关于nginx服务的本身策略,用加载模块的方式来完成访问控制
第四步 selinux
#概念和历史
SELinux:Security Enhanced Linux,美国国家安全局(NSA)设计出了 SELinux,一种强制的访问控制方法,SELinux的主要目标是防止已遭遇泄露的系统服务访问用户数据
大多数Linux管理员都熟悉标准的用户/组/其他权限安全模型。
这种基于用户和组的模型称为自由决定的访问控制。SELinux提供另一层安全,他基于对象并由更加复杂的规则控制,称为强制访问控制。
#selinux作用:
SELinux是用于确定那个进程可以访问那些文件、目录和端口的一组安全规则。
每个文件、进程和端口都具有特别的安全标签,称为SELinux上下文。
上下文是一个名称,SELinux策略使用它来确定某个进程能否访问文、目录或端口。
除非显式规则授予访问权限,否则,在默认情况下,策略不允许任何交互。如果没有允许规则,则不允许访问
#selinux有三种模式
模式:
enforcing:强制模式,SELinux 基于其策略规则来拒绝访问,这些规则是用以 控制安全引擎的一系列准则
permissive:警告模式,SELinux 不会拒绝访问,但对于那些如果运行在强制模 式下会被拒绝访问的行为进行记录
disabled:关闭模式,SELinux没有运行
配置文件:
/etc/sysconfig/selinux /etc/selinux/config
#应用
1)context selinux安全上下文
2)selinux bool值(布尔值)