通常拿到服务器 root 和密码后,我们进行一些安全首选项
必备,开启 BBR ,注意 Debian 12 默认支持 BBR ,只需要开启即可
需要服务器内核支持
uname -r //内核版本高于 4.9 就行。
安装
#一键开启 echo -e "\nnet.core.default_qdisc=fq\nnet.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf && sysctl -p #检测是否开启 sysctl net.ipv4.tcp_congestion_control #如果成功开启,那么会看到以下输出结果 net.ipv4.tcp_congestion_control = bbr
1.fail2ban
虽然通常我们会安装密钥登录,但是在任何时候,我都建议在首次登录服务器后设置 fail2ban 防止 ssh 暴力破解
1.不同操作系统的安装
#Centos yum install fail2ban -y # Debian apt-get install fail2ban -y
2.设定并配置 fail2ban
#进入 cd /etc/fail2ban/ #新建 jail.local ,这是官方文档的建议 touch jail.local #编辑 jail.local 写入 ,以下简易配置表示相同的 IP 在 10 分钟内输错两次密码会禁止 24 小时内登录 [DEFAULT] bantime = 24h banaction = iptables-multiport maxretry = 2 findtime = 10m [sshd] enabled = true
如果是在 Deibian 12 系统,你可能需要在 [sshd] 下增加,否则无法启动成功
backend=systemd
3.重启 fail2ban
#在 Debian 上: service fail2ban restart #在 CentOS 上: systemctl restart fail2ban
4.查看 fail2ban 运行状态
systemctl status fail2ban
2.测试环境除外,生产一定要使用密钥
其实这个公钥密钥很常见,比如我们通过电脑协作工具 Git 的 push 到 github 和 gitlab 也会用到
1.在服务器生成公钥和密钥,无特殊需求以及密码设定,连续回车即可
ssh-keygen -m PEM -t rsa -C "content"
2.进入目录并设定权限,注意这个时候可以将 id_rsa 通过下载等导出了,妥善保存,因为我们以后通过 xshell 等软件连接,需要用到它
cd ~/.ssh 或者 cd /root/.ssh/ #然后安装公钥 authorized_keys cp id_rsa.pub authorized_keys #注意,如果存在 authorized_keys 则采用写入方式 cat id_rsa.pub >> authorized_keys #设置公钥权限 chmod 600 authorized_keys chmod 700 ~/.ssh
3.修改 ssh 配置文件
#打开修改 vi /etc/ssh/sshd_config 然后对应如下修改,取消配置的注释: StrictModes no #此项默认为注释关闭 PubkeyAuthentication yes RSAAuthentication yes #默认不存在,可放到上面一行的下边 AuthorizedKeysFile .ssh/authorized_keys #ssh文件位置,此项默认设置相同 PasswordAuthentication yes #使用密码 no为不使用密码 AuthenticationMethods publickey,password #如果密码和密钥都使用在末尾加上此行代码
完成以上步骤设置后,重启 sshd 服务,注意:关闭当前 ssh 连接窗口后,就需要使用密钥登录了,此时若你忘记下载了密钥,你还有机会
systemctl restart sshd.service
3.为了快速使用,我们安装 aapanel 操作面板
面板是为了快速安装各种网站运行环境
安装 screen ,防止安装面板等中途断线
apt-get -y install screen
#我需要一个 rclone ,不需要的无需安装
apt-get -y install rclone
#开启新会话后再安装 aapanel
screen -S aapanel
#安装 aapanel
URL=https://www.aapanel.com/script/install_7.0_en.sh && if [ -f /usr/bin/curl ];then curl -ksSO "$URL" ;else wget --no-check-certificate -O install_7.0_en.sh "$URL";fi;bash install_7.0_en.sh aapanel
4.解决面板后续的时间误差,如果定期出现误差,建议写入 crontab
Centos: #使用 NTP 同步时间 ntpdate hk.pool.ntp.org #将软件时间写入到硬件 hwclock -w Debian: #安装同步软件 apt-get install ntpdate #开始同步时间 ntpdate cn.pool.ntp.org
标签:设定,authorized,ssh,install,服务器,安装,Debian,fail2ban From: https://www.cnblogs.com/kavo/p/18397657