Существует множество причин для настройки домашнего сервера.
Вы можете использовать его как медиа-сервер, файловый сервер или даже локальный сервер резервного копирования.
По сути, любые файлы, которые вам не нужны, являются хорошими кандидатами для домашнего сервера.
Настроить домашний сервер на базе Linux относительно легко, особенно в наши дни.
Тем не менее, обеспечение безопасности этого сервера – это совсем другая история.
Безопасность может быть сложной, но это все очень важно.
Стоит понимать и осознавать свои силы и технические знания при сопровождении серверов.
Благо, это сопровождение можно отдать на аутсорс в пределах СНГ, например настройка и администрирование серверов в Украине не является проблемой у сторонней организации.
Всегда всю головную боль можно отдать в руки опытных профессионалов.
В любом случае – решать вам!
Установите только то, что вам абсолютно необходимо
Один из самых простых способов обеспечить безопасность вашего домашнего сервера.
Он начинается с установки.
Вы не уверены, что вам нужно приложение или служба?
Не устанавливайте его/ее.
Вы всегда можете установить его позже.
Если вы устанавливали Linux несколько раз, это еще проще.
Вместо того, чтобы придерживаться настроек по умолчанию, используйте режимы, которые дают вам максимальный контроль над установкой.
Иногда это «экспертный режим» или что-то подобное.
Тщательное отслеживание параметров установки может сэкономить ваше время на отключение служб по соображениям безопасности позже.
Настройка sudo
Прежде чем перейти к другим шагам, вам нужно настроить sudo.
Почему?
Потому что, как только вы закончите с установкой, вы войдете в свой сервер через SSH, и вы не сможете войти в систему с учетной записью root.
Чтобы внести дальнейшие изменения в вашу систему, вам нужно использовать sudo.
Сначала проверьте, готовы ли вы использовать sudo.
Под вашей учетной записи пользователя введите следующее с вашим именем пользователя вместо USERNAME:
sudo -lU USERNAME
Если вы видите сообщение о том, что ваше имя пользователя может выполнять «(ALL) ALL» , а может “User ITSECFORU may run the following commands on PC” или что-то подобное, вы готовы двигаться дальше.
Теперь в качестве учетной записи 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 "youremail@domain.com"
Теперь вы скопируете ключ SSH на свой сервер:
ssh-copy-id USERNAME@SERVER
Для домашнего сервера вы можете использовать IP-адрес для вашего сервера вместо имени.
Если вы не знаете имя своего сервера, используйте ваш IP-адрес вместо SERVER выше.
Теперь мы отредактируем настройки SSH, чтобы защитить их еще больше.
Войдите на свой сервер с клиента, на котором вы создали ключи.
Это позволит вам снова войти в систему после этого шага.
Запустите следующее, заменив nano редактором по вашему выбору.
sudo nano /etc/ssh/sshd_config
Отредактируйте файл со следующими настройками.
Этот тезис может быть расположен в разных местах в файле.
Убедитесь, что нет дубликатов, так как будет активирован первый экземпляр настройки.
ChallengeResponseAuthentication no PasswordAuthentication no UsePAM no PermitRootLogin no
Теперь вам нужно перезапустить сервер SSH с помощью одной из следующих команд.
В Ubuntu запустите:
sudo systemctl restart ssh
Настройте брандмауэр
В зависимости от того, какие службы вы используете, и насколько ваш сервер подключен к Интернету, вы можете использовать брандмауэр.
Есть несколько вариантов для этого, но проверенный и надежный метод в 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
Будьте в курсе обновлений
О серверах легко забыть, если они просто работают, но это может быть опасно.
Убедитесь, что вы обновляете свое программное обеспечение.
Вы можете использовать автоматические обновления, но они могут быть непредсказуемыми.
Самый безопасный способ – запланировать регулярное еженедельное или ежемесячное обслуживание сервера, чтобы убедиться, что все в порядке.
Куда идти дальше
Теперь у вас есть хорошее начало для защиты ваших серверов от внешних угроз.
Что если вам нужен доступ к вашему серверу из дома?
Каждая дверь, которую вы открываете, может стать более уязвимой.
Один из самых простых способов получить доступ к вашей домашней сети – это использовать VPN, которая выходит за рамки этой статьи, но не волнуйтесь, мы вам поможем.
Взгляните на наш список лучших безопасных услуг VPN, доступных для ваших вариантов.
- ?️ 5+ лучших инструментов VPN с открытым исходным кодом
- ?️ Какой VPN лучше купить? Сравнительная таблица VPN