Mikrotik

Z Net47 2.0
(Różnice między wersjami)
Skocz do: nawigacji, wyszukiwania
(W odpowiednie miejsca należy wpisać odpowiednie dane (loginy, hasła, adresy IP))
(Konfiguracja Mikrotik)
 
(Nie pokazano 36 wersji utworzonych przez 2 użytkowników)
Linia 1: Linia 1:
 
Skrypt do konfiguracji urządzeń Mikrotik.
 
Skrypt do konfiguracji urządzeń Mikrotik.
 +
 +
==Instalacja modułu==
 +
Jeżeli moduł nie został jeszcze zainstalowany należy go zainstalować według instrukcji znajdującej się [http://wiki2.net47.pl/index.php/Uruchomienie_modulu_Mikrotik TUTAJ]
  
 
==Konfiguracja Mikrotik==
 
==Konfiguracja Mikrotik==
 +
===INFORMACJA===
 +
Moduł MIKROTIK działa poprawnie od wersji <span style="color: red"><big>'''RouterOS 6.x'''</big></span>, poniżej tej wersji mogą występować problemy z odczytem informacji.
 +
 +
Dla obsługi poprzez wykonywanie poleceń CoA działa prawidłowo od wersji: <span style="color: red"><big>'''RouterOS 6.37'''</big></span>
  
 
===Skrypt===
 
===Skrypt===
W odpowiednie miejsca należy wpisać odpowiednie dane (loginy, hasła, adresy IP)
+
'''Komunikaty działają wyłącznie dla stron wykorzystujących protokół HTTP.'''
<pre># may/27/2013 11:20:45 by RouterOS 6.0rc13
+
 
# software id = 2AQU-CN1X
+
Proponowana wersja minimalna. Każdy z operatorów powinien sobie ją rozbudować i do konfigurować do potrzeb własnej sieci.
#
+
 
/interface ethernet
+
GDZIE:
set 0 name=ether1
+
 
set 1 name=ether2
+
*adres '''1.1.1.1''' to adres strony z komunikatem
set 2 name=ether3
+
 
/interface wireless
+
*'''redirect-to=nasza.strona/notification'''  — należy zamienić na własną stronę z komunikatem
set 0 band=2ghz-b/g disabled=no frequency=2442 l2mtu=2290 mode=ap-bridge \
+
<pre>/ip firewall filter
    name=wlan14 ssid=Mikrotok wireless-protocol=unspecified
+
/ip neighbor discovery
+
set wlan14 discover=no
+
/ip hotspot user profile
+
set [ find default=yes ] idle-timeout=none keepalive-timeout=2m
+
/ip pool
+
add name=dhcp_pool1 ranges=192.168.25.2-192.168.25.254
+
/ip dhcp-server
+
add address-pool=dhcp_pool1 disabled=no interface=wlan14 name=dhcp1
+
/port
+
set 0 name=serial0
+
/ppp profile
+
set 0 local-address=78.31.88.252
+
/interface pppoe-server server
+
add authentication=chap disabled=no interface=wlan14 one-session-per-host=yes \
+
    service-name=testowy
+
/ip address
+
add address=78.31.88.252/24 interface=ether2 network=78.31.88.0
+
add address=192.168.25.1/24 interface=wlan14 network=192.168.25.0
+
/ip dhcp-client
+
add dhcp-options=hostname,clientid disabled=no interface=ether2
+
/ip dhcp-server network
+
add address=192.168.25.0/24 dns-server=78.31.90.58 gateway=192.168.25.1
+
/ip dns
+
set allow-remote-requests=yes servers=78.31.90.58
+
/ip dns static
+
add address=192.168.88.1 name=router
+
/ip firewall filter
+
 
add action=jump chain=forward jump-target=ppp
 
add action=jump chain=forward jump-target=ppp
add action=add-src-to-address-list address-list=przekierowanie \
+
add action=add-src-to-address-list address-list=przekierowanie address-list-timeout=30s chain=przypominajka dst-address=!1.1.1.1
    address-list-timeout=10m chain=przypominajka dst-address=!78.31.90.8
+
add action=accept chain=forward comment="Akceptujemy ruch dnsa" dst-port=53 protocol=udp src-address-list=przekierowanie
add chain=forward comment="Akceptujemy ruch dnsa" dst-port=53 protocol=udp \
+
add action=accept chain=forward comment="Akceptujemy ruch o strony z komunikatem i do panelu usera" dst-address=1.1.1.1 src-address-list=przekierowanie
    src-address-list=przekierowanie
+
add action=drop chain=forward comment="Blokujemy ruch komputer\F3w z komunikatami" dst-address=!1.1.1.1 src-address-list=przekierowanie
add chain=forward comment=\
+
 
    "Akceptujemy ruch o strony z komunikatem i do panelu usera" dst-address=\
+
    78.31.90.8 src-address-list=przekierowanie
+
add action=drop chain=forward comment=\
+
    "Blokujemy ruch z komputer\F3w z komunikatami" src-address-list=\
+
    przekierowanie
+
 
/ip firewall nat
 
/ip firewall nat
add action=redirect chain=dstnat comment=Przekierowanie dst-port=80 protocol=\
+
add action=redirect chain=dstnat comment="Przekierowanie na komunikat" dst-port=80 protocol=tcp src-address-list=przekierowanie to-ports=58080
    tcp src-address-list=przekierowanie to-ports=8080
+
add action=redirect chain=dstnat comment="Przekierowanie na komunikat" dst-port=443 protocol=tcp src-address-list=przekierowanie to-ports=58080
add action=masquerade chain=srcnat src-address=192.168.0.0/24
+
 
add action=masquerade chain=srcnat src-address=10.0.10.0/24
+
 
/ip proxy
 
/ip proxy
set enabled=yes max-cache-size=none src-address=78.31.88.252
+
set cache-path=web-proxy1 enabled=yes max-cache-size=none max-client-connections=900 max-server-connections=900 port=58080 src-address=12.345.678.912
 
/ip proxy access
 
/ip proxy access
add comment="Akceptujemy ruch do strony z komunikatem" dst-address=78.31.90.8
+
add dst-address=1.1.1.1 dst-port=80
add comment="Ruch do mBank" dst-host=*.mbank.pl src-address=0.0.0.0/0
+
add dst-address=1.1.1.1 dst-port=443
add comment="Ruch do mBank" dst-host=*.mbank.com.pl src-address=0.0.0.0/0
+
add action=deny comment="Przekierowujemy ruch na adres url" dst-port=80 redirect-to=nasza.strona/notification src-address=0.0.0.0/0
add comment="Ruch do BZWBK" dst-host=*.centrum24.pl src-address=0.0.0.0/0
+
add comment="Ruch do BZWBK" dst-host=*.bzwbk.pl src-address=0.0.0.0/0
+
add action=deny comment="Przekierowujemy ruch na adres url" dst-port=80 \
+
    redirect-to=nowynet.ostrog.net/notification src-address=0.0.0.0/0
+
 
/ip proxy direct
 
/ip proxy direct
 
add action=deny src-address=0.0.0.0/0
 
add action=deny src-address=0.0.0.0/0
/ip route
+
 
add distance=1 gateway=78.31.88.254
+
</pre>
/ip traffic-flow
+
Zalecane jest  żeby dokonać zabezpieczenia proxy. Mamy na to dwie metody:
set enabled=yes
+
# możemy globalnie firewall i blokować ruch od strony internetu i dopuścić tylko wybrane klasy
/ip traffic-flow target
+
# albo możemy  w samym proxy
add address=78.31.90.8:12345 version=5
+
<pre>
/ppp aaa
+
/ip proxy access
set interim-update=15m use-radius=yes
+
add dst-address=1.1.1.1 dst-port=80
/radius
+
#####tutaj też można dodać wyjątki dla stron które klient może otworzyć np do banków ############
add address=78.31.90.8 secret=amen service=ppp
+
#####nadal proponuję kontrolować src żeby nie zrobiono ataku na te wyjątki przez nasz serwer##########
/system clock
+
add dst-address=1.1.1.1 dst-port=443
set time-zone-name=Europe/Warsaw
+
add action=deny comment="Przekierowujemy ruch na adres url" dst-port=80 redirect-to=nasza.strona/notification src-address=0.0.0.0/0
/system logging
+
add disabled=yes topics=radius
+
add disabled=yes topics=pppoe
+
add disabled=yes topics=ssh
+
add action=disk disabled=yes topics=debug
+
/system ntp client
+
set enabled=yes mode=unicast primary-ntp=78.31.90.8
+
/system routerboard settings
+
set cpu-frequency=533MHz
+
 
</pre>
 
</pre>
 +
określając src adresy jakie mogą z niego korzystać, w przypadku ataku na proxy zabije nam stronę z komunikatem.
 +
Jest jeszcze jeden problem z mikrotikiem. Przy przekierowaniu portu 80 czy 443 mikrotik nie rozróżnia czy to ruch http czy inny i przekierowuje wszystko. Jest duże ryzyko, że klient może ustawić np torrent na docelowy port 80 i
 +
będzie tysiące pakietów wysyłać do strony z komunikatem. Mamy dwie metody rozwiązania problemu:
 +
# albo filtrujemy w L7 i przekierowujemy tylko http https
 +
# albo ustawiamy limit pakietów w przekierowaniu resztę blokujemy.
  
 +
===Utworzenie konta===
 +
Na Mikrotiku należy utworzyć konto o takiej nazwie jaka podana jest w zmiennej konfiguracyjnej: '''MIKROTIK_Login''' (zmienną można znaleźć w: ''System->Ustawienia systemu->Zmienne systemowe->Mikrotik'').
 +
Domyślnie jest to:
 +
<pre>net47</pre>
 +
 +
Jeżeli utworzymy konto z inną nazwą niż podana w zmiennej '''MIKROTIK_Login''' to musimy także podać tą nazwę w tej zmiennej w systemie i wykonać restart modułu mikrotika:
 +
<pre>systemctl restart net47mikrotikd</pre>
 +
 +
===Przypisanie klucza DSA do konta===
 +
Do utworzonego konta należy przypisać publiczny klucz DSA. Zawartość klucza znajduje się w zmiennej: '''DSA_public''' (zmienną można znaleźć w: ''System->Ustawienia systemu->Zmienne systemowe->Klucze''). Plik z kluczem należy wgrać na urządzenie i przypisać do loginu. System komunikuje się z Mikrotikiem przy użyciu komunikacji SSH.
 +
 +
===Sprawdzenie poprawności konfiguracji===
 +
Po wykonaniu powyższych kroków można sprawdzić czy konfiguracja jest poprawna i czy system loguję się na Mikrotika bez podawania hasła. W tym celu należy wykonać z poziomu systemu net47 z konsoli komendy:
 +
 +
Przejście na użytkownika net47:
 +
<pre>su -l net47</pre>
 +
 +
Połączenie z mikrotikiem:
 +
<pre>ssh  -i /etc/pki/tls/private/devices.key -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=error -o PasswordAuthentication=no -o ConnectTimeout=2 -p3022 net47@IP_MIKROTIKA</pre>
 +
Podajemy odpowiedni port, login oraz adres IP Mikrotika.
 +
 +
==Automatyczne generowanie backupów==
 +
===Utworzenie skryptu===
 +
Należy utworzyć skrypt CRONTAB w podanej lokalizacji '''/home/net47/cron-script/MikrotikAutoBackup.sh'''
 +
 +
Zawartość skryptu '''MikrotikAutoBackup.sh''':
 +
<pre>#!/bin/bash
 +
 +
/bin/su -l postgres -c "psql -d net47 -c \"SELECT network.getmikrotikautobackup();\" ";</pre>
 +
 +
===Dodanie wpisu do Crontab===
 +
Wartości czasowe podajemy według własnego uznania z jaką częstotliwością chcemy mieć backupy.
 +
<pre>0 19 * * * /home/net47/cron-script/MikrotikAutoBackup.sh > /dev/null 2>&1</pre>
 +
===Zapis backupu do pliku i/lub bazy===
 +
W celu uruchomienia automatycznego generowania backupów z urządzeń Mikrotik należy odpowiednio ustawić zmienne systemowe: [[MIKROTIK_Backup_Sciezka]], [[MIKROTIK_Backup_Typ]], [[MIKROTIK_Backup_Zapis]].
 +
===Zapis backupu na serwerze FTP===
 +
W celu uruchomienia automatycznego generowania backupów z urządzeń Mikrotik należy odpowiednio ustawić zmienne systemowe: [[FTP_Backup]], [[FTP_Backup_Dir]], [[FTP_Backup_Login]], [[FTP_Backup_Pass]], [[FTP_Backup_IP]], [[FTP_Backup_Port]].
 
[[Kategoria:Urządzenia]]
 
[[Kategoria:Urządzenia]]
 +
 +
==Kontrola Pasma==
 +
Opis kontroli pasma dla urządzeń można znaleźć [http://mikrotik.net.pl/wiki/Kontrola_Pasma TUTAJ].

Aktualna wersja na dzień 15:46, 3 lis 2020

Skrypt do konfiguracji urządzeń Mikrotik.

Spis treści

[edytuj] Instalacja modułu

Jeżeli moduł nie został jeszcze zainstalowany należy go zainstalować według instrukcji znajdującej się TUTAJ

[edytuj] Konfiguracja Mikrotik

[edytuj] INFORMACJA

Moduł MIKROTIK działa poprawnie od wersji RouterOS 6.x, poniżej tej wersji mogą występować problemy z odczytem informacji.

Dla obsługi poprzez wykonywanie poleceń CoA działa prawidłowo od wersji: RouterOS 6.37

[edytuj] Skrypt

Komunikaty działają wyłącznie dla stron wykorzystujących protokół HTTP.

Proponowana wersja minimalna. Każdy z operatorów powinien sobie ją rozbudować i do konfigurować do potrzeb własnej sieci.

GDZIE:

  • adres 1.1.1.1 to adres strony z komunikatem
  • redirect-to=nasza.strona/notification — należy zamienić na własną stronę z komunikatem
/ip firewall filter
add action=jump chain=forward jump-target=ppp
add action=add-src-to-address-list address-list=przekierowanie address-list-timeout=30s chain=przypominajka dst-address=!1.1.1.1
add action=accept chain=forward comment="Akceptujemy ruch dnsa" dst-port=53 protocol=udp src-address-list=przekierowanie
add action=accept chain=forward comment="Akceptujemy ruch o strony z komunikatem i do panelu usera" dst-address=1.1.1.1 src-address-list=przekierowanie
add action=drop chain=forward comment="Blokujemy ruch komputer\F3w z komunikatami" dst-address=!1.1.1.1 src-address-list=przekierowanie

/ip firewall nat
add action=redirect chain=dstnat comment="Przekierowanie na komunikat" dst-port=80 protocol=tcp src-address-list=przekierowanie to-ports=58080
add action=redirect chain=dstnat comment="Przekierowanie na komunikat" dst-port=443 protocol=tcp src-address-list=przekierowanie to-ports=58080

/ip proxy
set cache-path=web-proxy1 enabled=yes max-cache-size=none max-client-connections=900 max-server-connections=900 port=58080 src-address=12.345.678.912
/ip proxy access
add dst-address=1.1.1.1 dst-port=80
add dst-address=1.1.1.1 dst-port=443
add action=deny comment="Przekierowujemy ruch na adres url" dst-port=80 redirect-to=nasza.strona/notification src-address=0.0.0.0/0
/ip proxy direct
add action=deny src-address=0.0.0.0/0

Zalecane jest żeby dokonać zabezpieczenia proxy. Mamy na to dwie metody:

  1. możemy globalnie firewall i blokować ruch od strony internetu i dopuścić tylko wybrane klasy
  2. albo możemy w samym proxy
/ip proxy access
add dst-address=1.1.1.1 dst-port=80
#####tutaj też można dodać wyjątki dla stron które klient może otworzyć np do banków ############
#####nadal proponuję kontrolować src żeby nie zrobiono ataku na te wyjątki przez nasz serwer##########
add dst-address=1.1.1.1 dst-port=443
add action=deny comment="Przekierowujemy ruch na adres url" dst-port=80 redirect-to=nasza.strona/notification src-address=0.0.0.0/0

określając src adresy jakie mogą z niego korzystać, w przypadku ataku na proxy zabije nam stronę z komunikatem. Jest jeszcze jeden problem z mikrotikiem. Przy przekierowaniu portu 80 czy 443 mikrotik nie rozróżnia czy to ruch http czy inny i przekierowuje wszystko. Jest duże ryzyko, że klient może ustawić np torrent na docelowy port 80 i będzie tysiące pakietów wysyłać do strony z komunikatem. Mamy dwie metody rozwiązania problemu:

  1. albo filtrujemy w L7 i przekierowujemy tylko http https
  2. albo ustawiamy limit pakietów w przekierowaniu resztę blokujemy.

[edytuj] Utworzenie konta

Na Mikrotiku należy utworzyć konto o takiej nazwie jaka podana jest w zmiennej konfiguracyjnej: MIKROTIK_Login (zmienną można znaleźć w: System->Ustawienia systemu->Zmienne systemowe->Mikrotik). Domyślnie jest to:

net47

Jeżeli utworzymy konto z inną nazwą niż podana w zmiennej MIKROTIK_Login to musimy także podać tą nazwę w tej zmiennej w systemie i wykonać restart modułu mikrotika:

systemctl restart net47mikrotikd

[edytuj] Przypisanie klucza DSA do konta

Do utworzonego konta należy przypisać publiczny klucz DSA. Zawartość klucza znajduje się w zmiennej: DSA_public (zmienną można znaleźć w: System->Ustawienia systemu->Zmienne systemowe->Klucze). Plik z kluczem należy wgrać na urządzenie i przypisać do loginu. System komunikuje się z Mikrotikiem przy użyciu komunikacji SSH.

[edytuj] Sprawdzenie poprawności konfiguracji

Po wykonaniu powyższych kroków można sprawdzić czy konfiguracja jest poprawna i czy system loguję się na Mikrotika bez podawania hasła. W tym celu należy wykonać z poziomu systemu net47 z konsoli komendy:

Przejście na użytkownika net47:

su -l net47

Połączenie z mikrotikiem:

ssh  -i /etc/pki/tls/private/devices.key -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=error -o PasswordAuthentication=no -o ConnectTimeout=2 -p3022 net47@IP_MIKROTIKA

Podajemy odpowiedni port, login oraz adres IP Mikrotika.

[edytuj] Automatyczne generowanie backupów

[edytuj] Utworzenie skryptu

Należy utworzyć skrypt CRONTAB w podanej lokalizacji /home/net47/cron-script/MikrotikAutoBackup.sh

Zawartość skryptu MikrotikAutoBackup.sh:

#!/bin/bash

/bin/su -l postgres -c "psql -d net47 -c \"SELECT network.getmikrotikautobackup();\" ";

[edytuj] Dodanie wpisu do Crontab

Wartości czasowe podajemy według własnego uznania z jaką częstotliwością chcemy mieć backupy.

0	19	*	*	*	/home/net47/cron-script/MikrotikAutoBackup.sh > /dev/null 2>&1

[edytuj] Zapis backupu do pliku i/lub bazy

W celu uruchomienia automatycznego generowania backupów z urządzeń Mikrotik należy odpowiednio ustawić zmienne systemowe: MIKROTIK_Backup_Sciezka, MIKROTIK_Backup_Typ, MIKROTIK_Backup_Zapis.

[edytuj] Zapis backupu na serwerze FTP

W celu uruchomienia automatycznego generowania backupów z urządzeń Mikrotik należy odpowiednio ustawić zmienne systemowe: FTP_Backup, FTP_Backup_Dir, FTP_Backup_Login, FTP_Backup_Pass, FTP_Backup_IP, FTP_Backup_Port.

[edytuj] Kontrola Pasma

Opis kontroli pasma dla urządzeń można znaleźć TUTAJ.

Osobiste
Przestrzenie nazw
Warianty
Działania
Nawigacja
Konfiguracja Systemu
Szablony
API
PostgreSQL
Narzędzia
MENU