Правила UFW не блокируют потоп
Я пытаюсь сохранить deluged
на моем безголовом сервере Ubuntu 14.04.1, работающем, когда сервер не подключен к VPN (я знаю, что существует множество потоков, обсуждающих лучший способ сделать это; я ищу не альтернативные методы, а причину, по которой мой сбой не состоялся).
Я установил наводнение для использования входящего порта 40000 и исходящих портов 40001:40101. Я тоже поставил ufw
по умолчанию разрешены исходящие соединения и запрещены входящие соединения. Наконец, у меня есть следующие правила:
To Action From -- ------ ---- [ 1] 22 ALLOW IN Anywhere [ 2] 58846 ALLOW IN Anywhere [ 3] 40000 on tun0 ALLOW IN Anywhere [ 4] 40000 DENY IN Anywhere [ 5] 40001:40101/tcp ALLOW OUT Anywhere on tun0 (out) [ 6] 40001:40101/udp ALLOW OUT Anywhere on tun0 (out) [ 7] 40001:40101/tcp DENY OUT Anywhere (out) [ 8] 40001:40101/udp DENY OUT Anywhere (out)
(и те же правила, дублированные для (v6).)
Вы заметите, что я позволяю ssh
и разрешить тонкому клиенту для подключения демона, работающего на моем сервере.
Тем не менее, потоп все-таки удается функционировать, даже когда я не подключен к какой-либо VPN (ifconfig
подтверждает, что только eth0
и loopback активны).
Я не могу понять, почему это работает так, как работает. Может кто-нибудь объяснить, что мне не хватает?
1 ответ
Ниже приведено руководство, которое я нашел на форумах Airvpn. Это было очень полезно для понимания той же проблемы, что и я.
В следующем кратком уроке я постараюсь дать вам несколько советов по настройке простой (надеюсь) работы. Это только для общего руководства. При необходимости измените адреса, номера портов и протоколы. Например, если ваш маршрутизатор находится на другом IP-адресе, настройте правило в соответствии с вашими потребностями. Также, если вы хотите подключиться к другому VPN-серверу, используйте IP-адрес сервера, который вы хотите использовать. Используемые здесь IP-номера приведены только в качестве примера.
Имейте в виду, что порядок правил важен, и выигрывает первый матч! Правило, которое вводится первым, окажется выше в списке. В конце я объясню больше об этом (см. Пункт 8).
Откройте окно терминала и введите следующие команды и настройте их в соответствии с вашими потребностями. Используйте su, чтобы войти в систему как пользователь root, если вы этого не сделали, или поместите sudo перед каждой командой. $ представляет подсказку в терминале.
Включить UFW.
$ ufw enable
Это активирует брандмауэр, и теперь вы можете добавлять правила.
Установите поведение по умолчанию, чтобы запретить весь входящий и исходящий трафик.
$ ufw default deny out $ ufw default deny in
Теперь весь входящий и исходящий трафик будет заблокирован.
Добавьте правило, разрешающее трафик на ваш маршрутизатор (только если это необходимо).
$ ufw allow to 192.168.178.0/24
Это позволит трафик к маршрутизатору / внутренней сети, которая в этом случае расположена на 192.168.178.0/24. Если ваш компьютер имеет несколько сетевых интерфейсов, вы можете добавить интерфейс, который вы хотите использовать. Например
$ ufw разрешить на eth0 до 192.168.178.0/24
Это позволит только подключения к внутренней сети / маршрутизатору на eth0. Если eth0 не подключен и вы используете, например, соединение wlan0 UFW заблокирует трафик, и вы не сможете подключиться к маршрутизатору / внутренней сети, потому что только трафик из eth0 разрешен для подключения к 192.168.178.0/24.
Добавьте правило, разрешающее трафик 46.19.137.114 на порту 443 с трафиком UDP. Это сервер AirVPN_CH-Virginis_UDP-443.
$ ufw разрешает выход 46.19.137.144 через порт 443 proto udp
Это разрешит трафик UDP через порт 443 на сервер Virginis (=46.19.137.144). Это необходимо для подключения к VPN-серверу. Вы можете добавить более одного VPN-сервера, повторив приведенное выше правило и настроить IP-адрес сервера, который хотите добавить. Также можно указать разные номера портов. Просто измените номер порта на номер порта, который необходим для подключения к серверу VPN. Если часть прототипа udp опущена, то разрешен трафик tcp и udp, а если он изменен на протоконтроль tcp, то разрешен только трафик tcp.
Добавьте правило, разрешающее входящий и исходящий трафик через tun0. Это трафик от и до VPN-сервера.
$ ufw разрешить на tun0
Теперь приложение, такое как браузер, может подключаться к различным сайтам в Интернете. Весь трафик будет проходить через сервер vpn.
В случае, если вы используете бит-торрент-клиент, вам также необходимо разрешить входящий трафик с порта, который вы указали в битторрент-клиенте (это порт, который необходим для подключения к битам одноранговых узлов / сеялок). -торрент-клиент (NAT).
$ ufw разрешает вход на tun0 с любого порта 54321
Это позволит входящему трафику, поступающему с разных IP-адресов (одноранговых / просматривающих, которые хотят подключиться к вашему клиенту), подключаться через соединение VPN-сервера (здесь указано tun0). В этом случае используется номер порта 54321, измените его на правильный номер порта!
Если вы сейчас входите.
$ ufw статус подробный
Вы получите нумерованный список, который выглядит примерно так:
Status: active Logging: off Default: deny (incoming), deny (outgoing) New profiles: skip To Action From -- ------ ---- 54321 on tun0 ALLOW IN Anywhere 192.168.178.0/24 ALLOW OUT Anywhere 46.19.137.114 443 ALLOW OUT Anywhere Anywhere ALLOW OUT Anywhere on tun0
Это показывает, какие правила применяются и каков статус брандмауэра. Когда вы вводите:
статус $ ufw пронумерован
Вы получите нумерованный список. Это будет выглядеть примерно так:
Status: active To Action From -- ------ ---- [ 1] 192.168.178.0/24 ALLOW OUT Anywhere (out) [ 2] 46.19.137.114 443 ALLOW OUT Anywhere (out) [ 3] Anywhere ALLOW OUT Anywhere on tun0 (out) [ 4] 54321 on tun0 ALLOW IN Anywhere
Это нумерованный список. Важно знать, что порядок правил важен. Если вы разрешите что-то с правилом 1, которое разрешает, например, весь входящий и исходящий трафик, все остальные правила, указанные после этого, не будут иметь никакого эффекта!
И в качестве последнего уведомления я также укажу на возможность удалять и вставлять правила. Если вы введете:
$ ufw удалить 1 # и подтвердить конечно
Правило номер 1 будет удалено, а все остальные правила, которые следовали правилу 1, сместятся вверх, в этом примере список будет выглядеть примерно так (после нумерации статуса $ ufw):
Status: active To Action From -- ------ ---- [ 1] 46.19.137.114 443 ALLOW OUT Anywhere (out) [ 2] Anywhere ALLOW OUT Anywhere on tun0 (out) [ 3] 54321 on tun0 ALLOW IN Anywhere
И если вы хотите добавить правило в определенном месте, это можно сделать с помощью команды вставки. Например, мы хотим добавить второй VPN-сервер, чтобы мы могли выбрать другой в случае, если один из них не работает (может случиться так, что вы знаете:-)) или если нам нужны варианты. Команда будет выглядеть так;
$ ufw insert 2 допускает к порту 119.81.1.122 порт 443 proto tcp
это добавит сервер SG-Sagittarii
Теперь на месте № 2 вставлено новое правило. Другие правила сместятся вниз. Мы можем создать новый список:
статус $ ufw пронумерован
И список будет выглядеть так: Статус: активный
To Action From -- ------ ---- [ 1] 46.19.137.114 443 ALLOW OUT Anywhere (out) [ 2] 119.81.1.122 443/tcp ALLOW OUT Anywhere (out) [ 3] Anywhere ALLOW OUT Anywhere on tun0 (out) [ 4] 54321 on tun0 ALLOW IN Anywhere
На этом учебник заканчивается. Используйте это для своей выгоды, и я надеюсь, что некоторые вещи станут немного яснее. Сделайте соответствующие изменения для вашей настройки и расширьте ее. И опять-таки, версия с графическим интерфейсом хороша, но версия для командной строки лучше, чтобы привыкнуть к ней, требуется совсем немного времени.