Вопрос или проблема
Интересно, почему я получаю эту ошибку в своих системных журналах:
[7732763.396193] [UFW BLOCK] IN=eth0 OUT= MAC=02:8b:1a:75:d5:7b:02:8b:1a:40:00:03:08:00 SRC=x.x.x.x DST=x.x.x.x LEN=40 TOS=0x00 PREC=0x00 TTL=64 ID=53703 DF PROTO=TCP SPT=35651 DPT=8443 WINDOW=457 RES=0x00 ACK RST URGP=0
Я только что включил ufw
. Эта ошибка значит, что что-то идет не так?
Ну, это значит, что ufw
заблокировал соединение от SRC
к DST
на TCP порту 8443.
Если вы не хотели, чтобы это соединение было успешным, это не плохо.
Порт 8443 в основном используется веб-сервисами, например, он используется VMware ESXi или некоторыми (HTTPS) серверами приложений, такими как Apache Tomcat, выступая в качестве альтернативы стандартному HTTPS порту 443, когда этот порт недоступен или заблокирован.
Вы можете проверить, работает ли на вашем устройстве что-то на этом порту, выполнив sudo netstat -tulpen | grep 8443
или лучше ss
:
sudo ss -tulpen | grep 8443
для TCP, UDP, прослушивающих портов, показать процессы, показать расширенную информацию и в числовом формате (не разрешать).
Если вы выполните:
$ tail -1 /etc/rsyslog.d/20-ufw.conf
#& stop
Эта запись #& stop
означает, что вы ведете журнал в syslog
.
Тео, как я могу это остановить?
Ну, вам просто нужно выполнить эту команду, чтобы прекратить запись в syslog:
sudo sed '/#& stop/s/^#//' -i /etc/rsyslog.d/20-ufw.conf
sudo service rsyslog restart
Эта команда просто удаляет комментарий у первого совпадения шаблона #& stop
в файле /etc/rsyslog.d/20-ufw.conf
. В данном случае это последняя строка, поэтому мы используем tail -1
для вывода последней строки файла.
Теперь проверьте это:
$ tail -1 /etc/rsyslog.d/20-ufw.conf
& stop
или просто:
tail -f /var/log/syslog
Ответ или решение
Теория:
При использовании системы защиты, такой как Uncomplicated Firewall (UFW), очень важно понимать сообщения, которые она генерирует, чтобы обеспечить правильное поведение и безопасность вашей сети. Сообщение [UFW BLOCK], появляющееся в ваших системных логах, указывает на то, что UFW (брандмауэр) заблокировала попытку соединения, соответствующую определенному правилу или отсутствию разрешающего правила в системе фильтрации пакетов.
Сообщение успешной блокировки содержит несколько полей, каждое из которых предоставляет детальную информацию о заблокированном соединении:
-
IN, OUT – это интерфейсы, через которые пришел/ушел пакет. В данном случае,
IN=eth0
означает, что пакет пришел через интерфейсeth0
, аOUT=
пусто, значит пакет не был переслан. -
MAC – это MAC-адреса отправителя и получателя. Они важны для идентификации уровней канала связи.
-
SRC и DST – это адреса отправителя и получателя пакета.
-
PROTO – это протокол, использованный для пакета. В данном примере используется протокол TCP.
-
SPT и DPT – это исходный и целевой порты, что указывает на использование специфичного приложения или сервиса. В данном случае используется порт 8443.
-
ACK, RST – это флаги управления TCP, которые сообщают о состоянии передачи данных. Флаг RST указывает на то, что соединение было перезагружено (reset), тогда как ACK используется для подтверждения приема.
Пример:
Ваш лог показывает, что попытка подключения на порт 8443 была заблокирована. Порт 8443 часто используется для веб-сервисов, которые работают по защищенному протоколу HTTPS. Если вы не используете этот порт активно в вашем приложении или на сервере, то его блокировка может быть даже полезной для безопасности, предотвращая неавторизованные или нежелательные подключения.
Применение:
-
Проверка активных подключений: Чтобы определить, активно ли что-либо на этом порту, можно воспользоваться командой
ss
для поиска слушающих соединений:sudo ss -tulpen | grep 8443
Эта команда покажет, какие процессы (если таковые есть) слушают на порту 8443.
-
Настройка логирования: Если вы не хотите, чтобы подобные сообщения засоряли ваши сислог файлы, вы можете модифицировать файл конфигурации
/etc/rsyslog.d/20-ufw.conf
. Поправив строку с#& stop
, вы остановите логирование этих сообщений в системные логи:sudo sed '/#& stop/s/^#//' -i /etc/rsyslog.d/20-ufw.conf sudo service rsyslog restart
Эта команда раскомментирует строку, ответственную за прекращение логирования UFW в syslog после настроек брандмауэра.
-
Решение проблемы: Если ваше приложение или сервис действительно требует использования порта 8443, добавьте правило в UFW для разрешения соединений на этот порт:
sudo ufw allow 8443/tcp
Это разрешит входящие TCP соединения через порт 8443.
Заключение:
Блокировки могут быть полезными для предотвращения несанкционированного доступа, но если они блокируют законные соединения, как те, которые требуются для работы ваших приложений, UFW необходимо правильно настроить. Полученное сообщение предупреждает вас о заблокированном соединении, и, получив эту информацию, вы можете принять решение об открытии порта или о дополнительной настройке для обеспечения оптимальной работы ваших сервисов и их безопасности.