Перейти до

Freebsd 8.3 проблемы с NAT'ом


Рекомендованные сообщения

Установка свежего 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				 *:*

 

Подскажите что делаю не правильно?

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

Эммм, нифига не понял :blink:

 

 

Итак:

 

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}";
}

 

В общем надеюсь мысль понятна.

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)
Все настраивалось по вики и в ручном режиме из автоматичекого инсталятора.

Эммм, нифига не понял :blink:

На 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

скрипт переодически вываливается так и не скомпилировав ядро.

Відредаговано Ghost_1987
Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

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 - думал, ай да зарезервирую себе в начале немного адресов :facepalm:

Теперь все начинает проясняться :facepalm::D

 

Завтра вечером попробую изменить и отпишусь.

 

И вже же чистно из интереса почему ipfw nat 1 show и ipfw nat show config нечего не показывают? :unsure:

Відредаговано Ghost_1987
Ссылка на сообщение
Поделиться на других сайтах
. А в новой версии 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 повторить для себя "я всегда буду обновлять тему перед постингом" :)

Ссылка на сообщение
Поделиться на других сайтах
. А в новой версии stg еще ко всему прочему не меняется стандартный пароль через консольный sgconf_xml. Делал через вин конфигуратор.

Он меняется, просто после этого слетают права администратора :)

Баг уже зарепорчен madf-у.

Ветку на форуме видел, но у мну вот эта комманда вываливала - не найден идентификатор :blink: , ХЗ вообщем. Благо есть виндовый конфигуратор.

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 резервировать, а вот не хочется делать лишних телодвижений с шаблонами. Пусть все будет по дефолту как задумано :D .

 

Спасибо за помощь кстати :) .

 

Я там выше отписался по поводу инсталятора, если интересно загляните в пост №3 :) .

Ссылка на сообщение
Поделиться на других сайтах
За основу установки брался инсталятор + статьи из вики )))

Это очень хороший подход если честно - заодно развили понимание взаимосвязей во всей этой нестройной конструкции костылей и подпорок.

 

скрипт переодически вываливается так и не скомпилировав ядро.

Хм, возможно в 8.3 что-то изменилось на эту тему. Надо будет почитать на досуге.

 

Ветку на форуме видел, но у мну вот эта комманда вываливала - не найден идентификатор :blink: , ХЗ вообщем. Благо есть виндовый конфигуратор.

Это артефакт sh - оное должно пускаться из под bash. Засим и закоментировано. Кроме того оно в 2.408 таки грохает права :(

 

Пусть все будет по дефолту как задумано :D .

Хотите травмировать себя моими упоротыми представлениями о функционировании сетей? :lol:

 

Я там выше отписался по поводу инсталятора, если интересно загляните в пост №3 :) .

Ага, вникаю.

Так понимаю косяк с кавычками растет ногами изза использования разных шеллов - sh, tcsh или что там еще бывает изкоробки. Я ориентируюсь на до боли убогий но таки гарантированно присутствующий sh.

 

Спасибо за помощь кстати :) .

Незачто, обращайтесь - всегда поможем.

Ссылка на сообщение
Поделиться на других сайтах

 

Так понимаю косяк с кавычками растет ногами изза использования разных шеллов - sh, tcsh или что там еще бывает изкоробки. Я ориентируюсь на до боли убогий но таки гарантированно присутствующий sh.

 

 

На sh и вылетело кстати :rolleyes: на zsh тоже косяк, проверял на домашнем Arch :) .

 

Хм, возможно в 8.3 что-то изменилось на эту тему. Надо будет почитать на досуге.

 

Там прям пишет в консоль не дай боже юзерь не забудь

Don't forget to do `` make cleandepend & & make depend''

Ссылка на сообщение
Поделиться на других сайтах
На sh и вылетело кстати

Насколько помню под видом sh в линуксах идет dash который более Almquist shell либо симлинк на bash. На BSD это таки Bourne shell.

 

Там прям пишет в консоль не дай боже юзерь не забудь

Вот же ж ленивые гады :)

Ссылка на сообщение
Поделиться на других сайтах
На sh и вылетело кстати

Насколько помню под видом sh в линуксах идет dash который более Almquist shell либо симлинк на bash. На BSD это таки Bourne shell.

 

На линухе так и есть в арче так точно это сим линк на bash.

 

Но в первый раз словил ошибку на фре и потом попробовал на линухе, затем погуглил :D

http://www.linuxquestions.org/questions/programming-9/bash-echo-bin-bash-event-not-found-trying-to-generate-profiles-automatically-441233/

Ссылка на сообщение
Поделиться на других сайтах

[nightfly@jesus ~]$ sh -c 'echo "#!/bin/sh" >> testme.txt'
[nightfly@jesus ~]$ cat testme.txt
#!/bin/sh
[nightfly@jesus ~]$

 

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

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

Ссылка на сообщение
Поделиться на других сайтах
Ветку на форуме видел, но у мну вот эта комманда вываливала - не найден идентификатор :blink: , ХЗ вообщем. Благо есть виндовый конфигуратор.

Это артефакт sh - оное должно пускаться из под bash. Засим и закоментировано. Кроме того оно в 2.408 таки грохает права :(

 

Может стоит сразу патчить сорцы perl'ом прям из скрипта перед компиляцией чтобы избежать костылей с bash и sgconf_xml ?

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

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

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

 

Хде вы были раньше :P .

 

Оффлайн инсталятор. А оно вообще нужно?

 

Имеет смысл только при одновременной инсталяции биллинга на 100500+ машин. А так и дистрибутив меньше и проще скрипт поддерживать для текущей стабильной ветки фряхи.

 

Конфиг ядра если что http://diffchecker.com/Sl0q00Ov

Відредаговано Ghost_1987
Ссылка на сообщение
Поделиться на других сайтах
Может стоит сразу патчить сорцы perl'ом прям из скрипта перед компиляцией чтобы избежать костылей с bash и sgconf_xml ?

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

 

Но меня не покидает надежда на выход 2.409 в обозримом будущем.

 

Хде вы были раньше :P .

Как всегда - был всецело занят собственной ленью :lol:

 

 

Оффлайн инсталятор. А оно вообще нужно?

Ну может кому-то хочется уложиться с установкой самого биллинга минут в 10 особо не заморачиваясь что и как там внутри работает.

Сам коммерческим клиентам ставлю по ситуации либо онлайновым либо полностью ручками в случае каких-то специфических заморочек.

Начиная с 0.3.3 который надеюсь добить на следующей недельке - в комплекте еще будет поставляться отдельная конфигурировалка NAS-ов под rscriptd, как водиться тоже только онлайновая.

 

А так и дистрибутив меньше и проще скрипт поддерживать для текущей стабильной ветки фряхи.

Факт.

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)
Может стоит сразу патчить сорцы 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

 

Нечего не упадет?

Відредаговано Ghost_1987
Ссылка на сообщение
Поделиться на других сайтах
Если в фаерволе сделать так для каждой сетевухи:

С точки зрения секурности - это хорошее решение.

 

По умолчанию этого не сделано поскольку нету гарантии, что сам ubilling и такие штуки как userstats, uhw и чего там еще есть будут находиться на одном хосте со старгейзером.

 

Нечего не упадет?

Не должно просто так. По умолчанию вебморда пытается соединяться с хостом указанным в опции STG_HOST конфига billing.ini которая бай дефолт смотрит на localhost, тобишь lo0.

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)
Если в фаерволе сделать так для каждой сетевухи:

С точки зрения секурности - это хорошее решение.

По умолчанию этого не сделано поскольку нету гарантии, что сам ubilling и такие штуки как userstats, uhw и чего там еще есть будут находиться на одном хосте со старгейзером.

 

Аж прям навивает отдельный онлайн инсталятор для малоимущих провайдеров а-ля все в одном на одном кампе :D .

Для всех других случаев проще наверно статью в вики написать, а то ХЗ сколько вариантов существуют, а кому нужно масштабирование на много машин думаю сможет сам справится с ручной установкой по вики.

 

Я вон к Апачу 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, а потому что они доступны по прямым ссылкам без необходимости авторизации в биллинге :facepalm: .

Відредаговано Ghost_1987
Ссылка на сообщение
Поделиться на других сайтах
Аж прям навивает отдельный онлайн инсталятор для малоимущих провайдеров а-ля все в одном на одном кампе

ага, КС туда еще и l2j в догоночку :)

 

а кому нужно масштабирование на много машин думаю сможет сам справится с ручной установкой по вики.

Ой не скажите, не скажите - можете бегло просмотреть соседние топики и прикинуть основной контингент.

 

На апач больно и тошно смотреть.

Как application server в роли бекенда он вполне себе ничего так справляется. Не гигабитами же от него требуется отдавать контент на таких задачах. Много статики тоже нету, чтобы сильно заморачиваться с нгинксом на бекенде.

 

Уж лучше сразу с nginx + php-fm. Вот бы кто протестировал это связку

Увы.

Могу гарантировать, что если и взлетит то очень фигово и ненадолго. Как минимум, вся та пародия на секурность которая сейчас присутствует - держиться на mod_rewrite. Можно конечно переписать вагонище рулесов для нгинкса но остануться другие концептуальные проблемы. Типа надежды та но что что-то куда-то будет постоянно форкаться и таким образом паралелиться. Также с самим фреймворком возникали в древние времена определенные проблемы с fastcgi, подозреваю что fpm очень недалеко.

 

Сразу напрашивается вопрос а нафига location /band/ и location /billing/phpsysinfo/ с авторизацией по htpasswd, а потому что они доступны по прямым ссылкам без необходимости авторизации в биллинге :facepalm: .

 

Ну типа да, надежда либо на адекватный .htaccess либо на зарубывание по deny from me src-port 80 - как всегда упрощения для массовости.

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

Решил проблему хирургическим удалением лишних сетевух и немножко магии :)

 

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 не хотел взлетать.

 

Наверно на будущее нужно в вики пометить так не делать :facepalm::D .

И тему переименовать как не нужно настраивать DHCP для локали :rolleyes: .

 

Еще раз большое спасибо nightfly, за очень толковые подсказки :) .

 

P.S. Очень помогло это http://jodies.de/ipcalc и это http://www.pawprint.net/designresources/netmask-converter.php

Відредаговано Ghost_1987
Ссылка на сообщение
Поделиться на других сайтах

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

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)

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

 

Ух ты, спасибо, приятнейший такой морда :)

Відредаговано Ghost_1987
Ссылка на сообщение
Поделиться на других сайтах
У мну не планируется удаленных NAS, все на одной машине, посему рублю порты фаером.

Пусть так, а вдруг какую-то циску на агрегацию поставите, либо микротичину и захотите снимать нетфлоу с нее? :)

 

Как то так?

Типа того.

Завтра допустим вам срочно захочется (ну может послезавтра) добавить какое-то исключение либо что-то экстренно зафильтровать, а там "ы"?

В такой ситуации жертвовать логичностью и предсказуемостью one.pass и рассматривать нетривиальные схемы прохождения фаера без него - не комильфо.

 

Я так понимаю как то так?

Да, должно работать. Но если по DHCP на внешний интерфейс, вы получаете один и тот же 192.168.1.70 на который надеялись в ранних постах, то какой смысл?

Кстати да, с двумя интерфейсами на которых запущен dhclient у меня постоянно возникали какие-то странные проблемы, оттуда и склонность использовать только статику.

 

Ух ты, спасибо, приятнейший такой морда

Просто я до 10-ти считаю на пальцах, дальше - "ку". Так что gip в объязательном порядке на хоткее висит :)

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)
У мну не планируется удаленных NAS, все на одной машине, посему рублю порты фаером.

Пусть так, а вдруг какую-то циску на агрегацию поставите, либо микротичину и захотите снимать нетфлоу с нее? :)

 

Поправим фаер :) .

 

Кстати да, с двумя интерфейсами на которых запущен dhclient у меня постоянно возникали какие-то странные проблемы, оттуда и склонность использовать только статику.

 

Вот и мои мысли тоже, поэтому прописал все статикой и нафиг dhclient.

 

Кстати по вашему совету все же решился и отключил nginx как фронтэнд.

 

Настроил Apache + mod_sll + openssl.

 

Пришлось из портов ставить openssl и пересобирать Apache.

В дефолтном виде без обновления openssl, nikto страшно матюкался на устаревшие либы.

 

Возможно ли в новой версии онлайн установщика включить по дефолту установку openssl перед Apache? Ну и возможно сразу оптом phpmyadmin и portupgrade.

 

P.S. Если есть интерес простыня-конфиг Apache: http://pastebin.com/tSJjNZQm

Відредаговано Ghost_1987
Ссылка на сообщение
Поделиться на других сайтах
Кстати по вашему совету все же решился и отключил 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 откуда вам там нужно

 

В штатном скрипте обновления предусмотрено прятанье его при апдейтах.

Ссылка на сообщение
Поделиться на других сайтах
Опубліковано: (відредаговано)
Кстати по вашему совету все же решился и отключил nginx как фронтэнд.

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

Ну наверно субъективно мое мнение но nginx фронтэндом с ssl было настроить проще чем Apache + mod_ssl :facepalm::D

 

находяться в отдельной анально огороженной сети

 

:D БУГАГА !!! тогда конечно нет смысла.

 

ну тогда уж заодно и net-snmp, cacti, monit и chef - как минимальнейший набор, для управления биллинговым сервером :)

 

Интересно какую нужно будет машину если все это на нее поставить + NAT и дофига пользователей. :huh: Какойнить гуголь клауд арендовать.

 

Посмотрел. А почему всюду где нужно и не нужно 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 возится по древу папочек вебки, вот и захотелось все в кучу в один конфиг.

 

Но впринципе да можно просто нафиг их убрать от туда. :)

Відредаговано Ghost_1987
Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.

×
×
  • Створити нове...