05-CentOS防火墙

概述

CentOS中的防火墙有很多,如SELinux、Firewall、TCP Wrappers、iptables/netfilter。
每种防火墙都有各自擅长的地方。
这里主要讲两种:SELinux和Firewall。

SElinux

为什么需要SElinux?

Linux中的程序不能拥有过大的权限,否则就会侵入我们的系统,获取我们的数据(比如数据库文件),随意安装程序(比如后门)。
这就像是在Windows上下载一些非官方软件,安装后桌面上会出现“贪玩蓝月”,“传奇”或者广告等图标。

SElinux的作用:

SElinux主要用于防内部,比如内部的文件权限、端口权限。这样的话,应用程序就不会拥有过大的权限。

SELinux三种模式
enforcing	    #强制模式,拦截不合法请求(默认状态)
permissive	    #只警告不拦截
disabled	    #对于越权行为不警告也不拦截(即关闭SELinux)
查看当前SELinux的模式与状态
getenforce      #查看SELinux当前的模式
getsebool -a    #查询当前各项规则的布尔值

#举例:
semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/      #放开httpd这个程序对/home/wwwroot/的权限
SELinux的开关
  • 临时开关(无需重启)
setenforce 0	#临时关闭SELinux
setenforce 1	#临时开启SELinux
  • 永久开关(需要重启)
vim /etc/selinux/config
    SELINUX=disabled        #将SELinux的状态设置为disabled(关闭)
  • 通常如何关闭和开启SElinux

因为临时开关临时有效,永久开关需要重启。
所以我们通常结合两种方式。
比如,关闭SELinux:

setenforce 0	#临时关闭SELinux
vim /etc/selinux/config
    SELINUX=disabled

Firewalld

与SELinux不同,这个防火墙主要用来防外部。比如:防止网络上其他主机对某端口的访问。
Firewalld还有其他很强大的功能:比如NAT转发。

临时放行端口
firewall-cmd --add-port=8080/tcp            #放行8080端口的TCP协议
firewall-cmd --add-port=8080-8090/tcp       #放行8080端口~8090端口的TCP协议

#注意:上面端口的UDP协议还是会被拦截。
临时放行某个协议
firewall-cmd --add-service=https        #临时放行https协议(与放行443端口作用一样)
临时拦截某个协议
firewall-cmd --remove-service=https     #临时拦截https协议(与拦截443端口作用一样)

#同理:拦截端口用的命令是--remove-port
查看firewalld中的规则
firewall-cmd --list-all     #查看当前的规则(包括临时)
firewall-cmd --list-all --permanent     #查看永久规则
永久放行或拦截

前面讲到的都是临时有效的,重启firewalld之后,规则就会失效(因为会重新读取配置文件)。

  • 永久放行端口-方法1
firewall-cmd --add-port=8080/tcp --permanent        #只会将规则写入文件,但不立即生效
firewall-cmd --add-port=8080/tcp 
  • 永久放行端口-方法2
firewall-cmd --add-port=8080/tcp --permanent        #只会将规则写入文件,但不立即生效
firewall-cmd --reload       #重启firewlld(会重新读取配置文件)
发布了109 篇原创文章 · 获赞 51 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/NetRookieX/article/details/104710408