[服务器软件] 宝塔Linux面板简易调教

985 0
Honkers 2025-3-6 01:26:54 | 显示全部楼层 |阅读模式


前言

宝塔面板是一款支持Linux和Windows系统的服务器运维管理工具,可以一键安装LNMP/LAMP网站环境,提供资源监控、文件管理、软件安装等功能。
免费版安装后首页会有推荐广告,这里记录一下自己的调教方案


一、环境

  • 系统:CentOS 7.x 未部署任何环境
  • 宝塔面板:8.2.0 Linux正式版
  • VPS远程交互:Win11 自带 Terminal

二、安装宝塔

1. 安装命令

点击官方安装链接 , 这里使用脚本安装

2. 登录 VPS

  1. ssh root@[ip]
  2. # 升级一下软件包(可选)
  3. yum update -y
  4. # 刚刚复制的脚本命令
  5. yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
复制代码

提示输入 y/n 直接输入 y 回车即可,然后等待脚本安装完成

3. 完成安装

安装完成后终端会显示面板地址和登录用户名密码

注意终端关闭后,可以连接 VPS 再输入 bt 14 获取登录信息,但是不能获取初始密码,只能输入 bt 5 重置密码


三、调教宝塔

浏览器输入刚才的宝塔面板地址,进入宝塔页面

默认是没有部署环境的,所以宝塔会推荐你部署需要的环境,生产环境建议用编译安装(需要耐心等待)。

1. 按需关闭功能

关闭客服

左侧栏付费功能


!!Docker 不是付费功能,只是个人没用到

回收站

个人不喜欢回收站功能

2. 修复风险

写了个自用的脚本,可以搞定大部分宝塔推荐修复的风险,
!仅在 CentOS 7.9 下测试通过,按需修改。

  1. #!/bin/bash
  2. # 更新软件包
  3. echo "正在更新软件包..."
  4. sudo yum update -y
  5. # 安装 bash-completion
  6. echo "正在安装 bash-completion..."
  7. sudo yum install -y bash-completion
  8. # 确认安装完成
  9. if [ $? -eq 0 ]; then
  10. echo "bash-completion 安装成功"
  11. else
  12. echo "bash-completion 安装失败"
  13. fi
  14. # 修改 SSH 配置文件
  15. SSHD_CONFIG="/etc/ssh/sshd_config"
  16. echo "正在修改 $SSHD_CONFIG 文件..."
  17. # 备份原始的sshd_config文件
  18. sudo cp $SSHD_CONFIG ${SSHD_CONFIG}.bak
  19. # 设置 TCPKeepAlive、ClientAliveInterval、ClientAliveCountMax 和 Protocol
  20. sudo sed -i '/^#*TCPKeepAlive/c\TCPKeepAlive yes' $SSHD_CONFIG
  21. sudo sed -i '/^#*ClientAliveInterval/c\ClientAliveInterval 600' $SSHD_CONFIG
  22. sudo sed -i '/^#*ClientAliveCountMax/c\ClientAliveCountMax 36' $SSHD_CONFIG
  23. # 如果 Protocol 2 不存在,则添加
  24. if ! grep -q "^Protocol 2" $SSHD_CONFIG; then
  25. echo "Protocol 2" | sudo tee -a $SSHD_CONFIG
  26. fi
  27. # 检查配置是否成功写入
  28. grep -q "^TCPKeepAlive yes" $SSHD_CONFIG && echo "TCPKeepAlive 修改成功" || echo "TCPKeepAlive 修改失败"
  29. grep -q "^ClientAliveInterval 600" $SSHD_CONFIG && echo "ClientAliveInterval 修改成功" || echo "ClientAliveInterval 修改失败"
  30. grep -q "^ClientAliveCountMax 36" $SSHD_CONFIG && echo "ClientAliveCountMax 修改成功" || echo "ClientAliveCountMax 修改失败"
  31. grep -q "^Protocol 2" $SSHD_CONFIG && echo "Protocol 修改成功" || echo "Protocol 修改失败"
  32. # 修改 /etc/security/pwquality.conf 文件
  33. echo "正在修改 /etc/security/pwquality.conf 文件..."
  34. sudo sed -i '/^#\s*minclass\s*=\s*/c\minclass = 3' /etc/security/pwquality.conf
  35. # 修改 /etc/login.defs 文件并设置 root 密码失效时间
  36. echo "正在修改 /etc/login.defs 文件..."
  37. sudo sed -i '/^#*PASS_MIN_DAYS/c\PASS_MIN_DAYS 7' /etc/login.defs
  38. sudo chage --mindays 7 root
  39. # 备份并修改 /etc/pam.d/system-auth 文件
  40. echo "正在备份并修改 /etc/pam.d/system-auth 文件..."
  41. sudo cp -p /etc/pam.d/system-auth /etc/pam.d/system-auth.bak
  42. sudo sed -i '/^password\s\+sufficient\s\+pam_unix.so/ s/$/ remember=3/' /etc/pam.d/system-auth
  43. # 去除 suid 权限
  44. echo "正在去除 suid 权限..."
  45. for file in /usr/bin/chage /usr/bin/gpasswd /usr/bin/chfn /usr/bin/chsh /usr/bin/newgrp /usr/sbin/usernetctl /bin/mount /bin/umount; do
  46. sudo chmod u-s $file
  47. done
  48. # 去除 sgid 权限
  49. echo "正在去除 sgid 权限..."
  50. for file in /usr/bin/wall /usr/bin/write /sbin/netreport; do
  51. sudo chmod g-s $file
  52. done
  53. # 设置 grub 配置文件权限
  54. if [ -f /boot/grub2/grub.cfg ]; then
  55. echo "正在设置 /boot/grub2/grub.cfg 文件权限..."
  56. sudo chmod 600 /boot/grub2/grub.cfg
  57. sudo chown root /boot/grub2/grub.cfg
  58. elif [ -f /boot/grub/grub.cfg ]; then
  59. echo "正在设置 /boot/grub/grub.cfg 文件权限..."
  60. sudo chmod 600 /boot/grub/grub.cfg
  61. sudo chown root /boot/grub/grub.cfg
  62. else
  63. echo "未找到 grub 配置文件"
  64. fi
  65. # 修改 /etc/ssh/sshd_config 文件以设置 LoginGraceTime
  66. echo "正在修改 /etc/ssh/sshd_config 文件以设置 LoginGraceTime..."
  67. sudo sed -i '/^#*LoginGraceTime/c\LoginGraceTime 60' $SSHD_CONFIG
  68. # 在 /etc/sysctl.conf 文件中添加 net.ipv4.tcp_syncookies=1
  69. echo "正在修改 /etc/sysctl.conf 文件..."
  70. if ! grep -q "^net.ipv4.tcp_syncookies=1" /etc/sysctl.conf; then
  71. echo "net.ipv4.tcp_syncookies=1" | sudo tee -a /etc/sysctl.conf
  72. fi
  73. sudo sysctl -p
  74. # 在 /etc/pam.d/su 文件中取消注释并修改 auth required pam_wheel.so
  75. echo "正在修改 /etc/pam.d/su 文件..."
  76. sudo sed -i 's/^#auth\s\+required\s\+pam_wheel.so\s\+use_uid/auth required pam_wheel.so use_uid/' /etc/pam.d/su
  77. # 检查 /www/server/pure-ftpd/etc/pure-ftpd.conf 文件是否存在并修改 Umask
  78. PURE_FTPD_CONFIG="/www/server/pure-ftpd/etc/pure-ftpd.conf"
  79. if [ -f "$PURE_FTPD_CONFIG" ]; then
  80. echo "正在修改 $PURE_FTPD_CONFIG 文件中的 Umask..."
  81. sudo sed -i '/^Umask\s*133:022/c\Umask 177:077' $PURE_FTPD_CONFIG
  82. else
  83. echo "$PURE_FTPD_CONFIG 文件不存在,跳过 Umask 修改"
  84. fi
  85. # 检查 /etc/profile 文件是否存在并添加 TMOUT=600
  86. PROFILE_FILE="/etc/profile"
  87. if [ -f "$PROFILE_FILE" ]; then
  88. echo "在 $PROFILE_FILE 文件中添加 TMOUT=600..."
  89. if ! grep -q "^TMOUT=600" $PROFILE_FILE; then
  90. echo "TMOUT=600" | sudo tee -a $PROFILE_FILE
  91. source $PROFILE_FILE
  92. else
  93. echo "TMOUT=600 已存在于 $PROFILE_FILE 文件中"
  94. fi
  95. else
  96. echo "$PROFILE_FILE 文件不存在,跳过 TMOUT=600 添加"
  97. fi
  98. # 重启 SSH 服务以应用更改
  99. echo "正在重启 sshd 服务..."
  100. sudo systemctl restart sshd
  101. if [ $? -eq 0 ]; then
  102. echo "sshd 服务重启成功"
  103. else
  104. echo "sshd 服务重启失败"
  105. exit 1
  106. fi
  107. echo "所有操作完成"
复制代码

如果需要让终端保活则:

ClientAliveInterval 180
ClientAliveCountMax 120

然后忽略宝塔的风险提示即可。

3. 去除广告

首页推荐插件

转到文件 /www/server/panel/BTPanel/static/vite/js/index2.js,搜索 getRecommendInfo
将函数体注释然后保存。如图所示:

首页底部横幅广告

转到文件 /www/server/panel/BTPanel/static/vite/js/index19.js ,搜索 HOME-RECOMMEND-HIDE-TIME
将 v=()=>{} 函数体注释,并加上 p.value = false 然后保存,如图所示:

注意:文件名可能存在差异,但搜索的方法万变不离其宗。如果文件名和你的宝塔版本对应不上,可以按照以下方法进行搜索对应的关键字:


温馨提示:结果可以排除 legacy 结尾的文件,出现多个结果的用肉眼去对比一下上面截图里的内容即可

然后重启面板看效果

四、插件推荐

1. Nginx免费防火墙

2. Fail2ban

五、结语

嫌麻烦可以直接开企业版,一劳永逸
Money 可以解决 99.9% 的问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行