После того как установлен Ubuntu Server необходимо его настроить
Вот что рекомендуется сделать:
Установите базовые программы
_x000D_apt install aptitude mc nano htop iftop bwm-ng iperf iperf3 iotop tmux screen openntpd sshfs net-tools dnsutils iftop tshark iptrafОграничьте размер логов systemd
Создайте папку
_x000D_mkdir -p /var/log/journalПропишите в /etc/systemd/journald.conf строчку:
_x000D_SystemMaxUse=10G Это строчка ограничивает максимальный размер логов в 10 гигабайт.
Перезагрузите конфигурацию systemd:
_x000D_journalctl --flush_x000D_systemctl daemon-reloadМожно также в крон прописать строчку:
_x000D_1 */12 * * * journalctl --vacuum-time=30d --vacuum-size=10GОна будет оставлять логи за 30 дней
Создайте скрипт приветствия /etc/profile.d/01-locale.sh
_x000D_LANG=en_US.UTF-8_x000D_LANGUAGE=en_US:en_x000D_LC_CTYPE="en_US.UTF-8"_x000D_LC_NUMERIC="en_US.UTF-8"_x000D_LC_TIME="en_US.UTF-8"_x000D_LC_COLLATE="en_US.UTF-8"_x000D_LC_MONETARY="en_US.UTF-8"_x000D_LC_MESSAGES="en_US.UTF-8"_x000D_LC_PAPER="en_US.UTF-8"_x000D_LC_NAME="en_US.UTF-8"_x000D_LC_ADDRESS="en_US.UTF-8"_x000D_LC_TELEPHONE="en_US.UTF-8"_x000D_LC_MEASUREMENT="en_US.UTF-8"_x000D_LC_IDENTIFICATION="en_US.UTF-8"_x000D_LC_ALL="en_US.UTF-8"_x000D_export LANG_x000D_export LANGUAGE_x000D_export LC_CTYPE_x000D_export LC_NUMERIC_x000D_export LC_TIME_x000D_export LC_COLLATE_x000D_export LC_MONETARY_x000D_export LC_MESSAGES_x000D_export LC_PAPER_x000D_export LC_NAME_x000D_export LC_ADDRESS_x000D_export LC_TELEPHONE_x000D_export LC_MEASUREMENT_x000D_export LC_IDENTIFICATION_x000D_export LC_ALLСоздайте файл /etc/profile.d/01-editor.sh
_x000D_export EDITOR=nanoВместо кодировки en_US.UTF-8 укажите свою кодировку. Список установленных кодировок можно посмотреть через команду locale -a .
Создание пользователя
Инструкцию нужно выполнить, если пользователь не создан.
Создайте пользователя ubuntu
_x000D_useradd ubuntuПоставьте пароль от рута:
_x000D_passwd ubuntuУстановите shell bash для нового пользователя
_x000D_usermod -s /bin/bash ubuntuСоздайте домашнюю папку:
_x000D_mkdir -p /home/ubuntu_x000D_chown -R ubuntu:ubuntu /home/ubuntuНастройка sudo без пароля
Сделайте sudo su -l без ввода пароля
Добавьте группу wheel и в нее пользователя user
_x000D_groupadd -r wheel_x000D_usermod -a -G wheel ubuntuв /etc/sudoers добавьте строчку
_x000D_%wheel ALL=(ALL:ALL) NOPASSWD: ALLПопробуйте залогиниться к серверу через отдельный терминал. И сделать sudo su -l.
Настройка ssh
Настройте ssh (По желанию)
В конфиге /etc/ssh/sshd_config измените строчки:
Порт, следует изменить на нестандартный. например:
_x000D_Port 22050Запретить авторизацию через root по паролю, только через ключ
_x000D_PermitRootLogin prohibit-passwordлибо, вообще запретить заходить под рутом (запрещать заходить по рутом не рекомендуется, т.к. вы не сможете потом сделать rsync под рутом)
_x000D_PermitRootLogin noТакже можете указать:
_x000D_ClientAliveInterval 5_x000D_ClientAliveCountMax 1000Это позволит держать открытым ssh соединение 5000секунд при отсутствии активности. Это нужно, например, если вы используете sftp для редактирования файлов, и редактор переодически теряет соединение. Если такое происходит то нужно увеличить параметр ClientAliveCountMax, а интервал ClientAliveInterval поставить в 5сек
Разрешить авторизацию только определенным пользователям, укажите в самом конце файла:
_x000D_AllowUsers root ubuntuСделайте перезапуск сервиса ssh
_x000D_service sshd reloadПопробуйте залогиниться к серверу через отдельный терминал.
Настройка iptables
Установите iptables
_x000D_aptitude install iptables-persistentПри работе с iptables будьте осторожны. Одно неверное движение и доступ к серверу может быть заблокирован!!!
Обратите на порт SSH. Укажите свой порт, вместо 22050.
Пропишите в /etc/iptables/rules.v4 следующее содержимое:
_x000D_*filter_x000D_:INPUT ACCEPT [19:913]_x000D_:FORWARD ACCEPT [0:0]_x000D_:OUTPUT ACCEPT [39:3584]_x000D_:ALLOW-INPUT - [0:0]_x000D_:f2b-sshd - [0:0]_x000D__x000D_-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT_x000D_-A INPUT -p icmp -j ACCEPT_x000D_-A INPUT -i lo -j ACCEPT_x000D__x000D_# Fail2Ban SSH_x000D_#-A INPUT -p tcp -m multiport --dports 22 -j f2b-sshd_x000D__x000D_# Разрешаем входящие соединения ssh_x000D_-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT_x000D_-A INPUT -p tcp -m state --state NEW -m tcp --dport 22050 -j ACCEPT_x000D__x000D_# Перейти к цепочке ALLOW-INPUT_x000D_-A INPUT -j ALLOW-INPUT_x000D__x000D_# Запрещаем остальные входящие соединения_x000D_-A INPUT -j REJECT_x000D_-A FORWARD -j REJECT_x000D__x000D_# Разрешить http_x000D_-A ALLOW-INPUT -p tcp -m tcp --dport 80 -j ACCEPT_x000D_-A ALLOW-INPUT -p tcp -m tcp --dport 443 -j ACCEPT_x000D__x000D_-A ALLOW-INPUT -j RETURN_x000D__x000D_# Fail2ban_x000D_-A f2b-sshd -j RETURN_x000D__x000D_COMMITОбязателен ENTER в конце (перевод на новую строку).
Скопируйте rules.v4 в rules.v6
_x000D_cp /etc/iptables/rules.v4 /etc/iptables/rules.v6Установите новые правила iptables
_x000D_iptables-restore < /etc/iptables/rules.v4_x000D_ip6tables-restore < /etc/iptables/rules.v6Чтобы добавлять новые правила в iptables, например, тот же nginx нужно редактировать файл. Также вы можете выполнить команды
_x000D_iptables -I ALLOW-INPUT -p tcp -m tcp --dport 80 -j ACCEPT_x000D_iptables -I ALLOW-INPUT -p tcp -m tcp --dport 443 -j ACCEPTОни добавят в начало цепочки ALLOW-INPUT два новых правила, но при этом файл не изменят.
Настройка времени
Настройте автоматическое обновление времени
_x000D_cp /etc/openntpd/ntpd.conf /etc/openntpd/ntpd.orig.conf_x000D_echo "servers pool.ntp.org" > /etc/openntpd/ntpd.confПосмотрите список часовых поясов:
_x000D_timedatectl list-timezonesИзмените часовой пояс:
_x000D_timedatectl set-timezone Asia/AlmatyПрочие настройки
Выключите mlocate.
Это ненужная служба, которая индексирует все файлы, и нагружает диск бесполезным IO.Удалите файл /etc/cron.daily/mlocate. Либо в начале этого файла пропишите exit 0
_x000D_#! /bin/bash_x000D__x000D_exit 0Перезагрузка сервера
Подключитесь к ssh с другого терминала. Если соединение происходит упешно, перезагрузите сервер. И попробуйте подключить еще раз.