1. 环境准备与基本安全加固
步骤1:更新系统并安装必要工具:apt update && apt upgrade -y;apt install -y git python3 python3-pip build-essential curl vim。
步骤2:创建非root用户并禁用root SSH登录:adduser ssradmin;usermod -aG sudo ssradmin;编辑 /etc/ssh/sshd_config,PermitRootLogin no,重启ssh:systemctl restart sshd。
步骤3:开启基本防火墙并限制管理端口:apt install ufw;ufw default deny incoming;ufw allow 22/tcp(若改端口则改为新端口);ufw enable。
2. 获取 SSR 服务端并配置目录权限
步骤1:切换到非root用户,克隆 SSR 服务端(示例仓库):git clone https://github.com/shadowsocksr-backup/shadowsocksr.git /opt/shadowsocksr。
步骤2:进入目录并检查 server.py,创建配置文件 /opt/shadowsocksr/user-config.json(见下一段示例)。
步骤3:确保目录属主和权限:chown -R ssradmin:ssradmin /opt/shadowsocksr;chmod -R 750 /opt/shadowsocksr。
3. SSR 配置文件示例(关键字段说明)
示例 user-config.json 内容(按需修改):{"server":"0.0.0.0","server_port":8388,"local_address":"127.0.0.1","local_port":1080,"password":"你的强口令","method":"chacha20-ietf-poly1305","protocol":"auth_chain_a","obfs":"tls1.2_ticket_auth","timeout":120,"fast_open":false}。
说明:使用强加密(推荐 chacha20-ietf-poly1305),设置随机复杂密码、避免常见端口、启用 obfs 混淆以降低被扫描识别概率。
4. 使用 systemd 管理 SSR 服务
步骤1:创建 /etc/systemd/system/shadowsocksr.service 内容,ExecStart 指向 /opt/shadowsocksr/shadowsocks/server.py 并加载 -c /opt/shadowsocksr/user-config.json。
步骤2:systemctl daemon-reload;systemctl enable shadowsocksr;systemctl start shadowsocksr;检查状态:systemctl status shadowsocksr。
步骤3:将日志写入独立文件并限制大小,避免占满磁盘。
5. 端口选择与端口管理策略
步骤1:选择高号端口(>10000)并轮换使用,避免使用常见端口如 443/80(可能被封或误拦截)。
步骤2:若需要多端口可使用端口范围并绑定多个用户;在配置里设置不同 server_port。
步骤3:可以结合 iptables 做端口映射或使用端口敲门(port knocking)工具隐藏服务。
6. iptables/ufw 规则示例与连接限制
步骤1(ufw):ufw allow 10088/tcp;ufw deny from any to any port 22 proto tcp comment 'ssh'(按需)。
步骤2(iptables 限制):iptables -A INPUT -p tcp --dport 10088 -m connlimit --connlimit-above 10 -j REJECT;限制单IP并发连接。
步骤3(速率限制):iptables -A INPUT -p tcp --dport 10088 -m state --state NEW -m recent --set;iptables -A INPUT -p tcp --dport 10088 -m state --state NEW -m recent --update --seconds 60 --hitcount 20 -j DROP。
7. 使用 fail2ban 防暴力破解与自定义 Jail
步骤1:安装 fail2ban:apt install fail2ban。
步骤2:在 /etc/fail2ban/jail.local 添加自定义规则监控 SSR 日志(或写一个简单脚本将异常连接记录到日志文件),例如监控包含 "auth error" 的日志,设置 bantime、findtime、maxretry。
步骤3:重启 fail2ban 并通过 fail2ban-client status 检查监控状态。
8. 性能优化与系统参数调整
步骤1:开启 TCP Fast Open(若内核支持):echo 3 > /proc/sys/net/ipv4/tcp_fastopen;或在 sysctl.conf 中加入 net.ipv4.tcp_fastopen=3。
步骤2:调整文件描述符:ulimit -n 65536,并在 systemd 服务文件中设置 LimitNOFILE=65536。
步骤3:根据带宽和并发调整 ssr 配置中的 timeout 和 fast_open。
9. 日志、监控与备份策略
步骤1:配置日志轮替(logrotate)避免日志占满磁盘;在 /etc/logrotate.d/ 增加 ssr 配置。
步骤2:使用简单脚本定期备份 user-config.json 到安全位置并限制访问权限(chmod 600)。
步骤3:部署监控(如 Prometheus node exporter)监测流量、连接数和硬件资源。
10. 法律合规与运维注意
步骤1:确保所提供或使用的服务符合香港及你所在国家/地区法律法规。
步骤2:定期更新系统与 SSR 项目,定期审查日志以发现异常使用。
步骤3:为运维账号启用两步验证、使用 SSH 密钥并限制管理访问 IP。
11. 问:如何安全地更改 SSR 的监听端口并应用到防火墙?
方法:编辑 /opt/shadowsocksr/user-config.json 修改 server_port 字段为目标端口(例如 10088),保存后重启 systemd 服务:systemctl restart shadowsocksr。随后在防火墙允许新端口:ufw allow 10088/tcp(若使用 iptables:iptables -A INPUT -p tcp --dport 10088 -j ACCEPT),并移除旧端口的规则。
12. 问:如何防止单 IP 恶意占用大量并发连接影响其他用户?
回答:使用 iptables connlimit 模块限制单个源 IP 的并发连接数(示例:iptables -A INPUT -p tcp --dport 10088 -m connlimit --connlimit-above 20 -j REJECT),并结合 recent/hashlimit 限制新连接速率;同时配置 fail2ban 检测异常频繁连接并禁止。
13. 问:香港服务器部署 SSR 最容易忽视的安全点是什么?
回答:常见疏忽包括:使用弱口令、直接用 root 启动服务、未限制管理端口、不配置日志轮替以及未启用 fail2ban/连接限制。务必使用强加密算法、非root账户运行、限制 SSH 访问并定期更新与审计。
来源:香港服务器 ssr 使用注意事项 包含安全配置和端口管理