Сб, 23.09.2017, 12:04
Форум інформатиків України
Головна Реєстрація Вхід
Вітаю Вас, Гість · RSS
Вітання на форумі
Незнайомець
Вітаємо на форумі,
Незнайомцю!

   
зареєструйтесь
Перед реєстрацією обов’язково прочитайте:
Оновлення Учасники Пошук
Особисті повідомлення
Видавництво ’’Аспект’’ Видавництво

Сторінка 1 з 212»
Модератор форуму: НІКОЛЯ, Ktara, Bandalak, volevikt 
Форум інформатиків » РОЗДІЛ V: ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ » 5.4 ОС Linux » Интернет-шлюз под Linux (squid+iptables+sams) (настройка, опыт использования)
Интернет-шлюз под Linux (squid+iptables+sams)
Andrey123q Дата: Нд, 20.06.2010, 01:01 | Повідомлення № 1
Досвідчений учасник
Повідомлень: 1236
Нагороди: 3
Рейтинг: 84
Предлагаю в этой теме делиться опытом настройки интернет-шлюза, прокси-сервера под Linux. Лично мне интернет-шлюз под Linux показался очень оптимальным выбором учитывая гибкость настройки, безопасность и т.д.

Постановка задачи:
- Обеспечение доступа с компьютеров локальной сети в Интернет
- Кэширование данных (экономия трафика)
- Блокировка доступа пользователей к запрещенным ресурсам интернет
- Ограничение скорости (шейпинг)
- Ограничение объема трафика пользователей на месяц
- Автоматическое отключение пользователей, превысивших лимит
- Контроль времени доступа
- Фильтрование рекламы
- Ведение статистики и формирование отчетности
- Защита локальной сети от внешнего доступа

Используемое ПО:
1) squid - кэширующий прокси-сервер
2) iptables - утилита командной строки, которая является стандартным интерфейсом управления работой межсетевого экрана
3) SAMS (SQUID Account Management System) - средство для администрирования доступа пользователей к прокси-серверу SQUID, сбора статистики и генерации отчетов о потреблении трафика.
4) дополнительное ПО необходимое для работы предыдущих программ (apache, mysql, php и т.д.)

Ключевые понятия: прокси-сервер, маршрутизация, шейпинг, интернет-шлюз

У нас в учебном заведении стала задача в проведении интернета на несколько точек с учетом ограниченности трафика (700 Мб на месяц) и скорости. В связи с этим: во-первых нужно справедливо распределить трафик (например, в 1у точку 300 Мб, во 2ю - 250 Мб, в 3ю - 150 Мб на месяц) и автоматически отключать от интернета при превышении лимита, во-вторых закрыть доступ к определенным ресурсам (например, вконтакте, одноклассники и т.п.), обрезать рекламу, запретить закачку .mp3 файлов и т.п. - в целях экономии трафика, в-третьих чтобы пользователи видели статистику и контроллировали потребление трафика.

Реализация.
Настраивал под OpenSUSE 11.2, но думаю под другими дистрибутивами настройки особо не отличаются.

Для начала нужно поставить прокси-сервер. Я использовал Squid. Основные задачи прокси-сервера это кэширование трафика, обрезка баннеров, ограничение доступа к сайтам, шейпинг и т.п.
Если эти задачи не важны, а нужно просто раздавать интернет в локальную сеть, то нужно просто настроить маршрутизацию пакетов из одного сетевого интерфейса в другой (один смотрит в интернет, второй - в локальную сеть). В YaST (Linux OpenSUSE) это просто сделать с помощью графического конфигуратора - см. подробная инструкция в прикреплении. Тоже самое просто сделать с помощью iptables через командную строку.
Дополнительно поставил yast2-squid для удобства конфигурирования Squid. Можно вручную редактировать файл конфигурации: /etc/squid/squid.conf:
1) в файле настроек нужно прописать http_port ваш_локальный.ip:3128
2) ACL (Access Control List) - список управления доступом. Сначала формируются группы acl в формате acl [имя списка] [тип] [содержимое (ip-адрес,порт,url)], потом этот список используется для разрешения/запрещения, например:
acl localnet src 192.168.0.0/16 - описание локальной сети
http_access allow localnet - разрешает доступ из локальной сети
http_access deny all
Подобным образом создаются черные списки URL, ограничения по времени, браузера и т.п.

Одним из неудобств прокси-сервера является то, что для работы через прокси нужно настраивать каждый клиент (в браузерах на локальных ПК прописать ip:порт прокси-сервера). Для компенсации этого момента можно настроить прозрачный прокси-сервер.
Прозрачный прокси — это такой прокси-сервер, который принимает трафик от клиентов сети через маршрутизатор, способный различать какой трафик должен быть направлен через прокси-сервер. То есть клиенту не нужно изменять конфигурацию ПО для работы через прокси-сервер, маршрутизатор автоматически направляет трафик клиента на прокси-сервер.
Для этого:
1) в файле конфигурации squid.conf дописать: http_port ваш_локальный.ip:3128 transparent
2) изменить правила брандмауэра iptables:
iptables -t nat --new-chain TransProxy
iptables -t nat -A PREROUTING -p tcp --dport 80 -j TransProxy
iptables -t nat -A PREROUTING -p tcp --dport 443 -j TransProxy
iptables -t nat -A TransProxy -d 127.0.0.1/8 -j ACCEPT
iptables -t nat -A TransProxy -d 192.168.0.0/24 -j ACCEPT
iptables -t nat -A TransProxy -p TCP -j DNAT --to 192.168.0.11:3128
iptables-save
(если планируете отключение пользователей при превышении лимита трафика, настраивать прозрачный прокси не нужно)

Самым интересным моментом в настройке прокси-сервера является установка SAMS (SQUID Account Management System). Использовал SAMS ver.2 ( http://sams.perm.ru/ ). Он позволяет реализовывать такие моменты:
- Ограничение объема трафика пользователей
- Автоматическое отключение пользователей, превысивших лимит.
- Формирование отчетов по трафику пользователей за любой отрезок времени
- Поддержка различных видов авторизации SQUID
и т.п.
Скажу честно, провозился несколько дней с ним ;)
Стандартная инсталляция SAMS хорошо описана в основной документации (см. инструкции: http://sams.nixdev.net/wiki/installing , http://sams.perm.ru/sams2/doc/RU/index.html )

Остановлюсь кратко на моментах, которые вызвали трудности:
1) при ошибках сборки и установки (./configure, make, make install) нужно внимательно установить все необходимые пакеты для вашего дистрибутива (HTTP сервер Apache, php, mod_php, gd, php-gd, mysql, pcre и т.д.), указать с командой ./configure нужные опции (каталог http сервера и т.п.), т.к. они могут отличаются от стандартных
2) создать символьную ссылку на каталог sams в каталоге веб-сервера ln -s /usr/local/share/sams /srv/www/htdocd/sams . При необходимости разрешить символьные ссылки в apache.
3) изменить владельца каталога /usr/local/share/sams на пользователя, от имени которого работает ваш web сервер. например: chown -R apache:apache /usr/local/share/sams . Сменить права доступа на католог /usr/local/share/sams/data на 777
4) настроить php для работы с SAMS в режиме safe mode (см. документация)
5) в любом web браузере открыть страницу http://yourservername/sams2 (см. http://sams.perm.ru/sams2/doc/RU/configure.html ) - начнется процесс создания БД, на этом этапе также возможны проблемы (см. документацию)
6) после создания базы данных в п.5 можно запускать WEB интерфейс SAMS (http://yourservername/sams2) - введите логин и пароль администратора (значения по-умолчанию admin и qwerty). Тут может возникнуть следующая частая возможная проблема: кнопки WEB interface settings и SAMS administration ничего не отображают. Насколько понял это проблема php-5.3, потому переустановил его на php-5.2 и проблема решилась. Если после этого возникнут проблемы с подключением к базе данных mysql, то нужно просмотреть настройки в php.ini веб-сервера. После переустановки PHP у меня исчезли следующие значения, потому пришлось их дописать (/etc/php5/apache2/php.ini): mysql.default_socket /var/run/mysql/mysql.sock /var/run/mysql/mysql.sock.

После всего можно спокойно разбираться с настройкой sams через веб-интерфейс - там в принципе все наочно, думаю если вы дойдете до этого момента, то разберетесь :) Возможен еще один такой момент: при выставлении лимита трафика для пользователей, пользователи хоть и отображаются в веб интерфейсе sams как отключенные, но фактически продолжают иметь доступ к интернету и трафик для них продолжает считаться сверх лимита. У меня это возникло по причине того, что на сервере была настроена маршрутизация, а прокси был прозрачный - убрал эти моменты плюс на клиентском ПК удалил в настройках сетевой карты IP шлюза и DNS, а в браузере прописал прокси.

Вообщем, вот так кратко, возможно кому пригодится. Более опытных пользователей просьба писать свои советы, замечения, опыт использования. Извините возможно за излишнюю краткость, просто не хочется в сотый раз дублировать инструкции, которые отлично прописаны в официальной документации.

Ссылки:
http://sams.nixdev.net/
http://sams.perm.ru/
http://www.squid-cache.org/
http://squid.opennet.ru/
http://posix.ru/network/iptables/
http://www.opennet.ru/docs/RUS/iptables/

Прикріплення: Internet_sharin.pdf(325Kb)


Відредаговано: Andrey123q - Нд, 20.06.2010, 01:06
gromko Дата: Нд, 20.06.2010, 20:49 | Повідомлення № 2
Лінуксоїд
Повідомлень: 2526
Нагороди: 25
Рейтинг: 325
Настройка Контент-Фильтра NetPolice в ALT Linux 5.0.1

Во всех школах на территории Российской Федерации обязательным требованием является установка Контент-Фильтра для фильтрации сайтов "несовместимых с задачами образования", думаю, что это будет применимо и для наших школ.

При внедрении Школьного Linux вопрос наличия Контент-Фильтра является одним из основных моментов. Система NetPolice существует и в варианте для Linux и имеет репозитория специально для Школьного Linux.

Инструкция по установке и настройке системы NetPolice.
1. Подключение репозиториев

Для Школьного Linux 5.0.1 нам необходимо поключить репозитории Alt Linux p5 i586 и noarch. Для этого открываем консоль и получаем права суперпользователя

su -

теперь открываем на редактирование файл /etc/apt/sources.list.d/alt.list и раскоментируем первые два репозитория (удаляем решетку в начале строки)

nano /etc/apt/sources.list.d/alt.list
# ALT Linux Platform 5
rpm [p5] ftp://ftp.altlinux.org/pub/distributions/ALTLinux/p5/branch i586 classic
rpm [p5] ftp://ftp.altlinux.org/pub/distributions/ALTLinux/p5/branch noarch classic

Теперь нам нужно подключить репозиторий самого NetPolice для школьного Linux 5-й платформы. Для это в файл /etc/apt/sources.list добавим адрес репозитория

nano /etc/apt/sources.list

rpm http://update.netpolice.ru/
altlinux/p5/branch/netpolice/ i586 netpolice

2. Устанавливаем NetPolice
После подключения репозиториев нам нужно обновить список пакетов, доступных для установки

apt-get update

После загрузки файлов со списками пакетов в репозиториях можно приступить к установке комплекса NetPolice

apt-get install netpolice-main

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

3. Базовая настройка NetPolice
Следуя инструкции на сайте NetPolice первое что нам нужно сделать - прописать адрес dns-сервера для системы host2cat, которая, как я понимаю, будет отвечать заблокировку сайтов по доменным именам. Для это редактируем файл /etc/sysconfig/host2cat и прописываем в поле DNS_LIST один из серверов NetPolice. Как оказалось, при использовании DNS для домашних пользователей вы получаете больше листов блокировки нежели на сервере для школ. Поэтому используем сервер dnsc1.netpolice.ru

nano /etc/sysconfig/host2cat

MEMCACHED_LIST=127.0.0.1:11211
UDP_PORT=6666
# DNS LIST SERVER IP
#for example DNS_LIST=127.0.0.1
DNS_LIST=dnsc1.netpolice.ru
TTL=3600
HOST2CAT_OPTIONS="-m $MEMCACHED_LIST -u $UDP_PORT -s $DNS_LIST -t $TTL"

После внесения изменений нужно перезапустить сервисы, входящие в комплекс NetPolice. Для этого последовательно выполните следующие команды:

/etc/rc.d/init.d/memcached restart
/etc/rc.d/init.d/host2cat restart
/etc/rc.d/init.d/c-icap restart
/etc/rc.d/init.d/squid restart

4. Настройка клиентов
Система NetPolice способна фильтровать интернет-контент для всех компьютеров в компьютерном классе и не требует установки на каждый компьютер!
Для использование системы NetPolice запущеной и настроеной на Школьном Linux 5.0.1 вам необходимо на компьютере настроить ваш web-браузер на раоту с интернет через Proxy.

Для FireFox это меню "Правка" -> "Настройки" -> вкладка "Дополнительно" -> "Сеть" -> кнопка "Настроить". В появившемся окне выбрираем "Настроить параметры подключения прокси вручную" и вводим IP адрес прокси-сервера и порт (обычно 3128), далее нажать "ok" и выйти из настроек Firefox.

Но для дистрибутива Школьный Linux Юниор 5.0.1 в качестве основного web-браузера используется Ephiphany, который не имеет соственных настроек proxy и использует общесистемные настроки proxy-сервера. Для этого дистрибутива перейдите в меню "Система" -> "Параметры" -> "Параметры прокси-сервера" и укажите IP-адрес компьютера, на котором установлен NetPolice и укажите порт 3128.

5. Проверка работы контент-фильтра
После указания IP-адреса и порта в web-браузере введите в строке адреса сайт http://www.f-games.ru/
Вы должны увидеть надпись "Permition deny!". Это говорит о правильной работе установленного NetPolice. Сайт f-games.ru "не совместим с задачами образования".

6. Запуск консоли администрирования
Система NetPolice настраивается с помощью web-интерфейса. Для этого запускаем http-сервер

/etc/rc.d/init.d/httpd2 start

Запустите web-браузер и перейдите по адресу http://localhost/cgi-bin/login.cgi

Логин: root
Пароль: root

7. Создание нового администратора
Для создания новой учетной записи администратора перейдите по ссылке "Создать нового администратора". Введлите логин и пароль для нового администратора. После сохранения вернитесь на страницу ввода логина и пароля http://localhost/cgi-bin/login.cgi . Войдите с новым логином и паролем администратора.

8. Создание нового пользователя
При попытке доступа в интернет система NetPolice будет спрашивать вас ссод логина и пароля. К сожалению, пока не удается настроить систему в прозрачном режиме работы. Поэтому, создаем пользователя user с паролем 1.
Для этого перейдите по ссылке "Создать нового юзера".
Введите для нового пользователя имя user
IP адрес: 192.168.1.0 (адрес вашей подсети)
Маска подсети/суффикс: /24
Роль: my_student (выбрать из списка)

Для задания пароля пользователю в консоли от пользователя root выполните команду:

htpasswd2 /etc/squid/passwd user

9. Настройка политик доступа
Для настройки политик доступа в основном меню перейдите по ссылке my_student -> Редактировать

"Список реджектов" - это список запрещенных категорий интернет-ресурсов.
Для собственных внедрений мы используем следующий набор реджитов:

1 Пропаганда войны, разжигание ненависти и вражды, пропаганда порнографии и антиобщественного поведения
8 Преступления
24 Обеспечение анонимности пользователя, обход контентных фильтров
34 Убийства, насилие
54 убийства, насилие, трупы
57 терроризм
101 эротика, порнография
102 социальные сети
104 файлообменные сети и сайты
107 нелегальная помощь школьникам и студентам
109 обеспечение анонимности, обход контентных фильтров
110 онлайн-казино

Полный список реджетов можно посмотрать на сайте NetPolice в разделе "Приложение 2".

10. Дополнительные блокировки
К сожалению "Черный список" и "Белый список" в интерфейсе NetPolice не работают. У вас нет возможности как заблокировать дополнительные сайты так и разрешить доступ к уже заблокированным. Например, сайт spohelp.ru блокируется и для доступа к нему приходится добавлять исключения с настройках клиентских компьютеров.

Для дополнительной блокировки сайтов, которые NetPolice не блокирует мы используем инструменты самого squid. Для этого создаем черный список для самого squid.
Открываем на редактирование файл конфигурации squid

nano /etc/squid/squid.conf

Ищем в файле блок с acl записями и добавляем acl запись черного списка, с получением файлов из файла

acl blacklist url_regex "/etc/squid/blacklist.txt"

Создаем тектовый файл со список запрещенных шаблонов или адресов сайтов. В нашем случае - это домены "сохранено в кэше" поисковиков google и yandex.

nano /etc/squid/blacklist.txt

webcache.googleusercontent.com
hghltd.yandex.net
gjhyj

И создаем в файле /etc/squid/squid.conf правило запрещение доступа для сайтов перечисленных в категории blacklist. Для этого ищем запись http_access allow password и до нее вписываем строчку

#комментарии
http_access deny blacklist
http_access allow password

После сохранения настроек перезапустите squid

/etc/init.d/squid restart

Andrey123q Дата: Нд, 20.06.2010, 21:33 | Повідомлення № 3
Досвідчений учасник
Повідомлень: 1236
Нагороди: 3
Рейтинг: 84
gromko, спасибо за информацию!
Вопрос: почему просто не использовать squid, SquidGuard, SAMS? В чем существенные преимущества NetPolice?


Відредаговано: Andrey123q - Нд, 20.06.2010, 21:57
gromko Дата: Нд, 20.06.2010, 22:19 | Повідомлення № 4
Лінуксоїд
Повідомлень: 2526
Нагороди: 25
Рейтинг: 325
NetPolice имеет базу "запрещенных" і "разрешенных" государством Российским сайтов
Andrey123q Дата: Пн, 21.06.2010, 23:33 | Повідомлення № 5
Досвідчений учасник
Повідомлень: 1236
Нагороди: 3
Рейтинг: 84
gromko и другие, как вы раздаете интернет под Linux'ом в своих учебных завдениях?
пока что остановился на squid+sams - потренировался на вирт машинах, как купим модем перейду к реальной сети :)
swetikccc Дата: Вт, 22.06.2010, 08:24 | Повідомлення № 6
Ветеран спілкування
Повідомлень: 3862
Нагороди: 25
Рейтинг: 346
Я напрямую.
Детки сами под роутер подстраиваются.
Демонстрирую как легко с лайва даже подключиться.
Некоторые потом берут дистрибутив и ставят дома второй ОС.
А окна у меня под прокси, так что контакт возможен только в пингвине)))
dpi Дата: Вт, 22.06.2010, 08:51 | Повідомлення № 7
Досвідчений вчитель
Повідомлень: 1438
Нагороди: 1
Рейтинг: 39
Quote (swetikccc)
Детки сами под роутер подстраиваются.

У нас ХР и дети через роутер сидят в интернете, ни каких дополнительных программ и настроек. (Ну разве захотите упорядочить в классе ІР адреса)
swetikccc Дата: Вт, 22.06.2010, 12:14 | Повідомлення № 8
Ветеран спілкування
Повідомлень: 3862
Нагороди: 25
Рейтинг: 346
Это я по вредности так.
Были назначили ответственным за лицензирование, вот я и начал администрации и другие левые компы переводить на пингвина, опомнились , разделили обязанности между лаборантом, а я решил фильтрацию на окна поставить.)))
Andrey123q Дата: Вт, 22.06.2010, 21:39 | Повідомлення № 9
Досвідчений учасник
Повідомлень: 1236
Нагороди: 3
Рейтинг: 84
Под Windows шлюз ставить однозначно не буду, только под Linux. dpi, как с фильтрацией трафика?
Был бы инет безлимитный поставил бы прозрачный прокси и роутер готов.

Quote (swetikccc)
Были назначили ответственным за лицензирование, вот я и начал администрации и другие левые компы переводить на пингвина, опомнились , разделили обязанности между лаборантом

спасибо хорошая идея, возьму на заметку :)


Відредаговано: Andrey123q - Вт, 22.06.2010, 21:40
dpi Дата: Вт, 22.06.2010, 22:38 | Повідомлення № 10
Досвідчений вчитель
Повідомлень: 1438
Нагороди: 1
Рейтинг: 39
Quote (Andrey123q)
dpi, как с фильтрацией трафика?

Нет надобности. После года использования NOSchool (а над головой еще и 42'' телевизор где все видят любой комп в любое время) срабатывает самодисциплина. Да и история всех и вся пишется. Хотя в начале в каждом классе пришлось кому то покраснеть. Особенно удобен роутер для секретаря и других учителей, нет необходимости включать учительский комп.
Andrey123q Дата: Сб, 13.11.2010, 19:09 | Повідомлення № 11
Досвідчений учасник
Повідомлень: 1236
Нагороди: 3
Рейтинг: 84
Quote (dpi)
Особенно удобен роутер для секретаря и других учителей, нет необходимости включать учительский комп.

мы деньги на роутер тратить не будем, Linux-сервер в режиме роутера и отлично (в качестве шлюза можно даже взять и барахло десятилетней давности, как pasichov советовал).

Додано (13.11.2010, 18:09)
---------------------------------------------
На практике SAMS использовать не стал. Настроил связку squid + squidGuard.

VicS13 Дата: Вт, 06.09.2011, 23:26 | Повідомлення № 12
Тут живе...
Повідомлень: 103
Нагороди: 0
Рейтинг: 6
Для раздачи интернета у себя в классе задействовал FreeBSD 8.2+Freeradius+MySQL+MPD5(PPTP)+Abills (как биллинг). Оказалось что это проще в несколько раз чем городить огород по Linux.
5 месяцев - абсолютная стабильность. Может и избыточно...
detektuv Дата: Пт, 01.03.2013, 20:59 | Повідомлення № 13
Новий користувач
Повідомлень: 8
Нагороди: 0
Рейтинг: 0
Я використовую Mikrotik OS на віртуалці VMWare 
Інтернет через модем Huewai E1550 від Київстар

novichok Дата: Чт, 11.04.2013, 00:15 | Повідомлення № 14
Прописаний назавжди
Повідомлень: 367
Нагороди: 7
Рейтинг: 106
Есть машина с Linux Mint 14.1 и 3G модем от интертелеком. Надо раздать инет в локалку с использованием прокси-сервера. Под виндой был сначала юзер гейт сейчас стоит сс прокси. Помогите подробной консультацией как реализовать подобное под пингвином? премного благодарен за терпение и понимание!

Відредаговано: novichok - Чт, 11.04.2013, 00:16
novachok Дата: Чт, 11.04.2013, 00:35 | Повідомлення № 15
Прописаний назавжди
Повідомлень: 247
Нагороди: 0
Рейтинг: 9
Цитата (novichok)
Есть машина с Linux Mint 14.1 и 3G модем от интертелеком. Надо раздать инет в локалку

Зачем прокси? Все делается очень просто - надо прописать пару строчек, в Интернете статей полно.
Завтра посмотрю как у нас прописано - год работает без проблем.
https://www.google.com/search?....0%BB%D1 %8C%D0%BD%D1%83%D1%8E+%D1%81%D0%B5%D1%82%D1%8C+Ubuntu&ie=utf-8&oe=utf-8
Форум інформатиків » РОЗДІЛ V: ПРОГРАМНЕ ЗАБЕЗПЕЧЕННЯ » 5.4 ОС Linux » Интернет-шлюз под Linux (squid+iptables+sams) (настройка, опыт использования)
Сторінка 1 з 212»
Пошук:


© Форум інформатиків України, 2007-2017.