记录一下处理过的安全加固的问题

一、web服务器

1、web服务器root目录权限管控,一般将web服务器的root目录放置于/usr/local/目录下,目录权限限制为非root用户,并禁止匿名用户,

2、tomcat

  • 确认tomcat的启动用户为非root用户
  • 修改tomcat端口,避免使用默认的8080端口
  • 开启日志审计功能

3、nginx

  • 屏蔽ip,例如非必要不放行境外ip。
  • 屏蔽user-agent
  • 封杀特定url,例如phpmyadmin
  • 强制使用域名,避免IP扫描
  • 目录权限限制只读
  • 隐藏版本信息
  • 限制http请求方法
  • 限流,限制并发,限速
  • 配置防盗链

    二、linux系统加固

    1、密码格式加固

    首先需要安装cracklib模块,增强扩展密码检查能力,在RHEL系Linux中以预装,在debian系linux发行版中,需要执行如下命令安装
    1. sudo apt-get install libpam-cracklib
    以下修改默认对root用户无效,若需对root用户进行限制,需添加字段 enforce_for_root
    针对debian系linux发行版
    sudo vim /etc/pam.d/common-password
    # 禁止使用旧密码,remember=5 表示禁止使用最近5个密码
    password [success=1 default=ignore] pam_unix.so obscure sha512 remember=5 
    # 设置最短密码长度
    password requisite pam_cracklib.so retry=3 minlen=10 difok=3
    # 设置密码复杂度
    password requisite pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1
    
    针对redhat系linux发行版
    vim /etc/pam.d/system-auth
    # 禁止使用旧密码,remember=5 表示禁止使用最近5个密码
    password sufficient pamunix.so sha512 shadow nullok tryfirstpass useauthtok remember=5
    # 设置最短密码长度
    password requisite pam_cracklib.so retry=3 minlen=10 difok=3
    # 设置密码复杂度
    password requisite pam_cracklib.so retry=3 difok=3 minlen=10 ucredit=-1 lcredit=-2 dcredit=-1 ocredit=-1
    

2、密码过期时间

vim /etc/login.defs
# 每150天修改密码,到期前7天提醒
PASSMAXDAYS 150 PASSMINDAYS 0 PASSWARNAGE 7

# 当前已存在账户密码有效期
change -l $USER
change -M 90 $USER

3、syslog加固

# 放松syslog权限限制,便于非root账户查阅syslog
chmod 640 /var/log/messages
chmod 640 /var/log/secure
chmod 640 /var/log/maillog
chmod 640 /var/log/cron
chmod 640 /var/log/spooler
chmod 640 /var/log/boot.log

4、登录超时

vim /etc/profile
# 300秒登录超时
TMOUT=300

5、授权管理

chmod 644 /etc/passwd
chmod 644 /etc/group
chmod 400 /etc/shadow

6、用户管理

  • 尽可能少的保留用户登录权限,若非必要,不开放登录权限

    7、修改ssh端口