⚠️宝塔安全建议

官网 http://www.HostCLi.com Telegram群: https://TG.HostCLi.COM

宝塔站长群 https://TG.HostCLi.COM

禁止通过IP访问网站

1、宝塔面板可以设置服务器禁ping,ping不到,就不会有后续的暴力破解登录ssh等安全隐患

教程:宝塔面板左边栏 -> 安全 -> 禁ping

2.1、通过宝塔面板新建一个网站,将本机所有IP当作域名填写进去,一行一个IP;

2.2、添加完成后,在 站点->伪静态 中收入以下几个方案:

Nginx方案:(CentOS / Debian / Ubuntu)

方案一:访问IP时返回444状态码,直接关闭响应(更像不存在)

location / {
	 return       444;
}

⚠️ 444 是 Nginx 特有的状态码,表示 直接断开连接,不返回任何内容。

大多数扫描器看到的是“连接被重置/无响应”,会认为这个 IP 没有网站。

方案二:返回空响应(最干净)

location / {
	 return       204;
}

⚠️ 204 表示 No Content,客户端会认为请求成功,但啥也没有。

对普通人/扫描器来说,看起来像是“空站点”。

方案三:返回一个错误码(让人误判)

location / {
	 return       495;
}

⚠️ 204 表示 No Content,客户端会认为请求成功,但啥也没有。

对普通人/扫描器来说,看起来像是“空站点”。

Apache (httpd)

方案一:mod_security 丢弃请求

SecRule REQUEST_URI ".*" "id:444,phase:1,deny,status:444,log"
  • 这样 Apache 收到请求后直接 丢弃,不返回 HTTP。

  • 但是 status:444 只是写在日志里,客户端感受到的是 连接被断开。

  • 等效于 Nginx 的 444。

方案二:防火墙层面阻断(推荐)

直接在 iptables 或 firewalld 里对裸 IP 访问丢包:

iptables -A INPUT -p tcp --dport 80 -m string --string "Host: " --algo bm --to 70 -j DROP

只允许带 Host 域名的请求,IP 直连丢弃

Apache 本身没有“挂起/断开”能力,只能借助安全模块或防火墙。

Windows IIS

方案一:IIS 动态筛选请求 + 直接终止连接

  • 安装 IIS Request Filtering 或 URL Rewrite 模块;

  • 配置规则:如果 Host 不是指定域名 → Abort Request(直接终止 TCP)。

例如在 web.config 里加:

<system.webServer>
  <rewrite>
    <rules>
      <rule name="Block IP access" stopProcessing="true">
        <match url=".*" />
        <conditions>
          <add input="{HTTP_HOST}" pattern="^example\.com$" negate="true" />
        </conditions>
        <action type="CustomResponse" statusCode="444" statusReason="Connection Closed" statusDescription="Nginx-style 444"/>
      </rule>
    </rules>
  </rewrite>
</system.webServer>

IIS 可以配置成直接关闭连接(浏览器看到的就是连接失败)。

方案二:Windows 防火墙过滤

直接在 iptables 或 firewalld 里对裸 IP 访问丢包:

直接用防火墙丢掉所有 IP 直连请求,只允许 Host 为域名的流量通过。

修改宝塔默认配置:

修改默认SSH端口:修改方法请自行google搜索

登陆宝塔面板->安全 启用SSH 关闭以免ssh root密码被暴力破解,禁止ssh登陆,只能宝塔登陆;

登陆宝塔面板->面板设置->面板端口 修改默认端口以免被批量扫描到宝塔端口、定向爆破;

登陆宝塔面板->面板设置->安全入口 修改宝塔路径

登陆宝塔面板->面板设置->修改面板用户 和 面板密码;

善用计划任务+自动备份:

如:应用商店中搜索【谷歌云网盘】或其他网盘并安装、配置

然后通过计划任务,分别创建两条定时备份:备份网站程序/目录、备份数据库 到谷歌网盘;

示例:计划任务+备份网站到谷歌网盘

删除登录日志:

部分用户可能有这个需要;也可以配合跳板机登录服务器+跳板机的计划任务,更加安全;

CentOS7 系统清空删除系统日志的方法>> 将代码放到跳板机、宝塔计划任务内即可。

以上为Centos清理ssh登录日志,其他系统请自行搜索命令;

cat /dev/null > /var/log/boot.log
cat /dev/null > /var/log/btmp
cat /dev/null > /var/log/cron
cat /dev/null > /var/log/dmesg
cat /dev/null > /var/log/firewalld
cat /dev/null > /var/log/grubby
cat /dev/null > /var/log/lastlog
cat /dev/null > /var/log/mail.info
cat /dev/null > /var/log/maillog
cat /dev/null > /var/log/messages
cat /dev/null > /var/log/secure
cat /dev/null > /var/log/spooler
cat /dev/null > /var/log/syslog
cat /dev/null > /var/log/tallylog
cat /dev/null > /var/log/wpa_supplicant.log
cat /dev/null > /var/log/wtmp
cat /dev/null > /var/log/yum.log

其他建议:

禁止数据库等端口的外网访问;

尽量不要使用非官方提供、第三方破解的建站程序,大多数服务器被黑主要是因为程序有后门,跟宝塔没有直接、间接的关系;

宝塔站长群 https://TG.HostCLi.COM

End.

最后更新于