安全加固方向
- 用户安全
- 文件安全
- 登录安全
系统环境
CentOS7.9
重要文件
/etc/login.defs
文件功能
定义了 /etc/passsword以及/etc/shadow配置的用户限制,这个文件在系统中一定要存在,某些时候不会影响系统的使用,但有些时候会导致意想不到的错误。
如果**/etc/passsword以及/etc/shadow与/etc/login.defs文件产生了冲突,系统会以/etc/passsword以及/etc/shadow**为准,它们的优先级较高。
1 | MAIL_DIR /var/spool/mail |
通用文件
1 | MAIL_DIR /var/spool/mail |
/etc/passwd
用户名:用户密码:用户uid:用户的gid:用户的注释:用户的主目录:用户的shell
1 | root: x: 0: 0: root: /root: /bin/bash |
/etc/shadow
由于/etc/passwd允许所有用户读取,容易导致用户的密码泄露,所以linux系统将用户的相关密码信息从/etc/shadow分离出来,并且这个文件只有root才可以访问。
1 | root:x:0:0:root:/root:/bin/bash |
/etc/ssh/sshd_config
ssh服务器的配置文件
1 | port 22 #登录端口 |
/etc/bashrc
环境变量,初始化整个系统bash的设置
-rw-r--r-- 1 root root 37 May 30 11:37 README.md
-代表普通文件 d代表目录 l代表软链接
r读权限4 w写权限2 x执行权限1
文件所有者的权限 -文件所有者同用户组的权限 -其他用户对该文件的权限
目录 | 文件 |
---|---|
777 | 666 |
022(建议027) | 022(建议027) |
755 | 644 |
history -a
打开命令行记录
1 | export HISTFILE="/opt/cmd_history/${LOGIN_USER}/history" #每个用户历史命令存储位置 |
/etc/profile
环境变量,用来设置整个系统的环境变量
/etc/hosts.deny
主机的黑名单
1 | sshd:ALL #禁止所有人使用ssh登录本机 |
/etc/hosts.allow
主机的白名单
1 | sshd:[ip地址] #允许指定的机器(管理机地址或者VPN地址)登录本机 |
Nginx加固
网站根目录文件
不能属于 root 而是 nginx
权限改为生产建议027,权限最小化
端口扫描
扫描开放端口,防止只能在内网开放的端口开放到外网
1 | nmap [ip地址] |
半开式扫描更加隐蔽
1 | namp -sS [IP地址] |
安全加固
- 禁止目录浏览
- 隐藏版本信息
1 | vim /etc/nginx/nginx.conf #配置信息 |
- 限制http请求方法
1 | if ($request_method !~ ^(GET|HEAD|POST)$ ) { |
- 限制ip访问
1 | location / { |
- 限定SSL版本
1 | server { |
- 限制超时
1 | client_body_timeout 10; #设置客户端请求主体读取超时时间 |
- 限制权限
1 | user nobody; |
限制并发和速度
1 | limit_zone one $binary_remote_addr 10m; |
- 配置防盗链
1 | location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip)$ { |
本文采用CC-BY-SA-3.0协议,转载请注明出处
Author: Sally
Author: Sally