Список разделов -> Оффтопик: «Линуксоидам. Хавту, как грязи, а у меня вопросы просто хав:)»
|
|
027
Админ запаса
Откуда: Волгоград Сообщений: 3610 Регистрация: 30.03.2004
|
Просьба пояснить процедуру инициализации и настройки пакетного фильтра. Правильно ли я у меня сложилось в голове, после потребления потребления жуткой каши из этих ваших интернетов?
1. Собственно, пакетный фильтр именуется netfilter, и это низкоуровневый компонент ядра. И это никакой не файрволл, а нечто более глобальное (диспетчер пакетов транспортного уровня?..)
2. Штатный фронтенд к нему именуется iptables, и это тоже никакой не файрволл, а попросту утилита для конфигурирования netfilter "на лету".
3. После запуска ядра netfilter заводится в некоей дефолтной конфигурации (задается конфигом ядра при сборке?):
"разрешен полный доступ ко всем сетевым интерфейсам, буде таковые найдутся".
4. Текущие настройки хранятся не в конфиге, как было в древних ядрах, а в псевдофайлах, которые не переживают перезагрузку.
5. Чтобы заменить дефолты из ядра на свои собственные, нужно учинить некий скрипт на шелле, в котором будет стопка команд iptables, и поместить его куда-то в /etc, среди прочих скриптов инициализации. Например, чтобы построить этот самый файрволл. Или еще чего начудить (форвардинги, шейперы, счетчики).
6. Как вариант, поставить более другой пакет (слышал что-то про порт pf из FreeBSD, с менее марсианским синтаксисом). Или поставить пакет-переводчик с "человеческого на марсианский" он же герератор правил iptables. Кошерный CLI кандидат, насколько смог уяснить, только shorewall.
7. Остальное - гуйня для десктопов или вебня, всё убогое, аналогов виндовозного Kerio по гибкости и удобству нету. Или, скажем, аналогов кошерного веб-фронтенда для сквида SAMS.
_________________ Ку |
19:54 10-12-2012
|
|
|
027
Админ запаса
Откуда: Волгоград Сообщений: 3610 Регистрация: 30.03.2004
|
Тупой вопрос по DHCP-серверу.
Если есть два интерфейса, eth0 и eth1, как он определяет, какой слушать? Чисто по IP или/и по MAC-адресу интерфейса тоже? Или слушает все доступные?
Скажем. у меня два интерфейса, один 10.0.0.1, другой 192.168.0.1. Пул у него указан 10.0.0.2-10.0.0.100. Будет он слушать 192.168.0.1, выдавая туда совершенно левые адреса для клиентов, или не будет? В этом сегменте есть свой DHCP-сервер. Или я могу отважно его заводить, не опасаясь такой засады?
(Конкретно у меня ISC DHCP, debian 6.0)
*дебильный вопрос, понимаю. Просто скажите, да/нет. Сразу после этого можно вволю отоптаться по деревянному МНУ чайника, не умеющего правильно гуглить.
_________________ Ку |
20:21 10-12-2012
|
|
|
winner
Виктор Бульба
Откуда: Обираловка Сообщений: 2961 Регистрация: 12.07.2004
|
027, что-то у вас какая-то каша.
Начну с DHCP-сервера:
интерфейс, на котором демон будет слушать просто передаётся ему параметром при запуске: в RH-based это можно задать в /etc/sysconfig/dhcpd, в дебиане - по-моему, такого файла нет, нужно завести переменную INTERFACES в /etc/init.d/dhcp3-server с иемнем интерфейса.
Но, в принципе, этого можно не делать. Если Вы не определите подсеть для интерфейса, то при запуске DHCPD в логе предупредит Вас об этом и на запросы через "неправильный" интерфейс будет ругаться в логе чем-то типа wrong network.
Про нетфильтр:
1-2. смотря что понимать под файрволом. В нетфильтре есть тоже SPI и conntrack.
3. ИМХО, задаются "правила по-умолчанию" в файле, который читается при старте.
4. для этого есть iptables-save и iptables-restore
5. можно так, можно воспользоваться (не знаю, как в дебиане, но в центоси есть) /etc/init.d/iptables save
6. зачем pf? ну, а в плане "правил" - да, можно shorewall и ему подобные, но я их не люблю.
_________________ Errare humanum est |
12:51 11-12-2012
|
|
|
027
Админ запаса
Откуда: Волгоград Сообщений: 3610 Регистрация: 30.03.2004
|
winner : |
027, что-то у вас какая-то каша. |
Был бы красивый торт с цветочками, не спрашивал бы.
По dhcp разобрались. Все-таки кошерно гвоздем прибить. В дебиане гвоздь для прибивания dhcpd к физическому интрефейсу живет тут: /etc/default/isc-dhcp-server
(а мы, по простоте душевной, рядом с основным конфигом искали, ггг)
Теперь все хорошо:
wb027@wifigate1:~$ ps -eafw | grep dhcpd
root 2531 1 0 Dec11 ? 00:00:00 /usr/sbin/dhcpd -q eth1
Что касается мунспика, на котором разговаривает iptables, пусть с ним одмин еще маленько потрахается.
(Я говорил, надо vyatta ставить, говорил? Не-е... не восхотел. Я говорил, давай тогда убунту сервер накатим, говорил? Не... слава нехорошая... Давай тогда shorewall, что ли, заюзаем, на фига тебе ради одноразовой задачи в марсианских письменах ковыряться? С малопредсказуемым результатом. Не...)
Ну, пусть еще немного потрахается.
Лулзы пошли сразу же, как только напоролись на полное отсутствие фирмвари для intel100 в расово верном установочном диске. Погуглили, поняли в чем засада, однако инсталятор наотрез отказался кушать фирмварь с флешки. Хз, что ему не понравилось.
В итоге Саня откопал на дебиановском сайте неофициальную сборку с включением non-free. Но только минималистический вариант, т.н. netinstall. Базовая система, самый минимум. Там даже sudo нету. После чего героическими усилиями на него был взгроможден потребный для задачи инструментарий.
С чего все началось, отдельная песня, исполненная лулзов.
Начальство внезапно озадачилось, а чего это у нас вайфая для студентов нету! Надо сделать, а то, как лохи выглядим, в глазах вышестоящих. Несколько уже имеющихся точек не в счет, туда только избранных пускает (мыльницы-говнороутеры). Надо для студентов тоже. Однако не совсем халявный, а строго по списку. Стукнуло начальству в голову, чтобы логи писались, кто куда когда ходил. Короче говоря, наноСОРМ построить. Во-от, уже всем смешно.
Дальше еще смешнее. Закупили десяток NAS от длинка. Ага, тех самых, которых мы в пятницу по этажам спешно рассовывали для субботнего слета.
После ознакомления с вебмордою выяснилось, что фильтр по маку у них ограничен 30-ю записями на коробочку. И, стало быть, надо радиус. И все было бы хорошо, и меня б никто не трогал, если б не феерическая жадность мелкософта. Так бы Саня все это хозяйство на привычной венде построил, вот только "забесплатно" мелкософтовский радиус только 50 записей позволяет, а на все остальное, сколько нам потребно, такие конские цены нарисовались! И пришли они к выводу (одмин с ночальнегом нашим), что суровая реальность оставляет только один вариант - freeradius энд неизбежный linux. Я смеялсо.
До тех пор, пока не выяснилось, что ко всему этому хозяйству обязательно нужно вебморду, иначе упаришься каждого юзера врукопашную прописывать. Ту-то я и был призван к станку, ибо апаче, мускуль и прочее пэхапэ. Ну и вообще "ты хоть что-то в этих никсах понимаешь".
("Говорил я вам, говорил? Еще пять лет назад. Нефиг хреносозидательством заниматься, все давно придумано до нас. Как нормальные люди корпоративную сеть строят? Green zone, Red zone, Blue zone, DMZ... В картинках даже показывал.")
(На самом деле, мне всегда хотелось выселиться с моим ненаглядным апачем в DMZ, и на линукс переехать заодно, наглухо законопатив все лишние дырки. А мне в ответ, неуловимый Джо, неуловимый Джо... Они не такими словами говорят, но суть именно такая.)
(В нашем подвале аура редкостная. Если я вам расскажу, как у нас построен доступ в интернет и прочие сетевые радости, вы не поверите. Не поверите, что это может вообще взлететь. Однако - лично наблюдал аптайм более двух лет. Со слезами сервак перезагружал! Надо было нотариально заверенный скриншот сделать...)
Теперь вот начальство прислало жареного на вайфае петуха. Поклевать отдел ИТ в жопие. Вы думаете, наконец-то сделаем все по уму? Не-ет...
В общем, чую я, придется мне самопальную вебморду ко всему этому чуду кропать. С неизбежным нарезанием апачу прав рута. Сегодня полдня занимался анальным огораживанием апача от возможных посягательств кулхацкеров. Пока средствами самого апача. То ли еще будет...
_________________ Ку |
21:16 11-12-2012
|
|
|
027
Админ запаса
Откуда: Волгоград Сообщений: 3610 Регистрация: 30.03.2004
|
А может, не надо апачу прав рута?..
Можно ли сделать так, чтобы пользователь www-data (от его имени запущен апач) получил право на исполнение файла /etc/init.d/freeradius ?
Нужно, чтобы пхп-скрипт мог дергать радиус от имени апача на предмет перечитать конфиг.
_________________ Ку |
20:52 12-12-2012
|
|
|
winner
Виктор Бульба
Откуда: Обираловка Сообщений: 2961 Регистрация: 12.07.2004
|
В MS Windwows Server есть такой сервис - IAS (в 2008 называется по-другому, но гуглится на ура) - тот же радиус, авторизация по учеткам из AD.
Если так хочется фрирадиус, то почему бы не использовать его совместно с abills или freenibs? И морда вам сразу, и передёргивать не надо.
Ну, а если решили сами скостылять что-то и надо дёргать радиус из веб-морды, то можно в sudoers для пользователя под которым крутится апач (www-data) сделать запись, что можно выполнять команду freeradius без пароля и выполнять уже из php-скрипта через sudo.
_________________ Errare humanum est |
23:12 12-12-2012
|
|
|
027
Админ запаса
Откуда: Волгоград Сообщений: 3610 Регистрация: 30.03.2004
|
winner : |
В MS Windwows Server есть такой сервис - IAS |
Сколько лицензии стоят, в курсе? На пару тыщ привязанных записей.
winner : |
почему бы не использовать его совместно с abills или freenibs? |
Полновесный (читай - монструозный) биллинг не нужен. От радиуса нужна только аутентификация юзера по маку.
Нужна простая морда, которая будет прописывать юзеров параллельно в радиус и в dhcp (выдать автоматический ip с привязкой по маку). Морду такую я напишу, там вроде просто все.
Через sudoers идея понятна. Осталось только разобраться в синтаксисе. Помнится, как-то смотрел ман судоерс, сверхлаконично и ни хрена не понятно.
_________________ Ку |
00:19 13-12-2012
|
|
|
Randy
******
Сообщений: 505 Регистрация: 13.08.2004
|
Последний раз редактировалось: Randy (15:14 19-10-2016), всего редактировалось 1 раз |
13:09 13-12-2012
|
|
|
winner
Виктор Бульба
Откуда: Обираловка Сообщений: 2961 Регистрация: 12.07.2004
|
Randy : |
chmod +s </path_to/file> .
Эта команда делает "суидным" (Sticky Bit) тот файл, на который "натравлена".
Иными словами, скрипт, созданный рутом, будет запущен с правами рута, даже если запуск произвёл простой пользователь.
Из-за этого нужно быть особенно внимательным с тем, что делает этот скрипт, а также с правами на его изменение.
PS: я так монтирую самбу nas-а под простым пользователем, перед ежедневной выгрузкой на него резервных копий. |
Randy, Вы чуть неправы:
Установка SUID-бита позволяет выполить исполняемый файл не от имени текущего пользователя, а он имени владельца файла (не обязательно это будет рут). Это потенциальная дыра, т.к. любой пользователь сможет перезапустить\остановить фрирадиус в задаче 027.
Sticky bit - это совсем другой атрибут, актуален для директорий и здесь ни к месту.
_________________ Errare humanum est |
16:22 13-12-2012
|
|
|
Randy
******
Сообщений: 505 Регистрация: 13.08.2004
|
Последний раз редактировалось: Randy (15:14 19-10-2016), всего редактировалось 1 раз |
18:29 13-12-2012
|
|
|
027
Админ запаса
Откуда: Волгоград Сообщений: 3610 Регистрация: 30.03.2004
|
Спасибо за советы. Через sudo, думается, более правильно. Судо для того и придумано.
Что касается возможной эксплуатации дыр в php, до него еще добраться надо. Апач анально огорожен, слушает только отдельный интерфейс, на который через вайфай не попадешь. А отвечает запросам лишь с определенных IP, спрашивая пароль на входе (.htaccess).
Сегодня мы с Сан Палычем достигли значительного прогресса. Радиус лег и подниматься категорически отказался.
Хотите знать, как удавить фрирадиус под дебианом? Переименуйте файл его конфига users, перезапустите, переименуйте обратно в users и снова перезапустите. Получите труп радиуса:
root@wifigate1:/home/wb027# /etc/init.d/freeradius start
Starting FreeRADIUS daemon: freeradius failed!
Внезапно, ага?
Сегодня вообще был вечер глюков. Мы это файлик чего переименовывали. Подружили NAS с радиусом (через файл clients.conf). Ругательства в логе пропали (мол, неизвестный клиент стучится). Прописали в файл users тестового юзверя с именем MAC address и паролем NOPASSWORD. В строгом соответствии со встроенным хелпом вебморды NAS (точки доступа).
Получилась полная хрень - пускает всех. Если "испортить" секрет в clients.conf, не пускает никого. Радиус при этом ругался в логе на неизвестного клиента, что совершенно правильно. Но какого хрена он неведомых ему юзверей пропускает? И кто тут виноват, длинковская мыльница-переросток или радиус?
Он вообще этот users читает, ити его мать? В главном конфиге есть ссылки на другие файлики конфигурации, а на этот нету. То ли надо дописать ссылку на него, то ли он читается по умолчанию. Тут и возникла гениальная идея переименовать, чтобы увидеть реакцию радиуса при релоаде. На команду релоад он упал и больше не отжался.
На самом деле, похоже, эта старая железяка, на которой мы с Палычем упражняемся, потихоньку помираэ. Причудливо поглюкивая напоследок. Два звоночка уже было - радиус отказывался читать главный файл конфига. Однако через некоторое время проблема рассасывалась сама собой минут через 15-20 пнешь - и он взлетает. Это мы не специально так, само получалось, нас с одмином то и дело дергали по текущим делам.
В общем, решили, что ну его нах, сегодня 13-е, хоть и не пятница. Пошли по домам.
_________________ Ку |
19:29 13-12-2012
|
|
|
027
Админ запаса
Откуда: Волгоград Сообщений: 3610 Регистрация: 30.03.2004
|
А! Вот еще какой "хав на будущее" нарисовался. Насколько я понял, isc-dhcp3 с SQL работать не умеет.
Так или не так? Для радиуса есть какие-то костыли, с помощью которых он может раздавать айпишники через dhcp, однако беглый гуглеж говорит, что геморроя много. А если для isc-dhcp работать с базой таки можно, но тоже геморройно, то ну его нафиг.
Если так, в будущей самодельной морде (через которую будем регистрировать тысячи юзверей) мне все равно придется писать напрямую в файл конфига dhcp сервера.
Напомню исходную задачку от ночальнега. Юзверь, посредством радиуса, привязывается по MAC, без пароля. DHCP выдает ему зарезервированный IP, привязанный к MAC. КтулхуСквид пишет логи, кто куда когда ходил. Надо иметь возможность быстренько выявить житейское имя юзверя, привязанное черз MAC к IP. (Понятно, что херь полная, тут главное, верхнее начальство получит свою игрушку.)
Возникает закономерный вопрос - а на фига тогда конфиги радиуса в mysql переселять? Уже ведь понятно, что dialupadmin не умеет управлять dhcp. Проще уж тогда писать заодно и в файловый конфиг радиуса - тот самый users - и вообще не связываться с БД. Лично мне без разницы, я знаю, как делать в php и то, и то.
Мы ж, собственно, чего с мускулем затеялись, была надежда приспособить готовую вебморду для наших целей. А они с радиусом через базу работают.
_________________ Ку |
20:04 13-12-2012
|
|
|
027
Админ запаса
Откуда: Волгоград Сообщений: 3610 Регистрация: 30.03.2004
|
Хм. А если назначить хозяином двух файлов-конфигов пользователя www-data? И дать права 644 (или даже 604). Сейчас хозяин dhcpd.conf - root, у конфигов радиуса - freerad (от его имени радиус и запущен).
_________________ Ку |
20:11 13-12-2012
|
|
|
027
Админ запаса
Откуда: Волгоград Сообщений: 3610 Регистрация: 30.03.2004
|
"Эта песня хороша, начинай сначала..."
027 : |
старая железяка, на которой мы с Палычем упражняемся, потихоньку помираэ. Причудливо поглюкивая напоследок |
П...дец котенку. Ставим все с нуля на более другую машинку, не столь древнюю.
На этот раз дело идет медленнее, пишем подробную мурзилку, нам еще один такой же роутер поднимать. В связи с этим вопрос.
Схема такая.
- Надо раздавать вайфай строго по списку с привязкой IP к MAC'у вайфайщика. В двух зданиях. Между ними 5 км, прямая связь по оптике.
- "Прописка" пользовательских дивайсов происходит в одном здании.
- Данные по каждому дивайсу вносятся в два конфигурационных файла: в конфиги isc-dhcp3 и freeradius на местном роутере. Назовем его Мастер.
- После этого дергаем обоих демонов, чтоб перечитали конфиги. Студиозус обретает щастье и топает, откуда пришел.
- Далее надо передать обновленную конфигурацию точно такому же роутеру в другое здание. Назовем этот роутер Слэйвом. Как это лучше сделать?
Тупой вариант, решение в лоб - подключить Мастера по SSH к Слэйву, залить туда обновленные конфиги, релоадить/рестартовать удаленно его демонов.
Менее тупое - синхронизировать этих демонов их собственными средствами. Freeradius много чего умеет в этом плане (проксирование, например). Допустим, что-то подобное умеет isc-dhcp3. Но, в любом случае - как быть, если связь между корпусами отвалится?
Если все данные будут храниться только у нас, веселуха по полной. Кабель от прова идет на учебный корпус, а от него уже к нам, в главный корпус. Если отключится роутер провайдера (а такое бывает при отключении электричества):
- у нас нет интернета вообще, и все местные вайфайщики в обломе,
- в учебном корпусе интернет как бы есть, но их вайфайщики тоже в обломе, ибо тамошний радиус не может спросить у нашего неизвестные ему логины.
Есть светлые мысли?
_________________ Ку |
20:58 20-12-2012
|
|
|
winner
Виктор Бульба
Откуда: Обираловка Сообщений: 2961 Регистрация: 12.07.2004
|
значит так:
можно прибивать маки к айпишникам гвоздями в конфиге и при изменении конфига rsync'нуть конфиги на другой сервер, перезапустить у себя и удаленно демона, а можно в арендах и объявить время аренды ну, скажем, год. Для управления DHCPD есть omshell. ISC DHCPD умеют работать в кластере и синхронизируют сами аренды, гуглить и читать конфиг по словам failover peer.
Ещё советую полистать тему http://forum.nag.ru/forum/index.php?showtopic=61077
Там же, на наге, есть ссылки на другие DHCP-серверы, которые умеют и из базы брать аренды.
Про радиус - если хранить учетки в базе, то ставим 2 радиуса и 2 СУБД и настраиваем на них репликацию.
Извиняюсь, что редко отвечаю, к компу дома прорваться получается не всегда.
_________________ Errare humanum est |
22:00 21-12-2012
|
|
|
027
Админ запаса
Откуда: Волгоград Сообщений: 3610 Регистрация: 30.03.2004
|
Спасибо, будем курить наг.
_________________ Ку |
01:40 22-12-2012
|
|
|
027
Админ запаса
Откуда: Волгоград Сообщений: 3610 Регистрация: 30.03.2004
|
Ламерский вопрос по радиусу. Вывод tcpdump:
Код: |
17:38:58.560017 IP (tos 0x0, ttl 64, id 15489, offset 0, flags [none], proto UDP (17), length 48)
172.19.0.1.radius > 172.19.19.12.32770: [udp sum ok] RADIUS, length: 20
Access Accept (2), id: 0x00, Authenticator: 741896864dd43165efc453262c844044
|
Код: |
17:59:38.410020 IP (tos 0x0, ttl 64, id 15489, offset 0, flags [none], proto UDP (17), length 48)
172.19.0.1.radius > 172.19.19.12.32770: [udp sum ok] RADIUS, length: 20
Access Reject (3), id: 0x00, Authenticator: f6ecd55e60c6a1d7fefaa18c27485957
|
Это конец сеанса работы точки доступа с радиусом, для случая успешной аутентификации и для случая неуспешной.
Собственно вопрос (бредовый): Access Accept и Access Reject всегда выглядят одинаково для любых NAS, или бывают варианты? Я не имею в виду возможную передачу атрибутов авторизации. Именно вот это кусок.
Проблема в том, что ТД ведет себя неадекватно.
- на первый запрос пользователя она запрашивает радиус, но отказывает в доступе независимо от ответа радиуса,
- на последующие повторные запросы НЕвалидного пользователя подключает его к сети, не запрашивая больше радиус,
- при повторных запросах валидного пользователя НЕ пускает его в сеть, НЕ спрашивая больше радиус.
Таки да, это длинк. Кто тут виноват, кривая точка или мои кривые руки?
И еще ламерский вопрос. Почему запрос к радиусу не происходит при повторных подключениях? Так и должно быть? (таймаут? тогда где настраивается? в радиусе или ТД?) Или это глюк ТД?
Чтобы выбить из нее запрос к радиусу и посмотреть, что происходит, приходится ребутить точку.
Судя по странному (на мой непросвещенный взгляд) поведению ТД в режиме WPA-Enterprise, виновата дочка тоступа. Она вообще не обращается к радиусу. Просто дает отлуп.
D-Link DWL-3600AP, Firmware Version: 4.1.0.11 (перешились на последнюю, подверсия была то ли 08, то ли 06, ничего не изменилось).
И еще вопрос. Что означают:
- цифры в скобках: Access Accept (2)
-Authenticator: 741896864dd43165efc453262c844044 (эти коды нигде не повторяются)
В отладочном выводе радиуса этого вообще нет. Радиус запущен с ключом -X.
_________________ Ку |
19:35 25-01-2013
|
|
|
winner
Виктор Бульба
Откуда: Обираловка Сообщений: 2961 Регистрация: 12.07.2004
|
ТД может переставать посылать запросы на радиус, если считает его мёртвым, т.е. возможно, что к ТД не дошел ответ радиуса или он (ответ) не понравился ТД.
_________________ Errare humanum est |
23:46 25-01-2013
|
|
|
027
Админ запаса
Откуда: Волгоград Сообщений: 3610 Регистрация: 30.03.2004
|
winner : |
если считает его мёртвым |
Это да, UDP меня сильно удивило.
winner : |
возможно, что к ТД не дошел ответ радиуса |
Второй месяц? (многократные повторные эксперименты). Как объснить стабильно инверсную реакцию тд?
winner : |
или он (ответ) не понравился ТД. |
Так о чем и спрашиваю!
Может ли не понравиться? Такое вообще может быть?
Дамп выше.
_________________ Ку |
00:26 26-01-2013
|
|
|
winner
Виктор Бульба
Откуда: Обираловка Сообщений: 2961 Регистрация: 12.07.2004
|
это не дамп.
снимаем, значит, на радиус-сервере так:
tcpdump -vnni ИНТЕРФЕЙС host АЙПИ_ТД -s 0 -w ИМЯ_ФАЙЛА.pcap
и высылаем мне на почку
так же убедитья в прохождении хотя бы пинга от радиус-сервера до ТД
_________________ Errare humanum est |
00:58 26-01-2013
|
|
|
Powered by phpBB © 2001, 2005 phpBB Group
|