Ghost_1987 0 Опубликовано: 2012-11-04 17:25:12 Share Опубликовано: 2012-11-04 17:25:12 Установка свежего Ubilling на FreeBSD 8.3 в кофигурации СУБД (MySQL), Stargazer, Ubilling, NAS на одном физическом сервере. Все настраивалось по вики и в ручном режиме из автоматичекого инсталятора. Сам биллинг работает, stg тоже. DHCP присваевает адреса на локальном интерфейсе и при условии что абонент зарегистрирован и активен, есть доступ к биллингу и личному кабинету. Но в интернет не пускает! Я так понимаю что не работает NAT, т.к. эти комманды не выводят результат: ipfw nat 1 show ipfw nat show config uname -a FreeBSD gateway.isp 8.3-RELEASE-p4 FreeBSD 8.3-RELEASE-p4 #1: Fri Nov 2 17:00:04 EET 2012 admin@gateway.isp:/usr/src/sys/i386/compile/UBNAS i386 Ядро собрано с (за основу взято GENERIC): options IPFIREWALL options IPFIREWALL_DEFAULT_TO_ACCEPT options IPFIREWALL_FORWARD options IPFIREWALL_VERBOSE options IPFIREWALL_VERBOSE_LIMIT=50 options IPFIREWALL_NAT options LIBALIAS options ROUTETABLES=2 options DUMMYNET options HZ="1000" cat /etc/rc.conf keymap="us.iso" hostname="gateway.isp" ifconfig_re0="DHCP" ifconfig_re1="DHCP" ifconfig_re2="inet 192.168.128.1 netmask 0xffff8000" gateway_enable="YES" sshd_enable="YES" sshd_flags="-p 2222" syslogd_flags="-s " mysql_enable="YES" apache22_enable="YES" apache22_http_accept_enable="YES" dhcpd_enable="YES" dhcpd_flags="-q" dhcpd_conf="/usr/local/etc/multinet/dhcpd.conf" dhcpd_ifaces="re2" firewall_enable="YES" firewall_nat_enable="YES" dummynet_enable="YES" firewall_script="/etc/firewall.conf" cat /etc/firewall.conf #!/bin/sh # firewall command FwCMD="/sbin/ipfw -q" ${FwCMD} -f flush # Networks define ${FwCMD} table 2 add 192.168.128.0/17 ${FwCMD} table 9 add 192.168.1.70 #NAT ${FwCMD} nat 1 config log if re1 reset same_ports ${FwCMD} add 6000 nat 1 ip from table\(2\) to not table\(9\) via re1 ${FwCMD} add 6001 nat 1 ip from any to 192.168.1.70 via re1 # default block policy #${FwCMD} add 65533 deny all from table\(2\) to any via re2 #${FwCMD} add 65534 deny all from any to table\(2\) via re2 #${FwCMD} add 65535 allow all from any to any ifconfig -a (re1 - мир; re2 - локаль) re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC> ether f4:6d:04:50:77:21 media: Ethernet autoselect (none) status: no carrier re1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC> ether fc:75:16:56:d1:07 inet 192.168.1.70 netmask 0xffffff00 broadcast 192.168.1.255 media: Ethernet autoselect (100baseTX <full-duplex>) status: active re2: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC> ether 84:c9:b2:46:f9:39 inet 192.168.128.1 netmask 0xffff8000 broadcast 192.168.255.255 media: Ethernet autoselect (100baseTX <full-duplex>) status: active ipfw show 06000 0 0 nat 1 ip from table(2) to not table(9) via re1 06001 0 0 nat 1 ip from any to 192.168.1.70 via re1 10002 1236 94581 pipe 101 ip from 192.168.128.11 to any via re2 in 10003 1621 239349 pipe 4101 ip from any to 192.168.128.11 via re2 out 10004 0 0 allow ip from 192.168.128.11 to any 10005 0 0 allow ip from any to 192.168.128.11 65535 2918 1572530 allow ip from any to any ipfw table 2 list 192.168.128.0/17 0 ipfw table 9 list 192.168.1.70/32 0 sockstat -4l USER COMMAND PID FD PROTO LOCAL ADDRESS FOREIGN ADDRESS www httpd 1405 4 tcp4 *:80 *:* www httpd 1403 4 tcp4 *:80 *:* www httpd 1402 4 tcp4 *:80 *:* www httpd 1401 4 tcp4 *:80 *:* www httpd 1400 4 tcp4 *:80 *:* www httpd 1398 4 tcp4 *:80 *:* root stargazer 1303 1 tcp4 *:5555 *:* root stargazer 1303 2 udp4 *:5555 *:* root stargazer 1303 4 udp4 *:42111 *:* root stargazer 1303 5 tcp4 *:42111 *:* root sendmail 1264 3 tcp4 127.0.0.1:25 *:* www httpd 1263 4 tcp4 *:80 *:* www httpd 1261 4 tcp4 *:80 *:* www httpd 1260 4 tcp4 *:80 *:* www httpd 1259 4 tcp4 *:80 *:* root sshd 1256 4 tcp4 *:2222 *:* root httpd 1247 4 tcp4 *:80 *:* mysql mysqld 1196 11 tcp4 127.0.0.1:3306 *:* dhcpd dhcpd 891 7 udp4 *:67 *:* dhcpd dhcpd 891 20 udp4 *:51469 *:* root syslogd 789 7 udp4 *:514 *:* Подскажите что делаю не правильно? Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2012-11-04 18:18:29 Share Опубліковано: 2012-11-04 18:18:29 Все настраивалось по вики и в ручном режиме из автоматичекого инсталятора. Эммм, нифига не понял Итак: ifconfig_re0="DHCP" - непонятно что и зачем (будет прое...ть шлюз по умолчанию) ifconfig_re1="DHCP" - я так понимаю линк в интернеты - 192.168.1.70, да? ifconfig_re2="inet 192.168.128.1 netmask 0xffff8000" - подозреваю, что смотрит в сторону юзеров. И искренне надеюсь, что раздаете вы юзерам 192.168.128.0/17 Дальше хорошо ${FwCMD} table 2 add 192.168.128.0/17 ${FwCMD} table 9 add 192.168.1.70 тоже нормально ${FwCMD} add 6000 nat 1 ip from table\(2\) to not table\(9\) via re1 ${FwCMD} add 6001 nat 1 ip from any to 192.168.1.70 via re1 Учитывая, что 06000 0 0 nat 1 ip from table(2) to not table(9) via re1 06001 0 0 nat 1 ip from any to 192.168.1.70 via re1 у вас ничего не попадает в вроде бы верные правила фаера, можно предположить аж два варианта развития событий: 1. Пользователям выдается шлюз не на 192.168.128.1 - можно посмотреть предварительным просмотром в модуле DHCP - и походу поправить option routers. Адекватность угадывания шлюза зависит от того как вы изначально добавили сеть. 2. У вас нету шлюза по умолчанию проходящего через re1 - забейте пока на re0, нарисуйте руками настройки для re1 и пропишите руками адекватный дефолтраут. По п.1. Если абонентам выдается шлюз отличный от 192.168.128.1, либо левая маска, можете изобразить какой-то вот такой "персональный шаблон DHCP": subnet 192.168.128.0 netmask 255.255.128.0 { default-lease-time 3600; option domain-name "isp"; option subnet-mask 255.255.128.0; option routers 192.168.128.1; include "/usr/local/etc/multinet/{HOSTS}"; } В общем надеюсь мысль понятна. Ссылка на сообщение Поделиться на других сайтах
Ghost_1987 0 Опубліковано: 2012-11-04 19:41:05 Автор Share Опубліковано: 2012-11-04 19:41:05 (відредаговано) Все настраивалось по вики и в ручном режиме из автоматичекого инсталятора. Эммм, нифига не понял На Freebsd 8.3 онлайн инсталятор отваливается, т.к. названия пакетов в портах изменилось. Там еще местами с кавычками косяк. Ставил пошагово через удаленный терминал. А в новой версии stg еще ко всему прочему не меняется стандартный пароль через консольный sgconf_xml. Делал через вин конфигуратор. За основу установки брался инсталятор + статьи из вики ))) По ходу устоновки правил скрипт установщика: http://diffchecker.com/1GB85Alc Особенно смущает: echo "#!/bin/sh" >> /etc/rc.d/billing Нужно так: echo '#!/bin/sh' >> /etc/rc.d/billing Без make cleandepend скрипт переодически вываливается так и не скомпилировав ядро. Відредаговано 2012-11-04 20:24:10 Ghost_1987 Ссылка на сообщение Поделиться на других сайтах
Ghost_1987 0 Опубліковано: 2012-11-04 19:54:09 Автор Share Опубліковано: 2012-11-04 19:54:09 (відредаговано) ifconfig_re0="DHCP" - встроенная сетевуха, оставил так на всяк пожарный вдруг нужно будет залезть на сервак локально если будет какая нибуть трабла. ifconfig_re1="DHCP" - присваевает 192.168.1.70 с рутера смотрящего в инет, на рутере прописано статикой, не хотелось морочить голову с маршрутами. ifconfig_re2="inet 192.168.128.1 netmask 0xffff8000" - локаль на которой DHCP, смотрит в сторону юзеров, так точно 192.168.128.0/17 раздает. cat /usr/local/www/apache22/data/billing/multinet/dhcpd.conf option domain-name "ourisp"; option domain-name-servers 8.8.8.8; default-lease-time 3600; max-lease-time 43200; authoritative; ddns-update-style none; log-facility local7; one-lease-per-client true; deny duplicates; shared-network ourisp { subnet 192.168.128.0 netmask 255.255.128.0 { default-lease-time 3600; option domain-name "ourisp"; option subnet-mask 255.255.128.0; option routers 192.168.128.11; include "/usr/local/etc/multinet/ethernet.conf"; } } cat cat /usr/local/www/apache22/data/billing/multinet/ethernet.conf host m192x168x128x11 { hardware ethernet 00:e0:4c:09:70:41; fixed-address 192.168.128.11; } Я так понимаю что проблемма в option routers 192.168.128.11; должно быть? option routers 192.168.128.1; Но блин я же его уже 3 раза до этого правил, возможно ли что веб интерфейс затирает значение? Ахаха и охохо БЛИН! Шаблоны DHCP subnets.template Поддерживаются макро: {ROUERS} - шлюз, по умолчанию - это начальная IP+1 У мну начальная IP = 192.168.128.10 - думал, ай да зарезервирую себе в начале немного адресов Теперь все начинает проясняться Завтра вечером попробую изменить и отпишусь. И вже же чистно из интереса почему ipfw nat 1 show и ipfw nat show config нечего не показывают? Відредаговано 2012-11-04 20:16:11 Ghost_1987 Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2012-11-04 20:18:44 Share Опубліковано: 2012-11-04 20:18:44 . А в новой версии stg еще ко всему прочему не меняется стандартный пароль через консольный sgconf_xml. Делал через вин конфигуратор. Он меняется, просто после этого слетают права администратора Баг уже зарепорчен madf-у. Экхмммм option routers 192.168.128.11; Абзац host m192x168x128x11 { hardware ethernet 00:e0:4c:09:70:41; fixed-address 192.168.128.11; } Должно как-бы намекать что ваши пользователи будут пытаться ходить в интернет кудой угодно, только не вашим NAS-ом. Но блин я же его уже 3 раза до этого правил, возможно ли что веб интерфейс затирает значение? Да, естественно - это его работа При изменениях на тему айпишек/маков, а также при заходе в "модуль сети" (недокументированная фишка) - регенерируються все нужные конфиги и isc-dhcpd перезапускается уже со свежаком. В вашем случае вариантов есть несколько: 1. прописать сеть в следующем виде: Начальная ІР - 192.168.128.0 Последняя ІР - 192.168.255.255 Сеть - 192.168.128.0/17 Тип сети - dhcpstatic Тогда получите в результате генерацию примерно вот такого конфига subnet 192.168.128.0 netmask 255.255.128.0 { default-lease-time 3600; option domain-name "ourisp"; option subnet-mask 255.255.128.0; option routers 192.168.128.1; include "/usr/local/etc/multinet/testing.conf"; } Шлюз считается по мудацки тупо - начальная IP+1. Пользователям выдаются потом любые свободные айпишки в диапазоне "от-до", пропуская при этом .0 и .255 (понятно почему) и .1 (резервируются по умолчанию под NAS-ы). Если же вы хотите для чего-то зарезервировать начальных 10 айпишек (насколько понимаю у вас сеть начинается с .10) то можете в модуле "DHCP" для своей подсети нарисовать следующий "Персональный шаблон подсети DHCP ": subnet {NETWORK} netmask {MASK} { default-lease-time 3600; option domain-name "ourisp"; option subnet-mask {MASK}; option routers 192.168.128.1}; include "/usr/local/etc/multinet/{HOSTS}"; } Собственно это может оказаться наиболее логичным выходом из ситуации, так как "персональные шаблоны" будут храниться в базе в отличии от умолчальных subnets.template который вы можете потерять при обновлениях либо переустановках. Подробнее о шаблонизации можно почитать здеся. И вже же чистно из интереса почему ipfw nat 1 show и ipfw nat show config нечего не показывают? Потому, что на самом деле у вас ничего туда не попадает, и у ipfw nat очень скудная статистика. Это бяка, да. Возможно есть смысл еще зырнуть на netstat -rn на тему дефолтгейтвея нужным интерфейсом. UPD только заметил Сообщение отредактировал Ghost_1987: Сегодня, 22:16 UPD2 надо раз 50 повторить для себя "я всегда буду обновлять тему перед постингом" Ссылка на сообщение Поделиться на других сайтах
Ghost_1987 0 Опубліковано: 2012-11-04 20:34:38 Автор Share Опубліковано: 2012-11-04 20:34:38 . А в новой версии stg еще ко всему прочему не меняется стандартный пароль через консольный sgconf_xml. Делал через вин конфигуратор. Он меняется, просто после этого слетают права администратора Баг уже зарепорчен madf-у. Ветку на форуме видел, но у мну вот эта комманда вываливала - не найден идентификатор , ХЗ вообщем. Благо есть виндовый конфигуратор. sgconf_xml -s localhost -p 5555 -a admin -w 123456 -r "<ChgAdmin Login=\"admin\" Password=\"${STG_PASS}\"/>" Пропишу наверно 192.168.128.0 - 192.168.199.255, не принципиально где IP резервировать, а вот не хочется делать лишних телодвижений с шаблонами. Пусть все будет по дефолту как задумано . Спасибо за помощь кстати . Я там выше отписался по поводу инсталятора, если интересно загляните в пост №3 . Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2012-11-04 20:43:17 Share Опубліковано: 2012-11-04 20:43:17 За основу установки брался инсталятор + статьи из вики ))) Это очень хороший подход если честно - заодно развили понимание взаимосвязей во всей этой нестройной конструкции костылей и подпорок. скрипт переодически вываливается так и не скомпилировав ядро. Хм, возможно в 8.3 что-то изменилось на эту тему. Надо будет почитать на досуге. Ветку на форуме видел, но у мну вот эта комманда вываливала - не найден идентификатор , ХЗ вообщем. Благо есть виндовый конфигуратор. Это артефакт sh - оное должно пускаться из под bash. Засим и закоментировано. Кроме того оно в 2.408 таки грохает права Пусть все будет по дефолту как задумано . Хотите травмировать себя моими упоротыми представлениями о функционировании сетей? Я там выше отписался по поводу инсталятора, если интересно загляните в пост №3 . Ага, вникаю. Так понимаю косяк с кавычками растет ногами изза использования разных шеллов - sh, tcsh или что там еще бывает изкоробки. Я ориентируюсь на до боли убогий но таки гарантированно присутствующий sh. Спасибо за помощь кстати . Незачто, обращайтесь - всегда поможем. Ссылка на сообщение Поделиться на других сайтах
Ghost_1987 0 Опубліковано: 2012-11-04 20:53:17 Автор Share Опубліковано: 2012-11-04 20:53:17 Так понимаю косяк с кавычками растет ногами изза использования разных шеллов - sh, tcsh или что там еще бывает изкоробки. Я ориентируюсь на до боли убогий но таки гарантированно присутствующий sh. На sh и вылетело кстати на zsh тоже косяк, проверял на домашнем Arch . Хм, возможно в 8.3 что-то изменилось на эту тему. Надо будет почитать на досуге. Там прям пишет в консоль не дай боже юзерь не забудь Don't forget to do `` make cleandepend & & make depend'' Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2012-11-04 20:57:02 Share Опубліковано: 2012-11-04 20:57:02 На sh и вылетело кстати Насколько помню под видом sh в линуксах идет dash который более Almquist shell либо симлинк на bash. На BSD это таки Bourne shell. Там прям пишет в консоль не дай боже юзерь не забудь Вот же ж ленивые гады Ссылка на сообщение Поделиться на других сайтах
Ghost_1987 0 Опубліковано: 2012-11-04 21:04:19 Автор Share Опубліковано: 2012-11-04 21:04:19 На sh и вылетело кстати Насколько помню под видом sh в линуксах идет dash который более Almquist shell либо симлинк на bash. На BSD это таки Bourne shell. На линухе так и есть в арче так точно это сим линк на bash. Но в первый раз словил ошибку на фре и потом попробовал на линухе, затем погуглил http://www.linuxquestions.org/questions/programming-9/bash-echo-bin-bash-event-not-found-trying-to-generate-profiles-automatically-441233/ Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2012-11-04 21:08:25 Share Опубліковано: 2012-11-04 21:08:25 [nightfly@jesus ~]$ sh -c 'echo "#!/bin/sh" >> testme.txt' [nightfly@jesus ~]$ cat testme.txt #!/bin/sh [nightfly@jesus ~]$ В любом случае затестю чего там с кавычками и сборкой ядры, да и наверное таки изобразю отдельный причессанный онлайновый инсталлер под 8.3. Как минимум заготовочный конфиг ядра и версии пакетов надо бы обновить. Перебирать все бинарные пакеты для домохозяек - здоровья сейчас никакого нет. Ссылка на сообщение Поделиться на других сайтах
Ghost_1987 0 Опубліковано: 2012-11-04 21:10:00 Автор Share Опубліковано: 2012-11-04 21:10:00 Ветку на форуме видел, но у мну вот эта комманда вываливала - не найден идентификатор , ХЗ вообщем. Благо есть виндовый конфигуратор. Это артефакт sh - оное должно пускаться из под bash. Засим и закоментировано. Кроме того оно в 2.408 таки грохает права Может стоит сразу патчить сорцы perl'ом прям из скрипта перед компиляцией чтобы избежать костылей с bash и sgconf_xml ? Ссылка на сообщение Поделиться на других сайтах
Ghost_1987 0 Опубліковано: 2012-11-04 21:14:04 Автор Share Опубліковано: 2012-11-04 21:14:04 (відредаговано) В любом случае затестю чего там с кавычками и сборкой ядры, да и наверное таки изобразю отдельный причессанный онлайновый инсталлер под 8.3. Перебирать все бинарные пакеты для домохозяек - здоровья сейчас никакого нет. Хде вы были раньше . Оффлайн инсталятор. А оно вообще нужно? Имеет смысл только при одновременной инсталяции биллинга на 100500+ машин. А так и дистрибутив меньше и проще скрипт поддерживать для текущей стабильной ветки фряхи. Конфиг ядра если что http://diffchecker.com/Sl0q00Ov Відредаговано 2012-11-04 21:17:24 Ghost_1987 Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2012-11-04 21:17:08 Share Опубліковано: 2012-11-04 21:17:08 Может стоит сразу патчить сорцы perl'ом прям из скрипта перед компиляцией чтобы избежать костылей с bash и sgconf_xml ? Есть еще хитрый план, нагло пихать пароль в базу на завершающей стаддии. Нужно просто разобраться как старгейзер криптует пароли и наваять небольшую криптовалку для приведения последних в удобный для него вид. Благо на финальном этапе похапе уже установлен. Но меня не покидает надежда на выход 2.409 в обозримом будущем. Хде вы были раньше . Как всегда - был всецело занят собственной ленью Оффлайн инсталятор. А оно вообще нужно? Ну может кому-то хочется уложиться с установкой самого биллинга минут в 10 особо не заморачиваясь что и как там внутри работает. Сам коммерческим клиентам ставлю по ситуации либо онлайновым либо полностью ручками в случае каких-то специфических заморочек. Начиная с 0.3.3 который надеюсь добить на следующей недельке - в комплекте еще будет поставляться отдельная конфигурировалка NAS-ов под rscriptd, как водиться тоже только онлайновая. А так и дистрибутив меньше и проще скрипт поддерживать для текущей стабильной ветки фряхи. Факт. Ссылка на сообщение Поделиться на других сайтах
Ghost_1987 0 Опубліковано: 2012-11-04 21:22:01 Автор Share Опубліковано: 2012-11-04 21:22:01 (відредаговано) Может стоит сразу патчить сорцы perl'ом прям из скрипта перед компиляцией чтобы избежать костылей с bash и sgconf_xml ? Есть еще хитрый план, нагло пихать пароль в базу на завершающей стаддии. Нужно просто разобраться как старгейзер криптует пароли и наваять небольшую криптовалку для приведения последних в удобный для него вид. Благо на финальном этапе похапе уже установлен. Но меня не покидает надежда на выход 2.409 в обозримом будущем. Не ищем легких путей Кстати немного смущает сетевая черезмерно активность старгейзера. Если в фаерволе сделать так для каждой сетевухи: ${FwCMD} add 1 deny all from any to any dst-port 5555 via re0 ${FwCMD} add 1 deny all from any to any dst-port 42111 via re0 Нечего не упадет? Відредаговано 2012-11-04 21:22:50 Ghost_1987 Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2012-11-04 21:26:29 Share Опубліковано: 2012-11-04 21:26:29 Если в фаерволе сделать так для каждой сетевухи: С точки зрения секурности - это хорошее решение. По умолчанию этого не сделано поскольку нету гарантии, что сам ubilling и такие штуки как userstats, uhw и чего там еще есть будут находиться на одном хосте со старгейзером. Нечего не упадет? Не должно просто так. По умолчанию вебморда пытается соединяться с хостом указанным в опции STG_HOST конфига billing.ini которая бай дефолт смотрит на localhost, тобишь lo0. Ссылка на сообщение Поделиться на других сайтах
Ghost_1987 0 Опубліковано: 2012-11-04 21:34:05 Автор Share Опубліковано: 2012-11-04 21:34:05 (відредаговано) Если в фаерволе сделать так для каждой сетевухи: С точки зрения секурности - это хорошее решение. По умолчанию этого не сделано поскольку нету гарантии, что сам ubilling и такие штуки как userstats, uhw и чего там еще есть будут находиться на одном хосте со старгейзером. Аж прям навивает отдельный онлайн инсталятор для малоимущих провайдеров а-ля все в одном на одном кампе . Для всех других случаев проще наверно статью в вики написать, а то ХЗ сколько вариантов существуют, а кому нужно масштабирование на много машин думаю сможет сам справится с ручной установкой по вики. Я вон к Апачу nginx прикручивал чтобы проксировал вся через SSL, не дай бог такую ересь в установщик запихнуть. Уж лучше сразу с nginx + php-fpm. Вот бы кто протестировал это связку. На апач больно и тошно смотреть. Конфиг nginx если кому интересно: user www www; worker_processes 2; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 1024; use kqueue; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log /var/log/nginx/access.log main; server_tokens off; sendfile on; tcp_nopush on; tcp_nodelay on; client_max_body_size 10m; client_body_buffer_size 128k; client_header_timeout 3m; client_body_timeout 3m; send_timeout 3m; keepalive_timeout 2m; server { listen 80; server_name _; rewrite ^ https://$host$request_uri? permanent; } server { listen 443; server_name localhost; server_name_in_redirect off; ssl on; ssl_certificate ssl/cert.pem; ssl_certificate_key ssl/cert.key; ssl_session_timeout 5m; ssl_protocols SSLv3 TLSv1; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; #access_log /var/log/nginx/host.access.log main; location / { proxy_pass http://127.0.0.1:8080/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 10m; location /billing/phpsysinfo/ { proxy_pass http://127.0.0.1:8080/billing/phpsysinfo/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 10m; auth_basic "[#_#]"; auth_basic_user_file htpasswd; } location /band/ { proxy_pass http://127.0.0.1:8080/band/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 10m; auth_basic "[#_#]"; auth_basic_user_file htpasswd; } } } } В httpd.conf от апача поправить: Listen 127.0.0.1:8080 Сразу напрашивается вопрос а нафига location /band/ и location /billing/phpsysinfo/ с авторизацией по htpasswd, а потому что они доступны по прямым ссылкам без необходимости авторизации в биллинге . Відредаговано 2012-11-04 21:45:24 Ghost_1987 Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2012-11-04 21:50:41 Share Опубліковано: 2012-11-04 21:50:41 Аж прям навивает отдельный онлайн инсталятор для малоимущих провайдеров а-ля все в одном на одном кампе ага, КС туда еще и l2j в догоночку а кому нужно масштабирование на много машин думаю сможет сам справится с ручной установкой по вики. Ой не скажите, не скажите - можете бегло просмотреть соседние топики и прикинуть основной контингент. На апач больно и тошно смотреть. Как application server в роли бекенда он вполне себе ничего так справляется. Не гигабитами же от него требуется отдавать контент на таких задачах. Много статики тоже нету, чтобы сильно заморачиваться с нгинксом на бекенде. Уж лучше сразу с nginx + php-fm. Вот бы кто протестировал это связку Увы. Могу гарантировать, что если и взлетит то очень фигово и ненадолго. Как минимум, вся та пародия на секурность которая сейчас присутствует - держиться на mod_rewrite. Можно конечно переписать вагонище рулесов для нгинкса но остануться другие концептуальные проблемы. Типа надежды та но что что-то куда-то будет постоянно форкаться и таким образом паралелиться. Также с самим фреймворком возникали в древние времена определенные проблемы с fastcgi, подозреваю что fpm очень недалеко. Сразу напрашивается вопрос а нафига location /band/ и location /billing/phpsysinfo/ с авторизацией по htpasswd, а потому что они доступны по прямым ссылкам без необходимости авторизации в биллинге . Ну типа да, надежда либо на адекватный .htaccess либо на зарубывание по deny from me src-port 80 - как всегда упрощения для массовости. Ссылка на сообщение Поделиться на других сайтах
Ghost_1987 0 Опубліковано: 2012-11-05 21:50:45 Автор Share Опубліковано: 2012-11-05 21:50:45 (відредаговано) Решил проблему хирургическим удалением лишних сетевух и немножко магии cat /etc/firewall.conf #!/bin/sh # firewall command FwCMD="/sbin/ipfw -q" ${FwCMD} -f flush # Stargazer ${FwCMD} add 1 deny all from any to any dst-port 5555 via re0 ${FwCMD} add 1 deny all from any to any dst-port 5555 via re1 ${FwCMD} add 1 deny all from any to any dst-port 42111 via re0 ${FwCMD} add 1 deny all from any to any dst-port 42111 via re1 # Networks define ${FwCMD} table 2 add 10.10.0.0/20 ${FwCMD} table 9 add 192.168.1.100 #NAT ${FwCMD} nat 1 config log if re0 reset same_ports ${FwCMD} add 6000 nat 1 ip from table\(2\) to not table\(9\) via re0 ${FwCMD} add 6001 nat 1 ip from any to 192.168.1.100 via re0 # default block policy ${FwCMD} add 65533 deny all from table\(2\) to any via re1 ${FwCMD} add 65534 deny all from any to table\(2\) via re1 ${FwCMD} add 65535 allow all from any to any cat /etc/rc.conf keymap="us.iso" hostname="gateway.isp" ifconfig_re0="inet 192.168.1.100 netmask 0xffffff00" ifconfig_re1="inet 10.10.0.1 netmask 0xfffff000" defaultrouter="192.168.1.1" static_routes="wan" route_wan="-net 192.168.1.0/24 192.168.1.1" gateway_enable="YES" sshd_enable="YES" sshd_flags="-p 2222" syslogd_flags="-s -b 127.0.0.1" #ntpdate_hosts="0.ua.pool.ntp.org" #ntpdate_enable="YES" mysql_enable="YES" apache22_enable="YES" apache22_http_accept_enable="YES" #nginx_enable="YES" dhcpd_enable="YES" dhcpd_flags="-q" dhcpd_conf="/usr/local/etc/multinet/dhcpd.conf" dhcpd_ifaces="re1" #access/shape/nat firewall_enable="YES" firewall_nat_enable="YES" dummynet_enable="YES" firewall_script="/etc/firewall.conf" ipfw show 00001 6 264 deny ip from any to any dst-port 5555 via re0 00001 25 1566 deny ip from any to any dst-port 5555 via re1 00001 0 0 deny ip from any to any dst-port 42111 via re0 00001 0 0 deny ip from any to any dst-port 42111 via re1 06000 255 20033 nat 1 ip from table(2) to not table(9) via re0 06001 953195 50400173 nat 1 ip from any to 192.168.1.100 via re0 10002 4421 260350 pipe 101 ip from 10.10.0.2 to any via re1 in 10003 3390 1664025 pipe 4101 ip from any to 10.10.0.2 via re1 out 10004 0 0 allow ip from 10.10.0.2 to any 10005 0 0 allow ip from any to 10.10.0.2 65533 0 0 deny ip from table(2) to any via re1 65534 0 0 deny ip from any to table(2) via re1 65535 1918261 1692094867 allow ip from any to any ifconfig re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC> ether f4:6d:04:50:77:21 inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255 media: Ethernet autoselect (100baseTX <full-duplex>) status: active re1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC> ether 84:c9:b2:46:f9:39 inet 10.10.0.1 netmask 0xfffff000 broadcast 10.10.15.255 media: Ethernet autoselect (none) status: no carrier ipfw0: flags=8801<UP,SIMPLEX,MULTICAST> metric 0 mtu 65536 lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384 options=3<RXCSUM,TXCSUM> inet6 fe80::1%lo0 prefixlen 64 scopeid 0x6 inet6 ::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000 nd6 options=3<PERFORMNUD,ACCEPT_RTADV> cat /usr/local/www/apache22/data/billing/multinet/dhcpd.conf option domain-name "ourisp"; option domain-name-servers 8.8.8.8, 8.8.4.4; default-lease-time 3600; max-lease-time 43200; authoritative; ddns-update-style none; log-facility local7; one-lease-per-client true; deny duplicates; shared-network ourisp { subnet 10.10.0.0 netmask 255.255.240.0 { default-lease-time 3600; option domain-name "ourisp"; option subnet-mask 255.255.240.0; option routers 10.10.0.1; include "/usr/local/etc/multinet/ethernet.conf"; } } Причем самое интересное наблюдалось когда ручками прописал все стандартные маршруты и адреса сетевых карт, внезапно заработал NAT так как нужно. Вывод не делать вот так: ifconfig_re0="DHCP" Или использовать такие сети 192.168.128.0/17 , что поразительна стоило только поменять класс сети как сразу все заработало. Пробовал изменить адрес маршрутизатора в предыдущих конфигах, но даже после этого NAT не хотел взлетать. Наверно на будущее нужно в вики пометить так не делать . И тему переименовать как не нужно настраивать DHCP для локали . Еще раз большое спасибо nightfly, за очень толковые подсказки . P.S. Очень помогло это http://jodies.de/ipcalc и это http://www.pawprint.net/designresources/netmask-converter.php Відредаговано 2012-11-05 22:00:17 Ghost_1987 Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2012-11-05 22:27:38 Share Опубліковано: 2012-11-05 22:27:38 add 1 deny all from any to any dst-port 42111 via re0 А как вы будете получать netflow с удаленных NAS? Вобще хорошим practice в таких случаях считается оставлять в начале хоть немого зазора, для описания исключений. Вам же не жалко номеров правил? Причем самое интересное наблюдалось когда ручками прописал все стандартные маршруты и адреса сетевых карт, внезапно заработал NAT так как нужно. Статика и предсказуемость - наше все Пробовал изменить адрес маршрутизатора в предыдущих конфигах, но даже после этого NAT не хотел взлетать. В принципе работает, но в таких случаях думаю логичнее рисовать NAT по интерфейсу и исходя из to me а не статической айпишки. Еще раз большое спасибо nightfly, за очень толковые подсказки . Незачто, обращайтесь. P.S. Очень помогло это http://jodies.de/ipcalc https://aur.archlinux.org/packages.php?ID=22384 Ссылка на сообщение Поделиться на других сайтах
Ghost_1987 0 Опубліковано: 2012-11-06 04:34:42 Автор Share Опубліковано: 2012-11-06 04:34:42 (відредаговано) add 1 deny all from any to any dst-port 42111 via re0 А как вы будете получать netflow с удаленных NAS? У мну не планируется удаленных NAS, все на одной машине, посему рублю порты фаером. Вобще хорошим practice в таких случаях считается оставлять в начале хоть немого зазора, для описания исключений. Вам же не жалко номеров правил? Как то так? # Stargazer ${FwCMD} add 1000 deny all from any to any dst-port 5555 via re0 ${FwCMD} add 1000 deny all from any to any dst-port 5555 via re1 ${FwCMD} add 1000 deny all from any to any dst-port 42111 via re0 ${FwCMD} add 1000 deny all from any to any dst-port 42111 via re1 Пробовал изменить адрес маршрутизатора в предыдущих конфигах, но даже после этого NAT не хотел взлетать. В принципе работает, но в таких случаях думаю логичнее рисовать NAT по интерфейсу и исходя из to me а не статической айпишки. Я так понимаю как то так? # Networks define ${FwCMD} table 2 add 10.10.0.0/20 ${FwCMD} table 9 add 192.168.1.100 # тут тоже to me можно? #NAT ${FwCMD} nat 1 config log if re0 reset same_ports ${FwCMD} add 6000 nat 1 ip from table\(2\) to not table\(9\) via re0 ${FwCMD} add 6001 nat 1 ip from any to me via re0 P.S. Очень помогло это http://jodies.de/ipcalc https://aur.archlinu...es.php?ID=22384 Ух ты, спасибо, приятнейший такой морда Відредаговано 2012-11-06 04:40:17 Ghost_1987 Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2012-11-06 10:13:49 Share Опубліковано: 2012-11-06 10:13:49 У мну не планируется удаленных NAS, все на одной машине, посему рублю порты фаером. Пусть так, а вдруг какую-то циску на агрегацию поставите, либо микротичину и захотите снимать нетфлоу с нее? Как то так? Типа того. Завтра допустим вам срочно захочется (ну может послезавтра) добавить какое-то исключение либо что-то экстренно зафильтровать, а там "ы"? В такой ситуации жертвовать логичностью и предсказуемостью one.pass и рассматривать нетривиальные схемы прохождения фаера без него - не комильфо. Я так понимаю как то так? Да, должно работать. Но если по DHCP на внешний интерфейс, вы получаете один и тот же 192.168.1.70 на который надеялись в ранних постах, то какой смысл? Кстати да, с двумя интерфейсами на которых запущен dhclient у меня постоянно возникали какие-то странные проблемы, оттуда и склонность использовать только статику. Ух ты, спасибо, приятнейший такой морда Просто я до 10-ти считаю на пальцах, дальше - "ку". Так что gip в объязательном порядке на хоткее висит Ссылка на сообщение Поделиться на других сайтах
Ghost_1987 0 Опубліковано: 2012-11-06 10:29:42 Автор Share Опубліковано: 2012-11-06 10:29:42 (відредаговано) У мну не планируется удаленных NAS, все на одной машине, посему рублю порты фаером. Пусть так, а вдруг какую-то циску на агрегацию поставите, либо микротичину и захотите снимать нетфлоу с нее? Поправим фаер . Кстати да, с двумя интерфейсами на которых запущен dhclient у меня постоянно возникали какие-то странные проблемы, оттуда и склонность использовать только статику. Вот и мои мысли тоже, поэтому прописал все статикой и нафиг dhclient. Кстати по вашему совету все же решился и отключил nginx как фронтэнд. Настроил Apache + mod_sll + openssl. Пришлось из портов ставить openssl и пересобирать Apache. В дефолтном виде без обновления openssl, nikto страшно матюкался на устаревшие либы. Возможно ли в новой версии онлайн установщика включить по дефолту установку openssl перед Apache? Ну и возможно сразу оптом phpmyadmin и portupgrade. P.S. Если есть интерес простыня-конфиг Apache: http://pastebin.com/tSJjNZQm Відредаговано 2012-11-06 12:00:16 Ghost_1987 Ссылка на сообщение Поделиться на других сайтах
nightfly 1 239 Опубліковано: 2012-11-06 18:40:50 Share Опубліковано: 2012-11-06 18:40:50 Кстати по вашему совету все же решился и отключил nginx как фронтэнд. Ну я против него в роли фронтэнда не имею ничего против, если скажем нужно отдавать здоровую статику типа киношек гигабитами Возможно ли в новой версии онлайн установщика включить по дефолту установку openssl перед Apache? Осмотритесь вокруг, тут люди спрашивают "как посмотреть что написано в конфиге?" и "срочно стать проф. линух админом за 2 дня - бабок 30 баксов" а вы пытаетесь еще культуру типа SSL прививать Вы знаете зачем оно вам нужно - вот и осилили самостоятельно. Хорошо. Кстати лично особо по этому поводу не заморачиваюсь - у нас "все девочки на кассах" и "мальчики суппорты" находяться в отдельной анально огороженной сети которую и снифить то некому + рядышком allow to me dst-port 80 + .htaccess с allow менеджмент сети. Заморачиваться с самоподписанными сертификатами, черт его знает какой смысл. Простота - залог здоровья Ну и возможно сразу оптом phpmyadmin и portupgrade. ну тогда уж заодно и net-snmp, cacti, monit и chef - как минимальнейший набор, для управления биллинговым сервером P.S. Если есть интерес простыня-конфиг Apache: http://pastebin.com/tSJjNZQm Посмотрел. А почему всюду где нужно и не нужно AllowOverride None? Возможно есть смысл только для cgi-bin? В таком расскладе у вас не должны работать все штатные замашки растущие ногами из mod_rewrite. Тоесть ваш вагон Allow from 127.0.0.1, localhost можно свободно заменить тем же .htaccess в корневой директории морды вида скажем deny from all allow from откуда вам там нужно В штатном скрипте обновления предусмотрено прятанье его при апдейтах. Ссылка на сообщение Поделиться на других сайтах
Ghost_1987 0 Опубліковано: 2012-11-06 20:15:49 Автор Share Опубліковано: 2012-11-06 20:15:49 (відредаговано) Кстати по вашему совету все же решился и отключил nginx как фронтэнд. Ну я против него в роли фронтэнда не имею ничего против, если скажем нужно отдавать здоровую статику типа киношек гигабитами Ну наверно субъективно мое мнение но nginx фронтэндом с ssl было настроить проще чем Apache + mod_ssl находяться в отдельной анально огороженной сети БУГАГА !!! тогда конечно нет смысла. ну тогда уж заодно и net-snmp, cacti, monit и chef - как минимальнейший набор, для управления биллинговым сервером Интересно какую нужно будет машину если все это на нее поставить + NAT и дофига пользователей. Какойнить гуголь клауд арендовать. Посмотрел. А почему всюду где нужно и не нужно AllowOverride None? Возможно есть смысл только для cgi-bin? В таком расскладе у вас не должны работать все штатные замашки растущие ногами из mod_rewrite. Тоесть ваш вагон Allow from 127.0.0.1, localhost можно свободно заменить тем же .htaccess в корневой директории морды вида скажем deny from all allow from откуда вам там нужно Перепроверил и AllowOverride None стоит для /, /usr/local/www/apache22/cgi-bin, /usr/local/www/phpMyAdmin, /usr/local/www/apache22/data/phpMyAdmin, /usr/local/www/apache22/data/billing/phpsysinfo/, /usr/local/www/apache22/data/band/ А для /usr/local/www/apache22/data стоит AllowOverride All На самом деле просто копировал с шаблона с AllowOverride None и поменял только для корневой папки биллинга на AllowOverride All. Не фанат конечно с .htaccess возится по древу папочек вебки, вот и захотелось все в кучу в один конфиг. Но впринципе да можно просто нафиг их убрать от туда. Відредаговано 2012-11-06 20:16:36 Ghost_1987 Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВхід
Уже зарегистрированы? Войдите здесь.
Войти сейчас