Во-первых, вы, вероятно, знаете об этом, но если у вас динамический 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-сервер для одного клиента - один сервер. Для лучшей настройки с проверкой подлинности сертификата клиента и ЦС (ваш бесплатный ЦС) вам потребуется еще несколько минут: D
Если вашим сайтам требуется MySQL или по какой-либо другой причине вам необходимо администрировать MySQL (или другую базу данных) из Интернета, если вы не используете VPN, используйте туннель ssh, чтобы подключиться к локальному порту на вашей машине, и туннель шифруется. соединение с сервером, поэтому вам не нужно открывать порт базы данных, взгляните на аргументы -L
и . Я бы не стал устанавливать phpmyadmin для прослушивания публичного IP-адреса, поскольку это открывает вашу базу данных для всего мира. Если вам нужно, я могу поставить пример сценария для туннеля здесь.-D
man ssh