安全加固
Centos 7 安全加固 SSH 加密
yum -y install expect mkpasswd
服务器上所有账号的密码都要采用毫无关联的强密码,密码为不少于16位的大小写字母数字特殊符号的组合。
修改SSH配置文件
- 改默认端口 22 -> 78787
- 禁止root帐号登录
- 指定允许登录帐号
SHH root PermitRootLogin no AllowUsers ccav
启用强制密码长度策略
vim /etc/login.defs ..... PASS_MIN_LEN 13
检查是否存在除root之外UID为0的用户
awk -F: '($3 == 0) { print $1 }' /etc/passwd
检测登陆系统是否需要密码
awk -F: '($2 == ""){print $1}' /etc/passwd
帐户口令复杂度及定期更换
[root@localhost]# passwd xxxxxx
禁用NAT
echo 0 > /proc/sys/net/ipv4/ip_forward
Bash日志 设置环境变量为只读:
readonly HISTFILE readonly HISTFILESIZE readonly HISTSIZE readonly HISTCMD readonly HISTCONTROL readonly HISTIGNORE
为history文件添加时间
export HISTTIMEFORMAT=‘%F %T’
设置history文件只能追加:
chatter +a ~/.bash_history
Apache
服务器Banner信息隐藏 复制代码
apache 配置文件 vim /etc/httpd/conf/httpd.conf ... ServerTokens Prod ServerSignature Off
PHP 配置文件 vim /etc/php.ini
... expose_php = Off
复制代码
防止列目录泄露敏感信息
Options Indexes FollowSymLinks
改为
Options FollowSymLinks
指定目录禁止php解析
<Directory "/var/www/html/uploads"> php_flag engine off </Directory>
限制管理员后台特定IP访问
<Directory "/var/www/html/admin"> Order Deny,Allow Deny from all Allow from 192.168.1.111 </Directory>
关闭对.htaccess的支持
AllowOverride None
禁止显示版本
server_tokens off;
或者通过源码编译的时候修改
vim /src/core/nginx.h ... #define NGINX_VERSION "1.9.15" #define NGINX_VER "nginx/" NGINX_VERSION
禁止上传目录禁止php文件 解析目录不可写,可写目录不解析 单个目录
location ~ /upload/.*.(php|php5)?$ { deny all; }
多个目录
location ~* ^/(administrator|upload)/.*.(php)$ { deny all; }
禁止访问所有目录下的敏感文件
location ~. *.(sql|log|txt|rar|zip|sh|py|svn|git) { deny all; }
禁用不必要的HTTP方法
if ($request_method !~ ^(GET|HEAD|POST)$) { return 405; }
Nginx、php-fpm运行帐号及组为nobody
Lua + nginx