|
Модераторы: xvr |
|
vektor554 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 21.1.2017 Репутация: нет Всего: нет |
Добрый день!
Имеется приложение в котором создается пакетный сокет: pack_sock = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_ALL)); Данным сокетом с канального уровня сетевого стека вычитываются все входящие/выходящие пакеты. Однако, получается что пакетный сокет не удаляет пакет с канального уровня, а только копирует его, после чего пакет передается выше по сетевому стеку/в драйвер для передачи в сеть. То есть, если в дополнение к пакетному сокету открыть и присоединить к нужному ip и порту, скажем, udp сокет, то данным сокетом можно повторно вычитать данные (с удаленными ethernet, ip и udp заголовками), уже полученные пакетным сокетом. Вопрос: можно ли каким либо образом (выставлением флагов, модификацией стека) предотвратить передачу ВХОДЯЩИХ пакетов, вычитанных пакетным сокетом, выше по сетевому стеку? |
|||
|
||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 3 Всего: 16 |
В правила firewallа (iptables) их добавь, чтобы -j DROP и всё такое.
Хотя, конечно, это тожэ будет неправильное решэние какой-то твоей задачи, которую ты здесь не привёл. |
|||
|
||||
Olej |
|
||||
Новичок Профиль Группа: Участник Сообщений: 42 Регистрация: 30.11.2016 Репутация: нет Всего: нет |
Можно. И довольно элементарно, написав фильтр в стек TCP/IP ядра Linux - по форме это модуль ядра, драйвер. Для этого нужно иметь высокую квалификацию в языке C и, желательно, в программировании модулей ядра Linux. См. Драйверы и модули ядра Linux - там есть практически ваш код. P.S. кто это вас научил называть SOCK_RAW "пакетным" сокетом? это всегда было "сырой" сокет. SOCK_RAW - это нестандартное расширение техники TCP/IP, нестандартно для POSIX, это специфическое расширение Linux и оно может работать как угодно (даже от версии к версии). Добавлено через 1 минуту и 58 секунд
iptables ничего не знает о пакетах канального уровня ... он даже не догадывается о его существовании |
||||
|
|||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: 3 Всего: 16 |
Да уж, когда мой iptables начнёт о чём-нибудь догадываться, мне станет по-настоящему страшно. PS Но кстати да, совет топикстартеру: не употребляйте слов "канальный уровень" и прочие дурацкие наборы букв из описания сетевого протокола имени ISO/OSI, сдохшэго примерно 30 лет назад. Сейчас это выглядит некоторым академическим позёрством, не очень способствующим общению. |
|||
|
||||
feodorv |
|
|||
Эксперт Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 1 Всего: 45 |
Не SOCK_RAW. Именно PF_PACKET. И "пакетный сокет" - общепринятое название для сокетов семейства PF_PACKET -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |