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" подробно об этом рассказывает.
Для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
Дляip route add table 128 to 192.168.10.0/24 dev eth0
:
Команда ip route
манипулирует целыми таблицами маршрутизации(в вашем случае table 128
манипулирует). Вы add
вводите правило, которое гласит: «Весь трафик, предназначенный для 192.168.10.0/24
, использует устройство вывода eth0
.
Дляip route add table 128 default via 192.168.10.1
Как и прежде, команда ip route
управляет маршрутом table 128
. Но здесь маршрут говорит: «Направьте весь трафик(default
= IP0/0 или IPv6 ::/0)на адрес маршрутизатора следующего перехода 192.168.10.1
. (. ] Скорее всего, это шлюз по умолчанию в вашей частной сети.)
Я надеюсь, что такое объяснение будет для вас более полезным, чем запутанным.
Я знаю, что этот вопрос довольно старый, но я потратил несколько часов на то, чтобы собрать его воедино, поэтому, если это поможет другим, кто найдет здесь свой путь, я попытаюсь ответить на -не слишком -технический вопрос. отвечать.
Есть несколько вещей, которые вам нужно понять, чтобы понять смысл этих команд и того, что они делают.
Во-первых, если на вашем компьютере запущен 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
ip route add table 128 to 192.168.10.0/24 dev eth0
eth0
. ip route add table 128 default via 192.168.10.1
Теперь любой трафик, который является ответом на соединение на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 ).