Как установить защищенный сервер OpenSSH на Ubuntu?

Как установить защищенный сервер OpenSSH на Ubuntu?

Я хочу установить OpenSSH сервер на Ubuntu. Как это сделать?

Мне нужно сделать следующее:

  1. Настройте сервер OpenSSH

  2. Настройте пару публичных и закрытых ключей SSH для пользователя

  3. Отключить вход по паролю

  4. Включить пользователя root

  5. Настройте пару ключей SSH (открытый и закрытый) для пользователя root

  6. Установить пароль

решение1

Перейдите в терминал и введите:

sudo su
aptitude 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 gedit /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 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.
****************************************************************************

Теперь сохраняем и закрываем файл конфигурации и перезапускаем ssh, введя в терминале:

systemctl restart ssh

Далее мы настраиваем ключи SSH. Существует две пары ключей SSH: открытый и закрытый. Открытые ключи присутствуют на серверах, а закрытые ключи присутствуют у отдельных лиц. Если кто-то может сопоставить свой закрытый ключ с открытым ключом, только он/она может войти в систему. Кроме того, опционально закрытые ключи могут быть защищены парольной фразой. Кроме того, когда ключи генерируются с использованием 4096-битного шифрования, их практически невозможно взломать методом грубой силы.

Шаг первый — создайте пару ключей RSA:

Введите в терминале

ssh-keygen -t rsa -b 4096

Здесь мы используем 64-битное шифрование для большей безопасности.

Шаг второй — Сохраните ключи и парольную фразу:

Следуйте инструкциям на экране, укажите желаемое место для хранения ключей (рекомендуется принять значение по умолчанию), выберите парольную фразу (придумайте надежную парольную фразу и запомните ее).

Экран выглядит примерно так:

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/demo/.ssh/id_rsa.
Your public key has been saved in /home/demo/.ssh/id_rsa.pub.
The key fingerprint is:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a
The key's randomart image is:
+--[ RSA 2048]----+
|          .oo.   |
|         .  o.E  |
|        + .  o   |
|     . = = .     |
|      = S = .    |
|     o + = +     |
|      . o + o .  |
|           . o   |
|                 |
+-----------------+

Шаг третий — скопируйте открытый ключ:

Введите в терминале

ssh-copy-id [email protected]

Здесь 123.45.56.78 — IP-адрес сервера.

В случае локального хоста это

ssh-copy-id user@localmachinename

Экран примерно такой

The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established.
RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts.
[email protected]'s password: 
Now try logging into the machine, with "ssh '[email protected]'", and check in:

~/.ssh/authorized_keys

чтобы убедиться, что мы не добавили дополнительных ключей, которых вы не ожидали.

Теперь наша установка завершена. Для входа нам нужно ввести в терминале:

ssh username@servername

Затем, когда будет запрошен пароль, нам нужно будет его ввести.

Теперь нам нужно включить вход в систему под учетной записью root на сервере opessh. Сначала нам нужно включить пароль 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

Появится следующий экран:

There are 4 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /bin/nano            40        auto mode
  1            /bin/ed             -100       manual mode
  2            /bin/nano            40        manual mode
  3            /usr/bin/vim.basic   30        manual mode
  4            /usr/bin/vim.tiny    10        manual mode

Press <enter> to keep the current choice[*], or type selection number:

Введите 3 и нажмите Enter.

Затем введите:

sudo visudo

Перейдите к строке, которая гласит:

Defaults    env_reset

Нажмите Ввод

Над ним создается новая строка

Тип:

По умолчанию rootpw

используйте пробел, а не TAB

Нажмите Esc --> :x --> Enter

В типе терминала:

gedit /etc/ssh/sshd_config

Перейдите к строке:

PermitRootLogin password-prohibited

и измените его на

PermitRootLogin yes

Далее переходим к строке:

PasswordAuthentication no

и измените его на

PasswordAuthentication yes

Сохрани и закрой

Затем перезапустите SSH.

service ssh restart

Теперь пришло время снова сгенерировать пару открытого и закрытого ключей SSH для пользователя root.

Введите в терминале

ssh-keygen -t rsa -b 4096

Шаг второй — Сохраните ключи и парольную фразу:

Следуйте инструкциям на экране, укажите желаемое место для хранения ключей, НЕ ПРИНИМАЙТЕ значение по умолчанию, так как на этот раз вам придется создать новую пару, значение по умолчанию уже создано. Выберите парольную фразу, укажите надежную парольную фразу и запомните ее.

Экран выглядит примерно так:

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/demo/.ssh/id_rsa): u-root-id_rsa 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/demo/.ssh/u-root-id_rsa.
Your public key has been saved in /home/demo/.ssh/u-root-id_rsa.pub.
The key fingerprint is:
4a:dd:0a:c6:35:4e:3f:ed:27:38:8c:74:44:4d:93:67 demo@a
The key's randomart image is:

+--[ RSA 2048]----+
|          .oo.   |
|         .  o.E  |
|        + .  o   |
|     . = = .     |
|      = S = .    |
|     o + = +     |
|      . o + o .  |
|           . o   |
|                 |
+-----------------+

Затем введите в терминале:

ssh-copy-id -i u-root-id_rsa.pub root@localmachinename

На экране вывода может отображаться:

The authenticity of host '12.34.56.78 (12.34.56.78)' can't be established.
RSA key fingerprint is b1:2d:33:67:ce:35:4d:5f:f3:a8:cd:c0:c4:48:86:12.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '12.34.56.78' (RSA) to the list of known hosts.
[email protected]'s password: 

Теперь попробуйте войти в машину с помощью «ssh».[email protected]'", и зарегистрируйтесь:

~/.ssh/authorized_keys

чтобы убедиться, что мы не добавили дополнительных ключей, которых вы не ожидали.

Теперь мы предоставили пользователю root доступ к закрытому ключу для входа в систему.

Для проверки введите:

ssh root@localmachine

Снова в терминале введите:

gedit /etc/ssh/sshd_config

перейти к строке:

PasswordAuthentication yes

и измените его на

PasswordAuthentication no

Сохрани и закрой

Затем перезапустите SSH.

service ssh restart

Он запросит парольную фразу. Парольная фраза останется прежней. Введите ее.

Теперь root сможет успешно войти в систему.

Теперь для большей безопасности нам придется добавить брандмауэр.

Тип:

apt install ufw

Теперь начинай

enable ufw

Получить список текущих запущенных процессов

ufw app list

Там будет указан OpenSSH.

ALow it through firewall
ufw allow OpenSSH

Перезапустить брандмауэр

systemctl restart ufw

Наша установка завершена.

Связанный контент