Есть множество причин для установки домашнего сервера. Вы можете использовать его как медиа-сервер, файловый сервер или даже локальный сервер резервного копирования. По сути, любые ваши файлы, которые не должны находиться в сети, являются хорошими кандидатами на домашний сервер. Настроить домашний сервер на базе Linux относительно просто, особенно в наши дни. Тем не менее, обеспечение безопасности этого сервера - это совсем другая история. Безопасность может быть настолько же сложной, насколько и важной.
Устанавливайте только то, что вам абсолютно необходимо
Один из самых простых способов обеспечить безопасность домашнего сервера - это помнить о безопасности с самого начала. Это начинается с установки. Вы не уверены, нужно ли вам приложение или услугу? Не устанавливайте это. Вы всегда можете установить его позже.
Если вы установили Linux несколько раз, это будет еще проще. Вместо того, чтобы придерживаться настроек по умолчанию, используйте режимы, которые дают вам максимальный контроль над установкой. Иногда их называют "экспертным режимом" или чем-то подобным.
Тщательное отслеживание параметров установки поможет вам сэкономить время, отключая службы по соображениям безопасности позже.
Настроить sudo
Прежде чем переходить к другим шагам, необходимо настроить sudo
. Почему? Потому что, как только мы здесь закончим, вы войдете на свой сервер через SSH и не сможете войти в систему с учетной записью root. Чтобы внести какие-либо изменения в вашу систему, вам нужно будет использовать sudo
.
Сначала проверьте, можете ли вы уже использовать sudo
. В учетной записи пользователя запустите следующее со своим именем пользователя вместо ИМЯ ПОЛЬЗОВАТЕЛЯ:
sudo - lU USERNAME
Если вы видите сообщение о том, что ваше имя пользователя может запускать "(ВСЕ) ВСЕ" или что-то подобное, вы готовы двигаться дальше.
Теперь в качестве учетной записи root на вашем сервере запустите следующую команду, чтобы отредактировать файл "/ etc / sudoers". Если вы предпочитаете другой редактор, используйте его вместо nano.
РЕДАКТОР= nano visudo
Отредактируйте файл, включив в него следующее, указав свое имя пользователя вместо ИМЯ ПОЛЬЗОВАТЕЛЯ:
USERNAME ALL=(ALL) ALL
Настроить SSH
Возможно, на вашем домашнем сервере уже включен SSH. Скорее всего, вы действительно это делаете, поскольку обычно именно так вы взаимодействуете с сервером.
Сначала убедитесь, что OpenSSH установлен. Если вы используете другой дистрибутив, ваша команда будет отличаться, но имя пакета должно быть достаточно согласованным. В Ubuntu запустите следующее:
sudoaptinstall openssh-server
Использование аутентификации на основе ключей намного безопаснее, чем аутентификация по паролю, поэтому мы настроим SSH для работы таким образом. Для этого убедитесь, что вы работаете с клиентом, с которым планируете подключиться к серверу, а не с самим сервером. Во-первых, вы хотите убедиться, что у вас еще нет ключей SSH:
ls ~/.ssh/
Если вы видите "id_rsa" и "id_rsa.pub" среди перечисленных имен файлов, у вас уже есть ключи SSH. Пропустите следующий шаг.
ssh-keygen-t rsa -b4096-C"youremail@domain.com"
Теперь вы скопируете SSH-ключ на свой сервер:
ssh-copy-id ИМЯ ПОЛЬЗОВАТЕЛЯ @ СЕРВЕР
Для домашнего сервера вы, скорее всего, используете IP-адрес вашего сервера вместо имени. Если вы не знаете имя своего сервера, используйте свой IP-адрес вместо СЕРВЕРА, указанного выше.
Теперь мы изменим ваши настройки SSH, чтобы обезопасить их. Войдите на свой сервер с клиента, на котором вы создали ключи. Это позволит вам снова войти в систему после этого шага. Выполните следующее, заменив nano
любым редактором по вашему выбору.
sudonano/etc/ssh/sshd_config
Отредактируйте файл со следующими настройками. Они будут расположены в разных местах файла. Убедитесь, что нет дубликатов, так как будет использоваться только первый экземпляр параметра.
ChallengeResponseAuthentication нет PasswordAuthentication нет UsePAM нет PermitRootLogin нет
Теперь вам нужно перезапустить SSH-сервер с помощью одной из следующих команд.
В Ubuntu запустите:
sudo systemctl restart ssh
Настроить брандмауэр
В зависимости от того, какие службы вы используете и насколько ваш сервер подключен к Интернету, вам может потребоваться запустить брандмауэр. Для этого есть несколько вариантов, но самый надежный метод в Linux - iptables.
Настройка iptables выходит за рамки этой статьи, но не волнуйтесь. У нас есть полное руководство по настройке iptables на вашем компьютере.
Еще один более простой способ настроить брандмауэр - использовать ufw
. Вы можете установить его командой:
sudoaptinstall ufw
По умолчанию он блокирует все порты. Чтобы включить онлайн-доступ и доступ по ssh, выполните следующие команды ufw, чтобы открыть порты 80, 443 и 22:
sudo ufw allow 80sudo ufw allow 443sudo ufw allow 22
И наконец, включите сервис ufw:
sudo ufw включить
Будьте в курсе
О серверах можно легко забыть, если они просто работают, но это может быть опасно. Обязательно обновляйте свое программное обеспечение. Вы можете использовать автоматические обновления, но они могут быть непредсказуемыми. Самый безопасный способ - запланировать регулярное еженедельное или ежемесячное обслуживание сервера, чтобы убедиться, что все в порядке.
Куда пойти отсюда
Теперь у вас есть хорошее начало для защиты вашего сервера от внешних угроз. А что, если вам нужно получить доступ к серверу из дома? Каждая открытая вами дверь потенциально может быть использована злоумышленником, а каждый открытый порт увеличивает вашу уязвимость.
Один из самых простых способов получить доступ к вашей домашней сети извне - использовать VPN, что выходит за рамки этой статьи, но не волнуйтесь, мы вам поможем. Взгляните на наш список лучших доступных безопасных VPN-сервисов, чтобы понять, какие у вас есть варианты.