Назад | Перейти на главную страницу

Ограничение портов, принимающих соединения (Debian 9 Stretch)

Я не системный администратор, но мне приходится брать на себя некоторые обязанности в этой сфере.

У нас есть сервер Debian 9 Stretch для разработки.

Linux xxxxxx 4.9.0-9-amd64 # 1 SMP Debian 4.9.168-1 + deb9u2 (2019-05-13) x86_64 GNU / Linux

Он должен быть доступен через порт 443 с различных IP-адресов без каких-либо четких ограничений.

Текущее содержимое /etc/apache2/sites-enabled/000-default.conf

Listen 80

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

В корне документа у нас есть .htaccess с требуемым действующим пользователем и только один пользователь с паролем из 16 символов.

AuthUserFile /var/www/.htpasswd
AuthName "Admin"
AuthType Basic

<Limit GET>
    require valid-user
</Limit>

В /var/log/apache2/error.log я вижу ряд таких ошибок:

[Sun Mar 29 22:09:11.933648 2020] [php7:error] [pid 23376] [client 122.14.200.206:46917] script '/var/www/html/wuwu11.php' not found or unable to stat

Я думаю, что происходит то, что неавторизованные лица пытаются получить ответы через cURL на портах, отличных от 80 и 443, и сканируют известные вредоносные программы или уязвимости, а также, возможно, пытаются создать переполнение буфера путем наводнения сервера запросами.

Я понимаю, что это может быть недостаточно информации и слишком широкий вопрос, но:

1) Верно ли мое предположение, что ошибки представляют собой запросы с высокими значениями портов?

2) Есть ли простой способ сообщить серверу, что только порты 22 и 443 могут принимать любые соединения?

Нет, ваш Apache не прослушивает дополнительные произвольные порты, которые можно просканировать, как вы это поняли. Вы можете получить фактический запрос, сравнив error.log отметки времени с access.log отметки времени.

Порт на [client xx.xx.xx.xx:46917] относится к исходный порт на стороне клиента.