Что именно делают эти строки ip?

setfacl предназначены для причудливых POSIX acl(5), которые являются дополнительным средством, которое Вы можете использовать поверх традиционных и стандартных unix прав доступа пользователя, группы, других пользователей и битов чтения, записи, выполнения (и различных "липких" битов). Дополнительные acl(5) отображаются с + в списке каталогов:

drwxr-xr-x  2 user staff 4096 Sep  8 18:25 dir
drwxrwxr-x+ 2 user staff 4096 Sep  8 18:25 facldir

Что касается того, как работают разрешения по умолчанию, Стивенс в "APUE" подробно об этом рассказывает.

1
22.03.2018, 04:01
2 ответа
  1. Дляip rule add table 128 from 192.168.10.123:

    ip ruleуправляет правилами маршрутизации. Требуется как SELECTOR , так и ACTION . Таким образом, в этом случае СЕЛЕКТОР — этоfrom 192.168.10.123(192.168.10.123 — это ПРЕФИКС ), а ДЕЙСТВИЕ — это table 128. В целом это говорит: «Добавьте правило маршрутизации для table 128для трафика, поступающего из 192.168.10.123

    .
  2. Дляip route add table 128 to 192.168.10.0/24 dev eth0:

    Команда ip routeманипулирует целыми таблицами маршрутизации(в вашем случае table 128манипулирует). Вы addвводите правило, которое гласит: «Весь трафик, предназначенный для 192.168.10.0/24, использует устройство вывода eth0.

  3. Дляip route add table 128 default via 192.168.10.1

    Как и прежде, команда ip routeуправляет маршрутом table 128. Но здесь маршрут говорит: «Направьте весь трафик(default= IP0/0 или IPv6 ::/0)на адрес маршрутизатора следующего перехода 192.168.10.1. (. ] Скорее всего, это шлюз по умолчанию в вашей частной сети.)

Я надеюсь, что такое объяснение будет для вас более полезным, чем запутанным.

4
27.01.2020, 23:23

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

Есть несколько вещей, которые вам нужно понять, чтобы понять смысл этих команд и того, что они делают.

Во-первых, если на вашем компьютере запущен VPN-клиент, перехватывающий трафик и направляющий его через VPN, у вас уже есть настраиваемые правила маршрутизации. Если вы подключаетесь к VPN-сервису, а не к VPN-серверу, находящемуся под вашим собственным контролем, удаленный сервис обычно передает правила маршрутизации на ваш компьютер через openvpn при подключении. Вы можете увидеть их, набрав ip route showпри подключенном vpn. Все строки, содержащие tun0, относятся к вашему VPN-подключению.

Это tun0является ключевым. С точки зрения ядра, ваша сетевая карта(eth0или enp1s0или любая другая )является одним сетевым интерфейсом, а VPN-подключение — вторым, «виртуальным», сетевым интерфейсом. Если вы введете ip addressво время работы VPN, вы увидите, что оба они определены со своими отдельными IP-адресами. Любой трафик, направляемый через виртуальный сетевой интерфейс tun0, выходит через VPN, а любой трафик, направляемый через интерфейс eth0, выходит напрямую, минуя VPN.

Как упоминалось в вики openvpn , IP-адрес трафика, генерируемого на вашем компьютере, будет установлен на устройство, на которое вы направляете трафик по умолчанию, что означает VPN, что означает IP-адрес назначен на tun0. Но! Когда соединения приходят на обычное физическое сетевое устройство (, то есть , а не через VPN ),ответы будут иметь IP-адрес этого устройства в качестве адреса «от». Теперь правила маршрутизации, навязанные вам провайдером VPN, не имеют значения, они просто видят исходящий трафик и перенаправляют его в VPN через tun0и все. Итак, вы пытаетесь подключиться к ящику по ssh, он получает запрос и отвечает на него, но ответ уходит через VPN. Затем ваш ssh-клиент говорит: «Вау, этот ответ приходит с совершенно другого IP-адреса, чем тот, к которому я пытаюсь подключиться», и игнорирует его. Таким образом, вы не можете установить входящее соединение с машиной, на которой запущен VPN-клиент, и именно здесь вступают в действие команды ip ruleи ip route.

Эти команды настраивают политику -маршрутизацию на основе , что является сложной темой. Как можно проще, ядро ​​использует «таблицу маршрутизации», чтобы различать, какой трафик остается здесь, на этой машине (это сетевое устройство lo, сокращение от «петля», имеющее IP-адрес 127.0.0.1 ), какой трафик находится в той же локальной сети и, таким образом, направляется прямо к месту назначения, минуя маршрутизатор (, также известный как шлюз ), и трафик, направляемый в другое место. Чтобы иметь доступ в Интернет, ваша машина должна иметь запись маршрутизации «шлюз по умолчанию», которая направляет весь «другой» трафик на маршрутизатор, подключенный к внешнему миру. Все это происходит в таблице маршрутизации по умолчанию , которая обычно является единственной, о которой вам нужно беспокоиться.

Но настройка маршрутизации VPN переписала вашу таблицу маршрутизации по умолчанию, чтобы установить VPN-подключение (к tun0устройству )в качестве маршрута по умолчанию для всего трафика, направляемого «в другое место». К счастью, Linux позволяет нам иметь несколько таблиц маршрутизации и выбирать, какая таблица маршрутизации будет применяться к тому или иному трафику на основе различных правил, также известных как политики, отсюда и «маршрутизация на основе политик -».

Теперь давайте рассмотрим конкретные ipкоманды, о которых идет речь.учитывая контекст выше:

  • ip rule add table 128 from 192.168.10.123
    Это создает правило маршрутизации -, основанное на политике -, в котором говорится, что любой трафик с адресом «от» 192.168.10.123 должен маршрутизироваться в соответствии с таблицей маршрутизации 128, а не таблицей маршрутизации по умолчанию. [1]
  • ip route add table 128 to 192.168.10.0/24 dev eth0
    Это добавляет маршрут в таблицу 128, который направляет весь трафик с адресом «куда» в локальной сети 192.168.10. *подсети в eth0.
  • ip route add table 128 default via 192.168.10.1
    Это устанавливает маршрут по умолчанию в таблице 128 для использования вашего обычного локального шлюза вместо шлюза VPN.

Теперь любой трафик, который является ответом на соединение наeth0(и, таким образом, автоматически имеет адрес «от» 192.168.10.123), будет сначала искаться в таблице 128. В таблице 128 говорится, что если пункт назначения находится здесь, в локальной сети, просто маршрутизируйте напрямую через eth0, в противном случае маршрутизируйте через обычный не -VPN-шлюз 192.168.10.1. Но общее значение по умолчанию для трафика, исходящего от этой машины, состоит в том, чтобы получить свой адрес «от» из tun0, потому что это интерфейс по умолчанию в вашей таблице маршрутизации по умолчанию. Весь трафик и не будет соответствовать правилу from 192.168.10.123, поэтому таблица 128 не применяется, и он попадет в таблицу «по умолчанию», в которой говорится о маршрутизации через VPN.

Примечание:Здесь нет ничего особенного в 128, вы просто создаете новую таблицу маршрутизации с произвольно выбранным номером. Таблица маршрутизации по умолчанию имеет номер 253, и вы можете использовать любой номер от 1 до 252 для своей пользовательской таблицы (s ).

  1. Технически он просто проверяет пакеты на соответствие правилам политики каждой таблицы в числовом порядке и маршрутизирует их в соответствии с первым соответствием, поэтому 128 обрабатывается до 252, а пакеты, которые отправляются в пользовательскую таблицу маршрутизации и не соответствуют ни одному из маршруты в ней будут провалены и проверены на соответствие последующим правилам, и в конечном итоге найдут свой путь к таблице маршрутизации по умолчанию, если ничего не совпадает, но поскольку в таблице 128 есть маршрут по умолчанию,все пакеты, направляемые в эту таблицу, гарантированно не проваливаются.
5
27.01.2020, 23:23

Теги

Похожие вопросы