Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Права юзеров на сеть
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Russian
View previous topic :: View next topic  
Author Message
KUV
Tux's lil' helper
Tux's lil' helper


Joined: 18 Mar 2005
Posts: 128

PostPosted: Tue Apr 12, 2005 1:45 pm    Post subject: Права юзеров на сеть Reply with quote

Скажите плиз, как устанавливать права юзеров на использование сетевых подключений?
Если конкретно - к моей тачке имеют шелл доступ несколько челов из локалки, и я не хочу чтоб они могли юзать мое PPPoE подключение, ибо траффик у меня не халявный.
Back to top
View user's profile Send private message
ba
l33t
l33t


Joined: 25 May 2003
Posts: 804

PostPosted: Tue Apr 12, 2005 2:01 pm    Post subject: Reply with quote

iptables и -m owner
Back to top
View user's profile Send private message
KUV
Tux's lil' helper
Tux's lil' helper


Joined: 18 Mar 2005
Posts: 128

PostPosted: Tue Apr 12, 2005 2:33 pm    Post subject: Reply with quote

Сорри, а можно поподробнее?
Потыкался по манам, но iptables слишком обширная система чтоб разбираться в ней во всей ради такой мелочи.
Попробовал ввести нечто типа iptables -A OUTPUT -m owner --gid-owner dialout, но юзера не входящие в эту группу по прежнему могут пользоваться сетью.
Можно привести конкретную команду, которая даст использовать ppp0 только группе dialout? Сенькс заранее.
Back to top
View user's profile Send private message
ba
l33t
l33t


Joined: 25 May 2003
Posts: 804

PostPosted: Tue Apr 12, 2005 6:57 pm    Post subject: Reply with quote

Code:
iptables -A OUTPUT -o ppp0 -m owner ! --gid-owner dialout -j REJECT


а вообще советую разобраться...
Back to top
View user's profile Send private message
KUV
Tux's lil' helper
Tux's lil' helper


Joined: 18 Mar 2005
Posts: 128

PostPosted: Tue Apr 12, 2005 9:23 pm    Post subject: Reply with quote

Так как написано сделать не получилось - он требует _активной_ группы dialout, а не вхождения юзера в нее. Если знаете как сделать группу - напишите, а так пока пришлось прописать чтоб рута и меня пускало, а всех остальных нет. Неудобно, если юзеров делать много, апач например еще, и т.д.=(.
Back to top
View user's profile Send private message
GreenDragon
Guru
Guru


Joined: 31 Jul 2003
Posts: 319

PostPosted: Wed Apr 13, 2005 5:22 am    Post subject: Reply with quote

KUV wrote:
Так как написано сделать не получилось - он требует _активной_ группы dialout, а не вхождения юзера в нее. Если знаете как сделать группу - напишите, а так пока пришлось прописать чтоб рута и меня пускало, а всех остальных нет. Неудобно, если юзеров делать много, апач например еще, и т.д.=(.

Похоже Вы или не то читали, или не так поняли, на всякий случай привожу цитату:
Code:
Расширение owner

Расширение owner предназначено для проверки "владельца" пакета. Изначально данное расширение было написано как пример демонстрации возможностей iptables. Допускается использовать этот критерий только в цепочке OUTPUT. Такое ограничение наложено потому, что на сегодняшний день нет реального механизма передачи информации о "владельце" по сети. Справедливости ради следует отметить, что для некоторых пакетов невозможно определить "владельца" в этой цепочке. К такого рода пакетам относятся различные ICMP responses. Поэтому не следует употреблять этот критерий к ICMP responses пакетам.

Таблица 12. Расширение owner
Критерий   --uid-owner   
Пример   iptables -A OUTPUT -m owner --uid-owner 500   
Описание   Производится проверка "владельца" по User ID (UID). Подобного рода проверка может использоваться, к примеру, для блокировки выхода в Интернет отдельных пользователей.   
Критерий   --gid-owner   
Пример   iptables -A OUTPUT -m owner --gid-owner 0   
Описание   Производится проверка "владельца" пакета по Group ID (GID).   
Критерий   --pid-owner   
Пример   iptables -A OUTPUT -m owner --pid-owner 78   
Описание   Производится проверка "владельца" пакета по Process ID (PID). Этот критерий достаточно сложен в использовании, например, если мы хотим позволить передачу пакетов на HTTP порт только от заданного демона, то нам потребуется написать небольшой сценарий, который получает PID процесса (хотябы через ps) и затем подставляет найденный PID в правила. Пример использования критерия можно найти в pid-owner.txt.   
Критерий   --sid-owner   
Пример   iptables -A OUTPUT -m owner --sid-owner 100   
Описание   Производится проверка Session ID пакета. Значение SID наследуются дочерними процессами от "родителя", так, например, все процессы HTTPD имеют один и тот же SID (примером таких процессов могут служить HTTPD Apache и Roxen). Пример использования этого критерия можно найти в sid-owner.txt. Этот сценарий можно запускать по времени для проверки наличия процесса HTTPD, и в случае отсутствия - перезапустить "упавший" процесс, после чего сбросить содержимое цепочки OUTPUT и ввести ее снова.

и правило
Code:
iptables -A OUTPUT -o eth0 -m owner ! --gid-owner 10 -j REJECT

отлично работает и пускает только пользователей группы wheel
Back to top
View user's profile Send private message
KUV
Tux's lil' helper
Tux's lil' helper


Joined: 18 Mar 2005
Posts: 128

PostPosted: Wed Apr 13, 2005 8:31 am    Post subject: Reply with quote

Читал, и так понял что у пакета имеется его UID, а GID - это активная группа UID, та что прописана в passwd.
По-моему это не я чтото недочитал ;-)
В дополнение приведу листинг:
Code:
> iptables -A OUTPUT -o ppp0 -m owner ! --gid-owner 20 -j REJECT
> id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video)
> iptables -L OUTPUT
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere            ! OWNER GID match dialout reject-with icmp-port-unreachable
> ping google.com
ping: unknown host google.com
> iptables -D OUTPUT 1
ping google.com
> PING google.com (216.239.57.99) 56(84) bytes of data.
64 bytes from 216.239.57.99: icmp_seq=1 ttl=237 time=189 ms

Вот что использую я, это работает:
Code:
iptables -L OUTPUT
Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            OWNER UID match root
ACCEPT     all  --  anywhere             anywhere            OWNER UID match kuv
REJECT     all  --  anywhere             anywhere            reject-with icmp-port-unreachable

Нельзя так как я хочу сделать я думаю нельзя по следующей причине - тогда придется пробегать всю таблицу групп для каждого пакета, а это будет сильно тормозить тачку при работе по сети. Другое дело можно написать скрипт, который выбирает пользователей нужной группы и переформирует цепочку OUTPUT, для упрощения изменений.
Back to top
View user's profile Send private message
ba
l33t
l33t


Joined: 25 May 2003
Posts: 804

PostPosted: Wed Apr 13, 2005 9:58 am    Post subject: Reply with quote

ммм... а пинг всегда будет работать, потому что он суидный...
Back to top
View user's profile Send private message
GreenDragon
Guru
Guru


Joined: 31 Jul 2003
Posts: 319

PostPosted: Wed Apr 13, 2005 12:38 pm    Post subject: Reply with quote

Quote:
К такого рода пакетам относятся различные ICMP responses. Поэтому не следует употреблять этот критерий к ICMP responses пакетам.

Не это ли ответ на Ваш вопрос о ping

PS: может непонятно написал, тогда в одном терминале
Code:
# trafshow -ni eth0

во втором
Code:
 $ ping 216.109.112.135

и анализируем тип пакетов, глядя в trafshow
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Russian All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum