linux系统安全配置教程和安全基线核查教程

文章目录

  • root用户远程登录限制
  • 更改ssh默认端口
  • 设置安全的用户口令策略
  • 设置安全的用户锁定策略
  • 登录超时安全设置
  • 应用安装运行策略
  • 系统日志审计策略
  • 设置history时间戳
  • 远程连接安全配置
  • 恶意代码防范:
  • 日志外发配置
  • 日志留存设置
  • 正确配置防火墙或安全组

root用户远程登录限制

配置原因: 黑客和不法分子经常会利用默认用户进行密码爆破入侵,比如默认的root用户;在云服务器和内网的使用场景必须开启ssh才能方便进行远程管理,经常会被批量扫描和慢速爆破。
所以我们要设置不允许root直接远程登录,如若需要使用root,应通过普通用户登录,然后通过sudo su切换为root权限来使用。
说明:ubuntu是默认禁止root用户登录的,centos默认允许root登录,需要手动去设置。
设置步骤:

  1. 打开SSH配置文件。你可以使用vi或nano编辑器,这里以vi为例:
vi /etc/ssh/sshd_config
  1. 找到以下行:
# PermitRootLogin yes

修改为:确保去掉#注释符号,并将yes改为no。

PermitRootLogin no
  1. wq保存退出,然后重启ssh服务
    systemctl restart sshd

更改ssh默认端口

操作步骤:输入/etc/ssh/sshd_config查看port是否为22等容易猜疑到的端口(默认就是22端口),如果是则需要修改为其它端口,以防范批量化的扫描;然后重启ssh服务即可,centos重启命令sudo systemctl restart sshd

设置安全的用户口令策略

修改/etc/login.defs
密码策略如下:

PASS_MAX_DAYS   90(生命期最大为90天)
PASS_MIN_DAYS   0(密码最短周期0天)
PASS_MIN_LEN   10(密码最小长度10位)
PASS_WARN_AGE 7(密码到期前7天提醒)

口令复杂度:
口令长度8位以上,并包含数字、字母、特殊字符三种形式

设置安全的用户锁定策略

前言: 黑客和不法分子找到服务器ip之后,第一件事就是扫描ssh服务端口,找到后就会进行用户名密码的暴力破解,如果没有输错密码的锁定策略,很可能短时间就被破解出来。
建议: 对于采用静态口令认证技术的设备,应配置当用户连续认证失败次数超过5次,锁定该用户使用的帐号。登录失败次数可以依据自己的需要进行设置,不建议超过10次。
设置连续输错5次密码,帐号锁定5分钟使用命令 vi /etc/pam.d/system-auth修改配置文件,添加

auth required pam_tally.so onerr=fail deny=10 unlock time=300

最好是有锁定登录ip的策略,不然的话还能换其它用户进行再次破解。

登录超时安全设置

用户登录后离开窗口长时间在线不操作容易引起安全风险,被其它人操作;应根据业务需求修改/etc/profile中的TMOUT参数,例如修改成180,就是3分钟无操作后退出。

应用安装运行策略

应用安装运行的时候,不要使用root用户直接安装运行用户,应该创建相对的最小权限应用账户,比如nginx和mysql等应用。输入命令ps –aux来查看进程启动的用户是否为root,一般nginx的运行用户需要是nginx,mysql也同理。

系统日志审计策略

日志审计-syslog登录事件记录,确保/etc/rsyslog.conf的相关日志已打开记录,主要是secure和message、console。

设置history时间戳

history默认不带时间戳,不好用于定位分析问题,操作如下:

echo 'HISTTIMEFORMAT="%F %T "' >>/etc/profile
source /etc/profile

远程连接安全配置

限制远程ssh封路访问的的源IP,避免其它具有风险的地址访问ssh端口。

恶意代码防范:

服务器需要安装杀毒软件等工具来进行范恶意代码防范,安装服务器安全管理软件,首次安装后需要进行全盘病毒查杀,并正确使用和开启病毒库自动更新。

日志外发配置

为解决本地日志存储和未授权删除篡改问题,需要将服务器本地日志外发到第三方审计平台。
修改/etc/rsyslog.conf 配置文件,
在该文件内容最后增加一行:. @10.x.x.x

日志留存设置

审计功能已开启,包括:用户的添加和删除、审计功能的启动和关闭、审计策略的调整、权限变更、系统资源的异常使用、重要的系统操作(如用户登录、退出)等设置
审计记录包括事件的日期、时间、类型、主体标识、客体标识和结果等内容
如果没有设置外发日志则本地需要留存180天,如果有外发设置,本地只需要存储200M大小的日志。
检测操作步骤:
修改/etc/logrotate.conf 中的

/path/to/logfile {
    missingok
    monthly
    create 0644 root root
    rotate 6
    compress
    delaycompress
    notifempty
}

保存后
重启 rsyslog 服务

sudo systemctl restart rsyslog

正确配置防火墙或安全组

检查防火墙(iptables或firewall-cmd)是否已开启,并且对应的端口服务仅开放给管理员和业务用户使用。
操作思路:
默认拒绝所有源IP访问所有目的IP,然后开放需要对外提供服务的端口;

  • 如果是面向内部员工的应用服务器:仅开放80、443等提供服务的端口给内部员工访问,RDP、数据库等服务端口限制为堡垒机、管理员进行访问。
  • 如果是数据库等仅需要与应用服务器交互的服务器:SSH服务仅开放给堡垒机、管理员访问;3306等业务端口仅开放给对接业务的服务器级管理员、堡垒机访问。
  • 如果是面向互联网用户的应用服务器:仅开放80、443等提供服务的端口给互联网用户访问,SSH、数据库等服务端口限制为内网堡垒机、管理员进行访问。

你可能感兴趣的:(linux,系统安全,运维,网络安全)