Перейти до

Roman Pogosyan

Сitizens
  • Всього повідомлень

    255
  • Приєднався

  • Останній візит

Все, що було написано Roman Pogosyan

  1. пну сам себя , при таком раскладе можно отожрать весь свой канал 1-ой закачкой на максимальной скорости а том жаловатся что пинг за 3000 заходит .. надо привинтить tc qdisc add dev eth1 parent 1:10 handle 10 sfq perturb 10 только вот никак не допру это для каждого надо делать или для 1 интерфейса целиком хватит ? до меня никак четко не дойдет принцип иерархии тц
  2. Я не использую юбиллинг, в твоем варианте скорости на интерфейсе а не на пользователях выходят
  3. Графики - красиво и клиенту показать не стыдно
  4. Кто либо пытался сделать графики загрузки по детальной статистике для пользователей ? к примеру в cacti
  5. во втором пакете от тебя должно быть 0x0030: 173c 853c 18b8 fbdc cda4 cff3 cd2a 2f49 .<.<.........*/I 0x0040: b1e4 0a91 4a0c b2dd 444a 5c1f 4358 b05c ....J...DJ.CX. 0x0050: 71e6 471a ed99 e3ab 1429 3bcb q.G......);. а у тебя 0x0030: 173c 853c 18b8 fbdc cda4 cff3 cd2a 2f49 .<.<.........*/I 0x0040: b1e4 0a91 aeb1 9f07 a8cb 1674 4358 b05c ...........tCX. 0x0050: 71e6 471a 4245 9dec 8bb0 e8b1 q.G.BE......
  6. не .. не прошел просто заголовок пакета зашифровался правильно ... а вот все остальное ....
  7. кажется кодирование сьел , теперь пакет не разобрался Incorrec 0x0040: 7420 7265 7175 6573 7420 4449 5343 4f4e t.request.DISCON 0x0050: 4e5f 5359 4e00 0000 0000 0000 0000 0000 N_SY так что почти попал пальцем в небо
  8. Забыл в теме указать (косяк) OS Linux OnConnect #! /bin/sh sleep 1 #использую accel-ppp (не accel-pptp) там маленькая задержка между авторизацией и поднятием интерфейса. в других случаях можно удалить # Login LOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 #[b]ВНИМАНИЕ!!![/b] Наименование тарифа я не использую направления трафика по этому заменил этот параметр в коде (как сделать .. есть на форуме) или просто получить название тарифа другими способами (их туча) TARIF=$5 #значение лимита скорость по умолчанию speed="20mbit" #определение скорости из названия тарифа (я просто добавил цену тарифа в название, а потом назначил ценам скорость удобнее чем перекидывать клиентов из тарифа в тариф ели скорость надо поменять) TR=$(echo $TARIF|sed s/[^0-9]//g | head -c5) if [ -z $TR ] then echo "User $LOGIN use free internet" >> /var/log/freeusers.log # (на всякий случай чтоб знать если вдруг кого то не туда прописал) else if [ "$TR" = "12000" ] then speed="4096kbit" fi if [ "$TR" = "5000" ] then speed="2097152bit" fi if [ "$TR" = "8000" ] then speed="3145728bit" fi fi TC=/sbin/tc DNLD=$speed # скорость загрузки для клиента UPLD=$speed #скорость передачи для клиента (отдельно на случай если решу сделать асинхронные каналы) mark=$ID mark=$(($ID+800)) #маркировки фильтров для того чтоб потом их можно было удалять USERFACE="eth1" # интерфейс по умолчанию MUSER_IFACE=`cat /var/stargazer/$IP` # в /etc/ppp/ip-up отдельным скриптом вписываем интерфейс для адреса (в случае ппп соединения) IFACETYPE=`echo $MUSER_IFACE | sed s/[^a-z]//g` if [ "$IFACETYPE" = "ppp" ] #проверяем тип интерфейса then USERFACE=`cat /var/stargazer/$IP` U32="$TC filter add dev $USERFACE protocol ip parent 1:0 prio 1 u32" U32I="$TC filter add dev ifb0 protocol ip parent 1:0 prio 1 handle 800::$mark u32" #добавляем на интерфейс шейпер для лимита загрузки клиента $TC qdisc add dev $USERFACE root handle 1: htb default 30 r2q 25 #добавляем класс скорости для загрузки пользователя $TC class add dev $USERFACE parent 1: classid 1:1 htb rate $DNLD #заворачивает трафик от клиента на специально выделенный для этих целей интерфейс $TC qdisc add dev $USERFACE ingress handle ffff: $TC filter add dev $USERFACE parent ffff: protocol ip prio 10 u32 match u32 0 0 flowid 1:1 action mirred egress redirect dev ifb0 #добавляем класс скорости для передачи пользователя $TC class add dev ifb0 parent 1:1 classid 1:1$ID htb rate $UPLD #добавляем фильтры айпи пользователя $U32 match ip dst $IP/32 flowid 1:1 $U32I match ip src $IP/32 flowid 1:1$ID else #если клиент не ППП в принципе делаем то же самое только нет части с инициализацией архитектуры для eth1 и заворота приходящего на него трафика на ifb0 это делается при старте системы так как оно общее для всех клинтов $TC class add dev $USERFACE parent 1: classid 1:1$ID htb rate $DNLD U32E="$TC filter add dev $USERFACE protocol ip parent 1:0 prio 1 handle 800::$mark u32" U32I="$TC filter add dev ifb0 protocol ip parent 1:0 prio 1 handle 800::$mark u32" $TC class add dev ifb0 parent 1:1 classid 1:1$ID htb rate $UPLD $U32E match ip dst $IP/32 flowid 1:1$ID $U32I match ip src $IP/32 flowid 1:1$ID fi #добавляем пользователя в сет для файрвола ipset -A NatUsers $IP OnDisconnect в приципе тут все на много легче (ломать не сторить) #! /bin/sh # Login LOGIN=$1 #user IP IP=$2 #cash CASH=$3 #user ID ID=$4 #[b]ВНИМАНИЕ!!![/b] Наименование тарифа я не использую направления трафика по этому заменил этот параметр в коде (как сделать .. есть на форуме) или просто получить название тарифа другими способами (их туча) TARIF=$5 mark=$ID mark=$(($ID+800)) #удаляем фильтры за ним классы.[b] ВАЖНО [/b]handle очень важен для удления фильров , если его не указывать, будут удалятся все фильтры для данного интерфейса (чтоб после дисконекта одного у всех лимиты не полетели) tc filter del dev eth1 parent 1:0 protocol ip prio 1 handle 800::$mark u32 tc class del dev eth1 parent 1: classid 1:1$ID tc filter del dev ifb0 parent 1:0 protocol ip prio 1 handle 800::$mark u32 tc class del dev ifb0 parent 1:1 classid 1:1$ID ipset -D NatUsers $IP rm -f /var/stargazer/$IP ну и соответственно скрипты для создания ifb0 и файвола при пуске системы tc qdisc del dev ifb0 root 2>/dev/null >/dev/null tc qdisc del dev ifb0 ingress 2>/dev/null >/dev/null tc qdisc del dev eth1 root 2>/dev/null >/dev/null tc qdisc del dev eth1 ingress 2>/dev/null >/dev/null ip link set ifb0 up tc qdisc add dev ifb0 root handle 1: htb r2q 25 tc class add dev ifb0 parent 1: classid 1:1 htb rate 70Mbit cburst 3000 tc qdisc add dev eth1 root handle 1: htb r2q 25 tc class add dev eth1 parent 1: classid 1:1 htb rate 70Mbit cburst 3000 tc qdisc add dev eth1 ingress handle ffff: tc filter add dev eth1 parent ffff: protocol ip prio 10 u32 match u32 0 0 flowid 1:1 action mirred egress redirect dev ifb0 ipset -N NatUsers iphash iptables-restore </etc/iptables.up.rules iptables.up.rules # Generated by iptables-save v1.4.10 on Fri Jan 13 17:44:49 2012 *mangle :PREROUTING ACCEPT [11010:6433764] :INPUT ACCEPT [1182:107634] :FORWARD ACCEPT [8662:6229748] :OUTPUT ACCEPT [796:223489] :POSTROUTING ACCEPT [8382:6328335] COMMIT # Completed on Fri Jan 13 17:44:49 2012 # Generated by iptables-save v1.4.10 on Fri Jan 13 17:44:49 2012 *nat :PREROUTING ACCEPT [1904:146512] :INPUT ACCEPT [74:7544] :OUTPUT ACCEPT [68:4965] :POSTROUTING ACCEPT [68:4965] -A POSTROUTING -m set --match-set NatUsers src -j SNAT --to-source Мой_реальный_айпи COMMIT # Completed on Fri Jan 13 17:44:49 2012 # Generated by iptables-save v1.4.10 on Fri Jan 13 17:44:49 2012 *filter :INPUT ACCEPT [860:81155] #по умолчанию не транзитить трафик :FORWARD DROP [593:100111] :OUTPUT ACCEPT [563:187485] #по правим MSS для ппп -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu #Разрешаем трафик только тем кто в таблице -A FORWARD -m set --match-set NatUsers src -j ACCEPT -A FORWARD -m set --match-set NatUsers dst -j ACCEPT COMMIT # Completed on Fri Jan 13 17:44:49 2012 [code] зы (можете пинать)
  9. Roman Pogosyan

    purestg2

    да .. трафик уходит в небытие (на зависть сотовым операторам) можно этот каунтер убрать и персадить учет трафика на netflow
  10. Roman Pogosyan

    purestg2

    Уже обсуждалось для "Всегда онлайн" с данным функционалом не возможно так как выставление флага онлайн идет к связки логин<->айпи надо переписать весь класс юзера и авторизатор за одно
  11. Roman Pogosyan

    purestg2

    через радиус возможно .. там был упущен он return
  12. мож я не правильно перевернул ... я на C# там по другому
  13. stglibscrypto.libblowfish.cpp uint32_t bytes2block(const char * c) { uint32_t t = static_cast<unsigned char>(*c++); t += static_cast<unsigned char>(*c++) << 8; t += static_cast<unsigned char>(*c++) << 16; t += static_cast<unsigned char>(*c) << 24; return t; } //----------------------------------------------------------------------------- // Note: swap bytes order for compatibility with OpenSSL void block2bytes(uint32_t t, char * c) { *c++ = t & 0x000000FF; *c++ = t >> 8 & 0x000000FF; *c++ = t >> 16 & 0x000000FF; *c = t >> 24 & 0x000000FF; } попробовать заменить на uint32_t bytes2block(const char * c) { uint32_t t = static_cast<unsigned char>(*c++)<< 24; t += static_cast<unsigned char>(*c++) << 16; t += static_cast<unsigned char>(*c++) << 8; t += static_cast<unsigned char>(*c) ; return t; } //----------------------------------------------------------------------------- // Note: swap bytes order for compatibility with OpenSSL void block2bytes(uint32_t t, char * c) { *c++ = t>> 24 & 0x000000FF; *c++ = t >> 16 & 0x000000FF; *c++ = t >> 8 & 0x000000FF; *c = t & 0x000000FF; } кажется так
  14. меняются местами при кодировании только в blowfish.cpp думаю попробывать стоит хотя бы на ноуте .. чтоб сравнить ошибки
  15. If you still want to use these functions, you should be aware that they take each 32-bit chunk in host-byte order, which is little-endian on little-endian platforms and big-endian on big-endian ones.
  16. Roman Pogosyan

    stg-2.408-rc2

    на досуке покопаюсь найду .. сейчас просто подтачиваю плагин радиуса 407 для нормальной работы со * вместо IP (точнее только что доточил)
  17. в патчах не мастак .. но если мне не изменяет память .. тебе копать надо в blowfish.cpp там endian воздействует на блоки кодирования в функциях block2bytes и byte2block там их тупо можно перевернуть.. думаю поможет
  18. 100% из за разницы в edian отсылается иначе зашифрованный пакет соединения , после расшифровки сервер не получает правильной инфы о заголовке и у нехо выходит не та версия протокола или вообще неизвестный протокол там при инициализации матрицы шифрования это играет большую роль
  19. Roman Pogosyan

    stg-2.408-rc2

    думаю дело за функцией Authorize там ты кажется убрал проверки некоторые (не копался)
  20. Roman Pogosyan

    stg-2.408-rc2

    Авторизатор вылетает . лог показать не могу .. снес надо на сервер срочно в продакшен выводить .. поставил 407 .. там с авторизацией от разных плугинов все типтоп
  21. Roman Pogosyan

    purestg2

    тот IP который автоматом выдаст VPN/pppoe сервер
  22. Roman Pogosyan

    purestg2

    очень хотелось бы иметь авторизацию юзара со * вместо IP
  23. Roman Pogosyan

    purestg2

    Сори за каламбур ... не учел пару моментов 1) IP клиенту должно быть указано 2) нельзя подключится одним юзером 2 раза но из гита точно не собирается
  24. Roman Pogosyan

    purestg2

    зызы из гита вообще для 407 не собралось purestg2.cpp: In member function ‘int AUTH_PURESTG2::hupClientConnection(int)’: purestg2.cpp:565: error: ‘class USERS’ has no member named ‘Unauthorize’ purestg2.cpp: In member function ‘int AUTH_PURESTG2::handleClientConnection(int)’: purestg2.cpp:642: error: ‘class USERS’ has no member named ‘Unauthorize’ purestg2.cpp:657: error: ‘class USERS’ has no member named ‘Authorize’ purestg2.cpp:701: error: ‘class USERS’ has no member named ‘Unauthorize’ purestg2.cpp: In member function ‘int AUTH_PURESTG2::clientDisconnectByStg(USER*)’: purestg2.cpp:920: error: ‘class USERS’ has no member named ‘Unauthorize’ purestg2.cpp: In member function ‘int AUTH_PURESTG2::checkUserTimeouts()’: purestg2.cpp:951: error: ‘class USERS’ has no member named ‘Unauthorize’ make[2]: *** [purestg2.lo] Error 1
  25. Roman Pogosyan

    stg-2.408-rc2

    во . терь на русском, через радиус могу авторизироватся в не зависимости от того "онлайн" логин или нет, если он был в онлайне , к примеру законектился сперва по авторизатору , то с впн -а его пускает а потом состояние "онлайн" залипает , в версии 407 в таком случае авторизатор начинал ругатся что логин уже занят , в этой версии молчит в трубу и вылетает
×
×
  • Створити нове...