使用DigitalOcean,因为新建Droplet时未添加SSH key,到注册邮箱接收root密码。首先在本机生成SSH key用于以后的登录。
ssh-keygen -t ed25519 -C "[email protected]"
引导程序要求确定密钥存储地址和通行句(passphrase)。若提供通行句,连接需私钥和通行句。生成的私钥默认位于~/.ssh/id_ed25519
,公钥~/.ssh/id_ed25519.pub
。
ssh-copy-id -i ~/.ssh/id_ed25519 user@host
需将本机生成的公钥传输到服务器。
adduser newuser
gpasswd -a newuser sudo
# 查看
cat /etc/group | grep sudo
安全考虑,先创建用于登录的用户,以免使用root登录。之后将用户添加到sudo组获取权限。
su - newuser
mkdir .ssh
chmod 700 .ssh
切换用户,创建用于存储用户公钥的目录,修改权限
vim .ssh/authorized_keys
# 将之前复制的公钥写入 #
chmod 600 .ssh/authorized_keys
# 退出新用户返回root
exit
将公钥粘帖到文件并修改权限,然后返回root;也可以在本机使用ssh-copy-id newuser@server
命令复制
vim /etc/ssh/sshd_config
# 端口
prot 22
# 是否允许以root连接,默认yes
PermitRootLogin no
# 是否允许使用密码登录,去除注释,修改为no
PasswordAuthentication no
# 与证书登录相关,默认已设置
PubkeyAuthentication yes
ChallengeResponseAuthentication no
# 完成验证允许的时长,可控制存在的未验证连接数
LoginGraceTime 30
MaxAuthTries 3
# server每60s向client发送null packet,用于维持连接;client可设置ServerAliveInterval
ClientAliveInterval 60
# 若连续3次null packet都未收到client响应,将断开连接;client可设置ServerAliveCountMax
ClientAliveCountMax 3
# 可以选择是否允许X11 forwarding
X11Forwarding no
# 可以选择是否显示motd(message of the day)
PrintMotd no
可适当修改SSH配置,如选择阻止root登录
# service ssh restart
systemctl reload sshd
重启SSH服务。
可尝试利用另一终端登录newuser确定服务正常ssh newuser@SERVER_IP_ADDRESS
,一切正常可退出当前登录。
环境
环境搭建,包括一些常用的应用
sudo apt-get update && DEBIAN_FRONTEND=noninteractive \
sudo apt-get upgrade -yq
apt-cache search linux-headers-$(uname -r)
sudo apt-get install build-essential linux-headers-$(uname -r) vim
其中linux-headers, vim默认已安装。build-essential为以后编译安装应用作准备。
ufw
方便iptables设置而无需更多的了解iptables。ufw默认已安装,但未开启。
sudo apt-get install ufw
# 查看状态
sudo ufw status
安装并查看状态,ufw运行前只显示Status: inactive,运行后可查看状态和具体规则。
sudo ufw default deny incoming
sudo ufw default allow outgoing
# 查看支持的app
$ sudo ufw app list
Available applications:
OpenSSH
# ufw为常用端口提供简写,如ssh, www,或使用列出的app
sudo ufw allow ssh | sudo ufw allow 22/tcp
sudo ufw allow www | sudo ufw allow 80/tcp
sudo ufw deny 8000:8009/tcp
sudo ufw allow OpenSSH
# 删除之前配置的ssh规则
sudo ufw delete allow www
修改规则命令,记住一定打开ssh/OpenSSH端口,否则之后无法连接。
sudo ufw enable | disable
# 重新载入配置,若ufw运行时修改规则,需重载入
sudo ufw reload
# 恢复默认设置
sudo ufw reset
管理命令,此时可开启ufw
其他
选择应用
sudo dpkg-reconfigure ca-certificates
选择系统信任的证书,例如取消对CNNIC_ROOT.crt的信任
sudo apt-get install fail2ban
安装Fai2Ban,开箱即用