Заметки сисадмина

Настройка Ubuntu Server

Введение После того, как вы установили Ubuntu Server 16.04 LTS, необходимо сделать несколько простых шагов для первоначальной настройки. Это сделает дальнейшую работу на сервере более удобной, а так же сделает сервер более безопасным.

Настройка Ubuntu Server

Подключение от имени root Первым делом, вам нужно подключиться к серверу по SSH от имени root.
Откройте терминал и выполните команду:

$ ssh root@server_ip

При успешном подключении вы увидите приветствие и краткие сведения о системе.

Создание пользователя Так как постоянное использование учетной записи root не безопасно, то следующее, что вам нужно будет сделать – добавить нового пользователя и дать ему root привилегии.
Создадите нового пользователя. В данном примере создается пользователь с именем joe. Можете заменить его на любое другое.

# adduser joe

Придумайте пароль, а так же можете указать дополнительную информацию, как, например, настоящее имя.
Далее добавьте пользователя в группу sudo, чтобы он мог выполнять действия с привилегиями root:

# adduser joe sudo

Теперь для дальнейшей работы, вы уже можете использовать новую учетную запись.
Выполните следующую команду, чтобы переключиться на нового пользователя:

# su - joe

Генерация SSH ключа На данном этапе вам нужно будет сгенерировать SSH ключ. Ключ состоит из 2 файлов: приватный, который находится на вашей машине и публичный, который будет нужно загрузить на сервер.
Если SSH ключа у вас нет – вам необходимо его сгенерировать. В ином случае – пропустите этот шаг и переходите к следующему.
И так, вам необходимо сгенерировать SSH ключ. Для этого выполните следующую команду (заменив joe@example.com на ваш email):

$ ssh-keygen -t rsa -b 4096 -C "joe@example.com"

Далее вас попросят указать путь для сохрания ключа. Тут можно просто нажать Enter (будет выбран путь по умолчанию).
Затем придумайте пароль для вашего ключа. Введите его и на этом создание SSH ключа закончено.

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

Вариант 1: Используя ssh-copy-id На локальной машине выполните следующую команду:

$ ssh-copy-id joe@server_ip

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

Вариант 2: Вручную 1. Создадите в корне вашего пользователя каталог .ssh и задайте необходимые права.

$ mkdir ~/.ssh
$ chmod go-rx ~/.ssh

2. Внутри каталога .ssh создайте файл authorized_keys. Например, используя редактор nano:

$ nano ~/.ssh/authorized_keys

Вставьте в него содержимое публичного ключа.
Нажмите CTRL-x для того, чтобы выйти из редактора, затем y, чтобы сохранить изменения, затем ENTER для подтверждения. Далее установите необходимы права на файл, чтобы доступ к файлу с ключами был только у его владельца. Для этого выполните следующую команду:

$ chmod go-r ~/.ssh/authorized_keys

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

Настройка SSH сервера На данном этапе необходимо выполнить несколько изменений в конфигурации SSH сервера, которые сделают его более безопасным.
Для этого откройте файл /etc/ssh/sshd_config:

$ sudo nano /etc/ssh/sshd_config

1. Изменение стандартного порта.
Первым делом, измените стандартный порт. Чтобы боты не пытались подключиться к вашему серверу и не засоряли тем самым лог.
Для этого измените значение Port на что-нибудь нестандартное, например:

Port 2222

2. Запрещение удаленного доступа для root.
Так как для работы на сервере вы будете использовать учетную запись обычного пользователя, то подключаться к серверу через SSH от имени root необходимости нет.
Выставите значение для PermitRootLogin в no.

PermitRootLogin no

3. Отключение парольной аутентификации.
Так как при использовании SSH ключей у вас нет необходимости в аутентификации по паролям – отключите ее.
Выставите значения для PasswordAuthentication в no.

PasswordAuthentication no

Так же убедитесь в том, что ваш сервер использует 2 версию протокола.

Protocol 2

После всех изменений сохраните файл и перезагрузите настройки SSH сервера, чтобы изменения вступили в силу.

$ sudo systemctl reload ssh.service

Если все сделано верно, то при попытке подключиться на стандартный порт 22 вы увидите следующую ошибку:

ssh: connect to host server_ip port 22: Connection refused

А при попытке подключится от имени root (уже на новый порт):

Permission denied (publickey).

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

$ ssh joe@server_ip -p 2222

Настройка Firewall UFW (Uncomplicated Firewall) – простой файрволл, который представляет из себя утилиту для более удобного управления iptables. Если в вашей системе его нет, то установите его командой:

$ sudo apt install ufw

Для начала проверьте статус файрволла:

$ sudo ufw status

Статус должен быть inactive.

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

Настройте правила таким образом, чтобы по умолчанию были запрещены все входящие запросы. Для этого выполните:

$ sudo ufw default deny incoming

А так же разрешите все исходящие:

$ sudo ufw default allow outgoing

Добавьте новое правило, чтобы были разрешены входящие запросы на SSH порт (в нашем случае 2222).

$ sudo ufw allow 2222/tcp

Далее включите файрволл командой:

$ sudo ufw enable

Проверить статус файрволла и его правил можно командой:

$ sudo ufw status

Для более подробной информации нужно использовать команду:

$ sudo ufw status verbose

Заключение На этом первоначальная настройка сервера завершена. Теперь вы можете устанавливать любое программное обеспечение, которое вам нужно.

Комментарии
Максим Орлов

Ваш покорный слуга - компьютерщик широкого профиля: системный администратор, вебмастер, интернет-маркетолог и много чего кто. Вместе с Вами, если Вы конечно не против, разовьем из обычного блога крутой технический комплекс.

Оставить комментарий

Ваш Email адрес не будет опубликован. Все обязательные поля обозначены *