Роутер, контент фильтр, антивирус, файл/вэб/медиа сервер и т.д. на базе Linux
От: Cicero www.ya.ru
Дата: 03.02.14 09:18
Оценка:
Идея запустить дома один мега сервер на все витает у меня наверное год с лишним.
Первая попытка как то приблизиться к идеалу была покупка ZyXEL Keenetic.
Из чтения обзоров и описаний следовало — эта железка решит все стоящие задачи как минимум на 99%.
Купил.
Начал все запускать и настраивать.
Не буду тут описывать все нюансы...
Проблемы в которую я уперся: как только дело касается файлов большого размера роутер начинает безбожно тормозить.
Короче говоря оставил я роутеру только роль маршрутизатора и начал думать.

Первое что приходит на ум: запустить на базе обычной материнки сервер на Linux и запустить на нем все что надо.
Уже вот несколько дней копаюсь в этом.

Идея у меня такая:

Сервер на Linux будет играть роль роутера.
Проверять на лету трафик и детям доступ отсекать куда не положено.
Так же налету будет проверять трафик на вирусы.
Само собой защита локалки от попыток проникнуть извне.

К этому же серверу будет подключен винт со всей коллекцией медиофайлов.
Доступ через DLNA например.

Тут же будет запущены сервера PHP и Apache для экспериментов, а возможно и для своего сайта (скорей всего только для личного(или семейного) пользования).

Ну напоследок тут же будет файлопомойка доступная из локалки с любого устройства, а возможно и извне но под очень строгим контролем.


Первое что я попытался сделать: найти в инете примеры реализации описанной идеи(ну не я один наверное пришел к такой мысли!).
Да. Описаний нашел море.
Но возникли несколько философских вопросов.

1. Неужели в таком многообразии дистрибутивов Linux нет готового к таим задачам? (понятно что это все можно запустить на любом Linux — но я говорю о готовом!)
2. Даже сели нет готовых дистров... Должны же быть какие то готовые ПО где не влезая особо глубоко в устройство Linux можно было бы например заблокировать все сайты со словом "абвгд"(например).
Согласитесь что проще и быстрей набрать например в форме слово "абвгд" и нажать кнопку "добавить", чем тоже самое делать через командную строку...
Обычно на такой вопрос я читаю следующий ответ: глючные ГУИ... И что? за столько лет так и не написали хотя бы одно не глючное?

Ну и дальше вопросы практического характера:
1. если кто то делал подобное — поделитесь опытом. Какой дистр. Какие задачи реализовали.
2. может я просто не нашел — может быть все таки есть готовые дистры или ПО.
3. может мне в другую сторону копать? куда?
O tempora! O mores!
Re: Роутер, контент фильтр, антивирус, файл/вэб/медиа сервер и т.д. на базе Linu
От: Anton Batenev Россия https://github.com/abbat
Дата: 03.02.14 16:01
Оценка:
Здравствуйте, Cicero, Вы писали:

C> 1. Неужели в таком многообразии дистрибутивов Linux нет готового к таим задачам? (понятно что это все можно запустить на любом Linux — но я говорю о готовом!)


Untangle Gateway можно посмотреть и ClearOS. Но тут надо понимать, что у медали две стороны — чем больше специализирован дистрибутив, тем меньше вероятность в нем что-то поменять под себя не задев при этом его основной функционал.
avalon/1.0.433
Re: Роутер, контент фильтр, антивирус, файл/вэб/медиа сервер и т.д. на базе Linu
От: wildwind Россия  
Дата: 03.02.14 17:16
Оценка:
Здравствуйте, Cicero, Вы писали:

C>1. Неужели в таком многообразии дистрибутивов Linux нет готового к таим задачам?

Если хочется все строго через GUI — посмотри Zentyal.
Re[2]: Роутер, контент фильтр, антивирус, файл/вэб/медиа сервер и т.д. на базе L
От: Cicero www.ya.ru
Дата: 24.02.14 11:08
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Если хочется все строго через GUI — посмотри Zentyal.


Спасибо!
Очень интересно.
Пока изучаю.
O tempora! O mores!
Re: Первые шаги
От: Cicero www.ya.ru
Дата: 24.02.14 11:24
Оценка:
Начал свои эксперименты.
Поиски инструкций подталкивают к тому чтобы все это сделать на ubuntu: есть достаточно подробные инструкции.

Решил было поставить убунту, но столкнулся с тем что на мой сервер убунту не ставится.
Как я понял ядро не поддерживает процессор.
А процессор надо сказать тот еще: С3 от VIA!

Поднял debian и изучаю теперь Linux в свободное время.
Пока дошел до того что настроил роутер, поставил прокси, антивирус, и даже фильтрацию:
NAT + DHCP + DNS + Squid + HAVP + ClamAV + dansguardian (есть подозрение что что-то здесь лишнее )

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

Пока понять где тормоза не могу.

И никакого пока гуи, только хардкор, только командная строка и местами MC (в роли редактора).
O tempora! O mores!
Re[2]: Первые шаги
От: ShaggyOwl Россия http://www.rsdn.org
Дата: 08.03.14 07:29
Оценка:
Здравствуйте, Cicero, Вы писали:

C>Начал свои эксперименты.


Всего в одном не видел (впрочем и не искал).
Если тебя интересует в первую очередь мощный гибкий шлюз, можно посмотреть http://www.pfsense.org/.
Если NAS, то http://www.nas4free.org/ http://www.openmediavault.org/.

С pfsense работаю постоянно, хороший инструмент. NAS пока не трогал (как медиа сервер использую домашний комп
Автор: ShaggyOwl
Дата: 12.02.13
+ DLNA)
Хорошо там, где мы есть! :)
Re[2]: Роутер, контент фильтр, антивирус, файл/вэб/медиа сервер и т.д. на базе L
От: Cicero www.ya.ru
Дата: 11.03.14 06:43
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Если хочется все строго через GUI — посмотри Zentyal.


Попробовал установить.
Возникла такая же ситуация что и с Убунту: как я понял ядро не поддерживает этот процессор.
Пока остался на Дебиан.
O tempora! O mores!
Re: Держи.
От: Sheridan Россия  
Дата: 20.03.14 06:16
Оценка: 3 (1)
Здравствуйте, Cicero, Вы писали:

Я бы полнял Gentoo

C>Сервер на Linux будет играть роль роутера.

ppp — коннект в интернеты, dhcpd — раздача адресов в сети, named — dns сервер (и в локалке имена будет держать и в качестве основного днс будет работать). Документации куча, например

C>Проверять на лету трафик и детям доступ отсекать куда не положено.

squid, shorewall

C>Так же налету будет проверять трафик на вирусы.

sqid+clamav

C>Само собой защита локалки от попыток проникнуть извне.

shorewall

C>К этому же серверу будет подключен винт со всей коллекцией медиофайлов.

C>Доступ через DLNA например.
Есть разное. Выбирай без gui

C>Тут же будет запущены сервера PHP и Apache для экспериментов, а возможно и для своего сайта (скорей всего только для личного(или семейного) пользования).

Сам понимаешь — не проблема. Я бы посоветовал nginx, php, mysql, pgsql. Правда вместо пэхапэ я бы посоветовал перл/руби/питон (хотя на самом деле — cppcms — как раз пишу на ём сайт)

C>Ну напоследок тут же будет файлопомойка доступная из локалки с любого устройства, а возможно и извне но под очень строгим контролем.

samba
Если извне, то лучше еще и openvpn поднять. Это несложно, доки есть, например


C>1. Неужели в таком многообразии дистрибутивов Linux нет готового к таим задачам? (понятно что это все можно запустить на любом Linux — но я говорю о готовом!)

Дистрибутивы специализированные, как мне кажется, создают в основном студенты. В основном так, ради экспериментов. Если удачно складывается — дистрибутив начинает жить. Ну и крупные конторы тоже могут создавать свои дистрибутивы. Весь вопрос тут — в поддержке: мониторинг обновлений, опакечивание, управление зависимостями. Рутинная монотонная работа.

C>2. Даже сели нет готовых дистров... Должны же быть какие то готовые ПО где не влезая особо глубоко в устройство Linux можно было бы например заблокировать все сайты со словом "абвгд"(например).

Есть такое. squid называется. Сверху, как правило, если есть необходимость частого влезания в фильтры, на коленке рисуется скрипт-генератор правил.

C>Согласитесь что проще и быстрей набрать например в форме слово "абвгд" и нажать кнопку "добавить", чем тоже самое делать через командную строку...

А еще проще добавить это слово в файлик новой строкой. И еще лучше — чтобы регекспы поддерживало.

C>Обычно на такой вопрос я читаю следующий ответ: глючные ГУИ... И что? за столько лет так и не написали хотя бы одно не глючное?

ГУЙ серверу линуксовому не нужен. Запомни это как отче наш. Даже если это вызывает у тебя коггитивный диссонанс — привыкай. ГУЙ линуксовому серверу не нужен. Лишняя трата ресурсов, только и всего.
Более того, не нужно и веб-управление. Можно конечно прикрутить — это несложно, несложно даже самостоятельно набросать на пэхапэ страничку конфигурирования, но и это не нужно.
Привыкай к ssh. Это самый приемлемый вариант. Поверь мне — рано или поздно ты поймаешь себя на том, что монитор к серверу не подключал уже года полтора, веб-конфигуратор не открывал полгода минимум и все делаешь через консоль.


C>1. если кто то делал подобное — поделитесь опытом. Какой дистр. Какие задачи реализовали.

Gentoo. Вот как раз практически то же самое делал. Только медиа-сервер был отдельным компом, подключенным к ТВ и с поднятым xbmc

C>2. может я просто не нашел — может быть все таки есть готовые дистры или ПО.

Забудь про готовые дистрибутивы. Возьми тотже gentoo или debian, то есть чтото распространенное.
А ПО есть. Куча.

C>3. может мне в другую сторону копать? куда?

В правильную сторону копаешь
Matrix has you...
Re[2]: Первые шаги
От: Sheridan Россия  
Дата: 20.03.14 06:18
Оценка:
Здравствуйте, Cicero, Вы писали:

C>Потом когда я вроде бы исправил все свои косяки начал ловить себя на мысли что трафик через роутер идет с большими тормозами.

C>Пока понять где тормоза не могу.
У тебя на древнем процессоре весь веб-трафик обрабатывается антивирем. Чего ж ты хотел?
Небось еще и памяти гиг от силы.
Matrix has you...
Re[3]: Первые шаги
От: Cicero www.ya.ru
Дата: 26.03.14 10:50
Оценка:
Здравствуйте, Sheridan, Вы писали:
S>У тебя на древнем процессоре весь веб-трафик обрабатывается антивирем. Чего ж ты хотел?
Сначала схема была вот такая:
NAT + DHCP + DNS + (Squid + (HAVP + ClamAV)) + dansguardian
Притом dansguardian устанавливал в последнюю очередь, и тормоза как мне кажется начинались именно после этого.

Сейчас переделал в:
NAT + DHCP + DNS + Squid + (dansguardian + ClamAV)
И думаю что dansguardian наверное убрать.
Squid (против dansguardian) насколько я понимаю обладает меньшей возможностью.
Но пока еще не решил.

S>Небось еще и памяти гиг от силы.

Нет там даже гига, всего 512 метра(изначально было 128 ).
Так уж получилось исторически.
Оборудование мне досталось бесплатно, притом полностью пассивное охлаждение(чего я очень хотел).
Слышно только как винт работает.

Основная цель оборудования — это проба пера и обучение: если все сростется, тогда буду покупать что то помощней.
O tempora! O mores!
Re[2]: Держи.
От: Cicero www.ya.ru
Дата: 26.03.14 11:24
Оценка:
Здравствуйте, Sheridan, Вы писали:

Огромнейшее спасибо!
Это будет быстрый ответ.
Я выскажусь по тем моментам по которым в данный момент готов что то сказать.

S>Я бы полнял Gentoo

Сейчас у меня стоит Debian(очень удобно тем что много всякой документации по Ubuntu, а это почти одно и то же ).
Есть принципиальная разница между Gentoo и Debian(не холивара ради)?

S>ppp — коннект в интернеты, dhcpd — раздача адресов в сети, named — dns сервер (и в локалке имена будет держать и в качестве основного днс будет работать). Документации куча, например

Эти статьи были и взяты за основу. Я продолжаю изучать эти статьи.

S>Сам понимаешь — не проблема. Я бы посоветовал nginx, php, mysql, pgsql. Правда вместо пэхапэ я бы посоветовал перл/руби/питон (хотя на самом деле — cppcms — как раз пишу на ём сайт)

Я тоже подумывал о nginx. Но потянет ли мой старик?

S>Дистрибутивы специализированные, как мне кажется, создают в основном студенты. В основном так, ради экспериментов. Если удачно складывается — дистрибутив начинает жить. Ну и крупные конторы тоже могут создавать свои дистрибутивы. Весь вопрос тут — в поддержке: мониторинг обновлений, опакечивание, управление зависимостями. Рутинная монотонная работа.

Я уже можно сказать осознал что не нужно мне никаких специализированных дистров.
Это будет мешать образовательному процессу: для понимания того как все это устроено и работает.

S>ГУЙ серверу линуксовому не нужен. Запомни это как отче наш. Даже если это вызывает у тебя коггитивный диссонанс — привыкай. ГУЙ линуксовому серверу не нужен. Лишняя трата ресурсов, только и всего.

Нет. Нет.
Изначально я даже и не предполагал что в самом сервере будет что то графическое.
Я имел ввиду софт на стороне рабочей машины с которого удаленно управляется сервер: типа winbox в Mikrotik OS.

S>Привыкай к ssh. Это самый приемлемый вариант. Поверь мне — рано или поздно ты поймаешь себя на том, что монитор к серверу не подключал уже года полтора, веб-конфигуратор не открывал полгода минимум и все делаешь через консоль.

Осваиваю ssh.
Поставил fail2ban. root'у отключил доступ по ssh.
Сервер сейчас пока стоит правда за роутером zyxel и не используется сам как роутер.
Хотел перенести порт ssh, но что то пока не получается.
Очень похоже что что то в роутере(zyxel) не так настроено.

S>Забудь про готовые дистрибутивы. Возьми тотже gentoo или debian, то есть чтото распространенное.

S>А ПО есть. Куча.
Я тоже пришел к выводу что надо изучать что то более классическое.
Буду пока изучать debian.

S>В правильную сторону копаешь

Спасибо!

Изучать пока что есть что.
Но пока напряги со свободным временем.
O tempora! O mores!
Re[4]: Можно
От: Sheridan Россия  
Дата: 26.03.14 11:33
Оценка:
Здравствуйте, Cicero, Вы писали:

C>Squid (против dansguardian) насколько я понимаю обладает меньшей возможностью.

C>Но пока еще не решил. тогда буду покупать что то помощней.
Если я правильно понял — dansguardian это просто надстройка над squid, от которой действительно можно избавиться.
Можно и руками сквид настроить.

Сначала определяем разграничиваем зоны ответственности
# для конкретной машины
acl acl_1 src 10.0.5.27
# для подсети
acl acl_2 src 10.0.5.1-10.0.5.255


Потом указываем правила и линкуем к ним файлы с регекспами для зон ответственности
# --- acl_1_allow # url # allow ---
acl acl_1_allow url_regex -i "/etc/configuration-generator/squid/content/host.pc-1.url.allow"
http_access allow acl_1 acl_1_allow
# --- acl_1_deny # url # deny ---
acl acl_1_deny url_regex -i "/etc/configuration-generator/squid/content/host.pc-1.url.deny"
http_access deny acl_1 acl_1_deny


Потом указываем общие правила для всего проходящего через сквид и линкуем к ним файлы с регекспами
# --- acl_292 # url # allow ---
acl acl_292 url_regex -i "/etc/configuration-generator/squid/content/common...url.allow"
http_access allow  acl_292
# --- acl_293 # url # deny ---
acl acl_293 url_regex -i "/etc/configuration-generator/squid/content/common...url.deny"
http_access deny  acl_293
# --- acl_294 # url # no_cache ---
acl acl_294 url_regex -i "/etc/configuration-generator/squid/content/common...url.no_cache"
no_cache deny  acl_294
# --- acl_295 # url # always_direct ---
acl acl_295 url_regex -i "/etc/configuration-generator/squid/content/common...url.always_direct"
always_direct allow  acl_295
# --- acl_296 # url_path # allow ---
acl acl_296 urlpath_regex -i "/etc/configuration-generator/squid/content/common...url_path.allow"
http_access allow  acl_296
# --- acl_297 # url_path # deny ---
acl acl_297 urlpath_regex -i "/etc/configuration-generator/squid/content/common...url_path.deny"
http_access deny  acl_297
# --- acl_298 # url_path # no_cache ---
acl acl_298 urlpath_regex -i "/etc/configuration-generator/squid/content/common...url_path.no_cache"
no_cache deny  acl_298


Потом создаем файлы с регекспами типа
https?://.*\.(m2k|a\.as-us|promo|ufobn|rb-net|cli[ck]{1,2}|bann?er|count(er|ing)|pops|rdt|top|bs|kmindex|ads?|clic?k?)[0-9]*.*/.*$
https?://.*(spy|hot)log.*/.*$
https?://.*(partner\.km|kreis\.trl|image\.link)\.ru.*/.*$

И вроде всё... Как то так
У меня все это генерирует личнонаписанный скрипт.
Matrix has you...
Re[3]: Держи.
От: Sheridan Россия  
Дата: 26.03.14 11:39
Оценка:
Здравствуйте, Cicero, Вы писали:

S>>Я бы полнял Gentoo

C>Сейчас у меня стоит Debian(очень удобно тем что много всякой документации по Ubuntu, а это почти одно и то же ).
C>Есть принципиальная разница между Gentoo и Debian(не холивара ради)?
Да. Генту собирается из исходников, дебиан — нет.
Соответственно уже на этапе компиляции можно из софта выпиливать ненужное. Например поддержку ipv6 или иксов.

S>>Сам понимаешь — не проблема. Я бы посоветовал nginx, php, mysql, pgsql. Правда вместо пэхапэ я бы посоветовал перл/руби/питон (хотя на самом деле — cppcms — как раз пишу на ём сайт)

C>Я тоже подумывал о nginx. Но потянет ли мой старик?
Я бы задал такой вопрос насчет как раз апача

C>Изначально я даже и не предполагал что в самом сервере будет что то графическое.

C>Я имел ввиду софт на стороне рабочей машины с которого удаленно управляется сервер: типа winbox в Mikrotik OS.
ssh нашевсё

C>Сервер сейчас пока стоит правда за роутером zyxel и не используется сам как роутер.

Не ковыряйся в модеме, это лишнее. Выставляй модем в бридж, а pppoe поднимай на серванте.

C>Но пока напряги со свободным временем.

У меня такая же проблема. Ответить в течении дня на 3-4 поста тут время есть, а выделить часок на ковыряниях ради интереса — уже нет
Matrix has you...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.