一、关于SELINUX
二、firewalld、iptables和netfilter之间的关系
三、netfilter5表5链介绍
四、iptables语法
五、iptables filter表案例
六、iptables nat表案例
一、关于SELINUX
1.1简介:
安全增强型 Linux(SecurityEnhancedLinux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。SELinux 主要由美国国家安全局开发。2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。SELinux 的结构及配置非常复杂,而且有大量概念性的东西,要学精难度较大。很多 Linux 系统管理员嫌麻烦都把 SELinux 关闭了。
1.2如何关闭SELinux
1.2.1临时关闭SELINUX的方式:
- #setenforce 0 //此命令可以临时关闭SELINUX,重启后SELINUX还会自动启动。
- #getenforce //getenforce可以获取SELINUX的运行状态。
1.2.2关于SELINUX的运行状态
- enforcing #开启状态,会强制执行SELINUX的安全策略
- permissive #提示状态,会打印触发SELINUX安全策略的警告,但是不会执行相应的策略。
- disabled #关闭SELINUX,重启后也不会再启动SELINUX。
1.2.3永久关闭SELINUX:(关闭后不能远程登录)
永久关闭SELINUX需要修改SELINUX的配置文件/etc/selinux/config
修改方法1:
vim /etc/selinux/config #使用vim编辑器编辑/etc/selinux/config文件。
将文件中的SELINUX=enforcing修改为SELINUX=disabled后,保存退出。
修改方法2:执行下面这条命令:
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
检查修改结果:
# grep -i"selinux=disabled" /etc/selinux/config
SELINUX=disabled
grep能过滤出结果,表示修改正确。然后重启系统就能完全关闭SELINUX了。
# getenforce
Disabled
二、firewalld、iptables和netfilter之间的关系
2.1在centos6上,我们用的是iptables服务,而在centos7上,我们用的是firewalld服务。同样的,centos6上安装的是iptables包,而centos7上安装的是firewalld包。不管是centos6还是centos7,核心其实都是netfilter,netfilter是linux的一个内核模块,iptables命令是linux内核自带的。
centos6上的iptables服务和centos7上的firewalld服务,其实都是用来定义防火墙规则功能的防火墙管理工具。
它们都是将定义好的规则交由内核中的netfilter即网络过滤器来读取,从而真正实现防火墙功能,所以其实在配置规则的思路上是完全一致的。
注:
-
netfilter才是防火墙;
-
firewalld和iptables是两种不同的防火墙管理工具,其底层都是iptables命令。
三者关系图: