标签 运维 下的文章

阿里云标准-APACHE安全基线检查

基线检查功能通过配置不同的基线检查策略,可以帮助您快速对服务器进行批量扫描,发现包括系统、账号权限、数据库、弱口令 、等级保护合规配置等存在的风险点,并提供修复建议和一键修复功能。

1.1 [高危] 确保对OS根目录禁用覆盖 访问控制
描述
通过禁止访问OS根目录,限制直接访问服务器内部文件的行为
使得运行web的服务器更加安全

- 阅读剩余部分 -

等保测评中对服务器、数据库等相关优化

等保测评中对服务器及数据库的部分安全处理

【服务器相关】
系统为CentOS7.8

  1. 密码有效期设置/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

LVM安装及使用:https://www.r1989.com/linux-1222.html

线上服务器硬盘由标准分区转为LVM

  1. 使用宝塔备份数据库
  2. 停止nginx mysql php
  3. mkdir /{web_bak,mysql_bak,backup_bak}
  4. 转移/web目录文件到/web_bak;转移/mysql目录到/mysql_bak;转移/backup目录到/backup_bak
  5. 执行转移命令:

    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安装流程:

  1. 安装lvm并将vdc转为逻辑分区

    yum install lvm2
    lsblk
    vim /etc/fstab 注释vdc硬盘挂载

  2. 检查三个分区数据是否均已转换完成
  3. 卸载

    umount /backup
    umount /mysql
    umount /web

  4. 转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

  5. 数据还原

    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`

  1. 检查数据是否完整转移
  2. reboot
  3. 启动各服务

LVM安装及使用

解决服务器数据盘随使用时间容量不足问题,故需搭建服务器时安装lvm以便后期新增硬盘可随时调整网站系统所在分区容量等。

【安装】

  1. yum install lvm2
  2. 格式化硬盘或分区格式为8e
    fdisk /dev/vdb
    n -> p -> 1 -> t -> 8e -> w
  3. 使用pvcreate创建物理卷PV
    pvcreate /dev/vdb{1,2,3,...}

- 阅读剩余部分 -

云锁安装 及 自编译nginx防护模块

【安装云锁】

  1. cd /usr/local/src
  2. 下载安装包:wget http://download.yunsuo.qianxin.com/v3/yunsuo_agent_64bit.tar.gz
  3. 解压:tar zxvf yunsuo_agent_64bit.tar.gz
  4. 添加可执行权限:chmod +x yunsuo_install/install
  5. 安装:yunsuo_install/install
  6. 添加到云中心:/usr/local/yunsuo_agent/agent_smart_tool.sh -u cloud_user -p cloud_passwd
  7. 查看是否运行:ps -ef | grep yunsuo_agent
  8. 操作指令:service yunsuo start/stop/restart/status
  9. 卸载:/usr/local/yunsuo_agent/uninstall

- 阅读剩余部分 -

Nginx或Apache通过反向代理配置wss服务

为不影响网站正常业务,使用 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 证书自动更新

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的自动更新便百度了一下 :)