centos及apache 安全加固

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos及apache 安全加固相关的知识,希望对你有一定的参考价值。

安全加固

Centos 7 安全加固
SSH 加密

yum -y install expect
mkpasswd

服务器上所有账号的密码都要采用毫无关联的强密码,密码为不少于16位的大小写字母数字特殊符号的组合。

修改SSH配置文件

  1. 改默认端口 22 -> 78787
  2. 禁止root帐号登录
  3. 指定允许登录帐号

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

以上是关于centos及apache 安全加固的主要内容,如果未能解决你的问题,请参考以下文章

安全服务之安全基线及加固Apache篇

CentOS7一键安全加固及系统优化脚本

Apache服务器安全加固

Apache服务安全加固

CentOS 6.5 安全加固

阿里云Apache服务安全加固