ALT Linux sysadmins discussion
 help / color / mirror / Atom feed
* [Sysadmins] iptables и цель ROUTE
@ 2008-08-05 10:11 Olvin
  2008-08-05 10:36 ` Serge
  2008-08-05 12:16 ` Alexander Vasiliev
  0 siblings, 2 replies; 21+ messages in thread
From: Olvin @ 2008-08-05 10:11 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

Система ALD4.0.1.
А где у нас цель ROUTE в iptables? Очень нужно, а нету. Как быть?

Нужно, чтобы интернет-трафик одного пользователя (по UID) направлялся по 
одному ppp-интерфейсу, а другого пользователя - по другому 
ppp-интерфейсу. Адреса ppp-соединений - динамические, провайдер один. 
Пользователи работают одновременно за одним компьютером. Заморачиваться 
с маршрутизатором в OpenVZ-контейнере и, тем более, с отдельной железкой 
для этих целей нет никакого желания.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Sysadmins] iptables и цель ROUTE
  2008-08-05 10:11 [Sysadmins] iptables и цель ROUTE Olvin
@ 2008-08-05 10:36 ` Serge
  2008-08-05 11:08   ` Olvin
  2008-08-05 12:16 ` Alexander Vasiliev
  1 sibling, 1 reply; 21+ messages in thread
From: Serge @ 2008-08-05 10:36 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

В сообщении от Tuesday 05 August 2008 13:11:24 Olvin написал(а):
> Система ALD4.0.1.
> А где у нас цель ROUTE в iptables? Очень нужно, а нету. Как быть?
>
> Нужно, чтобы интернет-трафик одного пользователя (по UID) направлялся по
> одному ppp-интерфейсу, а другого пользователя - по другому
> ppp-интерфейсу. Адреса ppp-соединений - динамические, провайдер один.
> Пользователи работают одновременно за одним компьютером. Заморачиваться
> с маршрутизатором в OpenVZ-контейнере и, тем более, с отдельной железкой
> для этих целей нет никакого желания.
а если метить пакеты и направлять их на определенный интерфейс с помощью 
iproute2?

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Sysadmins] iptables и цель ROUTE
  2008-08-05 10:36 ` Serge
@ 2008-08-05 11:08   ` Olvin
  2008-08-05 12:04     ` Serge
  0 siblings, 1 reply; 21+ messages in thread
From: Olvin @ 2008-08-05 11:08 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

Serge wrote:
>> Система ALD4.0.1.
>> А где у нас цель ROUTE в iptables? Очень нужно, а нету. Как быть?
>> Нужно, чтобы интернет-трафик одного пользователя (по UID) направлялся по
>> одному ppp-интерфейсу, а другого пользователя - по другому
>> ppp-интерфейсу. Адреса ppp-соединений - динамические, провайдер один.
>> Пользователи работают одновременно за одним компьютером. Заморачиваться
>> с маршрутизатором в OpenVZ-контейнере и, тем более, с отдельной железкой
>> для этих целей нет никакого желания.
> а если метить пакеты и направлять их на определенный интерфейс с помощью 
> iproute2?

Я эту проблему уже поднимал здесь. Фокус в том, что решение о 
маршрутизации для пакетов от локальных процессов принимается ДО nat или 
mangle.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Sysadmins] iptables и цель ROUTE
  2008-08-05 11:08   ` Olvin
@ 2008-08-05 12:04     ` Serge
  2008-08-05 12:20       ` Olvin
  0 siblings, 1 reply; 21+ messages in thread
From: Serge @ 2008-08-05 12:04 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

В сообщении от Tuesday 05 August 2008 14:08:18 Olvin написал(а):
> Serge wrote:
> >> Система ALD4.0.1.
> >> А где у нас цель ROUTE в iptables? Очень нужно, а нету. Как быть?
> >> Нужно, чтобы интернет-трафик одного пользователя (по UID) направлялся по
> >> одному ppp-интерфейсу, а другого пользователя - по другому
> >> ppp-интерфейсу. Адреса ppp-соединений - динамические, провайдер один.
> >> Пользователи работают одновременно за одним компьютером. Заморачиваться
> >> с маршрутизатором в OpenVZ-контейнере и, тем более, с отдельной железкой
> >> для этих целей нет никакого желания.
> >
> > а если метить пакеты и направлять их на определенный интерфейс с помощью
> > iproute2?
>
> Я эту проблему уже поднимал здесь. Фокус в том, что решение о
> маршрутизации для пакетов от локальных процессов принимается ДО nat или
> mangle.
если не ошибаюсь в цепочке mangle\OUTPUT

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Sysadmins] iptables и цель ROUTE
  2008-08-05 10:11 [Sysadmins] iptables и цель ROUTE Olvin
  2008-08-05 10:36 ` Serge
@ 2008-08-05 12:16 ` Alexander Vasiliev
  2008-08-05 13:31   ` Olvin
  1 sibling, 1 reply; 21+ messages in thread
From: Alexander Vasiliev @ 2008-08-05 12:16 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

> Нужно, чтобы интернет-трафик одного пользователя (по UID) направлялся по
> одному ppp-интерфейсу, а другого пользователя - по другому ppp-интерфейсу.
> Адреса ppp-соединений - динамические, провайдер один. Пользователи работают
> одновременно за одним компьютером.
Посмотрите http://www.opennet.ru/base/net/iproute2.txt.html на тему
дополнительных таблиц маршрутизации
в /etc/iproute2/rt_tables и использования  правил ip rule add ...

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Sysadmins] iptables и цель ROUTE
  2008-08-05 12:04     ` Serge
@ 2008-08-05 12:20       ` Olvin
  2008-08-05 13:40         ` Alexander Vasiliev
  2008-08-06  7:44         ` Pavel
  0 siblings, 2 replies; 21+ messages in thread
From: Olvin @ 2008-08-05 12:20 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

Serge wrote:
>>>> Система ALD4.0.1.
>>>> А где у нас цель ROUTE в iptables? Очень нужно, а нету. Как быть?
>>>> Нужно, чтобы интернет-трафик одного пользователя (по UID) направлялся по
>>>> одному ppp-интерфейсу, а другого пользователя - по другому
>>>> ppp-интерфейсу. Адреса ppp-соединений - динамические, провайдер один.
>>>> Пользователи работают одновременно за одним компьютером. Заморачиваться
>>>> с маршрутизатором в OpenVZ-контейнере и, тем более, с отдельной железкой
>>>> для этих целей нет никакого желания.
>>> а если метить пакеты и направлять их на определенный интерфейс с помощью
>>> iproute2?
>> Я эту проблему уже поднимал здесь. Фокус в том, что решение о
>> маршрутизации для пакетов от локальных процессов принимается ДО nat или
>> mangle.
> если не ошибаюсь в цепочке mangle\OUTPUT

Самое главное, что "ДО".


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Sysadmins] iptables и цель ROUTE
  2008-08-05 12:16 ` Alexander Vasiliev
@ 2008-08-05 13:31   ` Olvin
  0 siblings, 0 replies; 21+ messages in thread
From: Olvin @ 2008-08-05 13:31 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

Alexander Vasiliev wrote:
>> Нужно, чтобы интернет-трафик одного пользователя (по UID) направлялся по
>> одному ppp-интерфейсу, а другого пользователя - по другому ppp-интерфейсу.
>> Адреса ppp-соединений - динамические, провайдер один. Пользователи работают
>> одновременно за одним компьютером.
> Посмотрите http://www.opennet.ru/base/net/iproute2.txt.html на тему
> дополнительных таблиц маршрутизации
> в /etc/iproute2/rt_tables и использования  правил ip rule add ...

Спасибо, но я умею пользоваться командой ip. Проблема в том, что rule не 
предусматривают в качестве критерия UID процесса, пославшего пакет, а 
iptables отработает уже после принятия решения о маршрутизации. Здесь бы 
и помогла цель ROUTE.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Sysadmins] iptables и цель ROUTE
  2008-08-05 12:20       ` Olvin
@ 2008-08-05 13:40         ` Alexander Vasiliev
  2008-08-05 14:47           ` Olvin
  2008-08-06  7:44         ` Pavel
  1 sibling, 1 reply; 21+ messages in thread
From: Alexander Vasiliev @ 2008-08-05 13:40 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

>>>>> А где у нас цель ROUTE в iptables? Очень нужно, а нету. Как быть?
>>>>> Нужно, чтобы интернет-трафик одного пользователя (по UID) направлялся
>>>>> по
>>>>> одному ppp-интерфейсу, а другого пользователя - по другому
>>>>> ppp-интерфейсу. Адреса ppp-соединений - динамические, провайдер один.
>>>>> Пользователи работают одновременно за одним компьютером. Заморачиваться
>>>>> с маршрутизатором в OpenVZ-контейнере и, тем более, с отдельной
>>>>> железкой
>>>>> для этих целей нет никакого желания.
>>>>
>>>> а если метить пакеты и направлять их на определенный интерфейс с помощью
>>>> iproute2?
>>>
>>> Я эту проблему уже поднимал здесь. Фокус в том, что решение о
>>> маршрутизации для пакетов от локальных процессов принимается ДО nat или
>>> mangle.
>>
>> если не ошибаюсь в цепочке mangle\OUTPUT
>
> Самое главное, что "ДО".
Предположим, что у вас появилась цель ROUTE. По каким параметрам
iptables будет разделять трафик?
По-моему, наличие ROUTE не поможет.

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Sysadmins] iptables и цель ROUTE
  2008-08-05 13:40         ` Alexander Vasiliev
@ 2008-08-05 14:47           ` Olvin
  0 siblings, 0 replies; 21+ messages in thread
From: Olvin @ 2008-08-05 14:47 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

Alexander Vasiliev wrote:
>>>>>> А где у нас цель ROUTE в iptables? Очень нужно, а нету. Как быть?
>>>>>> Нужно, чтобы интернет-трафик одного пользователя (по UID) направлялся
>>>>>> по одному ppp-интерфейсу, а другого пользователя - по другому
>>>>>> ppp-интерфейсу. Адреса ppp-соединений - динамические, провайдер один.
>>>>>> Пользователи работают одновременно за одним компьютером. Заморачиваться
>>>>>> с маршрутизатором в OpenVZ-контейнере и, тем более, с отдельной
>>>>>> железкой
>>>>>> для этих целей нет никакого желания.
>>>>> а если метить пакеты и направлять их на определенный интерфейс с помощью
>>>>> iproute2?
>>>> Я эту проблему уже поднимал здесь. Фокус в том, что решение о
>>>> маршрутизации для пакетов от локальных процессов принимается ДО nat или
>>>> mangle.
>>> если не ошибаюсь в цепочке mangle\OUTPUT
>> Самое главное, что "ДО".
> Предположим, что у вас появилась цель ROUTE. По каким параметрам
> iptables будет разделять трафик?
> По-моему, наличие ROUTE не поможет.

По -m owner --uid nnn. Потом будет MASQUERADE в POSTROUTING. Это 
исходящий. Входящий будет разруливаться автоматом.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Sysadmins] iptables и цель ROUTE
  2008-08-05 12:20       ` Olvin
  2008-08-05 13:40         ` Alexander Vasiliev
@ 2008-08-06  7:44         ` Pavel
  2008-08-07 16:08           ` Olvin
  1 sibling, 1 reply; 21+ messages in thread
From: Pavel @ 2008-08-06  7:44 UTC (permalink / raw)
  To: sysadmins

>> если не ошибаюсь в цепочке mangle\OUTPUT
> Самое главное, что "ДО".

да, но разве окончательное решение о маршрутизации принимается не 
  перед mangle POSTROUTING?

цитата с http://iptables-tutorial.frozentux.net/ 
iptables-tutorial.html#TRAVERSINGOFTABLES
> Table 6-2. Source local host (our own machine)
> ...
> 7. Routing decision, since the previous mangle and nat changes
>    may have changed how the packet should be routed.


-- 
Best regards, Pavel
email/xmpp: p2n-at-ya-dot-ru



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Sysadmins] iptables и цель ROUTE
  2008-08-06  7:44         ` Pavel
@ 2008-08-07 16:08           ` Olvin
  2008-08-08  7:30             ` Pavel
  0 siblings, 1 reply; 21+ messages in thread
From: Olvin @ 2008-08-07 16:08 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

Pavel пишет:
>>> если не ошибаюсь в цепочке mangle\OUTPUT
>> Самое главное, что "ДО".
> да, но разве окончательное решение о маршрутизации принимается не  перед 
> mangle POSTROUTING?
> 
> цитата с http://iptables-tutorial.frozentux.net/ 
> iptables-tutorial.html#TRAVERSINGOFTABLES
>> Table 6-2. Source local host (our own machine)
>> ...
>> 7. Routing decision, since the previous mangle and nat changes
>>    may have changed how the packet should be routed.

Хм... Может, я чего не так делаю, но:

# su - user1
$ ping ya.ru
connect: Network is unreachable

При том, что:

# iptables -nv -L OUTPUT -t mangle
Chain OUTPUT (policy ACCEPT 18M packets, 3038M bytes) pkts bytes target 
     prot opt in     out     source               destination
17154 1425K MARK  0  --  *  *  0.0.0.0/0  0.0.0.0/0  MARK set 0x0
   453 23555 MARK  0  --  *  *  0.0.0.0/0  0.0.0.0/0  OWNER UID match 
500 MARK set 0x1
     0     0 MARK  0  --  *  *  0.0.0.0/0  0.0.0.0/0  OWNER UID match 
501 MARK set 0x2

(все остальные цепочки и таблицы пусты и по умолчанию ACCEPT)

# id user1
uid=500(user1) gid=500(user1) groups=500(user1)

# id user2
uid=501(user2) gid=501(user2) groups=501(user2)

# ip rule
0:      from all lookup local
11:     from all to 10.0.0.0/8 lookup main
12:     from all to 172.16.0.0/12 lookup main
13:     from all to 192.168.0.0/16 lookup main
101:    from all fwmark 0x1 lookup 101
102:    from all fwmark 0x2 lookup 102
32766:  from all lookup main
32767:  from all lookup default

# ip route show table 101
default dev ppp0  scope link

# ip route show table 102
default dev ppp10  scope link

# ip route show table main
91.149.162.1 dev ppp0  proto kernel  scope link  src 91.149.162.33
91.149.162.1 dev ppp10  proto kernel  scope link  src 91.149.156.103
10.12.7.0/24 dev homelan  proto kernel  scope link  src 10.12.7.254
169.254.0.0/16 dev homelan  scope link
192.168.0.0/16 via 10.12.7.1 dev homelan
172.16.0.0/12 via 10.12.7.1 dev homelan
10.0.0.0/8 via 10.12.7.1 dev homelan
224.0.0.0/4 dev homelan  scope link

# ip a
2: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
     inet 127.0.0.1/8 scope host lo
6: homelan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast 
qlen 1000
     link/ether 00:1c:f0:c7:c1:e8 brd ff:ff:ff:ff:ff:ff
     inet 10.12.7.254/24 brd 10.12.7.255 scope global homelan
13: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc 
pfifo_fast qlen 3
     link/ppp
     inet 91.149.162.33 peer 91.149.162.1/32 scope global ppp0
15: ppp10: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1492 qdisc 
pfifo_fast qlen 3
     link/ppp
     inet 91.149.156.103 peer 91.149.162.1/32 scope global ppp10

Но как только делаю "ip route add default dev ppp0 table main", так 
сразу и пинговаться начинает. Но цель-то при этом не достигнута... Буду 
очень рад, если укажете мне, где я ошибся.

На всякий случай: user1 должен ходить в интернет только через ppp0, 
user2 - только через ppp10, оба должны иметь доступ к локальной сети 
через homelan.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Sysadmins] iptables и цель ROUTE
  2008-08-07 16:08           ` Olvin
@ 2008-08-08  7:30             ` Pavel
  2008-08-08 21:15               ` Olvin
  0 siblings, 1 reply; 21+ messages in thread
From: Pavel @ 2008-08-08  7:30 UTC (permalink / raw)
  To: sysadmins

> $ ping ya.ru
> connect: Network is unreachable
Имя, как я понял, разрешить не удается?

Изменяются ли при выполнении ping'а счетчики в выводе:
iptables -t mangle -L OUTPUT -nv


> # ip route show table main
> 169.254.0.0/16 dev homelan  scope link
> 192.168.0.0/16 via 10.12.7.1 dev homelan
> 172.16.0.0/12 via 10.12.7.1 dev homelan
> 10.0.0.0/8 via 10.12.7.1 dev homelan
> 224.0.0.0/4 dev homelan  scope link
Сперва пропиши маршруты в homelan (и, возможно, еще к своему
DNS-серверу, если он у тебя не в ней) в таблицах 101 и 102.

Если не ошибаюсь, нужно добавить еще правило:
iptables -t nat -A POSTROUTING -m mark --mark 0/0 -j MASQUERADE
(выполняет маскарадинг _всех_ меченных пакетов). Во всяком случае 
у меня только с маскарадингом и заработало.


-- 
Best regards, Pavel
email/xmpp: p2n-at-ya-dot-ru



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Sysadmins] iptables и цель ROUTE
  2008-08-08  7:30             ` Pavel
@ 2008-08-08 21:15               ` Olvin
  2008-08-08 21:28                 ` Yuri Bushmelev
  2008-08-10 12:39                 ` Pavel
  0 siblings, 2 replies; 21+ messages in thread
From: Olvin @ 2008-08-08 21:15 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

Pavel пишет:
>> $ ping ya.ru
>> connect: Network is unreachable
> Имя, как я понял, разрешить не удается?

В том то и дело, что удаётся. Иначе не было бы сообщения "Network 
unreachable".

> Изменяются ли при выполнении ping'а счетчики в выводе:
> iptables -t mangle -L OUTPUT -nv

для ping'а - нет, остаются прежними. А вот если что-то качнуть по 
ftp/http - увеличиваются. Пробовал добавить iptables -t mangle -A OUTPUT 
-p icmp -j MARK --set-mark 0
Для этого правила счётчик увеличивается, но если в это же правило 
добавить "-m owner --uid-owner user1", то для этого правила счётчик 
остаётся нулевым. Только если вместо user1 написать root, то счётчик 
начинает считать, при чём без разницы, от какого пользователя запущен 
ping...

Кто-нибудь может пояснить мне этот момент? Ведь я-то вижу, что 
uid=euid=user1 для процесса ping...

>> # ip route show table main
>> 169.254.0.0/16 dev homelan  scope link
>> 192.168.0.0/16 via 10.12.7.1 dev homelan
>> 172.16.0.0/12 via 10.12.7.1 dev homelan
>> 10.0.0.0/8 via 10.12.7.1 dev homelan
>> 224.0.0.0/4 dev homelan  scope link
> Сперва пропиши маршруты в homelan (и, возможно, еще к своему
> DNS-серверу, если он у тебя не в ней) в таблицах 101 и 102.

Зачем? Всё, что идёт на intranet адреса - идёт по таблице main 
независимо от пользователя. Это видно из приведённых правил.

> Если не ошибаюсь, нужно добавить еще правило:
> iptables -t nat -A POSTROUTING -m mark --mark 0/0 -j MASQUERADE
> (выполняет маскарадинг _всех_ меченных пакетов). Во всяком случае у меня 
> только с маскарадингом и заработало.

Возможно. Хотя при изменении выходного интерфейса адрес должен 
подставляться автоматом во время принятия второго решения о маршрутизации.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Sysadmins] iptables и цель ROUTE
  2008-08-08 21:15               ` Olvin
@ 2008-08-08 21:28                 ` Yuri Bushmelev
  2008-08-08 22:00                   ` Olvin
  2008-08-10 12:39                 ` Pavel
  1 sibling, 1 reply; 21+ messages in thread
From: Yuri Bushmelev @ 2008-08-08 21:28 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

В сообщении от Суббота 09 августа 2008 Olvin написал(a):
> для ping'а - нет, остаются прежними. А вот если что-то качнуть по
> ftp/http - увеличиваются. Пробовал добавить iptables -t mangle -A OUTPUT
> -p icmp -j MARK --set-mark 0
> Для этого правила счётчик увеличивается, но если в это же правило
> добавить "-m owner --uid-owner user1", то для этого правила счётчик
> остаётся нулевым. Только если вместо user1 написать root, то счётчик
> начинает считать, при чём без разницы, от какого пользователя запущен
> ping...
>
> Кто-нибудь может пояснить мне этот момент? Ведь я-то вижу, что
> uid=euid=user1 для процесса ping...

$ ls -la `which ping`
-rws--x--x 1 root root 30532 Май  9 00:36 /bin/ping

Он суидный :)

-- 
С уважением,
Бушмелев Юрий

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Sysadmins] iptables и цель ROUTE
  2008-08-08 21:28                 ` Yuri Bushmelev
@ 2008-08-08 22:00                   ` Olvin
  2008-08-10 12:18                     ` Pavel
  0 siblings, 1 reply; 21+ messages in thread
From: Olvin @ 2008-08-08 22:00 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

Yuri Bushmelev пишет:
> В сообщении от Суббота 09 августа 2008 Olvin написал(a):
>> для ping'а - нет, остаются прежними. А вот если что-то качнуть по
>> ftp/http - увеличиваются. Пробовал добавить iptables -t mangle -A OUTPUT
>> -p icmp -j MARK --set-mark 0
>> Для этого правила счётчик увеличивается, но если в это же правило
>> добавить "-m owner --uid-owner user1", то для этого правила счётчик
>> остаётся нулевым. Только если вместо user1 написать root, то счётчик
>> начинает считать, при чём без разницы, от какого пользователя запущен
>> ping...
>> Кто-нибудь может пояснить мне этот момент? Ведь я-то вижу, что
>> uid=euid=user1 для процесса ping...
> $ ls -la `which ping`
> -rws--x--x 1 root root 30532 Май  9 00:36 /bin/ping
> Он суидный :)

В курсе :)

Только вот по каманде "ps axo euid,uid,pid,ppid,comm|grep ping" я вижу, 
что euid == uid и uid != root. Вот и прошу пояснить.


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Sysadmins] iptables и цель ROUTE
  2008-08-08 22:00                   ` Olvin
@ 2008-08-10 12:18                     ` Pavel
  2008-08-10 14:36                       ` Olvin
  0 siblings, 1 reply; 21+ messages in thread
From: Pavel @ 2008-08-10 12:18 UTC (permalink / raw)
  To: sysadmins

>>> Кто-нибудь может пояснить мне этот момент? Ведь я-то вижу, что
>>> uid=euid=user1 для процесса ping...
>> $ ls -la `which ping`
>> -rws--x--x 1 root root 30532 Май  9 00:36 /bin/ping
>> Он суидный :)
> 
> В курсе :)
> 
> Только вот по каманде "ps axo euid,uid,pid,ppid,comm|grep ping" я вижу, 
> что euid == uid и uid != root. Вот и прошу пояснить.

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

ping одна из таких - raw-сокет для отправки ICMP-пакета echo 
request может создать только root (кратковременная процедура), а 
принять echo reply (долговременная процедура - ее и видно в 
выводе ps) можно и с пониженными привилегиями.


-- 
Best regards, Pavel
email/xmpp: p2n-at-ya-dot-ru



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Sysadmins] iptables и цель ROUTE
  2008-08-08 21:15               ` Olvin
  2008-08-08 21:28                 ` Yuri Bushmelev
@ 2008-08-10 12:39                 ` Pavel
  2008-08-10 14:40                   ` Olvin
  1 sibling, 1 reply; 21+ messages in thread
From: Pavel @ 2008-08-10 12:39 UTC (permalink / raw)
  To: sysadmins

>>> $ ping ya.ru
>>> connect: Network is unreachable
>> Имя, как я понял, разрешить не удается?
> В том то и дело, что удаётся. Иначе не было бы сообщения "Network 
> unreachable".
А где у тебя DNS? В homelan? Имхо, это сообщение из-за 
невозможности найти маршрут к нему. На данный момент у тебя _все_ 
(в т.ч. DNS-запросы) от пользователя user1 уходят _только_ через 
ppp0:
# ip route show table 101
default dev ppp0  scope link


>> Сперва пропиши маршруты в homelan (и, возможно, еще к своему
>> DNS-серверу, если он у тебя не в ней) в таблицах 101 и 102.
> Зачем? Всё, что идёт на intranet адреса - идёт по таблице main 
> независимо от пользователя. Это видно из приведённых правил.
До таблицы main меченные пакеты не доходят - у нее номер 32766, а 
у твоего правила "from all fwmark 0x1 lookup 101" номер 101 (PRDB 
просматривается до первого подходящего правила, в порядке 
увеличения номера).


-- 
Best regards, Pavel
email/xmpp: p2n-at-ya-dot-ru



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Sysadmins] iptables и цель ROUTE
  2008-08-10 12:18                     ` Pavel
@ 2008-08-10 14:36                       ` Olvin
  2008-08-11  4:20                         ` Pavel
  0 siblings, 1 reply; 21+ messages in thread
From: Olvin @ 2008-08-10 14:36 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

Pavel пишет:
>>>> Кто-нибудь может пояснить мне этот момент? Ведь я-то вижу, что
>>>> uid=euid=user1 для процесса ping...
>>> $ ls -la `which ping`
>>> -rws--x--x 1 root root 30532 Май  9 00:36 /bin/ping
>>> Он суидный :)
>> В курсе :)
>> Только вот по каманде "ps axo euid,uid,pid,ppid,comm|grep ping" я 
>> вижу, что euid == uid и uid != root. Вот и прошу пояснить.
> Как я понимаю, правильно написанная suid'ная программа основную часть 
> времени должна выполняться с правами обычного пользователя, переключаясь 
> в привилегированный режим только при необходимости.
> 
> ping одна из таких - raw-сокет для отправки ICMP-пакета echo request 
> может создать только root (кратковременная процедура), а принять echo 
> reply (долговременная процедура - ее и видно в выводе ps) можно и с 
> пониженными привилегиями.

Т.е. пакеты она должна посылать уже из-под обычного пользователя, так? 
Тогда почему netfilter считает иначе? Вот это и есть то, чего я не смог 
понять...


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Sysadmins] iptables и цель ROUTE
  2008-08-10 12:39                 ` Pavel
@ 2008-08-10 14:40                   ` Olvin
  2008-08-11  6:33                     ` Pavel
  0 siblings, 1 reply; 21+ messages in thread
From: Olvin @ 2008-08-10 14:40 UTC (permalink / raw)
  To: ALT Linux sysadmin discuss

Pavel пишет:
>>>> $ ping ya.ru
>>>> connect: Network is unreachable
>>> Имя, как я понял, разрешить не удается?
>> В том то и дело, что удаётся. Иначе не было бы сообщения "Network 
>> unreachable".
> А где у тебя DNS? В homelan? Имхо, это сообщение из-за невозможности 
> найти маршрут к нему.
> На данный момент у тебя _все_ (в т.ч. DNS-запросы) 
> от пользователя user1 уходят _только_ через ppp0:
> # ip route show table 101
> default dev ppp0  scope link

Если бы не был доступен по какой-либо причине DNS, оно бы просто 
написало "unknown host"

>>> Сперва пропиши маршруты в homelan (и, возможно, еще к своему
>>> DNS-серверу, если он у тебя не в ней) в таблицах 101 и 102.
>> Зачем? Всё, что идёт на intranet адреса - идёт по таблице main 
>> независимо от пользователя. Это видно из приведённых правил.
> До таблицы main меченные пакеты не доходят - у нее номер 32766, а у 
> твоего правила "from all fwmark 0x1 lookup 101" номер 101 (PRDB 
> просматривается до первого подходящего правила, в порядке увеличения 
> номера).

Вы невнимательны. Правило №11,12 и 13 отрабатывают ДО 101 и 102. Они и 
отвечают за поиск по таблице main. DNS находится в локальной сети.

# ip rule
0:      from all lookup local
11:     from all to 10.0.0.0/8 lookup main
12:     from all to 172.16.0.0/12 lookup main
13:     from all to 192.168.0.0/16 lookup main
101:    from all fwmark 0x1 lookup 101
102:    from all fwmark 0x2 lookup 102
32766:  from all lookup main
32767:  from all lookup default



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Sysadmins] iptables и цель ROUTE
  2008-08-10 14:36                       ` Olvin
@ 2008-08-11  4:20                         ` Pavel
  0 siblings, 0 replies; 21+ messages in thread
From: Pavel @ 2008-08-11  4:20 UTC (permalink / raw)
  To: sysadmins

>> ping одна из таких - raw-сокет для отправки ICMP-пакета echo request 
>> может создать только root (кратковременная процедура), а принять echo 
>> reply (долговременная процедура - ее и видно в выводе ps) можно и с 
>> пониженными привилегиями.
> Т.е. пакеты она должна посылать уже из-под обычного пользователя, так? 

Насколько я понял, и создание и отправка ICMP может происходить 
только от root'а.

А если посмотреть так:
> # iptables -t mangle -A OUTPUT -p icmp -m owner --uid-owner user -j MARK --set-mark 0xA
> # iptables -t mangle -A OUTPUT -p icmp -m owner --uid-owner root -j MARK --set-mark 0xB
> 
> # iptables -t mangle -L OUTPUT -vn
>> Chain OUTPUT (policy ACCEPT 149K packets, 53M bytes)
>> pkts bytes target prot
>>    0     0 MARK   icmp  OWNER UID match 500 MARK set 0xa
>>    0     0 MARK   icmp  OWNER UID match 0   MARK set 0xb
> 
> $ ping -c 3 ya.ru
> 
> # iptables -t mangle -L OUTPUT -vn
>> Chain OUTPUT (policy ACCEPT 149K packets, 53M bytes)
>>  pkts bytes target prot
>>     0     0 MARK   icmp  OWNER UID match 500 MARK set 0xa
>>     3   252 MARK   icmp  OWNER UID match 0   MARK set 0xb
Это не может дать однозначного ответа?


-- 
Best regards, Pavel
email/xmpp: p2n-at-ya-dot-ru



^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [Sysadmins] iptables и цель ROUTE
  2008-08-10 14:40                   ` Olvin
@ 2008-08-11  6:33                     ` Pavel
  0 siblings, 0 replies; 21+ messages in thread
From: Pavel @ 2008-08-11  6:33 UTC (permalink / raw)
  To: sysadmins

> Если бы не был доступен по какой-либо причине DNS, оно бы просто 
> написало "unknown host"
Да, насчет DNS я был неправ. А для root'а есть шлюз по умолчанию?

> Вы невнимательны. Правило №11,12 и 13 отрабатывают ДО 101 и 102. Они и 
> отвечают за поиск по таблице main. DNS находится в локальной сети.
> 
> # ip rule
> 0:      from all lookup local
> 11:     from all to 10.0.0.0/8 lookup main
> 12:     from all to 172.16.0.0/12 lookup main
> 13:     from all to 192.168.0.0/16 lookup main
> 101:    from all fwmark 0x1 lookup 101
> 102:    from all fwmark 0x2 lookup 102
> 32766:  from all lookup main
> 32767:  from all lookup default
Да, и тут правда ваша, проглядел я...

Быть может тогда не работает из-за невозможности или неверного 
выбора IP адреса источника? Ведь в момент его определения пакеты 
еще не помечены iptables'ом... Что если от user1, явно указав 
адрес отправителя, выполнить traceroute -s <ppp0 ip> -n ya.ru ?


-- 
Best regards, Pavel
email/xmpp: p2n-at-ya-dot-ru



^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2008-08-11  6:33 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-08-05 10:11 [Sysadmins] iptables и цель ROUTE Olvin
2008-08-05 10:36 ` Serge
2008-08-05 11:08   ` Olvin
2008-08-05 12:04     ` Serge
2008-08-05 12:20       ` Olvin
2008-08-05 13:40         ` Alexander Vasiliev
2008-08-05 14:47           ` Olvin
2008-08-06  7:44         ` Pavel
2008-08-07 16:08           ` Olvin
2008-08-08  7:30             ` Pavel
2008-08-08 21:15               ` Olvin
2008-08-08 21:28                 ` Yuri Bushmelev
2008-08-08 22:00                   ` Olvin
2008-08-10 12:18                     ` Pavel
2008-08-10 14:36                       ` Olvin
2008-08-11  4:20                         ` Pavel
2008-08-10 12:39                 ` Pavel
2008-08-10 14:40                   ` Olvin
2008-08-11  6:33                     ` Pavel
2008-08-05 12:16 ` Alexander Vasiliev
2008-08-05 13:31   ` Olvin

ALT Linux sysadmins discussion

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/sysadmins/0 sysadmins/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 sysadmins sysadmins/ http://lore.altlinux.org/sysadmins \
		sysadmins@lists.altlinux.org sysadmins@lists.altlinux.ru sysadmins@lists.altlinux.com
	public-inbox-index sysadmins

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.sysadmins


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git