Как безопаснику веб-сервера важно отслеживать и анализировать трафик, поступающий на ваш веб-сервер, в том числе определять основные IP-адреса, чтобы получить представление о структуре трафика и потенциальных угрозах безопасности.
Одним из положительных моментов в определении основных IP-адресов, обращающихся к вашему веб-серверу, является наличие файла(ов) журнала доступа, в котором хранится информация о каждом действии, происходящем на сервере.
Работа с лог-файлами всегда очень важна, потому что они дают вам отчет обо всем, что произошло в системе или приложении, в данном случае на вашем веб-сервере Apache.
В случае возникновения проблем с производительностью или доступом файлы журналов помогут вам определить, что может быть не так или что происходит.
В этой статье мы рассмотрим, как найти 10 популярных IP-адресов, обращающихся к вашему веб-серверу Apache или Nginx, используя команды в Linux.
🌐 Как парсить логи доступа nginx
Доступ к лог-файлам веб-сервера
Первым делом необходимо получить доступ к файлам журнала, генерируемым вашим веб-сервером, которые содержат подробную информацию о каждом запросе к серверу, включая IP-адреса клиентов, обращающихся к нему.
По умолчанию путь к журналу веб-сервера Apache следующий:
/var/log/httpd/access_log [Для систем на базе RedHat] /var/log/apache2/access.log [Для систем на базе Debian]
Путь по умолчанию логов веб-сервера Nginx:
/var/log/nginx/access_log
Для просмотра журналов используйте любой текстовый редактор по вашему выбору.
Если ваш сервер Apache использует другой файл журнала или другое местоположение, настройте команду соответствующим образом.
Поиск популярных IP-адресов веб-сервера
Чтобы узнать 10 IP-адресов, обращающихся к вашему веб-серверу для домена, вы можете использовать команду awk.
Чтобы найти уникальные IP-адреса веб-сервера Apache, используйте:
Чтобы найти уникальные IP-адреса веб-сервера Nginx, используйте:
Образец вывода:
5482 103.28.37.178 5356 66.249.78.168 1977 66.249.93.145 1962 157.55.39.251 1924 66.249.93.142 1921 66.249.93.148 1890 64.233.173.178 1860 108.61.183.134 1841 64.233.173.182 1582 157.55.39.251
Пояснение к приведенной выше команде:
- awk ‘{print $1}’ – Извлечение первого столбца (IP-адреса) из журнала.
- sort – помогает сортировать строки в файле access.log, опция -n сравнивает строки на основе числового значения строк, а опция -r меняет результат сравнения на противоположный.
- uniq – помогает сообщать о повторяющихся строках, а опция -c – о префиксации строк в соответствии с количеством их повторений.
- head -n 10 – отображает 10 лучших IP-адресов.
Кроме того, можно использовать команду grep для фильтрации журнала доступа по определенному временному диапазону или по шаблону.
Чтобы автоматизировать этот процесс, можно создать скрипт, который будет запускаться через регулярные промежутки времени для извлечения и анализа журналов доступа.
Скрипт может отправлять результаты по электронной почте или запускать оповещения, когда определенные IP-адреса превышают установленные пороги.
#!/bin/bash # Define variables LOG_FILE="/var/log/nginx/access.log" OUTPUT_FILE="/path/to/output.txt" # Run the command and save the output result=$(awk '{print $1}' "$LOG_FILE" | sort | uniq -c | sort -nr | head -10) # Save the result to a file echo "$result" > "$OUTPUT_FILE" # Optionally, you can also send an email with the result # mail -s "Top 10 IP Addresses Report" your@email.com < "$OUTPUT_FILE"
Не забудьте настроить переменные в скрипте в соответствии с вашим конкретным окружением.
Заключение
Для достижения этой цели можно использовать множество методов, если вы знаете какой-либо лучший способ, поделитесь им в комментариях, а также в случае возникновения каких-либо предложений или вопросов, не забудьте оставить комментарий в разделе комментариев ниже, и мы обсудим это вместе.
см. также:
- 🌐 Как разрешить в Nginx только методы GET и POST
- 🌐 Блокировка IP-адресов на Nginx
- 🌐 Ограничение доступа к URL на NGINX
- 🔐 Как отключить TLS 1.0 и TLS 1.1 на сервере Nginx?
- 🛡️ Как ограничить пропускную способность сети на веб-сервере NGINX
- 🌐 Настройка заголовков безопасности HTTP на сервере Nginx / Apache
- 🌐 Блокирование вредоносных ботов, спама, юзер-агентов, Ransomware на Nginx