Правила 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).

  1. Откройте окно терминала и введите следующие команды и настройте их в соответствии с вашими потребностями. Используйте su, чтобы войти в систему как пользователь root, если вы этого не сделали, или поместите sudo перед каждой командой. $ представляет подсказку в терминале.

  2. Включить UFW.

    $ ufw enable

    Это активирует брандмауэр, и теперь вы можете добавлять правила.

  3. Установите поведение по умолчанию, чтобы запретить весь входящий и исходящий трафик.

    $ ufw default deny out $ ufw default deny in

    Теперь весь входящий и исходящий трафик будет заблокирован.

  4. Добавьте правило, разрешающее трафик на ваш маршрутизатор (только если это необходимо).

    $ 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.

  5. Добавьте правило, разрешающее трафик 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.

  6. Добавьте правило, разрешающее входящий и исходящий трафик через tun0. Это трафик от и до VPN-сервера.

    $ ufw разрешить на tun0

    Теперь приложение, такое как браузер, может подключаться к различным сайтам в Интернете. Весь трафик будет проходить через сервер vpn.

  7. В случае, если вы используете бит-торрент-клиент, вам также необходимо разрешить входящий трафик с порта, который вы указали в битторрент-клиенте (это порт, который необходим для подключения к битам одноранговых узлов / сеялок). -торрент-клиент (NAT).

    $ ufw разрешает вход на tun0 с любого порта 54321

    Это позволит входящему трафику, поступающему с разных IP-адресов (одноранговых / просматривающих, которые хотят подключиться к вашему клиенту), подключаться через соединение VPN-сервера (здесь указано tun0). В этом случае используется номер порта 54321, измените его на правильный номер порта!

  8. Если вы сейчас входите.

    $ 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
    

На этом учебник заканчивается. Используйте это для своей выгоды, и я надеюсь, что некоторые вещи станут немного яснее. Сделайте соответствующие изменения для вашей настройки и расширьте ее. И опять-таки, версия с графическим интерфейсом хороша, но версия для командной строки лучше, чтобы привыкнуть к ней, требуется совсем немного времени.

Другие вопросы по тегам