- Первоначальная настройка VPS сервера с Ubuntu 20.04
- Пользователь с привилегиями администратора
- Брандмауэр
- Аутентификация с использованием SSH-ключей
- VPS на Ubuntu. Часть 1 — хостинг, домен, SSH.
- Требования
- Арендуем VPS у хостера
- Покупаем домен у регистратора
- Устанавливаем серверную Ubuntu 18.04
- Доступ к серверу по 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.
VPS на Ubuntu. Часть 1 — хостинг, домен, SSH.
В этом цикле статей я расскажу как создать свой VPS на Ubuntu 18.04 LTS, на котором будут работать ваш личный VPN, DNS, почтовый и прокси сервер. Также мы разместим сайт.
В первой части цикла мы рассмотрим предварительные требования и первоначальную настройку системы на базе Ubuntu 18.04 LTS. Итак, давайте начнем.
Требования
Итак, для разворачивания своего сервера нам потребуется две вещи:
Арендуем VPS у хостера
Нам подойдёт любой VPS с достаточным количеством памяти, на который можно установить серверную Ubuntu. Я разворачивал систему, включая пару сайтов на VPS с 2Gb памяти и все работало стабильно.
В настоящее время достаточно легко найти недорогую и производительную виртуальную машину за небольшие деньги. Этот провайдер, например, предлагает за 3.99 € в месяц такую конфигурацию: 2 ядра с 4Gb RAM, 300Gb SSD и безлимитный трафик на 100Mbit канале. Если вы ограничены в средствах, то рассмотрете вариант от 2.99 €. За эти деньги вы получите 1 ядро, 2GB RAM, 20Gb SSD и трафик 20Tb.
Другой вариант — облачный хостинг от Amazon или Google. Для новых пользователей есть множество бесплатных сервисов на первый год в Amazon и кредит 300$ в Google, чего вполне хватит для разных экспериментов. Если виртуальная машина нужна вам только для обучения, то ее можно включать, когда вы садитесь за компьютер, и выключать после. Тогда затраты будут буквально несколько центов, т.к. оплата начисляется только за время ее работы.
Покупаем домен у регистратора
Тут все проще. Купить можно у любого регистратора доменных имен. Например, nic.ru или reg.ru
Если вы не хотите устанавливать свой DNS сервер, то убедитесь, что регистратор предоставляет услуги настройки DNS записей. Возможно, эта услуга будет платной.
На самом деле в настройке собственного сервиса доменных имён нет ничего сложного. Я вам это покажу в дальнейшем.
Устанавливаем серверную Ubuntu 18.04
В консоли управления хостинга установите операционную систему. Я не буду полностью описывать процесс установки, а лишь коснусь моментов, которые важны для меня. Вы можете этого не делать, а выбрать параметры по умолчанию.
Во-первых, я предпочитаю устанавливать операционную систему из официального образа с сайта производителя. Как это сделать, например, для хостинга contabo.com я описал в этой статье.
Во-вторых, я обычно шифрую диск, на который устанавливаю систему, хоть это и создает некоторые неудобства при перезагрузке сервера. Для этого в настройке разметки дисков мы создадим шифрованный раздел и настроим LVM.
Далее нам потребуется задать надежную ключевую фразу.
В процессе дальнейшей установки, не забудьте установить OpenSSH. Он понадобится для удаленного доступа к нашему серверу.
После завершения установки, в процессе перезагрузки нашей виртуальной машины вы должны будете ввести пароль для доступа к зашифрованному разделу.
После этого вы попадете в консоль сервера, где можете ввести логин и пароль, но мы с вами будем настраивать удаленный доступ по SSH
Доступ к серверу по SSH
Итак, если у вас еще не созданы ключи шифрования, то для их создания выполните на своей рабочей станции следующую команду:
По умолчанию будет создана ключевая пара RSA. В процессе создания вы можете задать пароль для секретного ключа (я настоятельно рекомендую это сделать).
Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/user/.ssh/id_rsa. Your public key has been saved in /home/user/.ssh/id_rsa.pub. The key fingerprint is: SHA256:9wg3ygtSyc41e7du4qWQFSqePUPdgkMwdm8pTHK6RyU user@host The key's randomart image is: +---[RSA 3072]----+ | = E . | | . X + . | | . = = | | . = * o | | * S B . | | = O @ = | | . * X o + | | . . *.+.. | | ..o+o | +----[SHA256]-----+
После создания ключевой пары нам необходимо скопировать открытый ключ на сервер. Для этого служит утилита ssh-copy-id. В команде, указанной ниже, user — это пользователь, которого мы создали, а host — ip-адрес сервера, который вам выделил хостер.
ssh-copy-id -i ~/.ssh/id_rsa user@host
В процессе выполнения вам придется подтвердить отпечаток ключа, ответив ‘yes’ и ввести пароль пользователя сервера.
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/user/.ssh/id_rsa.pub" The authenticity of host 'ubuntu1804s (192.168.7.75)' can't be established. ECDSA key fingerprint is SHA256:BROo7rA5DVnzAOUhze/ODbrQ2iH0w+nx16w0QsRVjhk. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys user@ubuntu1804s's password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh 'user@ubuntu1804s'" and check to make sure that only the key(s) you wanted were added.
После этого мы, наконец-то, можем удаленно соединиться с нашим виртуальным сервером по протоколу SSH, выполнив следующую команду:
Попав на сервер вы увидите на экране нечто подобное:
Welcome to Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-76-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Sun Mar 22 11:49:53 MSK 2020 System load: 0.0 Processes: 105 Usage of /: 17.3% of 10.09GB Users logged in: 0 Memory usage: 6% IP address for ens3: 192.168.7.75 Swap usage: 0% Могут быть обновлены 34 пакета. 29 обновлений касаются безопасности системы. To run a command as administrator (user "root"), use "sudo ". See "man sudo_root" for details. user@ubuntu1804s:~$
Нам осталось настроить параметры безопасности sshd. Для этого откройте файл sshd_config :
sudo vim /etc/ssh/sshd_config
#PasswordAuthentication yes
PasswordAuthentication no
Тем самым мы запретим парольную аутентификацию. Вход будет возможен только по ключу.
На этом первая часть цикла подошла к концу. В следующей статье мы займемся настройкой необходимых сервисов.