Debian初始化安装
写在前面
- 记录一下日常的操作
- 其实有很多一键脚本
- 聊以慰藉吧
客户端使用 secureCRT 和 finallshell,各有所长,粘贴命令的时候,finallshell 会错乱,有个啥方法处理的,忘记了,有知道留言告知,多谢
1、初始化升级
1 | apt update && apt full-upgrade -y && apt autoremove && apt autoclean |
这一步的主要目的是为了升级内核版本。
安装常用软件
1 | apt install sudo htop git wget curl screen emacs vim podman ufw net-tools -y |
安装常用软件,这里的 podman 和 docker 是类似的。
开启 bbr
1 | echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf |
2、安全性
添加非 root 用户(普通用户)
目的是为了避免直接使用 root 登录,避免使用密码登录,增加安全性
这里假如使用 ittinker 作为非 root 用户
1 | adduser ittinker |
使用密钥登录并禁止 22 端口
生成证书文件
mac 下直接用命令行就可以,使用 secureCRT 也可以生成(Tools - Create Public Key…),一路 continue,可以不设置 Passphrase,也就是不设置密码,格式选 OpenSSH Key format(new)。
它会生成 2 个文件,一个 pub 文件上传到服务器,一个在本地。
设置文件权限
为了使用它,需要先设置文件权限
1 | mkdir /home/ittinker/.ssh |
上传证书文件
文件上传的方法很多,secureCRT 可以用 sftp(File-Connect FTP Session),finalshell 可以直接拖进去。目的是为了让 pub 文件的内容放到上面创建的 authorized_keys 里面去。
1 | cat ~/ittinker.pub > ~/.ssh/authorized_keys |
直接用 vim 编辑文件也是可以的,主要是担心换行符等问题,所以上传文件
设置仅允许证书登录,端口改为非 22
1 | vim /etc/ssh/sshd_config |
安全起见,建议分步执行,密码登录和证书登录都保留,等测试没问题了再关闭
重启服务
1 | systemctl restart ssh |
设置防火墙
1 | ufw allow 22000 |
启动防火墙(inactive 表示没启动)
1 | root@racknerd-6c704ab:~# ufw enable |
检查防火墙状态
1 | root@racknerd-7a8b74:~# ufw status |
测试连通性
1 | nc -v 192.210.228.220 80 |
nc
命令一般不用,太麻烦了。用它是为了看看防火墙生效没,该关闭的端口都关闭了没
登录失败过多限制 ip
多次连接或登录失败的疑似入侵系统的行为时,就自动屏蔽其 IP 地址,禁止其再次尝试,以确保系统安全。
1 | sudo apt-get -y install fail2ban |
仅允许 cf 访问
如果整站都在 CF 后面,安全起见可以只允许 CF 访问 80/443 端口,可以使用如下脚本配置。脚本会从 https://www.cloudflare.com/ips-v4
和 https://www.cloudflare.com/ips-v6
获取 CF 的 IP 范围,添加到 UFW 规则中并 reload UFW。还会配置每周一零点的定时任务,刷新 IP 段。
1 | wget -O ~/.cloudflare-ufw.sh https://gist.githubusercontent.com/Xm798/12560579ce11f62027ea8da1fae37456/raw/b07ac8cfe09badf02fc70e2d8bc2da68cabbda50/cloudflare-ufw.sh |