[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Ограничение программе доступа в сеть (was: Соотнесение процесса и поля QoS)



Stanislav Maslovski <stanislav.maslovski@gmail.com> 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 родителя), что может оказаться дырой в защите

Да что у там: на любую группу из тех, в каких состоит пользователь, она сможет поменять. ;-)

Attachment: signature.asc
Description: PGP signature


Reply to: