
Я хочу установить OpenSSH сервер на Ubuntu. Как это сделать?
Мне нужно сделать следующее:
Настройте сервер OpenSSH
Настройте пару публичных и закрытых ключей SSH для пользователя
Отключить вход по паролю
Включить пользователя root
Настройте пару ключей SSH (открытый и закрытый) для пользователя root
Установить пароль
решение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
Наша установка завершена.