阿里云标准-APACHE安全基线检查
基线检查功能通过配置不同的基线检查策略,可以帮助您快速对服务器进行批量扫描,发现包括系统、账号权限、数据库、弱口令 、等级保护合规配置等存在的风险点,并提供修复建议和一键修复功能。
1.1 [高危]
确保对OS根目录禁用覆盖 访问控制
描述
通过禁止访问OS根目录,限制直接访问服务器内部文件的行为
使得运行web的服务器更加安全
基线检查功能通过配置不同的基线检查策略,可以帮助您快速对服务器进行批量扫描,发现包括系统、账号权限、数据库、弱口令 、等级保护合规配置等存在的风险点,并提供修复建议和一键修复功能。
1.1 [高危]
确保对OS根目录禁用覆盖 访问控制
描述
通过禁止访问OS根目录,限制直接访问服务器内部文件的行为
使得运行web的服务器更加安全
等保测评中对服务器及数据库的部分安全处理
【服务器相关】
系统为CentOS7.8
/etc/login.defs
PASS_MAX_DAYS 90 #密码使用天数
PASS_MIN_DAYS 0
PASS_MIN_LEN 9
PASS_WARN_AGE 15 #提醒用户修改密码天数
注:修改配置后仅针对新增帐号才会生效,原帐号可通过chage
命令调整,可通过chage -l root
查看。
vi /etc/pam.d/system-auth
优先级高于login.defs
# 配置最小长度为8位,至少包含1位大写字母、1位小写字母、1位数字和1位特殊字符。
password requisite pam_cracklib.so minlen=8 dcredit=-1 ucredit=-1 ocredit=-1 lcredit=-1 retry=5 difok=3
# minlen:最小密码长度
# dcredit:最少数字
# ucredit:最少大写字母
# ocredit:最少特殊字符
# lcredit:最少小写字符
# retry:尝试次数
# difok:最少不同字符
chage:密码失效是通过此命令来管理的。
参数意思:
-m 密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M 密码保持有效的最大天数。
-W 用户密码到期前,提前收到警告信息的天数。
-E 帐号到期的日期。过了这天,此帐号将不可用。
-d 上一次更改的日期
-I 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
LVM安装及使用:https://www.r1989.com/linux-1222.html
线上服务器硬盘由标准分区转为LVM
nginx
mysql
php
等mkdir /{web_bak,mysql_bak,backup_bak}
执行转移命令:
rsync -avzh /mysql/* /mysql_bak/
rsync -avzh /backup/* /backup_bak/
rsync -avzh /web/shell /web_bak/
rsync -avzh /web/source /web_bak/
rsync -avzh /web/upgrade /web_bak/
rsync -avzh /web/www /web_bak/
建议同时进行4个拷贝:
rsync -avzh /web/oa/t0* /web_bak/oa/
......
LVM安装流程:
安装lvm并将vdc转为逻辑分区
yum install lvm2
lsblk
vim /etc/fstab 注释vdc硬盘挂载
卸载
umount /backup
umount /mysql
umount /web
转lvm
fdisk /dev/vdc
[n -> p -> ...] t -> {1,2,3} -> 8e ->w
fdisk -lu
pvcreate /dev/vdc{1,2,3}
vgcreate lv /dev/vdc1 默认PE为4M( -s 32M lvm1默认lv最多只能包含65536个PE,最大支持256G;lvm2不再限制PE数量)
vgextend lv /dev/vdc2
vgextend lv /dev/vdc3
lvcreate -L 80G -n mysql lv
lvcreate -L 20G -n backup lv
vgdisplay
lvcreate -l 100%FREE -n web lv
mkfs -t ext4 /dev/lv/backup
mkfs -t ext4 /dev/lv/mysql
mkfs -t ext4 /dev/lv/web
;resize2fs /dev/lv/backup
;resize2fs /dev/lv/mysql
;resize2fs /dev/lv/web
;mount /dev/lv/backup /backup
;mount /dev/lv/mysql /mysql
;mount /dev/lv/web /web
vim /etc/fstab
/dev/lv/mysql /mysql ext4 defaults 0 0
/dev/lv/backup /backup ext4 defaults 0 0
/dev/lv/web /web ext4 defaults 0 0
mount -a
数据还原
rsync -avzh /backup_bak/* /backup/
rsync -avzh /mysql_bak/* /mysql/
rsync -avzh /web_bak/shell /web/
rsync -avzh /web_bak/source /web/
rsync -avzh /web_bak/upgrade /web/
rsync -avzh /web_bak/www /web/
具体依据实际情况转移:
rsync -avzh /web_bak/oa/t0* /web/oa/
......
转移100个系统用时:约40分钟
测试backup分区
`lvreduce -L -4G -r /dev/lv/backup`
`lvextend -L +4G -r /dev/lv/backup`
解决服务器数据盘随使用时间容量不足问题,故需搭建服务器时安装lvm以便后期新增硬盘可随时调整网站系统所在分区容量等。
【安装】
yum install lvm2
8e
:fdisk /dev/vdb
n -> p -> 1 -> t -> 8e -> w
pvcreate
创建物理卷PVpvcreate /dev/vdb{1,2,3,...}
【安装云锁】
cd /usr/local/src
wget http://download.yunsuo.qianxin.com/v3/yunsuo_agent_64bit.tar.gz
tar zxvf yunsuo_agent_64bit.tar.gz
chmod +x yunsuo_install/install
yunsuo_install/install
/usr/local/yunsuo_agent/agent_smart_tool.sh -u cloud_user -p cloud_passwd
ps -ef | grep yunsuo_agent
service yunsuo start/stop/restart/status
/usr/local/yunsuo_agent/uninstall
为不影响网站正常业务,使用 xx.com/wss 作为代理入口,即客户端连接地址为:wss://xx.com/wss
nginx配置:
server {
listen 443;
ssl on;
ssl_certificate /etc/ssl/server.pem;
ssl_certificate_key /etc/ssl/server.key;
ssl_session_timeout 5m;
ssl_session_cache shared:SSL:50m;
ssl_protocols SSLv3 SSLv2 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
location /wss
{
proxy_pass http://127.0.0.1:2345;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Real-IP $remote_addr;
}
# location / {} 站点的其它配置...
}
apache配置:
需开启proxy_wstunnel_module模块
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
#extra/httpd-ssl.conf
DocumentRoot "/网站/目录"
ServerName 域名
# Proxy Config
SSLProxyEngine on
ProxyRequests Off
ProxyPass /wss ws://127.0.0.1:2345
ProxyPassReverse /wss ws://127.0.0.1:2345
# 添加 SSL 协议支持协议,去掉不安全的协议
SSLProtocol all -SSLv2 -SSLv3
# 修改加密套件如下
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
# 证书公钥配置
SSLCertificateFile /server/httpd/cert/your.pem
# 证书私钥配置
SSLCertificateKeyFile /server/httpd/cert/your.key
# 证书链配置,
SSLCertificateChainFile /server/httpd/cert/chain.pem
Let’s Encrypt 每次申请仅3个月有效期
更新命令:certbot renew
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
0 0 1 */2 * certbot renew --quiet --force-renewal
certbot安装yum -y install yum-utils
yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
执行certbot certonly
测试安装是否正确
PS:我也是随便复制的,只是想到了Let’s Encrypt的自动更新便百度了一下 :)