Укрепление домашнего сервера

Я думаю о настройке скромного веб-сервера с использованием некоторого старого оборудования и Ubuntu 12.04 или Debian 6. Я осознаю, что, подвергая машину в моей локальной сети внешнему миру, я становлюсь уязвимым для нарушений безопасности и атак. В связи с этим, и поскольку у меня почти нет опыта в защите компьютеров с использованием Linux, я хотел бы попросить дать некоторые рекомендации о том, что мне следует делать для защиты этого веб-сервера, тем более что в моей домашней локальной сети есть другие компьютеры, которые содержат конфиденциальную информацию (про домашние банковские счета и тому подобное). Большое спасибо.

1 ответ

Решение

Во-первых, вы, вероятно, знаете об этом, но если у вас динамический IP, вам понадобится динамический DNS, такой как DynDNS или DNSexit.

Что касается обеспечения, я думаю, используя iptables (или графический интерфейс брандмауэра, как Firestarter, если вы предпочитаете), для домашнего сервера достаточно открыть только порт 80 для входящего соединения, если вам не нужно открывать порт ssh (порт 22) или ftp (21), и вы не будете устанавливать почту сервер.

Если на вашем сайте есть страница входа или вам нужно открыть ssh, ftp или smtp, я бы рекомендовал установить хотя бы что-то вроде fail2ban, чтобы запретить IP, которые пытаются подключиться безуспешно, чтобы они не пытались вечно.

Важно отметить, что вы должны взглянуть на ваши логи, чтобы следить за ними легко установить logwatch (должно быть в ваших репозиториях по умолчанию в Debian & Ubuntu), чтобы оповещать вас по почте ежедневно или еженедельно. Вы быстро научитесь находить, что не так, читая их часто.

Если вам нужно подключиться извне для администрирования сервера, использовать VPN и в любом случае, постоянно обновляйте ОС!

Обновление: для SSH и sftp, я думаю, что fail2ban + только ssh-ключи (или ключи + пароль, а не только пароль) - это минимум, который вам нужен (и не допускайте root-доступ).

Если машины, которые вы используете для подключения, имеют фиксированный IP-адрес, откройте брандмауэр только для этих входящих IP-адресов.

Зашифрованный VPN (я использую openvpn) также помогает защитить ваш доступ.
Посмотрите здесь "быстрое" официальное руководство, через 15-30 минут у вас будет рабочий VPN-сервер для одного клиента - одного сервера. Для лучшей настройки с проверкой подлинности с помощью сертификата клиента и CA (ваш собственный бесплатный CA) вам потребуется еще несколько минут:D

Если вашим сайтам требуется MySQL или по какой-либо другой причине вам необходимо администрировать MySQL (или другую базу данных) из Интернета, если вы не используете VPN, используйте туннель ssh, чтобы подключиться к локальному порту на вашей машине, и туннель шифруется. соединение с сервером, поэтому вам не нужно открывать порт базы данных, посмотрите на -L а также -D аргументы в man ssh,
Я бы не стал устанавливать phpmyadmin для прослушивания публичного IP, так как это открывает вашу базу данных для всего мира. Если вам нужно, я могу поставить пример сценария для туннеля здесь.

Другие вопросы по тегам