如网站已被黑先要进行病毒木马查杀工作(系统层、环境层、代码层、进程层),病毒木马查杀可以使用Clamav、河马、D盾,能力强的可以用yara规则自进行自定义安全扫描。
1.确保环境安全例如近期的LNMP投毒事件
2.nginx/php隐藏版本号/关闭报错显示行
3.限制3306端口/phpMyAdmin尽量不用
4.修改指纹例如X-Powered-By/Cookie
5.上线前后进行主机漏扫+网站漏扫
6.修改系统默认文件夹特征
7.系统安装杀毒Clamav
8.更改后台的默认入口
9.安装雷池WAF防护
10.网站使用https
11.后台双向认证
yum install openssl
mkdir /root/openssl
# 服务器,客户端的 openssl.cnf
cp /etc/pki/tls/openssl.cnf /root/openssl/server_openssl.cnf
cp /etc/pki/tls/openssl.cnf /root/openssl/user_openssl.cnf
# 修改上述文件
# 1) [ req ] 小节: 取消 req_extensions = v3_req 前面的注释
# 2) [ req_distinguished_name ] 小节: 注释 0.* 开头的内容
# 3) [ v3_req ] 小节
## 服务端
extendedKeyUsage=serverAuth
ubjectAltName = @alt_names
[ alt_names ]
DNS.1 = admin.dev.com
## 客户端
extendedKeyUsage=clientAuth
# 如果想使用其他目录,修改 /etc/pki/tls/openssl.cnf 的 [ tsa_config1 ] 小节
mkdir /etc/pki/CA/newcerts -p
touch /etc/pki/CA/index.txt
# 如果文件不存在,用以下命令创建
echo '01' > /etc/pki/CA/serial
cd /etc/pki/CA
#签发 CA 根证书和二级 CA 证书
# 根证书
openssl genrsa -out ca_root.key 2048
openssl req -x509 -new -key ca_root.key -out ca_root.cer -days 3650 -subj "/C=CN/ST=GD/L=SZ/O=dev/CN=dev-ROOT-CA"
# 二级证书
openssl genrsa -out sub_ca.key 2048
openssl req -new -key sub_ca.key -out sub_ca.csr -subj "/C=CN/ST=GD/L=SZ/O=dev/CN=dev-SUB-CA"
openssl ca -extensions v3_ca -in sub_ca.csr -days 3650 -out sub_ca.cer -cert ca_root.cer -keyfile ca_root.key
#用二级 CA 证书签发服务器证书
openssl genrsa -out server.key 2048
openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=GD/L=SZ/O=dev/CN=admin.dev.com"
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.cer -CA sub_ca.cer -CAkey sub_ca.key -CAcreateserial -extensions v3_req -extfile /root/openssl/server_openssl.cnf
用二级 CA 证书签发客户端证书
penssl genrsa -out user.key 2048
openssl req -new -key user.key -out user.csr -subj "/C=CN/ST=GD/L=SZ/O=dev/CN=admin"
openssl x509 -req -days 365 -in user.csr -signkey user.key -out user.cer -CA sub_ca.cer -CAkey sub_ca.key -CAcreateserial -extensions v3_req -extfile /root/openssl/user_openssl.cnf
#将客户端证书导出为 pkcs12 格式
# 将根证书, 二级证书和用户证书合并
cat ca_root.cer sub_ca.cer user.cer > user_combination.cer
# 用合并证书生成 p12,这样在导入时能同时导入根证书,注意设置导出密码
openssl pkcs12 -export -inkey user.key -in user_combination.cer -out user.p12
##在导出为 pkcs12 时,会提示输入密码,这个密码在将证书导入到 windows 电脑时要进行验证,这样可以避免证书被盗导致的风险
#前端nginx配置禁止访问管理后台
server {
location = /wp-login.php {
return 404;
}
location /wp-admin/ {
return 404;
}
location = /admin.php {
return 404;
}
location /admin/ {
return 404;
}
}
#后端nginx配置管理后台双向认证
server {
listen 443 ssl;
server_name admin.dev.com;
ssl_certificate cert/server.cer;
ssl_certificate_key cert/server.key;
ssl_session_timeout 5m;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_client_certificate cert/ca_root.cer;
ssl_verify_client on;
}