SSH(Secure Shell)是一种加密通信协议,用于在远程服务器和客户端之间传输数据,其目的是为了保证通信的安全和可靠性。在本文中,我们将学习如何在 CentOS 7 系统中配置 SSH 服务。
如果您的CentOS 7 系统尚未安装 SSH 服务,那么您需要在命令行中输入以下命令来进行安装:
yum install openssh-server
按照默认设置,SSH 服务应该已经启动。但是,我们还需要进行一些配置才能保证 SSH 服务的安全性和可靠性。
默认情况下,SSH 服务使用22端口进行通信。但是,由于这个端口是众所周知的,因此可能会使您的系统面临安全风险。因此,一种好的做法是将 SSH 端口更改为其他端口,例如2222端口。
为了进行端口更改,我们需要修改SSH配置文件。打开配置文件,找到Port 22这一行,将这一行的22替换为2222:
vi /etc/ssh/sshd_config
Port 2222
虽然可以使用root登录远程服务器,但这也会增加系统的安全性风险。因此,为了使系统更加安全,我们建议禁用root登录。
打开SSH配置文件,找到PermitRootLogin这一行,并将其设置为no:
vi /etc/ssh/sshd_config
PermitRootLogin no
某些攻击者可以通过爆破来猜测远程服务器的密码。为了避免这种情况的发生,我们建议禁用密码登录,并只允许使用公钥登录。
打开SSH配置文件,找到PasswordAuthentication 这一行,并将其设置为no:
vi /etc/ssh/sshd_config
PasswordAuthentication no
在进行了以上的修改之后,需要重启SSH 服务才能使其生效:
systemctl restart sshd.service
现在,只有通过公钥进行登录才是可行的。因此,让我们来生成一对SSH 密钥。
输入以下命令生成密钥(请注意,下面的示例中的user是您的用户名。):
ssh-keygen -t rsa
按照提示进行操作,生成的密钥在/home/user/.ssh
目录下。
为了使用密钥进行登录,您需要将公钥添加到远程服务器的~/.ssh/authorized_keys
文件中。请按以下步骤操作:
在本地计算机上打开公钥文件:
cat /home/user/.ssh/id_rsa.pub
复制并粘贴公钥到服务器:
ssh user@your_server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" < ~/.ssh/id_rsa.pub
现在您应该能够使用SSH 密钥登录到远程服务器了:
ssh user@your_server -p 2222
由于我们已经将SSH 端口更改为2222,您需要更新防火墙规则以允许该端口的入站流量。
您可以使用以下命令打开2222端口:
firewall-cmd --permanent --zone=public --add-port=2222/tcp
firewall-cmd --reload
为了有效保护SSH 服务免受暴力破解等攻击,我们建议您安装Fail2ban服务。Fail2ban是一种安全性补充,它会监视 SSH 服务的日志,并自动封锁多次失败的登录尝试。
请按以下命令来进行安装:
yum install fail2ban
之后,您需要在/etc/fail2ban/jail.local
文件中添加一些设置:
[DEFAULT]
ignoreip = 127.0.0.1
bantime = 3600
maxretry = 3
[sshd]
enabled = true
port = 2222
logpath = /var/log/secure
现在您需要重新启动Fail2ban 服务让其生效:
systemctl restart fail2ban
您已经成功地在CentOS 7 系统上配置了 SSH 服务,并使其更加安全和可靠。在后续的使用过程中,请务必不要使用root用户登录,而是使用公钥进行登录。除此之外,您还可以安装Fail2ban服务来增强系统的安全性。
版权属于:周晨
本文链接:https://wenziju.com/index.php/archives/1318/
本博客所有文章除特别声明外,均采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议。转载请注明出处!
1 条评论
想想你的文章写的特别好https://www.237fa.com/