
makar
26.12.2017
07:04:21

Vitaliy
26.12.2017
07:04:38
ошибаетесь. на то они и глобальные чтобы обращаться из других скриптов

B
26.12.2017
07:04:46
0 A S 0.0.0.0/0 195.218.185.1 1
1 ADC 10.0.0.0/24 10.0.0.1 LAN 0
2 ADC 10.0.2.0/23 10.0.2.1 vlan100-Comp 0
3 ADb 10.0.6.0/24 10.0.6.1 20
4 ADC 10.0.6.1/32 10.0.6.4 B 0
5 ADo 10.0.8.0/24 172.16.30.1 110
6 ADo 10.0.9.0/24 172.16.30.1 110
7 ADo 10.0.10.0/24 172.16.30.1 110
8 ADo 10.0.11.0/24 172.16.30.1 110
9 ADo 10.0.12.0/24 172.16.30.1 110
10 ADb 10.10.10.1/32 10.0.6.1 20
11 ADo 10.100.100.3/32 172.16.30.1 110
12 ADo 10.100.100.4/32 172.16.30.1 110
13 ADo 10.100.100.5/32 172.16.30.1 110
14 ADo 10.100.100.6/32 172.16.30.1 110
15 ADo 10.100.100.7/32 172.16.30.1 110
16 ADC 10.100.100.20/32 10.100.100.20 lo 0
17 ADC 172.16.30.1/32 172.16.30.9 3DATA 0
18 ADo 172.16.30.3/32 172.16.30.1 110

Юрий
26.12.2017
07:04:59

Google

makar
26.12.2017
07:05:47

Feldsher
26.12.2017
07:06:08

Юрий
26.12.2017
07:07:23
global status "OK. All fine!"
/sys scr add name=test source="global status;:put \$status"
/sys scr run test


B
26.12.2017
07:08:17
фаер такой
/ip firewall filter
add action=add-src-to-address-list address-list=BLOCK address-list-timeout=1d \
chain=input comment=HoneyPot connection-state=new dst-address=\
195.218.185.13 dst-port=22,25,21,110,3389 in-interface=INTERNET protocol=\
tcp
add action=add-src-to-address-list address-list=SCANNER address-list-timeout=\
1d chain=input comment=PSD dst-address=195.218.185.13 in-interface=\
INTERNET protocol=tcp psd=21,3s,3,1
add action=drop chain=input comment=BOGONS connection-state=new in-interface=\
INTERNET src-address-list=BOGONS
add action=drop chain=forward comment=BOGONS connection-state=new \
in-interface=INTERNET src-address-list=BOGONS
add action=drop chain=forward comment=BOGONS connection-state=new \
dst-address-list=BOGONS out-interface=INTERNET
add action=accept chain=input dst-port=8291 protocol=tcp
add action=jump chain=input comment=ICMP connection-state=new jump-target=\
icmp protocol=icmp
add action=accept chain=input connection-state=established,related
add action=accept chain=input dst-port=500,4500 in-interface=INTERNET \
protocol=udp
add action=accept chain=input in-interface=INTERNET protocol=ipsec-esp
add action=drop chain=input comment=INVALID connection-state=invalid
add action=accept chain=input comment=LDP connection-state=new dst-port=646 \
protocol=tcp
add action=accept chain=input comment=BFD connection-state=new dst-port=\
3784,3785 in-interface=all-ppp protocol=tcp
add action=accept chain=input comment=BFD connection-state=new dst-port=\
3784,3785 in-interface=all-ppp protocol=udp
add action=accept chain=input comment=LDP connection-state=new dst-port=646 \
protocol=udp
add action=accept chain=input connection-state=new in-interface=all-ppp
add action=accept chain=input comment="Allow DNS from all vlans" \
connection-state=new dst-port=53 in-interface=all-vlan protocol=udp
add action=accept chain=input comment="Allow DNS from all vlans" \
connection-state=new dst-port=53 in-interface=all-vlan protocol=tcp
add action=accept chain=input connection-state=new dst-port=179 in-interface=\
all-ppp protocol=tcp
add action=accept chain=input connection-state=new dst-port=53 in-interface=\
LAN protocol=udp
add action=accept chain=input connection-state=new dst-port=53 in-interface=\
LAN protocol=tcp
add action=accept chain=input connection-state=new in-interface=all-ppp \
protocol=ospf
add action=accept chain=input comment=NTP connection-state=new dst-port=123 \
in-interface-list=MKAVLANS protocol=udp
add action=drop chain=input
add action=jump chain=forward comment=ICMP connection-state=new jump-target=\
icmp protocol=icmp
add action=accept chain=forward connection-state=established,related
add action=drop chain=forward connection-state=invalid
add action=accept chain=forward connection-state=new in-interface=all-ppp \
out-interface=all-vlan
add action=accept chain=forward connection-state=new in-interface=all-vlan \
out-interface=INTERNET
add action=accept chain=forward connection-state=new in-interface=LAN \
out-interface=INTERNET
add action=accept chain=forward comment="ADMINs allow all" connection-state=\
new src-address-list=ADMIN
add action=accept chain=forward comment="DST NAT" connection-nat-state=dstnat \
connection-state=new
add action=drop chain=forward comment="BLOCK ALL FORWARD"
add action=accept chain=icmp comment="echo reply" icmp-options=0:0 protocol=\
icmp
add action=accept chain=icmp comment="net unreachable" icmp-options=3:0 \
protocol=icmp
add action=accept chain=icmp comment="host unreachable" icmp-options=3:1 \
protocol=icmp
add action=accept chain=icmp comment=\
"host unreachable fragmentation required" icmp-options=3:4 protocol=icmp
add action=accept chain=icmp comment="allow source quench" icmp-options=4:0 \
protocol=icmp
add action=accept chain=icmp comment="allow echo request" icmp-options=8:0 \
protocol=icmp
add action=accept chain=icmp comment="allow time exceed" icmp-options=11:0 \
protocol=icmp
add action=accept chain=icmp icmp-options=12:0 protocol=icmp
add action=drop chain=icmp comment="deny all other types"
add action=drop chain=output connection-state=new dst-address-list=BOGONS \
out-interface=INTERNET


Feldsher
26.12.2017
07:08:29

Юрий
26.12.2017
07:08:32
микротик скрипт это не LUA. луа маленький и красивый
а тут костыль на костыле

Feldsher
26.12.2017
07:08:40
что в логах?

B
26.12.2017
07:08:47
это шлюз билайна

Feldsher
26.12.2017
07:09:06
а по какому вы хотите зайти?

makar
26.12.2017
07:09:16

B
26.12.2017
07:09:28
195.218.185.2

Google

Aleksandr
26.12.2017
07:10:38
Так интерфейс INTERNET или ppp?

Vitaliy
26.12.2017
07:11:42
не очень удобно в телеге читать
сделайте для удобства вот такой вывод ip firewall filter print where chain=input


Alexey
26.12.2017
07:12:06
/ip firewall filter
add action=add-src-to-address-list address-list=BLOCK address-list-timeout=1d \
chain=input comment=HoneyPot connection-state=new dst-address=\
195.218.185.13 dst-port=22,25,21,110,3389 in-interface=INTERNET protocol=\
tcp
add action=add-src-to-address-list address-list=SCANNER address-list-timeout=\
1d chain=input comment=PSD dst-address=195.218.185.13 in-interface=\
INTERNET protocol=tcp psd=21,3s,3,1
add action=drop chain=input comment=BOGONS connection-state=new in-interface=\
INTERNET src-address-list=BOGONS
add action=drop chain=forward comment=BOGONS connection-state=new \
in-interface=INTERNET src-address-list=BOGONS
add action=drop chain=forward comment=BOGONS connection-state=new \
dst-address-list=BOGONS out-interface=INTERNET
add action=accept chain=input dst-port=8291 protocol=tcp
add action=jump chain=input comment=ICMP connection-state=new jump-target=\
icmp protocol=icmp
add action=accept chain=input connection-state=established,related
add action=accept chain=input dst-port=500,4500 in-interface=INTERNET \
protocol=udp
add action=accept chain=input in-interface=INTERNET protocol=ipsec-esp
add action=drop chain=input comment=INVALID connection-state=invalid
add action=accept chain=input comment=LDP connection-state=new dst-port=646 \
protocol=tcp
add action=accept chain=input comment=BFD connection-state=new dst-port=\
3784,3785 in-interface=all-ppp protocol=tcp
add action=accept chain=input comment=BFD connection-state=new dst-port=\
3784,3785 in-interface=all-ppp protocol=udp
add action=accept chain=input comment=LDP connection-state=new dst-port=646 \
protocol=udp
add action=accept chain=input connection-state=new in-interface=all-ppp
add action=accept chain=input comment="Allow DNS from all vlans" \
connection-state=new dst-port=53 in-interface=all-vlan protocol=udp
add action=accept chain=input comment="Allow DNS from all vlans" \
connection-state=new dst-port=53 in-interface=all-vlan protocol=tcp
add action=accept chain=input connection-state=new dst-port=179 in-interface=\
all-ppp protocol=tcp
add action=accept chain=input connection-state=new dst-port=53 in-interface=\
LAN protocol=udp
add action=accept chain=input connection-state=new dst-port=53 in-interface=\
LAN protocol=tcp
add action=accept chain=input connection-state=new in-interface=all-ppp \
protocol=ospf
add action=accept chain=input comment=NTP connection-state=new dst-port=123 \
in-interface-list=MKAVLANS protocol=udp
add action=drop chain=input
add action=jump chain=forward comment=ICMP connection-state=new jump-target=\
icmp protocol=icmp
add action=accept chain=forward connection-state=established,related
add action=drop chain=forward connection-state=invalid
add action=accept chain=forward connection-state=new in-interface=all-ppp \
out-interface=all-vlan
add action=accept chain=forward connection-state=new in-interface=all-vlan \
out-interface=INTERNET
add action=accept chain=forward connection-state=new in-interface=LAN \
out-interface=INTERNET
add action=accept chain=forward comment="ADMINs allow all" connection-state=\
new src-address-list=ADMIN
add action=accept chain=forward comment="DST NAT" connection-nat-state=dstnat \
connection-state=new
add action=drop chain=forward comment="BLOCK ALL FORWARD"
add action=accept chain=icmp comment="echo reply" icmp-options=0:0 protocol=\
icmp
add action=accept chain=icmp comment="net unreachable" icmp-options=3:0 \
protocol=icmp
add action=accept chain=icmp comment="host unreachable" icmp-options=3:1 \
protocol=icmp
add action=accept chain=icmp comment=\
"host unreachable fragmentation required" icmp-options=3:4 protocol=icmp
add action=accept chain=icmp comment="allow source quench" icmp-options=4:0 \
protocol=icmp
add action=accept chain=icmp comment="allow echo request" icmp-options=8:0 \
protocol=icmp
add action=accept chain=icmp comment="allow time exceed" icmp-options=11:0 \
protocol=icmp
порт самый вверх подними


Антон
26.12.2017
07:14:21
Что там за свистопяска в конце с icmp?

B
26.12.2017
07:14:46
это норма

Антон
26.12.2017
07:15:02
Для чего?

B
26.12.2017
07:15:07
потом расскажу что там ... сейчас давайте посмотрим что за с winbox

Антон
26.12.2017
07:15:23
Ну поднимай правило вверх

B
26.12.2017
07:15:28
поднял

Vitaliy
26.12.2017
07:15:32

B
26.12.2017
07:16:40
поднял правило вверх )

Aleksej
26.12.2017
07:18:32

B
26.12.2017
07:18:54

Alexey
26.12.2017
07:19:51
посмотри ip/service не выключен он

Vitaliy
26.12.2017
07:20:14
как он может быть выключен? человек же из локальной сети заходит
в файрволле счетчики считаются

B
26.12.2017
07:20:28
все включено

Юрий
26.12.2017
07:20:48

Google

B
26.12.2017
07:21:00
из внешки не работает ... при этом работает dst -nat и фаер
маршрут обратный есть
все должно работать, а не работает

makar
26.12.2017
07:22:28
это первый
/log warning "script set global start"
#задержка после запуска
#:delay 5;
#имя тестирующего устройства
:global routername [/system identity get name];
#id бота, от чьего имени будет писаться
:global idsender1 "botXXXXXXXXXX:YYYYYYYYYY";
#id чата
:global idchatnv "-ZZZZZZZZZZZ";
#id
:global idreciever1 "CCCCCCCCCCC";
#начало строки адреса в телеграм
:global sendtotelemakar "https://api.telegram.org/botXXXXXXXXXXXXXX:YYYYYYYYYYYYYYYYY/sendMessage\?chat_id'DDDDDDDDDDtext="
/log warning "script set global done"
это второй
/log warning "script tester start"
/tool fetch url="$sendtotelemakar hello " keep-result=no
/log warning "script tester send good"
/log warning "script tester done"

Vitaliy
26.12.2017
07:22:58
ip firewall filter add chain=input action=passthrough dst-port=8291 protocol=tcp in-interface=Интернет
поместите в самый верх цепочки инпут
пытайтесь подключиться
посмотрите на счетчики, увеличиваются ли они
если нет, проблема на стороне оператора

Vitaliy
26.12.2017
07:23:58
если да, копайте дальше
если только уверены что dst nat никакой не отрабатывает изначально

B
26.12.2017
07:25:38
все нашли
покал в свою же ловушку
правы были выше !

makar
26.12.2017
07:26:34

Юрий
26.12.2017
07:27:19

makar
26.12.2017
07:28:00

Google

Юрий
26.12.2017
07:28:37
сейчас напишу и все поймешь
это "особенность" скрипта микротика.
попробовал все переменные переделать на varXXX. аналогично. Записываются, но не изымаются в работу
/system script add name=CheckHost source={
:global localIP 192.168.0.10
if ([ping $localIP count=3] = 0) do={
:global router [/system identity get name]
:global text "Message from $router: Host $localIP is DOWN"
/system script run tgSend
}
}
/system script add name=tgSend source={
:global text
:global BotId "botXXXXXXXXXX:YYYYYYYYYY"
:global ChatId "-ZZZZZZZZZZZ"
:global tgAPI "https://api.telegram.org"
/tool fetch url="$tgAPI/$BotId/sendMessage\?chat_id=$ChatId&text=$text" keep-result=no
}
не проверял :) писал по памяти
экранирование вопроса забыл "\?"
поправил еще раз, теперь работает :)

Admin
ERROR: S client not available

Юрий
26.12.2017
07:43:31
общий совет долгосрочные переменные храните в скрипте, в enviroment нужно хранить только оперативные, т.е. которые можно вычислить снова.
Это обусловлено тем, что после перезагрузки все переменные из раздела /system/script/enviroment пропадут

АК
26.12.2017
07:47:08
/report

Vitaliy
26.12.2017
07:55:14
/report

Plague Fox
26.12.2017
07:55:46
/roll

Andrew
26.12.2017
07:57:13
/thread

Юрий
26.12.2017
08:09:46
попробовал все переменные переделать на varXXX. аналогично. Записываются, но не изымаются в работу
Теперь проверил, работает :)
global localIP 192.168.88.12
/system script run CheckHost
/system script add name=CheckHost source={
:global localIP
if ([ping $localIP count=3] = 0) do={
:global router [/system identity get name]
:global text "Message%20from%20$router:%20Host%20$localIP%20is%20DOWN"
/system script run tgSend
}
}
/system script add name=tgSend source={
:global text
:global BotId "botNNNNNNN:BBBBBBBBBBBBBBBBBBBB"
:global ChatId "-XXXXXXXX"
:global tgAPI "https://api.telegram.org"
/tool fetch url="$tgAPI/$BotId/sendMessage\?chat_id=$ChatId&text=$text" keep-result=no
}
первый скрипт проверяет примитивно доступность хоста который берется из глобальной переменной localIP
в случае недоступности шлет сообщение в канал телеграмму

makar
26.12.2017
08:11:15
короч. работает, если как ты написал. Но я хочу избавиться от глобальных переменных во вспомогательных скриптах

Юрий
26.12.2017
08:11:23
используя второй скрипт

makar
26.12.2017
08:12:00
в идеале во втором скрипте всего одна строчка должна быть:
/tool fetch url="$sendtotelemakar=$text" keep-result=no

Юрий
26.12.2017
08:12:28
в чем идея ?

makar
26.12.2017
08:13:36
в чем идея ?
чтоб при смене имени МТ - не переписывать каждый скрипт, чтоб при смене получателя - не переписывать так же. пусть все хранится в Envi

Google

Юрий
26.12.2017
08:13:47
логично было бы сделать так
:global text
:local BotId "botNNNNNNN:BBBBBBBBBBBBBBBBBBBB"
:local ChatId "-XXXXXXXX"
:local tgAPI "https://api.telegram.org"
/tool fetch url="$tgAPI/$BotId/sendMessage\?chat_id=$ChatId&text=$text" keep-result=no
т.е. номера каналов ближе к fetch

makar
26.12.2017
08:15:12
дык не хочу в каждом скрипте писать локальные переменные бот,чат айди и тгапи
пусть они живут в глобальных
и после ребута обновляет их один скрипт, в котором изначально продуманы глобальные переменные

Юрий
26.12.2017
08:16:03
граблей не оберешься
botid скорее всего один
разные только каналы

makar
26.12.2017
08:18:02
вот придется например сменить ботid
и потом придется все скрипты перелопачивать. и с каждым получателем сверяться получил ли он мессагу
а так сразу сменил в первом скрипте и везде автоматом подхватилось в нижестоящих скриптах

Юрий
26.12.2017
08:22:10
ну тогда сделай так

makar
26.12.2017
08:23:45
короче. я распиздяй

Юрий
26.12.2017
08:24:05
global localIP 192.168.88.12
/system script run CheckHost
/system script add name=CheckHost source={
:global localIP
if ([ping $localIP count=3] = 0) do={
:global router [/system identity get name]
:global text "Message%20from%20$router:%20Host%20$localIP%20is%20DOWN"
/system script run tgSend
}
}
/system script add name=InitTg source={
:global BotId "botNNNNNNN:BBBBBBBBBBBBBBBBBBBB"
:global ChatId "-XXXXXXXX"
:global tgAPI "https://api.telegram.org"
}
/system script add name=tgSend source={
:global text
:global BotId
:global ChatId
:global tgAPI
/tool fetch url="$tgAPI/$BotId/sendMessage\?chat_id=$ChatId&text=$text" keep-result=no
}


makar
26.12.2017
08:24:26
я не обратил внимание на нюанс, в самом начале нужно указать какие переменные будут использоваться в данном подскрипте
:global sendtotelemakar;
:global reciever1name;
/tool fetch url="$sendtotelemakar hello" keep-result=no
/log error message="$reciever1name";
второй скрипт :-) в первом соответственно объявленые все необходимые переменные :-)

Юрий
26.12.2017
08:25:11
не ставь ";"