Вопрос или проблема
Конечно, вчера все работало.
С командой UFW enabled
нет подключения к интернету.
Правила UFW:
Добавлены пользовательские правила (см. 'ufw status' для работающего фаервола):
ufw allow 22
ufw allow 21
ufw allow 80
ufw allow 8080
ufw allow 443
Что бы я ни пробовал, статус всегда UFW active (exited)
.
/etc/init.d/UFW status
:
root@ubuntu:/etc/init.d# ./ufw status
● ufw.service - Uncomplicated firewall
Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2025-02-10 23:35:14 EST; 1h 45min ago
Main PID: 390 (code=exited, status=0/SUCCESS)
CGroup: /system.slice/ufw.service
Feb 11 01:03:52 ubuntu.domain.com systemd[1]: Started Uncomplicated firewall.
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
Я удалил UFW, очистил UFW, удалил iptables, очистил iptables
и всё равно получаю active (exited)
.
Решения, предложенные для других, похоже, не работают для меня.
При проверке статуса службы UFW, вы можете использовать следующую команду, которая предоставляет тот же вывод, что и /etc/init.d/ufw status
, но, вероятно, является более стандартной:
$ systemctl status ufw
● ufw.service - Uncomplicated firewall
Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2025-02-10 21:13:39 PST; 1h 59min ago
Docs: man:ufw(8)
Process: 892 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SUCCESS)
Main PID: 892 (code=exited, status=0/SUCCESS)
CPU: 1ms
Feb 10 21:13:39 ubuntu-laptop systemd[1]: Starting Uncomplicated firewall...
Feb 10 21:13:39 ubuntu-laptop systemd[1]: Finished Uncomplicated firewall.
Чтобы проверить статус правил UFW, используйте sudo ufw status
. Это покажет, активны ли правила фаервола active
или inactive
.
$ sudo ufw status
Status: inactive
Это может казаться немного запутанным, потому что может сказать enabled
при проверке статуса сервиса с systemctl status ufw
, но inactive
при проверке статуса с sudo ufw status
. Разница в том, что статус от systemctl
указывает, был ли сервис настроен для запуска при каждой загрузке, а sudo ufw status
показывает, активны ли правила или нет. Таким образом, вам необходимо отдельно включить правила, и это делает sudo ufw enable
.
Чтобы включить правила UFW:
$ sudo ufw enable
Firewall is active and enabled on system startup
Чтобы отключить правила UFW:
$ sudo ufw disable
Firewall stopped and disabled on system startup
Чтобы остановить службу UFW:
$ sudo systemctl stop ufw
$ sudo systemctl status ufw
○ ufw.service - Uncomplicated firewall
Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Mon 2025-02-10 23:19:21 PST; 3s ago
Docs: man:ufw(8)
Process: 892 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SUCCESS)
Process: 15101 ExecStop=/lib/ufw/ufw-init stop (code=exited, status=0/SUCCESS)
Main PID: 892 (code=exited, status=0/SUCCESS)
CPU: 263ms
Feb 10 21:13:39 ubuntu-laptop systemd[1]: Starting Uncomplicated firewall...
Feb 10 21:13:39 ubuntu-laptop systemd[1]: Finished Uncomplicated firewall.
Feb 10 23:19:20 ubuntu-laptop systemd[1]: Stopping Uncomplicated firewall...
Feb 10 23:19:21 ubuntu-laptop systemd[1]: ufw.service: Deactivated successfully.
Feb 10 23:19:21 ubuntu-laptop systemd[1]: Stopped Uncomplicated firewall.
Чтобы запустить службу UFW:
$ sudo systemctl start ufw
$ sudo systemctl status ufw
● ufw.service - Uncomplicated firewall
Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2025-02-10 23:19:30 PST; 1s ago
Docs: man:ufw(8)
Process: 15290 ExecStart=/lib/ufw/ufw-init start quiet (code=exited, status=0/SUCCESS)
Main PID: 15290 (code=exited, status=0/SUCCESS)
CPU: 126ms
Feb 10 23:19:29 ubuntu-laptop systemd[1]: Starting Uncomplicated firewall...
Feb 10 23:19:30 ubuntu-laptop systemd[1]: Finished Uncomplicated firewall.
Чтобы отключить службу UFW, что предотвратит её запуск при каждой загрузке:
$ sudo systemctl disable ufw
$ systemctl status ufw
● ufw.service - Uncomplicated firewall
Loaded: loaded (/lib/systemd/system/ufw.service; disabled; vendor preset: enabled)
Active: active (exited) since Mon 2025-02-10 23:19:30 PST; 2min 42s ago
Docs: man:ufw(8)
Main PID: 15290 (code=exited, status=0/SUCCESS)
CPU: 126ms
Feb 10 23:19:29 ubuntu-laptop systemd[1]: Starting Uncomplicated firewall...
Feb 10 23:19:30 ubuntu-laptop systemd[1]: Finished Uncomplicated firewall.
Чтобы включить службу UFW:
$ sudu systemctl enable ufw
$ systemctl status ufw
● ufw.service - Uncomplicated firewall
Loaded: loaded (/lib/systemd/system/ufw.service; enabled; vendor preset: enabled)
Active: active (exited) since Mon 2025-02-10 23:19:30 PST; 3min 10s ago
Docs: man:ufw(8)
Main PID: 15290 (code=exited, status=0/SUCCESS)
CPU: 126ms
Feb 10 23:19:29 ubuntu-laptop systemd[1]: Starting Uncomplicated firewall...
Feb 10 23:19:30 ubuntu-laptop systemd[1]: Finished Uncomplicated firewall.
Ответ или решение
В качестве IT-эксперта, давайте разберем проблему, с которой вы столкнулись: UFW блокирует интернет-соединение на вашем устройстве. Чтобы максимально подробно описать, как разрешить данную проблему, рассмотрим теорию, проанализируем пример и предложим практическое применение.
Теория (Theory)
Uncomplicated Firewall (UFW) — это интерфейс к iptables, используемый в операционных системах на базе Linux для управления настройками брандмауэра. UFW упрощает работу с брандмауэром, предоставляя удобный способ управлять входящими и исходящими соединениями. Однако работая с UFW, необходимо правильно конфигурировать правила, чтобы обеспечить доступ к необходимым сервисам и избежать блокировки интернета.
Типичная проблема при использовании UFW заключается в том, что ошибочная конфигурация правил может привести к неожиданной блокировке интернет-соединения. Это может произойти из-за неверного определения необходимых портов или отсутствия правил, разрешающих конкретные выходящие соединения.
Пример (Example)
В предоставленном описании проблемы указано, что при включении UFW доступ в Интернет отсутствует. Вы используете следующие правила UFW:
ufw allow 22
ufw allow 21
ufw allow 80
ufw allow 8080
ufw allow 443
Эти правила разрешают входящее соединение на стандартные порты, используемые для SSH (22), FTP (21), HTTP (80 и 8080), и HTTPS (443). Если, к примеру, вы используете дополнительные порты или начали работать с протоколами, для которых нужны иные порты, то их отсутствие в списке правил может стать причиной проблемы.
Кроме того, статус UFW отображается как active (exited)
, что может сбивать с толку. Это указывает на то, что служба UFW активно работает, но не проявляет активной блокировки правил. Нужно уточнить, что состояние exited
для службы systemd указывает, что процесс исполнения завершился успешно, а не что служба активна в традиционном смысле.
Применение (Application)
Вот шаг за шагом, как можно разрешить проблему отсутствия интернет-соединения при включенном UFW:
-
Проверка состояния UFW и правил:
- Выполните команду
sudo ufw status verbose
, чтобы проверить полный список активных правил. Это даст представление о том, какие именно соединения разрешены на данный момент. - Убедитесь, что UFW действительно включен с помощью
sudo ufw enable
.
- Выполните команду
-
Разрешите выходящие соединения:
- По умолчанию UFW блокирует все входящие соединения и разрешает все исходящие. Убедитесь, что правила для разрешения выходящих соединений не изменены:
sudo ufw default allow outgoing
- По умолчанию UFW блокирует все входящие соединения и разрешает все исходящие. Убедитесь, что правила для разрешения выходящих соединений не изменены:
-
Проверьте новые соединения и порты:
- Если вы подключаете новые устройства или службы, которые используют нестандартные порты, их также нужно добавить в UFW:
sudo ufw allow <номер_порта>
- Если вы подключаете новые устройства или службы, которые используют нестандартные порты, их также нужно добавить в UFW:
-
Проверка лога UFW:
- Используйте команды для анализа логов, чтобы выявить, какие именно подключения блокируются UFW. Это поможет понять, что именно не хватает в текущих правилах.
-
Проверка iptables:
- Хотя UFW управляет iptables, потенциальные конфликты или ошибки могут возникнуть. Используйте
sudo iptables -L -v -n
для проверки таблиц iptables и устранения любых несовпадений.
- Хотя UFW управляет iptables, потенциальные конфликты или ошибки могут возникнуть. Используйте
-
Проверка служб и сетевых интерфейсов:
- Убедитесь, что сетевые интерфейсы на вашей системе правильно настроены и отвечают за нужные соединения.
-
Перезапуск службы network и проверка DNS:
- Иногда проблемы с подключением могут быть вызваны настройками DNS. Попробуйте перезапустить network manager или использовать другой DNS на временной основе, например Google DNS (8.8.8.8).
После выполнения перечисленных шагов проверка соединения вновь должна показать положительный результат. Очень рекомендую ведение журнала изменений и регулярное тестирование конфигураций UFW для предотвращения подобных проблем в будущем. Настройка брандмауэра – это критически важное действие, поэтому всегда внимательно проверяйте свои изменения перед их окончательной активацией.