Linux服务器设置

set up linux

Posted by byron han on September 23, 2022

本文首次发布于 Byron Han Blog, 作者 @han(Byron Han) ,转载请保留原文链接.

初始服务器配置

新建账号

1
2
useradd develop
passwd develop

添加sudo权限

1
2
3
4
visudo /etc/sudoers

#写入
develop ALL=(ALL)NOPASSWD : ALL

修改远程端口

使用系统默认端口的风险较大,容易被攻击软件扫描以及攻击

设置防火墙

我这边服务器用的是firewall

1
2
3
4
5
6
7
sudo firewall-cmd --add-port=新端口号/tcp --permanent
#firewall-cmd --add-port=<port>/<protocol> #添加端口/协议(TCP/UDP)
#firewall-cmd --remove-port=<port>/<protocol> #移除端口/协议(TCP/UDP)
#firewall-cmd --list-ports #查看开放的端口

# 重启防火墙(修改配置后要重启防火墙)
sudo firewall-cmd --reload

Centos7防火墙firewalld概述及常用操作命令总结

添加远程端口

1
2
3
4
5
#修改配置文件
sudo vim /etc/ssh/sshd_config
# 删除端口注释,改为自己的远程端口
Port XXX
sudo systemctl restart sshd.service

设置密钥登录

SSH 密钥对是通过加密算法生成的一对密钥,为远程登录实例提供一种更安全便捷的认证方式。腾讯云创建的 SSH 密钥对采用 RSA 2048位的加密方式,生成包括公有密钥(公钥)和私有密钥(私钥):

公钥:SSH 密钥对成功生成后,服务器仅存储公钥。对于 Linux 实例,公钥内容存储在 ~/.ssh/authorized_keys 文件中。 私钥:您需要妥善保管私钥,拥有您的私钥的任何人都可以解密您的登录信息,因此您需将私钥保存在一个安全的位置。

优势

使用 SSH 密钥对作为登录凭证,相比用户名和密码的认证方式具备以下优势:

安全性:相比普通的密码登录,SSH 密钥对的安全强度更高,可避免暴力破解。SSH 密钥对采用非对称加密算法生成,使用公开密钥对数据进行加密,只有用对应的私有密钥才能解密。私钥可由用户自己保管,无需通过网络发送。 便捷性:使用 SSH 密钥对可以实现一键远程登录 Linux 实例,无需每次登录都输入密码。另外,在同时维护多台 Linux 实例的场景下,使用 SSH 密钥对登录可以实现更加方便、统一的管理。 腾讯云参考

生成密钥

参考ssh密钥生成

复制密钥对

推送至服务器端

1
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.15.241

禁用密码登录

1.执行以下命令,打开 sshd_config 配置文件。

1
2
3
4
5
6
7
8
# 编辑 sshd_config 文件 
vi /etc/ssh/sshd_config

# 禁用密码验证 
PasswordAuthentication no
# 启用密钥验证 
RSAAuthentication yes
PubkeyAuthentication yes

2.执行以下命令,重启 ssh 服务

1
sudo systemctl restart sshd