Разрешить или заблокировать доступ в Linux к порту - PullRequest
0 голосов
/ 24 ноября 2010

Для проекта, над которым я сейчас работаю, задача состоит в том, чтобы прочитать файл с диска следующего формата:

port number [in/out/both]

Таким образом, если за номером порта следует in, только входящийСоединения разрешены.Если за ним следует out, разрешены только исходящие соединения и двунаправленные, если за ним следуют оба.Заблокируйте все остальные порты.

Один из способов сделать это - прочитать файл во время загрузки, сохранить порт, ввести структуру данных и сохранить ее в памяти, а также, когда процесс пытается использовать порт,предоставить доступ на основе структуры данных, которая находится в памяти.Проблема в том, что я не знаю, как на самом деле реализовать это, просто нужно подтолкнуть в правильных направлениях.Я знаю, что это можно сделать с помощью iptables, но это запрещено.

1 Ответ

1 голос
/ 25 ноября 2010

Для начала в кодировании ядра Linux и для некоторых частей вашей проблемы вы можете найти это полезным:

Хранение массива struct в пространстве ядра, Linux

РЕДАКТИРОВАТЬ:

Для вашей конкретной проблемы фильтрации пакетов, я бы предложил, чтобы вы использовали инфраструктуру netfilter из ядра, чтобы установить правильные правила, которые будут делать то, что вы хотите.Создание вашей собственной инфраструктуры фильтрации пакетов, вероятно, слишком сложно - плюс, как правило, не стоит изобретать велосипед.

Подсистема netfilter довольно модульна, поэтому вы можете рассмотреть возможность ее создания.другой модуль с предполагаемой функциональностью для него.

...