来自 技术 2019-04-17 00:00 的文章

selinux-firewalld

八年Java开发的感悟:什么才是程序员的立身之本>>>   

SElinux

SELinux(Security-Enhanced Linux)是一个Linux内核的安全模块,其提供了访问控制安全策略机制。

了解更多:https://zh.wikipedia.org/wiki/%E5%AE%89%E5%85%A8%E5%A2%9E%E5%BC%BA%E5%BC%8FLinux

由于SElinux学习成本高,而且开启后可能会造成未知影响,所以我建议大家可以在安装完系统后直接关闭。

临时关闭

setenforce 0 永久关闭

vim /etc/selinux/config #将SELINUX=enforcing改为SELINUX=disabled 查看selinux状态

getenforce iptables, firewalld, netfilter三者关系

netfilter为Linux内核的一个模块,可以针对进出的数据包进行处理,用来实现防火墙功能。iptables工具/命令为netfilter模块自带,我们可以使用iptables命令实现规则的管理。

CentOS6在netfilter基础之上安装了iptables服务,该服务帮我们管理iptables规则。

CentOS7在netfilter基础之上安装了firewalld服务,该服务帮我们管理iptables规则。

netfilter的5表5链

filter表

三个链:INPUT、FORWARD、OUTPUT

作用:过滤数据包

Nat表

三个链:PREROUTING、POSTROUTING、OUTPUT

作用:用于网络地址转换(IP、端口)

Mangle表

五个链:PREROUTING、POSTROUTING、INPUT、OUTPUT、FORWARD

作用:修改数据包的服务类型、TTL、并且可以配置路由实现QOS

Raw表

两个链:OUTPUT、PREROUTING

作用:决定数据包是否被状态跟踪机制处理

Security表

三个链:INPUT、OUTPUT和FORWARD

作用:Security表在centos6中并没有,用于强制访问控制(MAC)的网络规则

netfilter的5个链

PREROUTING:数据包进入路由表之前

INPUT:通过路由表后目的地为本机

FORWARD:通过路由表后,目的地不为本机

OUTPUT:由本机产生,向外发出

POSTROUTING:发送到网卡接口之前