请解释在 Ubuntu 上安装 OpenSSH 服务器的完整步骤

请解释在 Ubuntu 上安装 OpenSSH 服务器的完整步骤

我在 Ubuntu 中安装 openssh-server 时遇到了麻烦。我特别想知道如何生成 RSA 公私钥对以及相关概念。最常应用的默认配置文件修改是什么?如何授予 root 登录权限?如何添加防火墙?

答案1

转到终端并输入:

sudo su -
apt-get install openssh-server openssh-client

测试安装

ps -A | grep sshd

如果输出如下:

<some number> ?        00:00:00 sshd

然后 ssh 守护进程正在运行。

再次输入终端;

ss -lnp | grep sshd

如果输出如下:

0  128  :::22  :::*  users:(("sshd",16893,4))
0  128   *:22   *:*  users:(("sshd",16893,3))

那么这意味着 ssh 守护进程正在监听传入的连接

现在我们编辑配置文件。首先我们备份原始文件。

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.factory-defaults

现在我们打开配置文件来编辑它

sudo vim /etc/ssh/sshd_config

弱密码很容易被猜到。最佳做法是使用 SSH 密钥代替密码。因此我们完全禁用密码验证。转到以下行

#PasswordAuthentication yes

并将其替换为

PasswordAuthentication no

启用转发会为已经猜出密码的攻击者提供更多选择。所以我们禁用它。这给了我们一点安全性。转到以下行

AllowTcpForwarding yes
X11Forwarding yes

并将其替换为

AllowTcpForwarding no
X11Forwarding no

我们可以明确允许某些用户登录或拒绝某些用户登录。为此,我们必须将以下几行放在配置文件的底部。

AllowUsers Fred Wilma
DenyUsers Dino Pebbles

为了使笔记本电脑发挥最佳性能,我们允许两个待处理连接。在第三个和第十个连接之间,系统将开始随机丢弃连接,从 30% 到第十个同时连接时的 100%。这可以通过以下行完成

MaxStartups 2:30:10

为了记录更多错误和其他有用信息,我们修改了以下行

LogLevel INFO

进入

LogLevel VERBOSE

为了吓跑新手攻击者,我们可以展示一条横幅,我们将行首的井号标签删除

#Banner /etc/issue.net

实现它

Banner /etc/issue.net

然后我们进入终端并输入:

sudo -H gedit /etc/issue.net

然后添加通知:

***************************************************************************
                            NOTICE TO USERS
This computer system is the private property of its owner, whether
individual, corporate or government.  It is for authorized use only.
Users (authorized or unauthorized) have no explicit or implicit
expectation of privacy.
Any or all uses of this system and all files on this system may be
intercepted, monitored, recorded, copied, audited, inspected, and
disclosed to your employer, to authorized site, government, and law
enforcement personnel, as well as authorized officials of government
agencies, both domestic and foreign.
By using this system, the user consents to such interception, monitoring,
recording, copying, auditing, inspection, and disclosure at the
discretion of such personnel or officials.  Unauthorized or improper use
of this system may result in civil and criminal penalties and
administrative or disciplinary action, as appropriate. By continuing to
use this system you indicate your awareness of and consent to these terms
and conditions of use. LOG OFF IMMEDIATELY if you do not agree to the
conditions stated in this warning.
****************************************************************************

如果某个 IP 地址在 30 秒内尝试连接超过 10 次,则所有后续尝试都将失败,因为连接将被丢弃。通过在终端中运行单个命令,即可将规则添加到防火墙:

sudo ufw limit ssh

现在我们保存并关闭配置文件并ssh通过在终端中输入以下内容重新启动:

systemctl restart ssh

接下来我们设置SSH密钥 SSH 密钥有两对:公钥和私钥。公钥存在于服务器中,私钥存在于个人中。如果某人能将他的私钥与公钥匹配,则只有他/她才能登录。此外,私钥还可以通过密码保护。此外,当密钥使用 4096 位加密生成时,几乎不可能通过暴力破解它们。

第一步 - 创建RSA密钥对:

在终端中输入

ssh-keygen -t rsa -b 4096

为了更加安全,我们使用 64 位加密

第二步——存储密钥和密码:

按照屏幕上的说明,提供存储密钥的所需位置,建议接受默认值,选择密码,输入强密码,并记住它。

屏幕是这样的:

ssh-keygen -t rsa
生成公钥/私钥 RSA 密钥对。
输入保存密钥的文件(/home/demo/.ssh/id_rsa):
输入密码(无密码则为空):
再次输入相同的密码:
您的身份已保存在 /home/demo/.ssh/id_rsa。
您的公钥已保存在 /home/demo/.ssh/id_rsa.pub。
密钥指纹是:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 演示@a
钥匙的随机图像是:
+--[RSA 2048]----+
| .oo。 |
|.oE|
| + . o |
| 。 = =。 |
| = 小号 = 。|
| ο + = + |
|.o+o.|
| . Ø |
| |
+-----------------+

第三步——复制公钥:

在终端中输入

ssh-copy-id [email protected]

这里的 123.45.56.78 是服务器 IP 地址

如果是本地主机,则

ssh-copy-id user@localmachinename

屏幕是这样的

无法确定主机“12.34.56.78 (12.34.56.78)”的真实性。
RSA 密钥指纹是 b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12。
您确定要继续连接吗(是/否)?是
警告:将“12.34.56.78”(RSA)永久添加到已知主机列表中。
[电子邮件保护]的密码:
现在尝试使用“ssh”登录机器[电子邮件保护]'”,并签入:

  〜/.ssh /授权密钥

以确保我们没有添加您意想不到的额外键。

现在我们的安装已完成。要登录,我们需要在终端中输入:

ssh username@servername

然后当提示输入密码时我们需要提供它。

现在我们要启用 opessh 服务器的 root 登录。我们首先必须启用 sudo 密码,因为它在 Ubuntu 中默认是禁用的。

为此,我们在终端中输入以下内容,屏幕将如下所示:

sudo passwd
[sudo] password for [username]: [Type your user password and press return]
Type new UNIX password: [Type the root password you want]
Retype new UNIX password: [Retype the root password you chosen before]
passwd: password updated successfully

现在我们必须编辑 /etc/sudoers 文件。

这里我们使用名为 visudo 的编辑器,因为 visudo 的唯一目的是编辑 sudoes 文件

在 ubuntu 中,默认情况下配置文件由 nano 编辑器打开,要更改它,请在终端中输入:

sudo update-alternatives --config editor

将出现以下屏幕:

备选编辑器有 4 个选择(提供 /usr/bin/editor)。

  选择路径优先级状态
------------------------------------------------------------
* 0 /bin/nano 40 自动模式
  1 /bin/ed -100 手动模式
  2 /bin/nano 40 手动模式
  3 /usr/bin/vim.basic 30 手动模式
  4 /usr/bin/vim.tiny 10 手动模式

按保留当前选择[*],或输入选择编号:

输入 3 并按enter

然后输入:

sudo visudo

移至以下行:

Defaults    env_reset

enter

上面创建了新行类型:

Defaults    rootpw

使用spacebar,而不是TAB

Esc--> :+ x-->Enter

在终端类型中:

gedit /etc/ssh/sshd_config

移至以下行:

PermitRootLogin password-prohibited

并将其更改为

PermitRootLogin yes

保存并关闭

然后重启SSH

service ssh restart

然后在终端输入:

ssh-copy-id root@localmachinename

输出屏幕可能显示:

无法确定主机“12.34.56.78 (12.34.56.78)”的真实性。
RSA 密钥指纹是 b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12。
您确定要继续连接吗(是/否)?是
警告:将“12.34.56.78”(RSA)永久添加到已知主机列表中。
[电子邮件保护]的密码:
现在尝试使用“ssh”登录机器[电子邮件保护]'”,并签入:

  〜/.ssh /授权密钥

以确保我们没有添加您意想不到的额外键。


现在我们已经授予root私钥访问权限来登录
测试类型:
ssh root@本地机器

它会要求输入密码。密码保持不变。输入密码即可。现在 root 可以成功登录

现在为了提高安全性,我们必须添加防火墙类型:

app install ufw

现在开始

enable ufw

获取当前正在运行的进程列表

ufw app list

OpenSSH 将列在那里。A允许它通过防火墙

ufw allow OpenSSH

重启防火墙

systemctl restart ufw

我们的安装已完成

相关内容