Русские документы
Ежедневные компьютерные новости RSS rusdoc.ru  Найти :
• Новости
• Последние поступления
• Книжный магазин
  Hardware:
• Видеоустройства
• Системные платы
• Процессоры
• Мобильные устройства
• Аудиосистема
• Охлаждение системы
• Накопители информации
• КПК и ноутбуки
• Телефоны и связь
• Периферия
• Система
• Сети
• Разные устройства
 
  Programming:
• Web-разработка
• Языки программирования
• Технологии и теория
• Разработка игр
• Программная инженерия
 
  Software:
• Операционные системы
• Windows 7
• Базы данных
• Обзоры программ
• Графика и дизайн
   
  Life:
• Компьютерная жизнь
• Разные материалы
   
• Партнеры
• Публикация
• Правовая информация
• Реклама на сайте
• Обратная связь
• Экспорт в RSS Экспорт в RSS2.0
    Читать в Яндекс.Ленте



Ограничение доступа в интернет для приложений в Linux

Раздел: Software / Linux @ 03.02.2010 | Ключевые слова: lunux ubuntu ограничить доступ в интернет версия для печати

Автор: MYPABEU
Источник: habrahabr

Иногда бывает необходимо запустить программу, предварительно заблокировав для неё доступ в интернет. Существует довольно простой трюк для решения этой задачи.
Итак, идея заключается в том, чтобы при запуске приложения устанавливать особый ID группы, который будет сигналом блокировки доступа для netfilter.

Шаг 1. Создаём группу-маркер и добавляем себя в неё


Создаём группу (В нашем случае группа будет называться noinet):
sudo groupadd noinet

Добавляем в неё текущего пользователя:
sudo gpasswd -a `id -un` noinet


Шаг 2. Создаём правило для 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 noinet -j DROP

Не забываем сделать его исполняемым:
sudo chmod +x /etc/network/if-pre-up.d/inet_access_blocking_rule

Шаг 3. Создаём скрипт запуска, устанавливающий группу-признак


Разместим скрипт в /usr/local/bin
sudo vim /usr/local/bin/noinet

Содержимое скрипта несложное:
#!/bin/bash
sg noinet "$*"

Опять же, не забываем сделать его исполняемым
sudo chmod +x /usr/local/bin/noinet

Шаг 4. Перезагрузка системы


Наверняка это можно сделать проще, но в случае с karmic out-of-box ситуация выглядит следующим образом:

sudo service networking restart сообщает:
restart: Unknown instance:

sudo initctl restart networking сообщает:
initctl: Unknown instance:

sudo invoke-rc.d networking restart сообщает:
Ignoring unknown interface eth0=eth0

К тому же, чтобы добавление пользователя в группу вступило в силу вам придётся перелогиниться (это как минимум перезапуск DE — sudo restart gdm).
В общем, если вы просто перезагрузитесь, то все настройки выполнены и вступили в силу.

Использование


Использование простое:
noinet ping habrahabr.ru
noinet firefox

Хардкорные линуксоиды шаг 3 могут опустить и использовать всё это так :)
sg noinet "ping habrahabr.ru"
sg noinet "firefox"

Это интересно:








версия для печатиРаспечатать статью


Вернуться в раздел: Software / Linux


Реклама:
Читать наc на:

Add to Google
Читать в Яндекс.Ленте






Rambler's Top100
© Copyright 1998-2012 Александр Томов. All rights reserved.