Есть множество причин для установки домашнего сервера. Вы можете использовать его в качестве медиа-сервера, файлового сервера или даже локального сервера резервного копирования. По сути, любые ваши файлы, которым не обязательно быть в сети, являются хорошими кандидатами на роль домашнего сервера. Настройка домашнего сервера под управлением Linux относительно легко, особенно в наши дни. Тем не менее, обеспечение безопасности этого сервера — это совсем другая история. Безопасность может быть настолько же сложной, насколько и важной.
Читайте также: Что такое Log4Shell и как защитить от него вашу систему Linux
Устанавливайте только то, что вам абсолютно необходимо
Один из самых простых способов обеспечить безопасность домашнего сервера — это помнить о безопасности с самого начала. Это начинается с установки. Вы не уверены, нужно ли вам приложение или услуга? Не устанавливайте его. Вы всегда сможете установить его позже.
Если вы устанавливали Linux несколько раз, это еще проще. Вместо того, чтобы придерживаться настроек по умолчанию, используйте режимы, которые дают вам максимальный контроль над установкой. Иногда их называют «экспертным режимом» или че
Contents
Устанавливайте только то, что вам абсолютно необходимо
вки может сэкономить вам время на отключение служб в целях безопасности в будущем.Настроить sudo
Прежде чем перейти к каким-либо другим шагам, вам необходимо настроить sudo
. Почему? Потому что, как только мы закончим, вы войдете на свой сервер через SSH и не сможете войти в систему под учетной записью root. Чтобы внести дальнейшие изменения в вашу систему, вам потребуется использовать sudo
.
Сначала проверьте, можете ли вы уже использовать sudo
. В своей учетной записи выполните следующую команду, указав свое имя пользователя вместо ИМЯ ПОЛЬЗОВАТЕЛЯ:
sudo -lU USERNAME
Если вы увидите сообщение о том, что ваше имя пользователя может содержать «(ALL) ALL» или что-то подобное, вы готовы двигаться дальше.
Теперь, как учетная запись root на вашем сервере, запустите следующую команду, чтобы отредактировать файл «/etc/sudoers». Если вы предпочитаете другой редактор, используйте его вместо nano.
EDITOR=nano visudo
Отредактируйте файл, включив в него следующее имя пользователя вместо USERNAME:
USERNAME ALL=(ALL) ALL
Настроить SSH
Возможно, на вашем домашнем сервере уже включен SSH. Скорее всего, так оно и есть, поскольку обычно именно так вы взаимодействуете с сервером.
Сначала убедитесь, что OpenSSH установлен. Если вы используете другой дистрибутив, ваша команда будет другой, но имя пакета должно быть примерно одинаковым. В Ubuntu выполните следующее:
sudo apt install openssh-server
Использование аутентификации на основе ключей гораздо более безопасно, чем аутентификация по паролю, поэтому мы настроим SSH для работы таким образом. Для этого убедитесь, что вы работаете с клиентом, с помощью которого планируете подключаться к серверу, а не с самим сервером. Во-первых, убедитесь, что у вас еще нет ключей SSH:
ls ~/.ssh/
Если вы видите «id_rsa» и «id_rsa.pub» среди перечисленных имен файлов, у вас уже есть ключи SSH. Пропустите следующий шаг.
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Теперь скопируйте ключ SSH на свой сервер:
ssh-copy-id USERNAME@SERVER
Для домашнего сервера вы, скорее всего, будете использовать IP-адрес вместо имени. Если вы не знаете имя своего сервера, используйте свой IP-адрес вместо SERVER, указанный выше.
Теперь мы отредактируем ваши настройки SSH, чтобы повысить их безопасность. Войдите на свой сервер с клиента, на котором вы создали ключи. Это позволит вам снова войти в систему после этого шага. Выполните следующее, заменив nano
на выбранный вами редактор.
sudo nano /etc/ssh/sshd_config
Настроить SSH
со следующими настройками. Они будут расположены в разных местах файла. Убедитесь, что нет дубликатов, так как будет учитываться только первый экземпляр настройки.ChallengeResponseAuthentication no PasswordAuthentication no UsePAM no PermitRootLogin no
Теперь вам нужно перезапустить SSH-сервер с помощью одной из следующих команд.
В Ubuntu запустите:
sudo systemctl restart ssh
Читайте также: SELinux и AppArmor: каковы различия и какой из них следует использовать?
Настроить брандмауэр
В зависимости от используемых вами служб и степени подключения вашего сервера к Интернету вам может потребоваться запустить брандмауэр. Для этого есть несколько вариантов, но проверенный и надежный метод в Linux — iptables.
Настройка iptables выходит за рамки этой статьи, но не волнуйтесь. У нас есть полный руководство по настройке iptables на вашем компьютере.
Еще один более простой способ настроить брандмауэр — использовать ufw
. Установить его можно командой:
sudo apt install ufw
По умолчанию он блокирует все порты. Чтобы включить доступ онлайн и ssh, выполните следующие команды ufw, чтобы открыть порты 80, 443 и 22:
sudo ufw allow 80 sudo ufw allow 443 sudo ufw allow 22
И, наконец, включите службу ufw:
sudo ufw enable
Будьте в курсе событий
О серверах можно легко забыть, если они просто работают, но это может быть опасно. Обязательно обновляйте свое программное обеспечение. Вы можете использовать автоматические обновления , но это может быть непредсказуемо. Самый безопасный способ — запланировать регулярное еженедельное или ежемесячное обслуживание сервера, чтобы убедиться, что все в порядке.
Читайте также: Лучшие инструменты с открытым исходным кодом для защиты вашего Linux-сервера
Куда двигаться дальше
Теперь у вас есть хороший старт для защиты вашего сервера от внешних угроз. А что, если вам нужен доступ к серверу из дома? Любая открытая вами дверь потенциально может быть использована злоумышленником, а каждый открытый порт увеличивает вашу уязвимость.
Один из самых простых способов получить доступ к вашей домашней сети извне — использовать VPN, что выходит за рамки этой статьи, но не волнуйтесь, мы вас обеспечим. Ознакомьтесь с нашими список лучших безопасных VPN-сервисов , чтобы понять, какие у вас есть варианты.