centos及apache 安全加固

安全加固php

Centos 7 安全加固
SSH 加密html

yum -y install expect
mkpasswdnginx

服務器上全部帳號的密碼都要採用毫無關聯的強密碼,密碼爲很多於16位的大小寫字母數字特殊符號的組合。git

修改SSH配置文件sql

  1. 改默認端口 22 -> 78787
  2. 禁止root賬號登陸
  3. 指定容許登陸賬號

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

相關文章
相關標籤/搜索