Re: Ограничение программе доступа в сеть (was: Соотнесение процесса и поля QoS)
Доброго времени суток, On Sun, Sep 22, 2019 at 10:38:26PM +0300, Dmitry Alexandrov wrote: > Stanislav Maslovski wrote: > > У меня для аналогичного эффекта (ограничение доступа к сети для некой > > проприетарщины) много лет используется вот такой простенький setgid > > wrapper в комбинации c owner GID match в OUTPUT chain: > > Хотел бы заметить, что ограничение доступа в сеть для программы — это > куда более прозаичная задача, чем назначение его пакетам ToS, и > решение у нее куда очевиднее, чем cgroups: *selinux*. Нет, SELinux-ом не пользуюсь. В дебиане юзабельный SELinux появился (по моим меркам) не так уж и давно. Ключевые слова тут "много лет". > Все равно ведь вы его используете, раз приложение несвободное, верно? Не верно. > > Но, как я понимаю, в такой постановке, запущенная через execve() > > программа сможет поменять свой GID (исходный egid родителя) на свой > > же EGID (исходный rgid родителя), что может оказаться дырой в защите > > Да что у там: на любую группу из тех, в каких состоит пользователь, она > сможет поменять. ;-) С чего бы это? Документация говорит только лишь, что An unprivileged process may change its real U(G)ID, effective U(G)ID, and saved set-user(group)-ID, each to one of: the current real U(G)ID, the current effective U(G)ID or the current saved set-user(group)-ID. -- Stanislav
Ограничение программе доступа в сеть (was: Соотнесение процесса и поля QoS)
Stanislav Maslovski wrote: > On Sun, Sep 15, 2019 at 12:12:10PM +0300, Pavel Volkov wrote: >> Может быть при запуске этих процессов как-то менять им GID? > > У меня для аналогичного эффекта (ограничение доступа к сети для некой > проприетарщины) много лет используется вот такой простенький setgid wrapper в > комбинации c owner GID match в OUTPUT chain: Хотел бы заметить, что ограничение доступа в сеть для программы — это куда более прозаичная задача, чем назначение его пакетам ToS, и решение у нее куда очевиднее, чем cgroups: *selinux*. Все равно ведь вы его используете, раз приложение несвободное, верно? (А MWE для ограничения я приводил просто потому, что его проще проверить.) >> Но я бы хотел, чтобы создаваемые ими файлы всё-таки имели исходный GID. > > С wrapper-ом типа вышеприведённого этого можно добиться, если GID != EGID. > Например, заменив соответствующую строчку в коде на > >setresgid(egid, rgid, egid) > > Но, как я понимаю, в такой постановке, запущенная через execve() программа > сможет поменять свой GID (исходный egid родителя) на свой же EGID (исходный > rgid родителя), что может оказаться дырой в защите Да что у там: на любую группу из тех, в каких состоит пользователь, она сможет поменять. ;-) signature.asc Description: PGP signature