Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: фильтрация по ip  (Прочитано 6372 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн saguaro

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
фильтрация по ip
« : 18 Декабря 2009, 22:26:48 »
Необходимо (жизненно важно) настроить чтото в системе таким образом, чтобы можно было использовать transmission (или любой другой торрент-клиент)  в определенном (заданном мной) диапазоне ip-адресов.

Я новичек в ubuntu 9.10. Ранее пользовался Windows системами. Не претендую становитсья профессиональным администратором или сетивиком. Для меня важна простота решения проблем (ну и конечно чтобы я понимал что делаю). Поэтому прошу в рекомендациях - минимум работы с консолью (больше с gui). Для меня это проще (отталкиваясь от моего опыта в windows - все задачи можно было решить с помощью графических приложений). А если уж Ubuntu позиционирует, как система для домашнего использования (или для десктопов) и заявления что она вполне юзерфрендли не должны потонуть во всеопщем отрицании gui в противовес к консоли. Замечу я рядовой пользователь, столкнувшийся с рядовой проблемой (совсем не вселенского масштаба.. и поднимать сервера в огромных корпорациях не планирую).

Какие идеи возникали:
- изучение iptables (ужасно дико для меня - долго болела голова, ничего не понял... возможно позже, но не сейчас)
- изучение надстройки на iptables - ufw (все же проще) больше понял но все же, но как реализовать цель не сообразил (gufw не помог)
- посоветовали идею с прозрачным-прокси, решил использовать виртуальную машину, но застрял в настройке сетевых карт (не совсем понимаю в каких режимах ставить) да и вообще есть ли смысл?

задача пока не решена (суть - простая, но в Ubuntu я ее решить не могу). В винде давно бы уже решил. Тот же user-gate очень прост в настройке. Или без прокси вообще, с помощью outpost-фаерволла. Неужели никто не знает более простово способа, нежели конфигурить iptables? (неужели Linux системы все же пока не подходят для рядовых пользователей?) Очень надеюсь что выход найдется... от всей души надеюсь на потдержку знатоков!

Оффлайн Tokh

  • Активист
  • *
  • Сообщений: 705
    • Просмотр профиля
Re: фильтрация по ip
« Ответ #1 : 18 Декабря 2009, 23:01:05 »
Т.е. нужен фаервол, который анализирует какой именно бинарик лезет в сеть.
Среди перечисленных фаерволов AFAIK нет тех, которые умеют это. Если только какой-то модуль к iptables. Всякие прокси - аналогично. Т.е. тема-то не "фильтрация по IP", а "фильтрация по IP и одновременно по имени процесса, по исполняемому бинарнику".

В качестве костыля действительно можно сделать виртуальную машину, поставить там настройку сетевого интерфейса "сетевой мост", тогда виртуалка по DHCP (автоматическое получение адреса) от модема будет получать отдельный адрес как и физическая машина, виртуалка будет как бы отдельный комп в той же сети. Запускать в виртуалке только Торрент клиент и в фаерволе на самой виртуалке разрешить исходящие, разрешить входящие на/от ip адреса из списка. Последним правилом запретить любые другие соединения. Тогда из виртуалки будет возможен трафик только на выбранные IP адреса.

На виртуалке сделать что-то типа:
ufw allow from 10.0.0.0/8
ufw allow from 172.16.0.0/12
...
ufw allow to 10.0.0.0/8
ufw allow to 172.16.0.0/12
...
ufw deny from any to any
ufw enable
Всюду добавить sudo.

Если правильно понимаю, то from и to можно убрать из правил, сократив в двое количество комманд. Предпоследние правило тоже можно записать красивее. Проверять и вчитываться в ман лень. :)

Можно ещё поставить NFS или Samba сервер (расшарить папки) на физической машине. Добавить в фаервол разрешение на трафик между виртуалкой и физ.машиной. И торрент клиент сможет держать свои файлы на "физике". В VirtualBox есть фича "общие папки" - можно её использовать вместо NFS или Самбы.

Самому интересно. Кто знает как фильтровать доступ в сеть "по бинарнику", кроме как по адресам? AppArmor, SELinux, LIDS, Snort ? ? ?
« Последнее редактирование: 18 Декабря 2009, 23:05:57 от Somewhere there out there »
StarDict и Mueller помогут против английского мануала.

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: фильтрация по ip
« Ответ #2 : 18 Декабря 2009, 23:09:43 »
Не очень понимаю практической ценности такой фильтрации "по бинарнику". Ведь любую (ну, если не предпринимать специальных мер) программу можно скопировать в домашнюю папку и переименовать. Т.е. - от чего этим защищаемся?

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: фильтрация по ip
« Ответ #3 : 18 Декабря 2009, 23:21:24 »

Оффлайн Tokh

  • Активист
  • *
  • Сообщений: 705
    • Просмотр профиля
Re: фильтрация по ip
« Ответ #4 : 18 Декабря 2009, 23:22:12 »
Не очень понимаю практической ценности такой фильтрации "по бинарнику". Ведь любую (ну, если не предпринимать специальных мер) программу можно скопировать в домашнюю папку и переименовать. Т.е. - от чего этим защищаемся?

Как себя самого предохранить от выхода в эфир с обращением к "чёрному" ip адресу? Причём тут даже наоборот - для отдельной программы организовать белый список, allow list, запретив всё остальное. Для определённой программы.

Можно заблокировать все входящие на серверный порт торрент клиента. Но всё равно остаётся возможность самому стукнуться в "чёрный" адрес. Исходящий порт для исходящего соединения заранее неизвестен (или таки всегда известен порт назначения?), неизвестно заранее что блокировать. Тогда вроде остаётся анализировать пару бинарник + ip адрес.

Про копирование и переименование. Хороший стиль - разрешить нужное и запретить всё остальное. Тогда не пройдёт финт с переименованием и копированием. Если с кем-то бороться...
« Последнее редактирование: 18 Декабря 2009, 23:26:50 от Somewhere there out there »
StarDict и Mueller помогут против английского мануала.

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: фильтрация по ip
« Ответ #5 : 18 Декабря 2009, 23:39:13 »
Хороший стиль - разрешить нужное и запретить всё остальное. Тогда не пройдёт финт с переименованием и копированием.
Ну... Прямо скажем, на рабочей машине (мы ведь сейчас не о серверах, куда и доступа-то пользователям нету) думаю, сильно меньше 1% людей дополнительно защищают системные файлы от копирования. "По умолчанию" никто не запрещает скопировать любую программу себе:
vladimir@vladimir-laptop:~$ cp /usr/bin/passwd ~/my_cool_program
vladimir@vladimir-laptop:~$ ~/my_cool_program
Смена пароля для vladimir.
(текущий) пароль UNIX:
По топику - не совсем понятна задача. Предполагается, что на компе есть некий пользователь, которому нужно дать возможность запускать transmittion (или любой другой торрент-клиент) только с неким диапазоном портов, и не давать использовать другие порты?
Ну так - запретить все порты на вход кроме нужных. А что уж юзер там будет запускать на прослушивание этих портов - это проконтролировать нельзя: "любой торрент-клиент" может иметь "любое имя" :) .
Чем запретить - проще всего gufw.

UPD:
1. Устанавливаете gufw
2. Запускаете - Система/Администрирование/Брандмауэр
3. Устанавливаете "птичку" в "Текущее состояние включен"
4. Выбираете "По умолчанию" - "Запретить"
5. Жмете "Добавить"
6. Выбираете закладку "Простые"
7. Задаете "Разрешить" "TCP" и (если нужен диапазон) "13100:13250" (к примеру)
8. Жмете "Добавить"

Все.
« Последнее редактирование: 18 Декабря 2009, 23:53:57 от Karl500 »

Оффлайн Tokh

  • Активист
  • *
  • Сообщений: 705
    • Просмотр профиля
Re: фильтрация по ip
« Ответ #6 : 19 Декабря 2009, 00:14:32 »
Бинарник анализируется по имени, по каталогу хранения, по контрольной сумме файла. 3 параметра. Копирование и переименование меняет первые два параметра и для некоего неизвестного фаервола это будет уже другая программа. В оффтопике коммерческие фаерволы вроде как все имеют эту фичу.

Задача не в запрете портов. Задача в разрешении торренту общаться только с белым списком адресов. Не порты, а ip адреса. К тому же, порт предсказать нельзя. У себя исходящий порт может быть любой, так работает система вообще. У партнёра по раздаче серверный порт может быть нестандартный. К портам привязаться не получается.

Причём для других программ не должно быть ограничений.
StarDict и Mueller помогут против английского мануала.

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: фильтрация по ip
« Ответ #7 : 19 Декабря 2009, 00:18:12 »
Бинарник анализируется по имени, по каталогу хранения, по контрольной сумме файла.
Имхо, проще маунтить /home с noexec.
Впрочем, зависит от постановки задачи.

Оффлайн Karl500

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2267
    • Просмотр профиля
Re: фильтрация по ip
« Ответ #8 : 19 Декабря 2009, 00:33:55 »
Тьфу ты... Прошу пардону. Невнимательно первый пост прочел.
Тогда, кмк, задача нерешаема. Ну, во всяком случае, простыми понятными всем методами. Во всяком случае, известными мне :)

iptables'у разве вообще доступна информация, из какого именно бинарника у него в очереди появился тот или иной пакет?

Оффлайн saguaro

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Re: фильтрация по ip
« Ответ #9 : 19 Декабря 2009, 00:45:23 »
Т.е. нужен фаервол, который анализирует какой именно бинарик лезет в сеть. Т.е. тема-то не "фильтрация по IP", а "фильтрация по IP и одновременно по имени процесса, по исполняемому бинарнику".
В принципе ДА, но просто после упорного серфинга в сети... все меньше веры в то, что можно настроить фильтрацию еще и по бинарнику, вот и написал по ip, а для полной изоляции данной программы решил ставить виртуальную машину, и пользоваться торрент-клиентом строго из виртуалки.

Не очень понимаю практической ценности такой фильтрации "по бинарнику". Ведь любую (ну, если не предпринимать специальных мер) программу можно скопировать в домашнюю папку и переименовать. Т.е. - от чего этим защищаемся?
Защищаемся от утечки трафика. А практическая ценность именно в том, что для всех остальных программ будет доступ во всемирную сеть, а для конкретной (в моем случае торрент-клиент) только на определенные айпишники. Чтобы было еще понятней (для самых любопытных... желающих узнать цели задающих вопросы, вместо того, чтобы давать дельные советы) я живу в Узбекистане. У нас имеется так называемая внутренняя сеть страны (TAS-IX) и все что хостится на местных серверах (т.е. находится внутри этой сети) полностью бесплатно (т.е. трафик не таррифицируется). Но дело в том, что либо местный торрент-трекер (который тоже находится в TAS-IX) настроен не должным образом либо все торрент-клиенты (не обращая внимания на отключеные PEX и DHT) все же лезут в мир. Таким образом я накачал трафа на изрядную сумму пока наконец понял где засада. Долго ковырял и экспериментировал с торрент-клиентами всех мастей и даже виндосовские варианты ковырял. У всех беда присутствует. Единственный клиент, который не лез во внешний мир оказался встроенный в Opera, BitTorrent. Ужасно нефункционален, и часто сбоит при раздаче. Минусов очень много, описыват ьвсе не буду. Хотя сначала решил, что обойдусь этим вариантам, но терпению пришел конец, после того, как несколько закачанных файлов вдруг начали качаться занова, и размер их тоже изменился. Но почемуто с трафиком была норма. А список этих самых "белых" айпишников у меня имеется в полном объеме.

Вот толкь вопрос можно ли в ufw добавлять сразу массивы диапазонов например так
ufw allow 10.0.0.0/8 172.16.0.0/12 213.214.0.0/24
ато айпишников слижком много. (не расценивайте как каприз, если НЕТ, то введу все попорядку, уж не поленюсь, просто интересуюсь... вдруг возможно)

По топику - не совсем понятна задача. Предполагается, что на компе есть некий пользователь, которому нужно дать возможность запускать transmittion (или любой другой торрент-клиент) только с неким диапазоном портов, и не давать использовать другие порты?
не по портам, а по ip-адресам

А что уж юзер там будет запускать на прослушивание этих портов - это проконтролировать нельзя: "любой торрент-клиент" может иметь "любое имя" :) .
Любой пользователь на моей машине пароль рута не знает, а значит установить пакеты не сможт и будет пользоваться лишь тем, что установил я

Чем запретить - проще всего gufw.

UPD:
1. Устанавливаете gufw
2. Запускаете - Система/Администрирование/Брандмауэр
3. Устанавливаете "птичку" в "Текущее состояние включен"
4. Выбираете "По умолчанию" - "Запретить"
5. Жмете "Добавить"
6. Выбираете закладку "Простые"
7. Задаете "Разрешить" "TCP" и (если нужен диапазон) "13100:13250" (к примеру)
8. Жмете "Добавить"

Все.
Спасибо, но этот вариант я пробовал самым первым, ничего не фильтруется, прога лезет в мир. Так как здесь мы указываем диапазон портов , а айпишники, к которым обращается программа могут быть любыми... увы не катит в данном случае.

Буду пробовать настраивать uwf в виртуалке. Раз уж на данный момент это единственое рацпредложение. О результатах отпишу.

Если появятся еще идеи - делитесь, на сколько бы бредовыми они не были... лижбы не совсем сложными))) все же я новичек в этой сфере.

Пользователь решил продолжить мысль 19 Декабря 2009, 01:11:36:
Чтото никак не могу получить нормальный результат. Описываю свои действия:

sudo ufw allow from 62.209.128.0/20
sudo ufw allow to 62.209.128.0/20
sudo ufw deny from any


sudo ufw status verbose выводит

Статус: включен
Ведение журнала: on (low)
Default: allow (incoming), allow (outgoing)
Новые профили: skip

До                       ДействиеОт
----                       --------------------
Anywhere                   ALLOW IN    62.209.128.0/20
62.209.128.0/20            ALLOW IN    Anywhere
Anywhere                   DENY IN     Anywhere


Пингую
62.209.128.1 - пингуется
mail.ru - пингуется
62.209.144.1 - пингуется

Ну ладно. Подумал что проблема в том, что поумолчанию не выставил deny
прописываю следующее

sudo ufw default deny

sudo ufw status verbose видим

Статус: включен
Ведение журнала: on (low)
Default: deny (incoming), allow (outgoing)
Новые профили: skip

До                       ДействиеОт
----                       --------------------
Anywhere                   ALLOW IN    62.209.128.0/20
62.209.128.0/20            ALLOW IN    Anywhere
Anywhere                   DENY IN     Anywhere


Пингую
62.209.128.1 - пингуется
mail.ru - пингуется
62.209.144.1 - пингуется

пробую
sudo ufw default deny outgoing

sudo ufw status verbose видим

Статус: включен
Ведение журнала: on (low)
Default: deny (incoming), deny (outgoing)
Новые профили: skip

До                       ДействиеОт
----                       --------------------
Anywhere                   ALLOW IN    62.209.128.0/20
62.209.128.0/20            ALLOW IN    Anywhere
Anywhere                   DENY IN     Anywhere


вообще ничего не пингуется!!!

Что я делаю не так???

Пользователь решил продолжить мысль 19 Декабря 2009, 03:16:21:
:-[ :-\
« Последнее редактирование: 19 Декабря 2009, 03:16:22 от saguaro »

Оффлайн Tokh

  • Активист
  • *
  • Сообщений: 705
    • Просмотр профиля
Re: фильтрация по ip
« Ответ #10 : 19 Декабря 2009, 12:03:27 »
Не оказались ли запрешёнными 192.168.1.0/24 локалки модема? По моему оказались. Надо добавить... Внутренний адрес модема это шлюз по умолчанию, как минимум. Его заблокировать и не будет интернета.
Если на этой машине используются непосредственно DNS серверы провайдера, вместо модема, то проверить, что к ним тоже разрешён доступ.

Верно сделано
sudo ufw default deny incoming
sudo ufw default deny outgoing
Это то как правильно делается последнее запрещающее правило. Эта так называемая политика по умолчанию - всегда последнее правило и всегда применяется ко всем пакетам не подошедшим под ранее стоящие правила. Т.е. правильно заменено ufw deny from any to any на это.

Насчёт все адреса в одну строчку - не знаю. Судя по ману она это не умеет. Эксперимент тоже успеха не приносит.

В любом случае, задача решается быстро через OpenOffice Calc. Первый столбец "заполнить вниз" (Edit-Fill-Down Ctrl+D) строками 'sudo ufw allow from/to', второй столбец заполнить адресами, если нужно, то и третий столбец заполнить чем-то ещё. Выделить всё и скопипастить в gedit, из gedit сохранить файл, этому файлу дать атрибут исполняемый и... вот он готовый скрипт для задания правил фаервола.

Я тут man ufw почитал... Меня с самого начала царапало, что сабж я где-то уже видел, где-то видел и не под оффтопиком. Попробуйте разобраться с:
man ufw | grep "APPLICATION INTEGRATION$" -A 100 | lessЕсли маны русские, то просто man ufw
Вроде это оно самое, то что нужно.
« Последнее редактирование: 19 Декабря 2009, 12:34:21 от Somewhere there out there »
StarDict и Mueller помогут против английского мануала.

Оффлайн sht0rm

  • Старожил
  • *
  • Сообщений: 3397
    • Просмотр профиля
Re: фильтрация по ip
« Ответ #11 : 19 Декабря 2009, 12:52:30 »
saguaro
Первое: Почему вы проверяете пингом? :) вы icmp не блокировали.
Второе: Блокировать нужно только 1 программу? конкретно торренты? (тогда transmission умеет работать с blacklist) заблокировать вообще внешние IP можно с помощью OpenDNS, регистрируетесь и настраиваете под себя.

Оффлайн Tokh

  • Активист
  • *
  • Сообщений: 705
    • Просмотр профиля
Re: фильтрация по ip
« Ответ #12 : 19 Декабря 2009, 13:41:41 »
тогда transmission умеет работать с blacklist

Ему нужно обратное, whitelist нужен, список после которого любые адреса запрещены.

OpenDNS позволит для firefox открыть вообще весь мир, а для transmission закрыть весь мир кроме отдельных адресов?
StarDict и Mueller помогут против английского мануала.

Оффлайн sht0rm

  • Старожил
  • *
  • Сообщений: 3397
    • Просмотр профиля
Re: фильтрация по ip
« Ответ #13 : 19 Декабря 2009, 14:04:06 »
тогда transmission умеет работать с blacklist

Ему нужно обратное, whitelist нужен, список после которого любые адреса запрещены.
Придется диапазонами закрыть все что ему ненужно :))
Цитировать
OpenDNS позволит для firefox открыть вообще весь мир, а для transmission закрыть весь мир кроме отдельных адресов?
Закроет всем. (но у меня сомнения, торренты днс не юзают как я понимаю, а получают список IP от трекера)

Оффлайн saguaro

  • Автор темы
  • Новичок
  • *
  • Сообщений: 31
    • Просмотр профиля
Re: фильтрация по ip
« Ответ #14 : 21 Декабря 2009, 11:27:12 »
Прописал айпишник модема... все равно после завершающей (запрещающей) комманды все становится недоступным.
Что я делаю не так? Подскажите!

Маны читал прежде чем здесь писать! Не особо они расписаные, так что вся надежа на вас... пожалуйста. Я в отчаянии. Уже 2ю неделю ищу решение задачи в интернете.

 

Страница сгенерирована за 0.031 секунд. Запросов: 19.