宝塔安全建议

作者:hack1990 时间:26-05-23 阅读数:12人阅读

禁止通过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


其他建议:


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



发表评论