Рейтинг:0

Как защитить свой сервер с помощью UFW (предположительно, атакован)

флаг in

Я использую Apache на Debian.

Ниже приведен пример записей в моем журнале ошибок Apache. Вопрос 1: Атакован ли сервер (каждый час я вижу около 30-40 таких записей). Я предполагаю, что это атаки или, по крайней мере, проверки моего сервера.

[Вс, 13 февраля 16:37:54.013622 2022] [: ошибка] [pid 16071] [клиент 106.193.114.87:19356] Уведомление PHP: неопределенная переменная: error_msg в /var/www/example.com/page-sidebar-both. php в строке 57, реферер: https://example.com/podbanks/abresult.php?ab=ab18&lg=Английский

[Вс, 13 февраля 16:38:01.289976 2022] [: ошибка] [pid 16109] [клиент 106.193.114.87:19358] Уведомление PHP: неопределенная переменная: result_msg в /var/www/example.com/abc/defg.php on строка 210, реферер: https://example.com/result.php?ab=ab18&lg=английский

[Вс, 13 февраля 16:38:01.290048 2022] [: ошибка] [pid 16109] [клиент 103.77.154.37:1842] Уведомление PHP: неопределенная переменная: статус в /var/www/example.com/pods/dashboard.php on строка 210, реферер: https://example.com/result.php?ab=AB18&lg=Английский

[Вс, 13 февраля 16:38:26.788827 2022] [: ошибка] [pid 15961] [клиент 54.90.210.118:36104] Уведомление PHP: Неопределенная переменная: BaseURL в /var/www/example.com/biz.php в строке 63

(страницы и переменные верные, но номера портов странные).

Вопрос 2: Если это атаки, могу ли я остановить их с помощью UFW? В настоящее время у меня есть:

К действию от
-- ------ ----
WWW Полный РАЗРЕШИТЬ Везде
3306 РАЗРЕШИТЬ ВСЕГДА
22 РАЗРЕШИТЬ ВСЕГДА
8081 РАЗРЕШИТЬ ВСЕГДА
1185 РАЗРЕШИТЬ ВСЕГДА
WWW Full (v6) РАЗРЕШИТЬ ВСЕГДА (v6)
3306 (v6) РАЗРЕШИТЬ ВСЕГДА (v6)
22 (v6) РАЗРЕШИТЬ ВСЕГДА (v6)
8081 (v6) РАЗРЕШИТЬ ВСЕГДА (v6)
1185 (v6) РАЗРЕШИТЬ ВСЕГДА (v6)

8081 РАЗРЕШИТЬ ВСЕ ВСЕГДА
8081 (v6) РАЗРЕШИТЬ ВСЕ ВСЕГДА (v6)

Являются ли эти следующие шаги действительными и полными, учитывая вышеизложенное?

ufw отключить
ufw по умолчанию запрещает входящие
ufw по умолчанию разрешает исходящие
ufw разрешить OpenSSH
ufw разрешить WWW Полный
уфв разрешить 1185
уфв разрешить 3306
ufw включить

(строка 1, чтобы убедиться, что меня не заблокируют - я использую PuTTY)

Вопрос 3: Действительно ли мне нужно открывать 3306, если MySQL используется только локально? Я даю доступ к базе данных только через php-запросы, которые защищены паролем и сеансом.

Вопрос 4: Нужен ли вообще порт 8081? Он автоматически добавляется "WWW Full"?

Рейтинг:3
флаг ar

(страницы и переменные верные, но номера портов странные).

Номера портов нормальные. это клиенты эфемерные порты.

Вопрос 2: Если это атаки, могу ли я остановить их с помощью UFW? В настоящее время у меня есть:

Обычно нет. Вам нужно фильтровать на применимом уровне, и вы хочу трафик для достижения Apache, поэтому вы не можете фильтровать на уровне L3.

Мне действительно нужно открывать 3306, если MySQL используется только локально? Я даю доступ к базе данных только через php-запросы, которые защищены паролем и сеансом.

Нет. Локальный mySQL работает через сокет, а не через TCP/IP. И даже если нет, вы бы хотели разрешить его только на петлевом интерфейсе (127.0.0.1).

Вопрос 4: Нужен ли вообще порт 8081? Он автоматически добавляется "WWW Full"?

Возможно нет. Но вам нужно знать, как работает ваше приложение.

флаг us
Проверьте `/etc/ufw/applications.d/apache2-utils.ufw.profile`. Он содержит все определения. `Apache` = только порт 80/tcp, `Apache Secure` = только порт 443/tcp и `Apache Full` аналогичны включению `Apache` и `Apache Secure`.
Рейтинг:3
флаг in

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

Рейтинг:1
флаг br

Все, что вы публикуете в Интернете, будет проверено на наличие слабых мест.

Основой хорошей пассивной безопасности является понимание того, какие сетевые потоки необходимы для работы вашей службы, и разрешение только этого конкретного трафика. Для чего-либо нестандартного вы не получите этого понимания, спрашивая совета у незнакомцев на Serverfault.

Если вы представляете веб-службу только в Интернете, скорее всего, единственный трафик, который вам нужно разрешить от клиентов («Любой»), — это HTTP и HTTPS.

Вам также потребуется предоставить интерфейс управления — либо обычный ssh, либо какой-либо управляющий VPN. Важно, чтобы все, что вы выберете здесь, было достаточно прочным, чтобы противостоять неизбежным атакам грубой силы. Для этих каналов рекомендуется использовать аутентификацию на основе ключа или сертификата.

В общих чертах, вы никогда не захотите предоставлять доступ к серверу базы данных напрямую из Интернета.

Рейтинг:1
флаг bd

Рекламный вопрос 1: Процитированные вами сообщения журнала не содержат никаких признаков атаки. Скорее они указывают на ошибки в PHP-коде вашего веб-сервера. Сообщения также содержат точное местоположение (имя файла и номер строки), где произошли ошибки. Вы можете посмотреть там.

Номера портов в сообщениях совсем не странные, а абсолютно нормальные.

Рекламный вопрос 2: Учитывая, что атаки нет, вопрос не актуален.

Рекламный вопрос 3: Вам не нужно и не следует открывать порт MySQL 3306 для сети, если он используется веб-сервером только локально. То есть сервер MySQL должен быть настроен на прослушивание только адреса 127.0.0.1 (localhost), а порт 3306 не должен быть разрешен в ufw.

Рекламный вопрос 4: Нужен ли вам разрешенный порт 8081 или нет, зависит от того, работает ли какая-либо служба на этом порту, который вы хотите сделать доступным через сеть. Если на порту 8081 ничего не прослушивается, или если то, что там слушает, не должно быть доступно по сети, то вы не должны разрешать это в ufw.

Ответить или комментировать

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