Напоминаю, что сайт, который я делаю, работал у меня сначала на виртуальном хостинге. Но по нескольким причинам, связанным в основном с безопасностью, виртуальный хостинг перестал меня устраивать, и я перешёл на VPS, где прежде чем сайт заработает, нужно ещё много чего подготовить.
На данный момент я научился:
— подключаться к консоли через SSH,
— делать SSH-туннель к серверу,
— настраивать Total Commander на работу с файлами сервера через SSH-туннель.
Но этого, конечно же, мало. Если закачать файлы на сервер, то ничего особенного не произойдёт, и сайт не начнёт работать автоматически. Чтобы на сервере начал работать хоть какой-нибудь сайт, нужно установить программу веб-сервер. Но прежде чем начать эту тему, и чтобы закончить про SSH, я расскажу о повышении безопасности при работе через SSH.
Когда я захожу в консоль, то ввожу логин root и пароль, который пришёл мне по почте.
Во-первых, этот пароль нужно сразу сменить, т.к. неизвестно, пришёл он ко мне через защищённое соединение, или нет. Делается это следующей командой в консоли:
Код
passwd root
, после чего система предложит ввести новый пароль, два раза, чтобы избежать ошибки.
Так, пароль сменили. Но и это не гарантирует вероятность взлома злоумышленниками. Дело в том, что протокол SSH по умолчанию использует порт с номером 22, все компьютерщики это знают, в том числе и хакеры. Эти хакеры создают программы-боты, которые буквально ЛОМЯТСЯ на чужие серверы, т.е. многократно и бесконечно пытаются зайти на серверы через SSH, используя порт 22, логин root и тупо перебирая различные варианты пароля. Вероятность угадывания пароля, конечно, невелика, но если через пару лет это произойдёт, то для коммерческого проекта ущерб может быть просто убийственным, поэтому этот вариант нужно считать уязвимостью, и обязательно его исключать. Для этого мы можем поменять номер порта со значения 22 на любое другое в пределах от 1024 до 65535. Делается это просто...
В файле
/etc/ssh/sshd_config есть строка:
Код
Port 22
, в которой значение 22 нужно заменить на новое. После чего сохранить файл и перезапустить службу SSH с помощью ввода команды:
Код
systemctl restart ssh
Всё, теперь на нашем сервере SSH работает не на 22-м порту, а на другом, выбранном нами. Это сразу снизит количество попыток взлома от самых тупых программ-ботов. Однако, боты поумнее могут определить, какие порты у сервера открыты, и всё равно найдут номер нашего порта. В этом можно не сомневаться, т.к. есть даже сайты, на которых можно быстро узнать, какие порты открыты на моём сервере. Например, вот на этом сайте
http://www.t1shopper.com/tools/port-scan/ можно выбрать диапазон портов, просканировать свой сервер, и найти там порт, который отвечает. Поэтому одним только изменением номера порта здесь не обойтись. Что ещё мы можем изменить? Логин! То есть, нужно создать новую учётную запись пользователя с другим именем, которое никто не знает. Например, с именем kamikadze9705. Для этого вводим в консоли следующую команду:
Код
adduser kamikadze9705
, после чего система предложит ввести пароль, два раза, как обычно, а также предложит ввести полное имя, номер комнаты, рабочий телефон, домашний телефон и "другое". Всё это, кроме пароля, можно не заполнять, оставлять пустым и просто нажимать Enter. Таким образом будет создана новая учётная запись пользователя kamikadze9705, под которым теперь можно зайти через SSH. Но изначально новый пользователь лишён возможности выполнять администрирование сервера, и чтобы дать ему такую возможность, нужно написать в консоли:
Код
usermod -aG sudo kamikadze9705
Это означает, что пользователя kamikadze9705 нужно добавить в группу
sudo, которая как раз и даёт право действовать от имени администратора. Всё, теперь наш новый пользователь стал полноценным, и можно пробовать зайти им на сервер через программу PuTTY. Только нужно не забыть, что мы сменили 22-й номер порта на новый, и изменить его в настройках программы, иначе зайти не получится. Меняем порт и заходим с новым логином и паролем. А теперь внимание! Любому другому пользователю, кроме root, перед вводом администраторских команд, нужно писать слово "
sudo". То есть, из-под пользователя root мы писали:
Код
apt install vsftpd
, а из-под любого другого пользователя, нужно писать:
Код
sudo apt install vsftpd
И кроме этого, система ещё и попросит ввести пароль (пароль этого пользователя, а не root-а). Это, конечно, неудобно, но так нужно для обеспечения безопасности сервера.
Итак, мы зашли на сервер под новым пользователем. Но ведь старый пользователь, root, никуда не делся, и под ним тоже можно зайти. А мы для безопасности хотели, чтобы было нельзя. Значит, пользователя root нужно как-то удалить. Но удалить его в системе невозможно, а возможно только отключить. Делается это удалением пароля. И если мы выполняем администраторские команды, привыкаем каждый раз в начале строки писать слово
sudo, а также вводить свой пароль:
Код
sudo passwd -l root
, вводим пароль, и пользователь root отключен. Чтобы убедиться в этом, пробуем зайти на сервер под root-ом, и странное дело, радуемся, когда у нас это не получается

Всё, теперь программы-злоумышленники тоже не смогут зайти под стандартным логином root. А смогут зайти только если угадают И логин, И пароль одновременно, что уже практически нереально, а значит, мы с вами можем спать спокойно.
Теперь снова входим под нашим камикадзой и пишем в консоли следующее:
Код
sudo apt update
При этом система обновляет информацию о доступных обновлениях и сообщает нам в ответ, сколько пакетов может быть обновлено. Затем мы пишем:
Код
sudo apt upgrade
При этом система запускает обновление и просит нас подтвердить данную операцию. Подтверждаем нажатием клавиши "Y" и видим, как по экрану побежало много букв. Это началось обновление системы, чтобы на нашем сервере работали самые последние, самые безопасные и самые модные версии программ. Ждём минут 5. Теперь, для упрощения работы на сервере, устанавливаем чудо-программу, которая сделает нашу консоль намного более наглядной и удобной. Эта программа называется Midnight Commander. Ничего не напоминает?

Устанавливается она как обычно:
Код
sudo apt install mc
, после чего запускается:
Код
mc
В первый раз эту программу нужно запускать именно так и именно от любого другого пользователя, кроме root. После чего можно выходить из неё нажатием клавиши F10 и запускать в администраторском режиме, чтобы были доступны все возможности:
Код
sudo mc
Если Вы уже смирились с тем, что работать на сервере можно только через командную строку, то увидев эту программу Вы будете удивлены. Она похожа на программу Total Commander, только более простую её версию, но всё равно это намного лучше, чем просто командная строка. Здесь можно лазать по каталогам файловой системы, смотреть, какие файлы там лежат, открывать их для просмотра клавишей F3, открывать их для редактирования клавишей F4, копировать клавишей F5, перемещать F6, создавать новые каталоги F7, удалять F8, и радоваться, радоваться, радоваться, как легко и быстро мы поменяли, поперемещали и поудаляли много разных файлов, которые были нужны для работы нашего сервера!

Что ещё раз подтверждает общий закон нашей жизни:
больше свободы — больше ответственности.
Продолжение следует...