Jump to content

PPP Profile Scripts


DuMbh3aD

Recommended Posts

Здравейте,

Новак съм в писането на скриптове и някой неща не ги разбирам.

Опитвам се да си направя скрипт с който да следя продължителността на VPN конекциите.

На пръв поглед изглежда елементарно, но когато го сложа в "On Down" секцията не работи.

:log info ($user . " disconnect from " . $"caller-id" . ". Uptime connection - " . [/interface sstp-server get $interface uptime])

Предполагам не работи, защото при "On Down" интерфейса вече не съществува. Може би трябва при "On Up" да се стартира system script с някакъв таймер и при "On Down" да го спира?

Адрес на коментара
Сподели в други сайтове

След няколко часа успях да сътворя следното:

On Up:

:local UserDomainName ($user . ".domain.name");
/ip dns static add address=$"remote-address" name=$UserDomainName;
:log info ($user . " connect with private IP address " . $"remote-address" . " from " . $"caller-id");

On Down

:local UserUpTime [/interface sstp-server get $interface uptime];
:local UserDomainName ($user . ".domain.name");
/ip dns static remove [find name=$UserDomainName];
:log info ($user . " disconnect. Uptime connection - " . $UserUpTime);

Новото което ме мъчи сега е как да запиша тези логове във файл? Пробвах с /file set SSTP-log.txt contents=($user . " disconnect. Uptime connection - " . $UserUpTime). Записва се само последното събитие и няма дата и час.

Адрес на коментара
Сподели в други сайтове

  • Администратор
/system/logging/action add disk-file-count=10 disk-file-name=flash/pppstats disk-lines-per-file=2000 name=pppstat target=disk
/system/logging/set topics=info action=pppstat

Може да си промените параметрите на файла и броят им!

Редактирано от JohnTRIVOLTA
Адрес на коментара
Сподели в други сайтове

По този начин всичко с topic info се записва във файла включително и dhcp, info; system, info; script, info ... Ако направя "/system logging add action=PPPStats topics=info, sstp" във файла не се записват логовете, които ми трябват, ако направя "/system logging add action=PPPStats topics=info, script" се записват и логове от други скриптове.

може ли да се направи нещо като това:

:log sstpstats ($user . " disconnect. Uptime connection - " . $UserUpTime);

/system logging add action=PPPStats topics=sstpstats

 

Адрес на коментара
Сподели в други сайтове

  • Администратор
Преди 1 час, DuMbh3aD написа:

По този начин всичко с topic info се записва във файла включително и dhcp, info; system, info; script, info ... Ако направя "/system logging add action=PPPStats topics=info, sstp" във файла не се записват логовете, които ми трябват, ако направя "/system logging add action=PPPStats topics=info, script" се записват и логове от други скриптове.

може ли да се направи нещо като това:

:log sstpstats ($user . " disconnect. Uptime connection - " . $UserUpTime);

/system logging add action=PPPStats topics=sstpstats

 

Има опция за изключване на всички ненужни неща от лога
 

/system logging
add topics=ipsec,debug,sstp,!dhcp,!interface

в примера интерфейсите и dhcp не се отразяват в лога

 

Харесай поста ^^^
acer.gif htc.gifsigpic4024_2.gif

Форумът е за взаимопомощ а не за свършване на чужда работа


ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ

Адрес на коментара
Сподели в други сайтове

Ще си задам въпроса по друг начин.

/ppp profile
add change-tcp-mss=yes dns-server=10.0.0.1 local-address=10.0.0.1 name=SSTP_Profile on-down=":local UserUpTime [/interface sstp-server get \$interface uptime];\r\
    \n:local UserDomainName (\$user . \".domain.name\");\r\
    \n/ip dns static remove [find name=\$UserDomainName];\r\
    \n:log info (\$user . \" disconnect. Uptime connection - \" . \$UserUpTime);" on-up=\
    ":local UserDomainName (\$user . \".domain.name\");\r\
    \n/ip dns static add address=\$\"remote-address\" name=\$UserDomainName;\r\
    \n:log info (\$user . \" connect with private IP address \" . \$\"remote-address\" . \" from \" . \$\"caller-id\");" use-encryption=yes

/ip dhcp-server
add address-pool=pool1 disabled=no interface=bridge1 lease-script=":local IPofLease \$leaseActIP;\r\
    \n:if (\$leaseBound = 1) do={ \r\
    \n:log info (\$leaseServerName . \" assigned \" . \$leaseActIP . \" to \" . \$leaseActMAC . \" - \" . ([/ip dhcp-server lease get [find active-address=\$leaseActIP] host-name]));\r\
    \n/queue simple add name=\$IPofLease target=\$leaseActIP limit-at=10M/10M max-limit=10M/10M comment=(\$leaseActIP . \" - \" . \$leaseActMAC . \" - \" . ([/ip dhcp-server lease get [find active-address=\$leaseActIP] host-name]));\r\
    \n} else={\r\
    \n/queue simple remove [find name=\$IPofLease];\r\
    \n:log info (\$leaseServerName . \" deassigned \" . \$leaseActIP . \" from \" . \$leaseActMAC);\r\
    \n}" name=server1

Логовете и от PPP Profile и от DHSP Serve за записват с един и същ топик - script, info. Как да ги разделя да се записват в различни файлове, като в PPPProfile.txt да се записват само логовете от профила, а в dhcpserver.txt да се записват логовете само от сървъра?

13:05:20 dhcp,info server1 deassigned 192.168.88.51 from AA:AA:AA:AA:AA:AA 
13:05:20 script,info server1 deassigned 192.168.88.51 from AA:AA:AA:AA:AA:AA - HUAWEI_Mate_20_Pro
13:05:20 system,info simple queue removed 
13:20:12 sstp,ppp,info <sstp-USER1>: terminating... 
13:20:12 sstp,ppp,info,account USER1 logged out from YY.YY.YY.YY 
13:20:12 sstp,ppp,info <sstp-USER1>: disconnected 
13:20:12 system,info static dns entry removed 
13:20:12 script,info USER1 disconnect. Uptime connection - 00:26:59 

 

Редактирано от DuMbh3aD
Адрес на коментара
Сподели в други сайтове

  • Администратор

Явно не се усещаш че ти пишем за различно нещо.
Ползвай лога на системата не на сървисите.

Харесай поста ^^^
acer.gif htc.gifsigpic4024_2.gif

Форумът е за взаимопомощ а не за свършване на чужда работа


ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ

Адрес на коментара
Сподели в други сайтове

6 hours ago, 111111 said:

Явно не се усещаш че ти пишем за различно нещо.

Най-вероятно сте прав.

6 hours ago, 111111 said:

Ползвай лога на системата не на сървисите.

Можи ли малко по-подробно да опишете как да се случи това?

/system logging export
# feb/03/2022 14:20:59 by RouterOS 6.49.2
# software id = CWFJ-R1SN
# model = RB4011iGS+5HacQ2HnD
/system logging action
add disk-file-count=5 disk-file-name=PPPProfile disk-lines-per-file=2000 name=PPPProfile target=disk
/system logging
add action=PPPProfile topics=sstp,!packet,!debug

Така не се записва информацията, която ми трябва.

PPPProfile.0.txt

Адрес на коментара
Сподели в други сайтове

  • Администратор

Най-елементарно е да си направиш един лог в паметта, да му сложиш един префикс и да си ръчкаш наживо.
Така тези с префикса ще си ги различаваш, така ще нацелиш нужното и когато си готов си го прехвърли в текстов лог който да се пише на някоя флашка.
 

Харесай поста ^^^
acer.gif htc.gifsigpic4024_2.gif

Форумът е за взаимопомощ а не за свършване на чужда работа


ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ

Адрес на коментара
Сподели в други сайтове

Благодара за помощта.

Добавих следните редове в On Up  и On Down и нещата се получиха

:local DateTime ([/system clock get date] . " - " . [/system clock get time] . "   ");
:local PPPProfileFile [/file get flash/PPPProfile.txt contents];
:local PPPProfileLog ($DateTime . $user . " disconnect. Uptime connection - " . $UserUpTime);
/file set flash/PPPProfile.txt contents="$PPPProfileFile \n $PPPProfileLog";

 

Адрес на коментара
Сподели в други сайтове

Създайте нов акаунт или се впишете, за да коментирате

За да коментирате, трябва да имате регистрация

Създайте акаунт

Присъединете се към нашата общност. Регистрацията става бързо!

Регистрация на нов акаунт

Вход

Имате акаунт? Впишете се оттук.

Вписване
  • Потребители разглеждащи страницата   0 потребители

    • No registered users viewing this page.
×
×
  • Създай нов...

Important Information

By using this site, you agree to our Terms of Use.