VPS部署网站前准备工作


前言

基于宝塔面板

一、配置防火墙

1. Nginx免费防火墙

全局配置

  • 403 页面:
<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>403 Forbidden</title>
        <style>
            @import url("https://fonts.googleapis.com/css?family=Press+Start+2P");html, body {width: 100%;height: 100%;margin: 0;}* {font-family: 'Press Start 2P', cursive;box-sizing: border-box;}#app {padding: 1rem;background: black;display: flex;height: 100%;justify-content: center;align-items: center;color: #54FE55;text-shadow: 0px 0px 10px;font-size: 6rem;flex-direction: column;}#app .txt {font-size: 1.8rem;}@keyframes blink {0% {opacity: 0;}49% {opacity: 0;}50% {opacity: 1;}100% {opacity: 1;}}.blink {animation-name: blink;animation-duration: 1s;animation-iteration-count: infinite;}
        </style>
    </head>
    <body>
        <div id="app">
            <div>403</div>
            <div class="txt">
                Forbidden<span class="blink">_</span>
            </div>
        </div>
    </body>
</html>
  • 404 页面:
<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>404 Not Found</title>
        <style>
            body{display:flex;flex-flow:row wrap;align-content:center;justify-content:center}
            div{width:100%;text-align:center}
            .number{background:#fff;position:relative;font:900 30vmin "Consolas";letter-spacing:5vmin;text-shadow:2px -1px 0 #000,4px -2px 0 #0a0a0a,6px -3px 0 #0f0f0f,8px -4px 0 #141414,10px -5px 0 #1a1a1a,12px -6px 0 #1f1f1f,14px -7px 0 #242424,16px -8px 0 #292929}
            .number::before{background-color:#673ab7;background-image:radial-gradient(closest-side at 50% 50%,#ffc107 100%,rgba(0,0,0,0)),radial-gradient(closest-side at 50% 50%,#e91e63 100%,rgba(0,0,0,0));background-repeat:repeat-x;background-size:40vmin 40vmin;background-position:-100vmin 20vmin,100vmin -25vmin;width:100%;height:100%;mix-blend-mode:screen;-webkit-animation:moving 10s linear infinite both;animation:moving 10s linear infinite both;display:block;position:absolute;content:""}
            @-webkit-keyframes moving{to{background-position:100vmin 20vmin,-100vmin -25vmin}
            }@keyframes moving{to{background-position:100vmin 20vmin,-100vmin -25vmin}
            }.text{font:400 5vmin "Courgette"}
            .text span{font-size:10vmin}
        </style>
    </head>
    <body>
        <div id="app">
            <div class="number">404</div>
            <div class="text">
                <span>Ooops...</span>
                <br>page not found
            </div>
        </div>
    </body>
</html>
  • 规则覆盖:
    1.下载规则包,备份原规则 /www/server/free_waf/rule/www/server/free_waf/rule.bak
    2.将下载的规则包解压到 /www/server/free_waf/rule

  • 拦截 Censys
    1.将 Censys IP 添加到黑名单,或直接导入:
    2.User-Agent 拦截添加 (censys|Censys)

附 Censys 的 IP 导入数据

206.168.34.0-206.168.34.255
199.45.155.0-199.45.155.255
199.45.154.0-199.45.154.255
167.248.133.0-167.248.133.255
167.94.146.0-167.94.146.255
167.94.145.0-167.94.145.255
167.94.138.0-167.94.138.255
162.142.125.0-162.142.125.255

站点配置

  • 网站启用了 CDN 记得把 CDN 勾选
  • 附启用 CDN 后获取真实 IP 的 nginx 配置:
server {
  ...
  #获取cdn真实ip
  set_real_ip_from 0.0.0.0/0;
  real_ip_header X-Forwarded-For;
  ...
}

2. 宝塔防火墙

Censys IP 添加到黑名单

二、禁止 IP 直接访问

1. 添加自签证书

添加一张自签证书,不能颁发给自己的域名

mkdir -p /www/server/panel/vhost/cert/default
vi /www/server/panel/vhost/cert/default/ban.pem
-----BEGIN CERTIFICATE-----
MIIDNTCCAh0CFGKnCz4Yb1MdHYwfY0v2po9/gDk0MA0GCSqGSIb3DQEBCwUAMFYx
CzAJBgNVBAYTAlVTMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRl
cm5ldCBXaWRnaXRzIFB0eSBMdGQxDzANBgNVBAMMBmZ1Y2sudTAgFw0yNDA1MTYw
NDUzNDlaGA8yMTI0MDQyMjA0NTM0OVowVjELMAkGA1UEBhMCVVMxEzARBgNVBAgM
ClNvbWUtU3RhdGUxITAfBgNVBAoMGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDEP
MA0GA1UEAwwGZnVjay51MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
nO2jkaN2yPqDcA0IRy6kmg2rIVi5jRdvPlhjPSWTdwllXV8F4m/xRzuvWP/S4CTY
+HR/iaAZPtskYP5+PvI3c3i5KOlmPU746kI5GFDInelNZ+sdkXdX+ACU832mp/dY
X6p/bUWgbn64yFMVUiPQIhe95u3RNJAw8y1vcTrCf6GhadVkXrBhQlUkPeE4KyVS
Rqvec22cgPRDxAjyQ0swKzC4zyU5+oCx2+UCwSAyWmlsEFIy+y4A1Gyg9KQDdvVT
xvOT50CBO8qFFrszPopTyYN5vZ1ZF5CJ2r3q/VAqJFiKQ0uN2h6HtQdCybFTUBi6
EQnm/rc7lQiGcMRfYfN/8wIDAQABMA0GCSqGSIb3DQEBCwUAA4IBAQAPzxC2ciyE
rLEuQxbqjYfW471czYaN/GtYfrsifgSV5EyzpZDMjWVvJgEJPBngKeQxkL6yw466
IdR6ORblTx3BTJyHM0ALu5XbVY36n6hPaPOngxcV6J8cxiMIzh2B+wsIAm0i90zX
xcz7rHk3Th+Tlwsg2Dk1vlDndPIlhD/GkGJiJLS2loqqgPYFvqrSkDVhx3iWD0eB
MGQDlwpU6KT/J/5DkXZOYwlI1nnzYHcWSbPngyh5Ndxiu5NcKib3/Q2CNx/ZyQKP
hg/lXx0cpx/Te1rqC1kQxc/FsmpLO0W/AgEErFxmKzc1cSiqEDmsvDrHiS9qDGau
dxUKtOxlAM3P
-----END CERTIFICATE-----
vi /www/server/panel/vhost/cert/default/ban.key
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCc7aORo3bI+oNw
DQhHLqSaDashWLmNF28+WGM9JZN3CWVdXwXib/FHO69Y/9LgJNj4dH+JoBk+2yRg
/n4+8jdzeLko6WY9TvjqQjkYUMid6U1n6x2Rd1f4AJTzfaan91hfqn9tRaBufrjI
UxVSI9AiF73m7dE0kDDzLW9xOsJ/oaFp1WResGFCVSQ94TgrJVJGq95zbZyA9EPE
CPJDSzArMLjPJTn6gLHb5QLBIDJaaWwQUjL7LgDUbKD0pAN29VPG85PnQIE7yoUW
uzM+ilPJg3m9nVkXkInaver9UCokWIpDS43aHoe1B0LJsVNQGLoRCeb+tzuVCIZw
xF9h83/zAgMBAAECggEAQ3RIk4EivZglKGSJsuNDQK7waOiU9adlm3Rtz+pXfVru
FdkTE/bPTTHEGSr573wXQZD+A1/sih6zf/fUt2TxXfK+EG5nEqJgD34AwclzuqD+
s1UWhCE7EHDbleBkYx3IgHKuzH8Zy3UwI3fHGeQoAoeXCu0duIzkZZsZpJ+/3BEm
mj3LLcO1FRPd9OPiYGfk7zbH8E/tTg0seGaMnDMegA7pDrhRKIA8Rjsxjmcrx1zK
psyOh4VVz/VOFe2G2bi5QvzjA4JKpa7RpfBOpDFxupzFERpt3eJG7PNq4kVaf8vv
QA8XopVMgg907IqkeRgN9IDNmdBIvrPc3Jl9jkgyuQKBgQDYYgUSRFY1ClqB4i6K
EMyi18eJvmHx4g7GLslJ0zCKppydBrJP2EqLOaZGrVqQWDF8gy+4/BN5ig61KQKC
BRPwZQqzJzlc0SLAbgQrnZ0uuBNqwnX1JTnGP325yI1pphDasQckcBa9h1bF4LdM
m8cGjIoJZyrvDVzbNSMfJidNSwKBgQC5qPM3r1tXhKMkz8+H0bBx5ozFb+LfHW0+
iaOhMosLMlCIXTL4qo6etkdeqBnatb8SVBOoB1Q9g+0ZXyzCocVfHSuaYJaGE23Y
i3QbyzgJJ8CMsvCexZhfiFh4lRKbJrtAW7wFG+x9cdnFzj2WVJrGB0C/TV4ew+ym
C1cTwJK2+QKBgD1w78G1F8ltzC9POynHBWRD4wvQvF0DdHB/vnYw+nqUPqozyZP0
dY4862LsPGf6MusJERb0tM7xDaYRI/4pVPUQq84dGCOr2rNLSfHcilJGwHSzDO10
CYiqZJfJQ6Y5GlYOqFmHXl2ovVHosgOVxBiu9U8gNUe1wqUX3IYuvkArAoGBAImz
pbFHfpgK6HYFLAewnw3b0c0ej0asrLoVnCeTNU24o8KAXa3R0rYkvAqY45Qz+OO/
OFUIGpMFpnWLAcfZ9Gn3WL/Ho90NzAswY425zHX95fJ1RcJ9C+bPWc8VwhcRQxEY
+PtRGrZwGvV7YnJ9jc4S0xMQbx6icoM1JgCgdDEBAoGBAMu6M3z1Nt1S5yqCxy0b
aJBGl1K6WyVBCByUeGiYBP64QWgvHMAiRxT4mZD455gZBiwyvkXLD/O4gZv0JGQm
q3Y+oKwF8mMrpXH652o/YJkTt5tkxMs0A9EvyH5S6j3GFn7VlM19GYfRagwRjQDi
j3RAfevGdIgcLoCoeFJDC5EN
-----END PRIVATE KEY-----

2. Nginx 默认配置

添加以下内容:

server
{
    listen 80;
    listen 443 ssl ;
    listen 443 quic;
    listen [::]:443 ssl;
    listen [::]:443 quic;
    listen [::]:80;
    server_name _;

    return 444;

    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    ssl_certificate    /www/server/panel/vhost/cert/default/ban.pem;
    ssl_certificate_key    /www/server/panel/vhost/cert/default/ban.key;
    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
    ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    add_header Alt-Svc 'quic=":443"; h3=":443"; h3-29=":443"; h3-27=":443";h3-25=":443"; h3-T050=":443"; h3-Q050=":443";h3-Q049=":443";h3-Q048=":443"; h3-Q046=":443"; h3-Q043=":443"';
    error_page 497  https://$host$request_uri;
}

宝塔在添加任意站点后会自动生成一个 0.default.conf
位于 /www/server/panel/vhost/nginx/0.default.conf
可能会和上面的默认 nginx 配置冲突,解决方案有两种:

  1. 0.default.conf 文件内容全部注释
  2. 0.default.conf 里的内容替换成上面的配置,但要确保默认配置里包含
    include /www/server/panel/vhost/nginx/*.conf;

重启 nginx

三、 PhpMyAdmin

  • 非必要不要启用公共访问权限
  • 最好更换掉默认的 888 端口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

buffcow

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值