安全加固php
Centos 7 安全加固
SSH 加密html
yum -y install expect
mkpasswdnginx
服務器上全部帳號的密碼都要採用毫無關聯的強密碼,密碼爲很多於16位的大小寫字母數字特殊符號的組合。git
修改SSH配置文件sql
SHH root
PermitRootLogin no
AllowUsers ccavapache
啓用強制密碼長度策略vim
vim /etc/login.defs
.....
PASS_MIN_LEN 13安全
檢查是否存在除root以外UID爲0的用戶bash
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