как запретить конкретному приложению выход в инет?
Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.
Модератор: SLEDopit
21 сообщение • Страница 1 из 1
tull Сообщения: 484
как запретить конкретному приложению выход в инет?
Сообщение tull » 08.02.2008 03:20
или доступ к конкретным портам/адресам
а также как зашейпить скорость сетевого соединения для конкретного приложения?
Спасибо сказали:
Michael Сообщения: 92
Re: как запретить конкретному приложению выход в инет?
Сообщение Michael » 08.02.2008 03:36
man iptables, на предмет расширения owner.
Спасибо сказали:
TrustyVic Сообщения: 235 Статус: Потребитель ОС: W9PE
Re: как запретить конкретному приложению выход в инет?
Сообщение TrustyVic » 08.02.2008 12:08
08.02.2008 03:36
man iptables, на предмет расширения owner.
apparmor разве не этим занимается?
Пингвины — фарава!
Спасибо сказали:
tull Сообщения: 484
Как запретить приложению доступ в Интернет в Windows 11/10
Re: как запретить конкретному приложению выход в инет?
Сообщение tull » 08.02.2008 16:22
08.02.2008 03:36
man iptables, на предмет расширения owner.
не катит:
—cmd-owner name
Matches if the packet was created by a process with the given command name. (this option is present only if iptables was compiled under a kernel supporting this feature)
NOTE: pid, sid and command matching are broken on SMP
08.02.2008 12:08
apparmor разве не этим занимается?
вот мне тоже показалось, что его можно использовать. только пока непонятно как им пользоваться.
но как я понял, простых и удобных гуевых средств нету? типа аналога вендового netlimiter или хотя бы маковского little snitch?
Спасибо сказали:
Michael Сообщения: 92
Re: как запретить конкретному приложению выход в инет?
Сообщение Michael » 08.02.2008 17:59
Порты блокировать — это iptables. Шейпить на SMP траффик отдельного приложения, наверное, действительно придётся apparmor’ом. Однако, если приложение отдельные порты использует, то можно обойтись iptables + tc (из iproute2 который).
Спасибо сказали:
tull Сообщения: 484
Re: как запретить конкретному приложению выход в инет?
Сообщение tull » 08.02.2008 18:42
08.02.2008 17:59
Однако, если приложение отдельные порты использует, то можно обойтись iptables + tc (из iproute2 который).
не отдельные. скажем надо закрыть 80 порт конкретному приложению.
Спасибо сказали:
neru_dead Сообщения: 331 ОС: Debian Etch Контактная информация:
Re: как запретить конкретному приложению выход в инет?
Сообщение neru_dead » 08.02.2008 19:05
У меня вот так сделано:
# Radio record $IPT -A OUTPUT -p tcp -o $inet -d 193.125.195.148 -m owner —uid-owner 33 —dport 80 -j ACCEPT # MTS $IPT -A OUTPUT -p tcp -o $inet -d 80.83.224.157 -m owner —uid-owner 33 —dport 80 -j ACCEPT # Gismeteo $IPT -A OUTPUT -p tcp -o $inet -d 212.48.138.18 -m owner —uid-owner 33 —dport 80 -j ACCEPT $IPT -A OUTPUT -p tcp -o $inet -d 0.0.0.0/0 -m owner —uid-owner 33 —dport 80 -j DROP
Как заблокировать доступ в интернет программе?
uid 33 это apache2 у меня.
Debian GNU/Linux 4.0
Registered User # 410887
Спасибо сказали:
tull Сообщения: 484
Re: как запретить конкретному приложению выход в инет?
Сообщение tull » 08.02.2008 21:16
neru_dead,
и опять говорю — надо по ПРИЛОЖЕНИЮ. не по владельцу, не по группе, не по пиду.
Спасибо сказали:
pingod Сообщения: 11 ОС: RedHat
Re: как запретить конкретному приложению выход в инет?
Сообщение pingod » 08.02.2008 22:49
посмотрите в сторону Tcpwrapers
Спасибо сказали:
JackYF Сообщения: 129 ОС: Debian GNU/Linux Контактная информация:
Re: как запретить конкретному приложению выход в инет?
Сообщение JackYF » 08.02.2008 23:23
08.02.2008 21:16
и опять говорю — надо по ПРИЛОЖЕНИЮ
Что есть «приложение»? Побайтное совпадение бинарника? путь? md5-хэш?
«В природе не существует инструмента, машины или устройства, по силе и виртуозности сравнимого с человеческой рукой.»
В. Г. Бэнхэм.
—
Ваяю «нелинейный» клавиатурный тренажёр для GNU/Linux — nlkt.
Спасибо сказали:
tull Сообщения: 484
Re: как запретить конкретному приложению выход в инет?
Сообщение tull » 09.02.2008 00:47
08.02.2008 23:23
Что есть «приложение»? Побайтное совпадение бинарника? путь? md5-хэш?
видимо по пути и имени бинарника.
вы видели как работают такие проги в виндузе? например в netlimiter выбираешь среди активных процессов нужный и выставляешь лимит скорости. в следующий раз эти ограничения уже действуют.
или скажем касперский (да и нетлимитер тоже) спрашивает — «такая-то прога долбится в инет, разрешить/запретить?». запретил — все, в следующий раз уже не спрашивает, а прога думает, что инета нет.
уверен, что запоминается просто по имени и расположению файла (что логичней всего).
неужели под линух нет ничего подобного?! типа вирусов нет, троянов нет, зачем что-то ограничивать? ну и скорость тоже незачем — все на быстром халявном инете (а страдальцев на ЖПРС или скайлинке не учитываем)
Спасибо сказали:
Michael Сообщения: 92
Re: как запретить конкретному приложению выход в инет?
Сообщение Michael » 09.02.2008 14:41
Так у тебя SMP или нет?
Спасибо сказали:
tull Сообщения: 484
Re: как запретить конкретному приложению выход в инет?
Сообщение tull » 09.02.2008 23:57
09.02.2008 14:41
Так у тебя SMP или нет?
да, двухядерный amd
Спасибо сказали:
gordon01 Сообщения: 216
Re: как запретить конкретному приложению выход в инет?
Сообщение gordon01 » 13.02.2008 06:02
Мда, отличную сцылку дали. тему закрыли, а а в этой так ничего и не решено. Хотя ьуь автори темы папру раз сфеормулировал то, что ему надо.
«Hello World!» 17 errors, 31 warnings
Mandriva Cooker
Спасибо сказали:
KiWi Бывший модератор Сообщения: 2521 Статус: статус, статус, статус Контактная информация:
Re: как запретить конкретному приложению выход в инет?
Сообщение KiWi » 13.02.2008 09:06
13.02.2008 06:02
Мда, отличную сцылку дали. тему закрыли, а а в этой так ничего и не решено. Хотя ьуь автори темы папру раз сфеормулировал то, что ему надо.
Здесь её решили как минимум 2 раза.
Спасибо сказали:
Goodvin Ведущий рубрики Сообщения: 4333 Статус: ⚝⚠⚒⚑⚖☭☞☣☤Ищите и обрящете»(С)
Как правильно задавать вопросы
Спасибо сказали:
Michael Сообщения: 92
Re: как запретить конкретному приложению выход в инет?
Сообщение Michael » 14.02.2008 05:01
Вообще то, мне не кажется адекватным решение через apparmor. Ставить его ради простой задачи — это перебор. Но управлять траффиком отдельных приложений на SMP с помощью только iptables не получается.
Спасибо сказали:
tull Сообщения: 484
Re: как запретить конкретному приложению выход в инет?
Сообщение tull » 17.02.2008 17:30
13.02.2008 09:06
Здесь её решили как минимум 2 раза.
простите, а второй раз, это как?
использование ограничения по владельцу процесса это решение совсем другой задачи.
Goodvin,
огромное вам спасибо за ссылки! буду изучать.
жаль конечно, что только такое тяжеловесное решение есть, но ничего не поделаешь. может когда-нибудь напишут аналог нетлимитера. нетлимитер, кстати, показывает сетевую скорость даже по отдельному треду, и позволяет ее ограничивать (например, когда одним приложением качается несколько файлов, можно для каждого поставить свою скорость в обе стороны)
Спасибо сказали:
KiWi Бывший модератор Сообщения: 2521 Статус: статус, статус, статус Контактная информация:
Re: как запретить конкретному приложению выход в инет?
Сообщение KiWi » 17.02.2008 18:52
17.02.2008 17:30
13.02.2008 09:06
Здесь её решили как минимум 2 раза.
простите, а второй раз, это как?
использование ограничения по владельцу процесса это решение совсем другой задачи.
Для smp систем второй способ отпадает — cmd-owner.
Спасибо сказали:
vantaker Сообщения: 166
Re: как запретить конкретному приложению выход в инет?
Сообщение vantaker » 26.04.2008 13:38
—pid-owner, —sid-owner, —cmd-owner начиная с 2.6.15 не работают вобще
но есть TuxGuardian
tuxguardian.sf.net
Спасибо сказали:
ivan1986 Сообщения: 14 ОС: Debian sid
Re: как запретить конкретному приложению выход в инет?
Сообщение ivan1986 » 16.08.2008 10:59
Сделал патч для не SMP ядер на 26 ядро — они в очередной раз там все изменили
файл — net/netfilter/xt_owner.c
Описание ошибки с SMP какое-то мутное
если после патча убрать между
#ifdef CONFIG_SMP
#endif
может все будет нормально работать, но не гарантирую, так как у меня одноядерник, проверить не могу.
также в iptables-1.4.1 закомментировали cmd-owner, вернул.
Вообще кто подскажет нормальное решение?
TuxGuardian под дебиан ленни не собирается.
Источник: unixforum.org
Как закрыть доступ в интернет определенному приложению в Linux.
Иногда ради прикладных задач может возникнуть потребность в недопущении определенного приложения в интернет или сеть в целом. Безусловно, для реализации подобных задач можно пользоваться SELinux или AppArmor, но они требуют достаточно сложной для новичка настройки и часто игра не стоит свеч. В этой статье я расскажу, как всего за несколько минут решить подобную задачу используя iptables. При этом нам не придется ставить какой-либо софт. Пример подходит для любого дистрибутива Linux.
После завершения манипуляций, изложенных ниже, мы получим возможность запускать любое приложение без сети:
nolan ping -c
или без интернета:
noinet ping -c
Для начала мы создадим две группы noinet и nolan:
sudo groupadd noinet sudo groupadd nolan
Добавим в группы текущего пользователя:
sudo gpasswd -a
Теперь воспользуемся возможностями iptables. Напишем два скрипта, которые будут стартовать вместе с ОС:
sudo nano /etc/network/if-pre-up.d/noinet_rule
sudo nano /etc/network/if-pre-up.d/nolan_rule
Сделаем скрипты исполняемыми:
sudo chmod +x /etc/network/if-pre-up.d/noinet_rule sudo chmod +x /etc/network/if-pre-up.d/nolan_rule
Настало время сделать пару скриптов, которые будут запускать наши приложения с привилегиями этих групп:
sudo nano /usr/local/bin/noinet
sudo nano /usr/local/bin/nolan
Сделаем скрипты исполняемыми:
sudo chmod +x /usr/local/bin/noinet sudo chmod +x /usr/local/bin/nolan
Дабы не перезагружать ОС, выполним скрипты iptables:
sudo /etc/network/if-pre-up.d/noinet_rule sudo /etc/network/if-pre-up.d/nolan_rule
Теперь для запуска приложения без сети достаточно добавить nolan. Без интернета — noinet.
ping -c
noinet ping -c
С сетью все будет по аналогии.
На этом все. Спасибо за внимание, до новых встреч!
Смотрите также
- Как добавить постоянные статические маршруты (persistent static routes) в Mac OS X.
- Знакомство с CMake. Часть 3. CMakeCache, модули CMake, зависимости сборки.
- maybe? Интересная песочница для отладки операций с файлами в скриптах Linux.
- Знакомство с CMake. Часть 2. Переменные, условия, сообщения, опции.
- Знакомство с CMake. Часть 1. Установка, CMakeLists.txt, сборка.
- ← Предыдущий
- Следующий →
Источник: admins.su
Ограничить доступ в интернет для приложений в Linux
Часто в работе сталкиваюсь с ситуацией, когда бывает нужно запускать программу таким образом, чтобы она не имела доступа в интернет. Делается это по разным причинам. Эту задачу можно решить несколькими способами. В статье будет описан один из вариантов решения.
При запуске приложения мы можем присвоить ему ID особой группы — по которому будем блокировать доступ в интернет через netfilter.
Создаём группу-маркер
Создаём группу (назовем ее NO_INTERNET ):
sudo groupadd NO_INTERNET
Добавляем в неё текущего пользователя:
sudo gpasswd -a `id -un` NO_INTERNET
Создаём правило для iptables
данное правило будет выполняться перед каждым запуском сетевого интерфейса
Создадим файл в директории /etc/network/if-pre-up.d
sudo vim /etc/network/if-pre-up.d/inet_access_blocking_rule
добавляем в него строки:
#!/bin/bash
iptables -A OUTPUT -m owner —gid-owner NO_INTERNET -j DROP
Нужно сделать его исполняемым:
sudo chmod +x /etc/network/if-pre-up.d/inet_access_blocking_rule
Далее создаём скрипт запуска, в котором устанавливаем саму группу по которой будем блокировать
Разместим скрипт в /usr/local/bin
sudo vim /usr/local/bin/NO_INTERNET
Содержимое скрипта будет таким:
#!/bin/bash
sg NO_INTERNET «$*»
Делаем его исполняемым
sudo chmod +x /usr/local/bin/NO_INTERNET
Перезагружаем систему.
Использование данного маркера простое:
NO_INTERNET ping ya.ru
NO_INTERNET firefox
Источник: feanor184.ru