- Первоначальная настройка VPS сервера с Ubuntu 20.04
- Пользователь с привилегиями администратора
- Брандмауэр
- Аутентификация с использованием SSH-ключей
- Начальная настройка Ubuntu 22.04
- 1: Root-логин
- Что такое root?
- 2: Создание нового пользователя
- 3: Привилегии администратора
- 4: Настойка брандмауэра
- 5: Проверка доступа к новому пользователю
- Парольная аутентификация
- Аутентификация по SSH-ключам
- Заключение
Первоначальная настройка VPS сервера с Ubuntu 20.04
Вы установили на VPS чистую операционную систему, и теперь важно выполнить несколько действий по запуску вашего сервера. Ниже, о том как производиться первоначальная настройка VPS сервера с Ubuntu 20.04. Эти настройки помогут сделать вашу работу с сервером более комфортной, а защиту ваших данных более надёжной.
Пользователь с привилегиями администратора
При установке операционной системы вы получаете доступ к ней при помощи учётной записи, имеющей права суперпользователя. Имя этого пользователя – root, и он в вашей системе, что называется, “может всё”. Регулярно производить запуск инструкций, зарегистрировавшись в системе учётной записью root, весьма неосмотрительно с точки зрения безопасности. Именно поэтому, необходимо создать учётную запись с ограниченными правами для её использования в повседневной работе.
Для создания нового пользователя введите команду:
В данном случае, newuser – имя нового пользователя, вместо которого вы, конечно же можете использовать какое-то своё.
Далее, необходимо созданного пользователя добавить в группу sudo , члены которой могут запускать инструкции с привилегиями администратора при помощи утилиты sudo :
Теперь, подключившись к системе данной учётной записью, вы сможете запускать команды на исполнение, и они будут исполняться с правами администратора:
Ну, а если вы имеете возможность выполнять команды без использования root’а, то логично было бы закрыть доступ по SSH пользователю root. Для этого откройте для редактирования конфигурационный файл SSH, например, с помощью редактора nano :
$ sudo nano /etc/ssh/sshd_config
Снимите комментарий перед строкой PermitRootLogin , установите в этой строке значение no , сохраните изменения и закройте файл (если вы используете nano , нажмите Ctrl+X , Y и Enter ).
Для вступления изменений в силу может потребоваться перезапуск сервиса SSH:
Брандмауэр
Для управления межсетевым экраном в операционных системах семейства Linux часто используется утилита iptables. Упрощённым её интерфейсом для настройки брандмауэра является Uncomplicated Firewall или UFW.
Для открытия доступа к серверу со стороны какого-либо приложения, необходимо выдать разрешение этому приложению на доступ, зарегистрировав его в UFW. Список приложений знакомых утилите UFW можно посмотреть набрав команду:
Чтобы разрешить подключение к системе какому-нибудь приложению или протоколу, например, SSH , используйте инструкцию:
Если брандмауэр отключен, его нужно включить:
Теперь вы можете настроить данный межсетевой экран так, чтобы он ограничивал доступ к вашему VPS в соответствии с вашими требованиями. Например, вы можете разрешить доступ к нему с одного определённого IP-адреса:
$ sudo ufw allow from
XXX.XXX.XXX.XXX
Или из определённой подсети:
$ sudo ufw allow from XXX.XXX.XXX.0/24
Так же есть возможность ограничить подключения к серверу определённым IP-адресом, при этом разрешив подключение только к определённому порту. Так например, чтобы открыть доступ только к порту 22, то есть только подключение по SSH, используйте команду:
$ sudo ufw allow from
XXX.XXX.XXX.XXX
to any port 22
Если же вы не хотите ограничиваться подключениями только с определённых адресов, вы можете защитить вашу систему установив запрет на соединения с IP-адресов, с которых происходит больше пяти попыток подключиться за последние полминуты. Запустить такую схему защиты можно командой:
Аутентификация с использованием SSH-ключей
Авторизация пользователей при помощи SSH-ключей может значительно повысить уровень безопасности вашего VPS. Если вы планируете использовать такой вариант аутентификации, придётся выполнить несколько несложных действий.
Сначала необходимо сгенерировать этот SSH-ключ. Для чего на локальной рабочей станции (не на сервере) в командной строке нужно набрать:
В процессе генерации ключа вы можете изменить имя файла ключа и его каталог, а также его пароль passphrase , а можете оставить эти настройки по умолчанию:
Далее, созданный ключ необходимо скопировать на сервер. Для чего нужно:
Подключиться к вашему VPS по SSH:
ssh newuser@your-server-IP-address
Убедиться, что вы находитесь в вашей домашней директории:
Или перейти в вашу домашнюю директорию, если вы не в ней:
Теперь создайте каталог .ssh :
Убедитесь, что каталог создан:
И установите для него соответствующие права:
Перейдите в созданный каталог:
И там создайте файл с именем authorized_keys и с правами 600 :
$ touch authorized_keys $ chmod 600 authorized_keys
Теперь необходимо открыть его для редактирования. Для использовании редактора nano введите:
$ sudo nano authorized_keys
Теперь на своей локальной машине найдите файл, в который вы сохранили SSH-ключ (имя этого файла – id_rsa.pub ), откройте его удобным для вас текстовым редактором и скопируйте всё его содержимое (не копируйте при этом пробелы, стоящие после последнего символа).
Скопированный текст нужно вставить в открытый на сервере файл authorized_keys , после чего сохранить изменения в файле и закрыть его (если вы используете nano , нажмите Ctrl+X , Y и Enter ).
Чтобы убедиться, что изменения в файле сохранились, наберите команду:
На этом настройка аутентификации с использованием SSH-ключа завершена. Теперь авторизация на сервере по SSH будет осуществляться без пароля.
Но и это не всё. Вы можете вообще закрыть доступ к VPS через пароль. Для этого откройте для редактирования конфигурационный файл SSH:
$ sudo nano /etc/ssh/sshd_config
Найдите и раскомментируйте строку PasswordAuthentication , установите её значение в no . После чего, не забудьте сохранить изменения в файле, перед тем как его закрыть (если вы используете nano , нажмите Ctrl+X , Y и Enter ).
Для вступления изменений в силу перезапустите службу SSH:
Теперь вы знаете, как производится первоначальная настройка VPS сервера с Ubuntu 20.04.
Начальная настройка Ubuntu 22.04
Когда вы впервые запускаете свежий сервер Ubuntu 22.04, вы должны выполнить его начальную настройку, чтобы обеспечить надежную основу для его работы. В этом руководстве мы расскажем, что нужно сделать, чтобы повысить безопасность и удобство работы вашего сервера.
1: Root-логин
Чтобы войти на сервер, вам нужен ваш внешний IP-адрес. Кроме того, для аутентификации понадобится пароль или закрытый ключ пользователя root (если вы настроили аутентификацию по SSH).
Авторизуйтесь как пользователь root, указав в команде внешний адрес вашего сервера.
Вам нужно принять предупреждение о подлинности хоста, если такое появилось на экране. Если вы авторизуетесь по паролю, укажите пароль root, чтобы войти в систему. При авторизации по SSH-ключам, которые защищены парольной фразой, система запросит ее сейчас (в дальнейшем она будет запрашивать ее при первом вводе ключа в текущей сессии).
Во время первого входа на новый сервер система также предложит вам сменить свой root-пароль.
Что такое root?
Root-пользователь является администратором среды Linux, он обладает очень широкими привилегиями. Поэтому аккаунт root не рекомендуется использовать для обычной работы. Среди полномочий root есть и такие, которые могут при неправильном (даже случайном) использовании разрушить систему.
Для постоянной работы лучше создать нового пользователя с ограниченными привилегиями.
Сейчас мы расскажем, как создать такого пользователя, а потом – как получить расширенные привилегии и применять их в правильные моменты.
2: Создание нового пользователя
Когда вы залогинились как root, вы получаете возможность создавать новых пользователей. В будущем мы будем входить в систему не как root, а как новый пользователь.
В этом примере мы создаем нового пользователя по имени 8host (укажите любое другое имя).
Система задаст вам пару вопросов, в том числе предложит выбрать пароль.
Введите надежный пароль и по желанию предоставьте любую дополнительную информацию (ее вводить не обязательно, и вы можете просто нажать Ввод, чтобы пропустить поле).
3: Привилегии администратора
Итак, у вас есть новый пользователь со стандартными привилегиями. Но в повседневной работе иногда необходимы привилегии администратора.
Чтобы вам не приходилось постоянно прыгать между пользователями, вы можете настроить расширенные привилегии для вашего стандартного аккаунта. Тогда ваш обычный пользователь сможет запускать команды как администратор. Для этого перед командой нужно добавить sudo.
Чтобы получить возможность использовать sudo, вам нужно добавить нового пользователя в системную группу sudo. В Ubuntu 22.04 расширенные привилегии по умолчанию получают все пользователи, которые входят в эту группу.
Как root запустите следующую команду, чтобы добавить нового пользователя в группу sudo. Не забудьте указать правильное имя.
Теперь ваш новый пользователь имеет доступ к команде sudo.
4: Настойка брандмауэра
Чтобы ограничить трафик и поддерживать подключения только к конкретным сервисам, система Ubuntu 22.04 использует брандмауэр UFW.
Приложения могут при установке регистрировать в UFW свои профили. Они позволяют UFW управлять этими приложениями по именам. К примеру, OpenSSH – приложение, через которое вы подключаетесь к своему серверу – тоже имеет свой профиль в UFW.
Чтобы увидеть список доступных профилей, введите:
Available applications:
OpenSSH
Чтобы вы могли войти на сервер в следующий раз, нужно убедиться, что брандмауэр поддерживает SSH-соединения. Для этого введите:
Теперь включите брандмауэр, набрав:
Нажмите у и Ввод, чтобы продолжить. Чтобы подтвердить, что соединения SSH поддерживаются, введите:
Вы получите такой результат:
Status: active
To Action From
— —— —-
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
В настоящее время брандмауэр блокирует все подключения, кроме SSH. Если вы хотите установить и настроить дополнительные сервисы, вам необходимо разрешить их входящий трафик в брандмауэре.
5: Проверка доступа к новому пользователю
Теперь, когда у вас есть обычный пользователь, вы должны убедиться, что можете войти в эту учетную запись по SSH.
Примечание: Пока вы не убедитесь, что можете войти в систему и использовать sudo в сессии нового пользователя, не выходите из сессии root. Если у вас возникнут проблемы при подключении, вы сможете устранить все неполадки с правами администратора.
Настройка SSH-доступа нового пользователя зависит от того, какую аутентификацию использует root – пароль или SSH-ключи.
Парольная аутентификация
Если вы вошли в свою учетную запись root с помощью пароля, значит, SSH поддерживает парольную аутентификацию. Чтобы подключиться по SSH к новому пользователю, откройте новую сессию терминала и используйте команду ssh с именем этого пользователя:
Введите пароль этого пользователя, и вы попадете в систему. Помните: чтобы запустить команду с правами администратора, нужно добавить sudo:
При первом запуске команды sudo в каждой сессии (и иногда при запуске других команд) вам нужно будет ввести пароль пользователя.
Чтобы повысить безопасность сервера, рекомендуем настроить SSH-ключи вместо парольной аутентификации. Следуйте руководству Установка SSH-ключей в Ubuntu 22.04.
Аутентификация по SSH-ключам
Если вы подключились к root через SSH-ключи, скорее всего, парольная аутентификация отключена. В таком случае вам нужно добавить копию открытого ключа в файл ~/.ssh/authorized_keys вашего нового пользователя, чтобы у него был доступ к системе.
Поскольку открытый ключ уже находится на сервере в аккаунте пользователя root, вы можете скопировать его в учетную запись нового пользователя в текущем сеансе.
Проще всего это сделать с помощью команды rsync. Команда скопирует каталог .ssh пользователя root, сохранит привилегии, но изменит его владельца. Вместо 8host укажите имя вашего пользователя.
Примечание: Команда rsync обрабатывает пути, которые заканчиваются косой чертой, иначе, чем те, у которых нет косой черты в конце. При запуске rsync убедитесь, что в исходном каталоге (~/.ssh) вы случайно не поставили косую черту (путь не должен выглядеть так: ~/.ssh/).
Если вы случайно добавите слеш в команду, rsync скопирует содержимое каталога ~/.ssh пользователя root в домашний каталог пользователя sudo вместо того, чтобы скопировать всю структуру каталога ~/.ssh. Файлы будут находиться в неправильном месте, и SSH не сможет их найти.
rsync —archive —chown=8host:8host ~/.ssh /home/8host
Откройте новое окно терминала на локальном компьютере и введите:
Вы должны без пароля войти в учетную запись нового пользователя. Помните, чтобы запустить команду с правами администратора, нужно перед ней поставить sudo:
При первом запуске sudo в каждой сессии (а также иногда при запуске других команд) система попросит вас ввести пароль текущего пользователя.
Заключение
Готово, начальная настройка сервера завершена, он готов к установке нового программного обеспечения и к разработке приложений. Основные компоненты серверной среды настроены, и теперь можно оптимизировать работу системы.