* [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