云服务器一键DD重装

前言

记录一下云服务器的dd重装系统的过程,dd的原因就是更大程度使用云服务器的性能和避免被供应商监控,使系统更加纯净。

我的服务器是阿里云的2核4g的ECS云服务器,已经将系统设置为Debian 12。

我使用的是天权璇玑的脚本。

这篇文章可能以后也会慢慢更新。


过程

  1. 更新系统下载必要软件

    1
    2
    apt update
    apt install wget -y

  1. 下载运行脚本

    因为我是国内云服务器,所以从Gitee下载。

    1
    wget --no-check-certificate -qO InstallNET.sh 'https://gitee.com/mb9e8j2/Tools/raw/master/Linux_reinstall/InstallNET.sh' && chmod a+x InstallNET.sh

    国外服务器使用:

    1
    wget --no-check-certificate -qO InstallNET.sh 'https://raw.githubusercontent.com/leitbogioro/Tools/master/Linux_reinstall/InstallNET.sh' && chmod a+x InstallNET.sh

  2. 安装debian 12

    1
    bash InstallNET.sh -debian 12

    这是安装完成后的提示信息:

    image-20240422180408344

    安装完成后,需要等待几分钟才可以登录。


  1. ssh端口不变,输入默认密码LeitboGi0ro进行登录。


  2. 修改密码

    image-20240422183247055


安全防护

任何涉及到安装的操作之前,先更新一下我们安装包的索引,可以的话,顺便更新一下软件。这本身也是安全的一部分,新的软件意味着更少的漏洞。

1
2
apt update   #更新软件包列表,以确保你看到的是最新的可用软件包信息。
apt upgrade #升级系统中已安装的软件包到它们的最新版本。

SSH

更改端口

先来解决【端口 = 22】的问题。(注意:有些 VPS 服务商,默认的端口已经是非 22 端口,那么可以忽略这一步)

1
vim /etc/ssh/sshd_config

在里面查找到Port,我已经将22修改到了9867。

image-20240422214817135

如果用的是国内服务器,还要记得在安全组放行新的端口。

最后,重启ssh服务即可。

1
sudo service sshd restart

注意:为了保证你不会失联,请不要关闭当前的ssh登录窗口!而是另外开一个窗口来测试!


使用复杂的密码

https://1password.com/zh-cn/password-generator/

1
passwd

image-20240422220401372

出现提示让你修改密码。然后粘贴进去就行了。(注意为了安全的考量,Linux下输入密码是没有显示的)


新建普通用户

接下来,我们来解决【用户名 = root】的问题。

root账号是古希腊掌管Linux系统的神(浅浅玩一下梗),一旦它出现安全问题,那么整个系统都任人宰割了。

i. 新增一个普通用户并设置密码

1
adduser username

执行命令后,根据提示操作即可。请务必设置一个用户密码(别忘记设置密码时你时看不到 ****** 的)。之后系统会询问你一些用户的附加信息,这些就可以无视,一路回车即可。

image-20240422221601654

ii. 安装sudo(普通账户临时获得root的权利)

1
apt install sudo

image-20240422224512116

iii. 将用户加入sudo名单中

1
visudo

在 User Privilege Specification 下加入一行 lcf ALL=(ALL) NOPASSWD: ALL 即可。

image-20240422225912323

NOPASSWD这个设置,它的意思是vpsadmin用户临时使用root权限时,不用额外输入密码。

如果你希望遵守传统习惯、每次使用sudo时需要输入密码,那么这一行改成 vpsadmin ALL=(ALL:ALL) ALL 即可。


禁止root登录

1
nano /etc/ssh/sshd_config

找到PermitRootLogin Yes这一项(ctrl+w),然后把它后面的设定值改为no即可。

image-20240422230943635

保存是 ctrl+o,然后回车确认,退出是 ctrl+x。

重启ssh服务即可(不关闭当前ssh登录窗口)。

1
sudo service sshd restart

启用密钥验证登录并禁止密码登陆

SSH key是一对公钥和私钥

大部分情况下,都是在客户端生成这对key,然后将public key放到服务端。然后客户端就可以免密登录服务器了。(大多数情况都是使用的这种方法)

但是,其实也是可以在服务端生成这对key的,然后将private key放到客户端。这样客户端也可以直接连接服务端。

其实这两种方法没什么区别。在进行验证的时候,客户端拿着的都是私钥,服务端拿着的是公钥。

我使用的方法是第一种方法。


本地

我的设备是windows11,先在命令行生成一对秘钥,我已经生成过了,就不选择覆盖了。

1
ssh-keygen

image-20240424000302237


远程

1.将id_rsa.pub放到/root/.ssh文件夹中,复制内容到authorized_keys文件中,再注意下文件权限。

1
2
3
4
cd /root/.ssh
cat id_rsa.pub >> authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

image-20240424000708730

2.编辑ssh配置文件

1
2
3
4
5
6
7
sudo nano /etc/ssh/sshd_config

# 下面为推荐配置
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys #ssh文件位置,此项默认设置相同
PasswordAuthentication no #使用密码 no为不使用密码
AuthenticationMethods publickey,password #如果密码和密钥都使用在末尾加上此行代码

这里需要说一下,我的PasswordAuthentication no设置是没有生效的,网上搜索了一下,可能是个bug,需要将这一行放到文件开头才生效。

image-20240424002558542

至此,我的云服务器只能使用我的私钥来登录了。

3.重启sshd服务

1
systemctl restart sshd.service

4.注意事项

上面每一步修改都不要关闭当前远程登录界面,测试完全通过之后,才可以关闭当前登录窗口,避免出现登录不上的情况。


全局

禁Ping

1
sudo nano /etc/sysctl.conf

修改文件 /etc/sysctl.conf,在文件末尾增加一行:net.ipv4.icmp_echo_ignore_all = 1

如果已经有 net.ipv4.icmp_echo_ignore_all 这一行了,直接修改 = 号后面的值即可的 0 表示允许,1 表示禁止。

image-20240423001341604

修改完后执行sudo sysctl -p使配置生效。

image-20240423002024627


UFW防火墙

i. 安装:

1
apt-get update && apt-get install ufw

ii. 检查一下ufw的状态,查看是否运行:

1
ufw status

image-20240604102946856

状态是 inactive ,意思是没有被激活或不起作用。

iii. 设置ufw使用默认值

1
2
sudo ufw default deny incoming
sudo ufw default allow outgoing

image-20240604104007426

允许连接

1. SSH

如果没有改端口:

1
sudo ufw allow ssh

现在我们改了端口:

1
sudo ufw allow 9756/tcp comment 'SSH'

2. 允许http连接

1
sudo ufw allow http

3. 允许https连接

1
sudo ufw allow https

4. 启动/禁用

1
2
ufw enable  #启用
ufw disable #禁用

image-20240604103510737

5. 查看状态

1
ufw status

image-20240604104831503

1
ufw status numbered

image-20240604105130680

6. 删除一条规则

1
sudo ufw delete 5

image-20240604105256014



参考

  1. 保护好你的小鸡!保姆级服务器安全教程!-我不是咕咕鸽 (laoda.de)

  2. 史上最强,支持 Debian 12 raid 0 Ubuntu 24.04(测试中);512MB 内存安装 AlmaLinux/RockyLinux;CentOS 9 Fedora 39 AlpineLinux Kali Linux Windows 重装程序功能更新、bug反馈贴(长期更新) (nodeseek.com)

  3. 公钥私钥详细讲解(小白都能看懂),SSH密钥远程连接服务器,代码,命令详解_服务器 公钥-CSDN博客

  4. Linux 服务器配置使用密钥登录教程_ssh-keygen -p -m pem -f-CSDN博客

  5. ssh的PasswordAuthentication不生效的问题(by quqi99)_passwordauthentication no 不生效-CSDN博客