服务器基线配置项及配置方法

01.检查系统openssh安全配置

配置要求

强烈建议系统放弃旧的明文登录协议,使用SSH防止会话劫持和嗅探网络上的敏感数据。

审计步骤

检查步骤

查看配置文件/etc/ssh/sshd_config,检查以下几个参数的配置值是否满足安全要求:

X11Forwarding   #x11转发功能,如果没有需要使用此功能的应用应该关闭该功能。

MaxAuthTries    #指定每个连接允许的身份验证尝试的最大数量。建议配置为4次或者更少。

IgnoreRhosts    #此参数将强制用户在使用SSH进行身份验证时输入密码,建议开启开功能。

HostbasedAuthentication #开启主机认证,建议关闭该功能。

PermitEmptyPasswords #允许空密码登录,建议关闭该功能

合规标准

1、关闭x11转发功能;

2、单个连接允许的最大身份验证尝试次数不大于4次;

3、开启使用ssh进行身份验证时,强制输入密码功能;

4、关闭主机认证功能;

5、关闭允许空密码登录功能;

以上5个条件同时满足时则合规,否则不合规。

加固方案:

编辑配置文件/etc/ssh/sshd_config,修改下面几个参数的值:

vim /etc/ssh/sshd_config
X11Forwarding no

MaxAuthTries 4

IgnoreRhosts yes

HostbasedAuthentication no

PermitEmptyPasswords no

重启ssh服务

systemctl restart sshd

02.检查是否设置命令行界面超时退出

理论依据

对于具备字符交互界面的设备,应配置定时帐户自动登出,避免管理员忘记注销登录,减少安全隐患。

配置要求

设置命令行界面登录后300s内无任何操作自动登出。

审计步骤

查看/etc/profile文件中是否配置超时设置

cat /etc/profile |grep -i TMOUT

合规标准

命令行界面超时自动登录时间设置为不大于300s则合规,否则不合规。

加固方案

执行备份

cp -p /etc/profile /etc/profile_bak

在/etc/profile文件中增加如下两行(存在则修改,不存在则添加):

vim /etc/profile
TMOUT=300

export TMOUT

执行以下命令使TMOUT参数立即生效

source /etc/profile

03.检查是否删除了潜在危险文件

理论依据

限制.rhosts、.netrc和/etc/hosts.equiv文件的使用。r系列命令使用这些文件来访问系统。

配置要求

.rhosts,.netrc,hosts.equiv等文件都具有潜在的危险,如果没有应用,应该删除。

审计步骤

检查步骤, 使用locate命令查看系统是否存在如下文件".rhost、.netrc、hosts.equiv"

locate .rhost

locate .netrc

locate hosts.equiv

合规标准

系统不存在".rhost、.netrc、hosts.equiv"这三个文件则合规,否则不合规。

加固方案

此项检查若不合规,请使用rm命令删除如下三个文件:

.rhost、.netrc、hosts.equiv

04.检查用户目录缺省访问权限设置

理论依据

为umask设置一个非常安全的默认值,确保用户对其文件权限做出一个有意识的选择。

配置要求

控制用户缺省访问权限,当在创建新文件或目录时,应屏蔽掉新文件或目录不应有的访问允许权限,防止同属于该组的其它用户及别的组的用户修改该用户的文件或更高限制。
 

检查步骤

查看文件/etc/profile,是否设置文件目录缺省权限。

合规标准

/etc/profile文件末尾存在umask 027,则合规,否则为不合规。

加固方案

vim /etc/profile
umask 027
source  /etc/profile

05.检查是否设置口令更改最小间隔天数

理论依据

通过限制密码更改的频率,管理员可以防止用户重复更改密码,从而避免密码重用控制。

配置要求

建议将参数PASS_MIN_DAYS设置为不小于7天。


检查步骤

查看文件/etc/login.defs,检查如下参数值是否满足要求:

PASS_MIN_DAYS

合规标准

PASS_MIN_DAYS不小于7天则合规,否则不合规。

加固方案

执行备份:

cp -p /etc/login.defs /etc/login.defs_bak

修改策略设置,编辑文件/etc/login.defs,在文件中加入如下内容(如果存在则修改,不存在则添加):

vim /etc/login.defs
PASS_MIN_DAYS 7

06.检查是否设置口令生存周期

理论依据

攻击者利用网络暴力攻击的机会,通过网络暴力攻击的机会窗口,受到密码生存周期的限制。因此,减少密码的最大年龄也会减少攻击者的机会窗口。


配置要求

建议将PASS_MAX_DAYS参数设置为小于或等于90天。

检查步骤

查看文件/etc/login.defs,检查如下参数值是否满足要求:

PASS_MAX_DAYS

合规标准

PASS_MAX_DAYS不大于90则合规,否则不合规。


加固方案

执行备份

cp -p /etc/login.defs /etc/login.defs_bak

修改策略设置,编辑文件/etc/login.defs,在文件中加入如下内容(如果存在则修改,不存在则添加):

PASS_MAX_DAYS   90

07.检查是否禁止root用户远程登录

理论依据

在SSH上不允许root登录,需要服务器管理员使用自己的帐户进行身份验证,然后通过sudo或su升级到根,这反过来限制了不可抵赖的机会,并在发生安全事件时提供了清晰的审计线索

配置要求

限制具备超级管理员权限的用户远程登录,远程执行管理员权限操作,应先以普通权限用户远程登录后,再切换到超级管理员权限账号后执行相应操作。

检查步骤

1、查看文件/etc/ssh/sshd_config,是否存在拒绝root用户通过SSH协议远程登录的配置。

2、执行以下命令查看ssh协议版本是否为2。

grep  -v "^[[:space:]]*#" /etc/ssh/sshd_config|grep -i "^protocol"


合规标准

ssh协议拒绝root用户远程登录,且使用的是协议SSH 2则合规,否则不合规。

加固方案

执行备份:

cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config_bak

新建一个普通用户并设置高强度密码(防止设备上只存在root用户可用时,无法远程访问):

useradd chiyi

passwd chiyi

添加 sudo 权限

修改文件为可写

chmod u+w /etc/sudoers

 修改配置文件

vim /etc/sudoers
chiyi            ALL=(ALL)             NOPASSWD:ALL

修改文件为只可读

chmod u-w /etc/sudoers

禁止root用户远程登录系统

修改文件为可写

chmod u+w /etc/ssh/sshd_config

修改配置文件

vim /etc/ssh/sshd_config
PermitRootLogin no

修改文件为只可读

chmod u-w /etc/ssh/sshd_config

 重启SSH服务

systemctl restart sshd


 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
在 C++ 中,类的成员函数和成员变量有三种访问权限:public(公有)、private(私有)和protected(保护)。默认情况下: - 成员函数和成员变量的默认访问权限是 private。 - 派生类的默认继承方式是 private。 因此,如果没有显式地指定成员函数或成员变量的访问权限,则它们默认为 private。例如: ```c++ class MyClass { int a; // 默认为 private void func(); // 默认为 private }; ``` 如果想要将成员函数或成员变量指定为 public 或 protected,可以使用关键字 public 或 protected。例如: ```c++ class MyClass { public: int b; // public void func1(); // public protected: int c; // protected void func2(); // protected private: int a; // private void func3(); // private }; ``` 需要注意的是,派生类的访问权限取决于继承方式。如果继承方式为 public,则基类的 public 成员和 protected 成员在派生类中都是 public 成员;如果继承方式为 protected,则基类的 public 成员和 protected 成员在派生类中都是 protected 成员;如果继承方式为 private,则基类的 public 成员和 protected 成员在派生类中都是 private 成员。例如: ```c++ class Base { public: int a; // public protected: int b; // protected private: int c; // private }; class Derived1 : public Base { // a 和 b 在 Derived1 中都是 public // c 在 Derived1 中是不可访问的 }; class Derived2 : protected Base { // a 和 b 在 Derived2 中都是 protected // c 在 Derived2 中是不可访问的 }; class Derived3 : private Base { // a 和 b 在 Derived3 中都是 private // c 在 Derived3 中是不可访问的 }; ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

协享科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值