的Linux内核包括Netfilter子系统,该子系统用于操纵或确定进入或通过您的服务器的网络流量的命运。所有现代Linux防火墙解决方案都使用此系统进行数据包过滤。


增强安全性的Linux(SELinux)是Linux内核安全性模块,它提供了一种机制来支持访问控制安全策略,包括强制性访问控制(MAC)。 SELinux是一组内核修改和用户空间工具,已添加到各种Linux发行版中。

这篇文章总结了如何在两种最流行的Linux发行版(CentOS和Ubuntu)上配置Firewall和SElinux的基本用法。

1. CentOS 7

防火墙D 是用于实现持久性网络流量规则的iptables的前端控制器。它提供了命令行和图形界面,并且在大多数Linux发行版的存储库中都可用。与直接控制iptables相比,使用FirewallD有两个主要区别:
  1. 防火墙D的用途 区域 and 服务 而不是链条和规则。
  2. 它动态管理规则集,允许更新而不会破坏现有会话和连接。

注意

防火墙D是iptables的包装器,可以更轻松地管理iptables规则-它是  iptables的替代品。尽管iptables命令仍可用于FirewallD,但建议仅对FirewallD使用FirewallD命令。


防火墙D



iptables(默认情况下未安装CentOS 7)

以下是一些安装它以替换默认防火墙的命令:
  • yum install policycoreutils iptables-services -y
  • systemctl停止防火墙.service
  • systemctl禁用firewalld.service
  • 服务iptables重新启动
防火墙命令(默认安装并激活了CentOS 7)
  • systemctl停止防火墙 //关闭防火墙
  • systemctl启动firewalld //打开防火墙
  • systemctl status firewalld //检查防火墙状态
  • systemctl停止防火墙.service  #停止防火墙
  • systemctl禁用firewalld.service  #禁止firewall开机启动
  • 防火墙-cmd –状态   #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
屏蔽FirewallD服务,这将防止防火墙被其他服务启动:
sudo systemctl mask --now firewalld

禁用防火墙

要禁用firewalld,请以root用户身份运行以下命令:
systemctl disable firewalld

停止防火墙

要停止firewalld,请以root用户身份运行以下命令:
systemctl停止防火墙

检查防火墙的状态

最后,要检查firewalld的状态,请以root用户身份运行以下命令:
systemctl status firewalld

打开XRDP tcp 3389端口。

$ sudo firewall-cmd --add-port=3389/tcp --permanent
$ sudo firewall-cmd --reload



SELinux

要查看当前的SELinux状态和系统上正在使用的SELinux策略,请使用 sestatus command:
sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      31
您可以从上面的输出中看到SELinux已启用并将其设置为强制模式。

禁用SELinux

您可以从以下位置临时更改SELinux模式   targeted  to  permissive  with the following 命令:
sudo setenforce 0
但是,此更改仅对当前运行时会话有效。
要在CentOS 7系统上永久禁用SELinux,请执行以下步骤:
要永久更改SELinux,我们需要编辑/ etc / sysconfig / selinux。
vi / etc / sysconfig / selinux

 #此文件控制系统上SELinux的状态。
#SELINUX =可以采用以下三个值之一:
#     实施–实施SELinux安全策略。
#     允许– SELinux会显示警告而不是强制执行。
#     已禁用–未加载SELinux策略。
SELINUX =禁用
#SELINUXTYPE =可以采用以下三个值之一:
#     目标明确–目标程序受到保护,
#     最低–修改目标政策。仅选定的进程受保护。
#     mls –多级安全保护。12SELINUXTYPE = targeted







#CentOS 6
iptables -I输入-p tcp –dport 3000 -j接受
服务iptables保存
服务iptables重新启动

#CentOS 7
防火墙-cmd –zone =公共–add-port =
3000/ tcp —常驻
防火墙cmd –重新加载


2. Ubuntu 18.04





防火墙功能
Ubuntu包含自己的防火墙,称为ufw –“简单防火墙”的缩写。 Ufw是标准Linux iptables命令的易于使用的前端。您甚至可以从图形界面控制ufw。

Ubuntu的防火墙是一种无需学习iptables即可轻松执行基本防火墙任务的简便方法。它不能提供标准iptables命令的所有功能,但是却不那么复杂。

默认情况下禁用防火墙。要启用防火墙,请在终端上运行以下命令:
sudo ufw启用
假设您想在端口22上允许SSH流量。为此,您可以运行以下命令之一:
sudo ufw allow 22(同时允许TCP和UDP流量-如果不需要UDP,则不理想。)
sudo ufw允许22 / tcp (仅允许该端口上的TCP通信。)
sudo ufw allow ssh(检查系统上的/ etc / 服务文件中是否包含SSH所需的端口,并允许它使用。此文件中列出了许多常用的服务。)
Ufw假定您要为传入流量设置规则,但是您也可以指定方向。例如,要阻止传出的SSH流量,请运行以下命令:
sudo ufw拒绝ssh
You can view the rules you’ve created with the following 命令:
sudo ufw状态
要删除规则,请在规则之前添加单词delete。例如,要停止拒绝传出的ssh通信,请运行以下命令:
sudo ufw删除拒绝SSH
Ufw的语法允许使用相当复杂的规则。例如,此规则拒绝从IP 12.34.56.78到本地系统上端口22的TCP通信:
sudo ufw拒绝从12.34.56.78到任何端口22的proto tcp
To reset the firewall to its default state, run the following 命令:
sudo ufw重置





SELinux

3.参考

通过 约翰

发表评论