Поиск по сайту:

Нужен ли вашему облачному серверу брандмауэр?


Брандмауэр — это сетевая утилита, которая работает на вашем сервере и не позволяет посторонним использовать определенные порты. Это делает его полезным инструментом безопасности для блокировки доступа злоумышленников к процессам, которым они не должны. Нужен ли он вашему серверу?

Открывайте только те порты, которые вам нужны, брандмауэр остальные

Службы, которые вы запускаете на своем сервере, подключаются к внешнему миру через порты. У каждого порта есть номер, и служба будет прослушивать соединения с этим номером порта. Это не всегда угроза безопасности, так как вам часто нужно открывать порты для доступа пользователей к вашему сервису.

Порты 80 и 443 являются портами по умолчанию для HTTP и HTTPS. Если вы используете веб-сервер, они должны быть открыты. Порт 22, скорее всего, будет открыт при любой новой установке Linux, так как это порт SSH по умолчанию. Вы можете закрыть этот порт, но вам нужно будет переместить SSH на другой порт (что в любом случае является хорошей идеей).

Без установленного брандмауэра любой службе, которая запускает соединение, будет разрешен доступ к любому порту по умолчанию. Лучше всего определить свои правила, чтобы предотвратить это и убедиться, что в вашей системе не работает ничего неожиданного. Это именно то, что делает брандмауэр — определяет правила того, как процессы на вашем сервере могут общаться с внешним миром.

Чтобы проверить, какие порты в настоящее время открыты в вашей системе, вы можете запустить:

sudo netstat -plnt

Или, если вы хотите более краткий вывод:

sudo netstat -plnt | grep "LISTEN" | awk '{print $4 "t" $7}'

Эти команды выведут список всех открытых портов вместе с тем, какой процесс использует этот порт. Netstat показывает только PID и имя файла процесса, поэтому, если вам нужен полный путь, вам придется передать PID команде ps . Если вам нужно сканировать порты без доступа к серверу, вы можете использовать клиентскую утилиту nmap.

Все остальное, что не используется специально для размещения службы, должно быть закрыто брандмауэром.

Если все, что работает в вашей системе, должно быть открыто, вам может не понадобиться брандмауэр. Но без него любой неиспользуемый порт может легко открыться новым установленным вами процессом. Вам нужно убедиться, что любые новые службы не нужно блокировать.

Не запускайте свои службы на общедоступных IP-адресах в первую очередь

Брандмауэр — отличный инструмент безопасности, но некоторые службы не должны быть доступны для всего мира. Если порт должен быть открыт, эта служба уязвима для атак грубой силы и других неприятных проблем. Но вы можете предотвратить это, заблокировав подключения к вашему виртуальному частному облаку.

Базы данных являются ярким примером этого. База данных, такая как MySQL, должна иметь открытый порт для административных подключений. Но если единственное, что разговаривает с базой данных, это ваш веб-сервер (и вы, когда занимаетесь обслуживанием), вы должны держать MySQL в секрете и разрешать ему общаться только с веб-сервером. Если вам нужен доступ к нему, вы можете подключиться к веб-серверу по SSH и оттуда получить доступ к остальной части сети.

Как настроить брандмауэр

Если вы используете управляемый хостинг, такой как Amazon Web Services или Digital Ocean, у вашего провайдера может быть брандмауэр, которым вы можете управлять из веб-интерфейса. Если это вариант, вы должны настроить свой брандмауэр таким образом.

AWS, в частности, заставляет вас использовать их брандмауэр, который управляется группами безопасности. Все порты по умолчанию закрыты (за исключением порта 22), поэтому вам нужно будет открыть их вручную из их интерфейса. Вы можете редактировать группы безопасности для любого работающего экземпляра из консоли управления EC2 и изменять правила входящего трафика.

AWS позволяет вам указать источник для правила, поэтому вы можете, например, заблокировать SSH только для своего личного IP-адреса или сделать соединение между сервером базы данных и веб-сервером частным.

Если вы используете других провайдеров, таких как Linode или обычный хостинг, вам нужно будет настроить брандмауэр самостоятельно. Для этого проще всего использовать утилиту iptables.

Если вы используете сервер Windows, вам необходимо настроить брандмауэр Windows с соответствующим названием, что вы можете сделать из консоли управления Windows или с помощью netsh.