Настройка Ubuntu Server
Введение
После того, как вы установили Ubuntu Server 16.04 LTS, необходимо сделать несколько простых шагов для первоначальной настройки. Это сделает дальнейшую работу на сервере более удобной, а так же сделает сервер более безопасным.
Подключение от имени 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
Заключение
На этом первоначальная настройка сервера завершена. Теперь вы можете устанавливать любое программное обеспечение, которое вам нужно.
Другие статьи
Времена, когда охранные системы для дома были доступны лишь богатым клиентам, постепенно уходят в прошлое.
Среди «умных» термостатов есть явный лидер — Nest.
Рынок "умных" вещей молодой и в отличие от многих других отраслей на нем практически еженедельно появляются новые и очень интересные продукты.
Система домашней автоматизации предназначена, чтобы управлять другими системами - инженерными и развлекательными.
Среди «умных» термостатов есть явный лидер — Nest.
Рынок "умных" вещей молодой и в отличие от многих других отраслей на нем практически еженедельно появляются новые и очень интересные продукты.