如网站已被黑先要进行病毒木马查杀工作(系统层、环境层、代码层、进程层),病毒木马查杀可以使用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;
-
- }