ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

关于红帽

2022-02-05 15:02:41  阅读:211  来源: 互联网

标签:FTP ftp vsftpd -- rule etc 关于 红帽


目录

该文章摘自红帽官方产品文档

安全加固

磁盘分区

红帽建议为 /boot、/、/home、/tmp 和 /var/tmp/ 目录创建单独的分区。

/boot
这个分区是系统在启动过程中读取的第一个分区。用于将系统引导至 Red Hat Enterprise Linux 8 的引导加载程序和内核镜像保存在这个分区里。此分区不应加密。如果此分区包含在 / 中,并且该分区已加密或者不可用,那么您的系统将无法引导。

/home
当用户数据(/home)存储在 / 而不是独立分区中时,分区可能会填满,从而导致操作系统不稳定。另外,当将您的系统升级到 Red Hat Enterprise Linux 8 的下一个版本时,当您可以将数据保存在 /home 分区中,则在安装过程中不会被覆盖,这样就容易多了。如果 root 分区(/)损坏,则您的数据将永久丢失。通过使用单独的分区,对数据丢失有稍微多一点的保护。您还可以将此分区作为频繁备份的目标。

/tmp 和 /var/tmp/。
/tmp 和 /var/tmp/ 目录都是用来存储不需要长期存储的数据。但是,如果大量数据填充了其中一个目录,则它可能会消耗掉您的所有存储空间。如果发生这种情况,且这些目录存储在 / 中,则您的系统可能会变得不稳定并崩溃。因此,将这些目录移到它们自己的分区中是一个不错的想法。

注意
在安装过程中,可选择加密分区,但必须提供密码,该密码充当解锁批量加密密钥的密钥,用于保护分区的数据。

安装后流程

在安装 Red Hat Enterprise Linux 8 后应该立即执行的与安全相关的流程
更新您的系统(root用户)
# yum update

尽管安装 Red Hat Enterprise Linux 后会自动启用防火墙服务 firewalld,但在某些情况下它可能会被明确禁用,例如在 kickstart 配置中。该情况下建议考虑重新启用防火墙
# systemctl start firewalld && systemctl enable firewalld

要提高安全性,请禁用您不需要的服务。例如禁用 cups 服务
# systemctl disable cups
要查看活动状态的服务
$ systemctl list-units | grep service

保护服务

保护rpcbind

rpcbind 服务是用于远程过程调用(RPC)服务的动态端口分配守护进程,如网络信息服务(NIS)和网络文件共享(NFS)。由于其身份验证机制较弱,并可为其控制的服务分配大量端口,因此保护 rpcbind 服务非常重要。

您可通过对服务器添加防火墙规则来保护 rpcbind 服务。

注:
NFSv2 和 NFSv3 服务器需要 rpcbind 服务,在使用 rpcbind 服务时,应确保其安全。
NFSv4 不需要 rpcbind 服务来侦听网络。

firewalld 命令的示例:
限制 TCP 连接,并只接受来自 192.168.0.0/24 主机 111 端口的包:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="111" protocol="tcp" source address="192.168.0.0/24" invert="True" drop'

限制 TCP 连接,并只接受来自本地主机 111 端口的包:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="111" protocol="tcp" source address="127.0.0.1" accept'

限制 UDP 连接,并只接受来自 192.168.0.0/24 主机 111 端口的包:
# firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="111" protocol="udp" source address="192.168.0.0/24" invert="True" drop'

# firewall-cmd --reload  重新加载防火墙以接受新规则

验证防火墙规则:
# firewall-cmd --list-rich-rule
rule family="ipv4" port port="111" protocol="tcp" source address="192.168.0.0/24" invert="True" drop
rule family="ipv4" port port="111" protocol="tcp" source address="127.0.0.1" accept
rule family="ipv4" port port="111" protocol="udp" source address="192.168.0.0/24" invert="True" drop

保护rpc.mountd

rpc.mountd 守护进程实现 NFS 挂载协议的服务器端。NFS 挂载协议用于 NFS 版本 2(RFC 1904)和 NFS 版本 3(RFC 1813)。
可通过对服务器添加防火墙规则来保护 rpc.mountd 服务。也可限制对所有网络的访问并使用防火墙规则定义特定的异常。

接受来自 192.168.0.0/24 主机的mountd 连接
# firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" service name="mountd" source address="192.168.0.0/24" invert="True" drop'

接受来自本地主机的 mountd 连接:
# firewall-cmd --permanent --add-rich-rule 'rule family="ipv4" source address="127.0.0.1" service name="mountd" accept'

# firewall-cmd --reload  重新加载防火墙以接受新规则

验证防火墙规则:
# firewall-cmd --list-rich-rule

保护nfs

NFS 允许远程主机通过网络挂载文件系统,并与这些文件系统进行交互,就像它们被挂载到本地一样。这使系统管理员能够将资源整合到网络上的集中式服务器上。您可以在 /etc/nfsmount.conf 文件中自定义 NFS 挂载选项,该文件还用于设置默认选项。

系统管理员应定期检查 NFS 服务器和 NFS 客户端是否存在任何可能的威胁或攻击,以确保 NFS 的安全。

NFS 服务器确定哪个文件系统要导出到哪个主机。所有这些详细信息都添加到 /etc/exports 文件中。在配置文件中添加目录和主机时应非常谨慎。编辑此文件时请注意,不要添加额外的空格,因为它可能会导致重大的安全隐患。

以下是几个编写 /etc/exports 文件时的示例:

在以下行中 /tmp/nfs/ 目录提供共享服务给域名 bob.example.com 的主机并具有读写权限。
/tmp/nfs/     bob.example.com(rw)

以下行与上一行相同,但对 bob.example.com 主机共享具有只读权限的相同的目录,由于主机名后面有一个空格字符,因此可以对 世界 共享具有读写权限的目录。
/tmp/nfs/     bob.example.com (rw)       ===> 不要有空格,空格会带来很大的安全隐患

要验证系统中共享的内容,请在bob.example.com主机上执行 showmount -e <对端主机名/IP> 命令


NFS 客户端的挂载选项: https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/8/html/security_hardening/_mount_options_for_securing_an_nfs_client

保护FTP

FTP 文件传输协议通过网络传输文件,是一种不安全的协议,因为与服务器进行的所有事务(包括用户身份验证)均未加密,因此应仔细配置。

Red Hat Enterprise Linux 8 提供两个 FTP 服务器:
1、红帽内容加速器(tux)- 具有 FTP 功能的内核空间 Web 服务器。
2、非常安全的 FTP 守护进程(vsftpd)- FTP 服务的一种独立的、面向安全的实现。


以下安全指南是用于设置 vsftpd FTP 服务:
# yum -y install vsftpd ftp
# systemctl start vsftpd && systemctl enable vsftpd


保护标语
FTP 服务向所有用户显示问候标语。默认情况下,此标语包含版本信息,其有助于攻击者识别系统中的漏洞。默认标语类似如下:
$ ftp localhost
Trying ::1...
Connected to localhost (::1).
220 (vsFTPd 3.0.3)
Name (localhost:root):            ===> 这里需要输入用户名


# 要更改 vsftpd FTP 服务的问候标语,请在 /etc/vsftpd/vsftpd.conf 文件中修改以下指令:
#ftpd_banner=Welcome to blah FTP service.
取消注释
ftpd_banner=Welcome to blah FTP service.


# 重启服务
systemctl restart vsftpd

$ ftp localhost
Trying ::1...
Connected to localhost (::1).
220 Welcome to blah FTP service.             ===> 这里已经出现定义的问候标语
Name (localhost:root): 



要制作多行标语,最好使用标语文件。要简化对多个标语的管理,请将所有标语放在 /etc/banners/ 目录中。
本例中 FTP 连接的标语文件为 /etc/banners/ftp.msg
注: 将上述ftpd_banner注释掉

# mkdir /etc/banners
# vim /etc/banners/ftp.msg
1
22
332
4444


引用 ftp.msg 问候标语文件,新添加该选项
# vim /etc/vsftpd/vsftpd.conf
banner_file=/etc/banners/ftp.msg

# 重启服务
systemctl restart vsftpd

# 再来测试登陆
ftp localhost
Trying ::1...
Connected to localhost (::1).
220-1
220-22
220-332
220-4444
220 
Name (localhost:root): 



# 防止匿名访问和上传
安装 vsftpd 软件包时,会创建 /var/ftp/ 目录。默认情况下,此软件包为对目录具有只读权限的匿名用户建立目录树。由于匿名用户可以访问数据,因此请注意敏感数据的存储位置。
要允许匿名用户在 FTP 服务器上上传文件:
1、在 /var/ftp/pub/ 目录中创建一个只有写权限的目录
# mkdir /var/ftp/pub/upload
# chmod 730 /var/ftp/pub/upload
# ll -d /var/ftp/pub/upload
drwx-wx--- 2 root root 6 Feb  5 12:55 /var/ftp/pub/upload


# vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
anonymous_enable=YES

注:启用 SELinux 并强制实现时,您还应检查 SELinux 布尔属性 allow_ftpd_anon_write 和 allow_ftpd_full_access。

# 重启服务
systemctl restart vsftpd


保护用户帐户
FTP 通过不安全的网络传输用户名和密码来进行身份验证,最好拒绝系统用户从其用户帐户访问服务器。
要在 vsftpd 服务器中禁用所有用户帐户,请将以下指令添加到 /etc/vsftpd/vsftpd.conf 中:
local_enable=NO

要禁用特定帐户或特定帐户组(如 root 用户和具有 sudo 特权的组)的 FTP 访问,您可以使用 vsftpd 服务的 /etc/pam.d/vsftpd PAM 配置文件。
可在 vsftpd 服务中禁用用户帐户。为此,请将用户名添加到 /etc/vsftpd/ftpusers 文件中。

安全 NGINX 服务器

# yum -y install nginx
# systemctl start nginx
# curl -sI http://localhost | grep Server
Server: nginx/1.14.1

关闭nginx显示版本号
vim /etc/nginx/nginx.conf
http {
    ....
        ....
    server_tokens off;          ====> 添加该项,为on时则打开
    ....
        ....

    server {
        listen       80;
        ....     
    }
  }



# systemctl restart nginx
# curl -sI http://localhost | grep Server
Server: nginx




包括其他与安全相关的标头
NGINX 服务的每个请求都可以包括额外的 HTTP 标头来缓解某些已知的 Web 应用程序漏洞:

此选项拒绝域外的任何页面框,以构建由 NGINX 提供的任何内容,从而减少了点击攻击。
添加_header X-Frame-Options SAMEORIGIN;

这个选项可防止在某些较旧的浏览器中使用 MIME 类型嗅探功能。
add_header X-Content-Type-Options nosniff;

此选项启用跨站点脚本(XSS)过滤,可防止浏览器呈现 NGINX 响应中包含的潜在恶意内容。
add_header X-XS-Protection "1; mode=block";


限制 HTTP 方法
您可以限制面向公众的服务,并限制他们从事的工作和接受访客的行为。例如,以下代码片段将限制对除 GET 和 HEAD 以外的所有方法的访问:
limit_except GET {
    allow 192.168.1.0/32;
    deny  all;
}



禁用 HTTP 方法
如果启用,一些 HTTP 方法可能会允许攻击者在 Web 服务器上执行专为开发人员测试 Web 应用的操作。例如,了解 TRACE 方法允许跨站点跟踪(XST)。NGINX 服务器可以通过仅允许特定方法禁止这些错误的 HTTP 方法以及任意方法。例如:

# Allow GET, PUT, POST; return "405 Method Not Allowed" for all others.
if ( $request_method !~ ^(GET|PUT|POST)$ ) {
    return 405;
}

扫描系统漏洞

扫描本机系统漏洞

先决条件
  AppStream存储库已启用。


# 安装
1、安装 openscap-scanner 和 bzip2 软件包
yum -y install openscap-scanner bzip2


2、下载系统的最新 RHSA OVAL 定义
wget -O - https://www.redhat.com/security/data/oval/v2/RHEL8/rhel-8.oval.xml.bz2 | bzip2 --decompress > rhel-8.oval.xml


3、扫描系统漏洞并将结果保存到 vulnerability.html 文件中:
oscap oval eval --report vulnerability.html rhel-8.oval.xml


# 使用 Red Hat Subscription Manager (RHSM) 将系统注册到红帽客户门户网站,并自动关联与这个系统相匹配的有效订阅
subscription-manager register --username <登录用户名> --password <登录密码> --auto-attach

# 安装elinks
yum -y install elinks


扫描远端系统漏洞


待续!!!
2022年2月5日  14:42


标签:FTP,ftp,vsftpd,--,rule,etc,关于,红帽
来源: https://www.cnblogs.com/smlile-you-me/p/15864216.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有