Mikrotik
(→Przypisanie klucza DSA do konta) |
(→Konfiguracja Mikrotik) |
||
(Nie pokazano 16 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=== | ===INFORMACJA=== | ||
− | Moduł MIKROTIK działa poprawnie od wersji RouterOS | + | 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=== | |
− | + | '''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 | ||
+ | <pre>/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 | /ip firewall nat | ||
− | add action=redirect chain=dstnat comment=Przekierowanie | + | 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 | /ip proxy | ||
− | set | + | 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 | + | 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 | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | add | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | add action=deny comment="Przekierowujemy ruch na adres url" | + | |
− | + | ||
− | + | ||
/ip proxy direct | /ip proxy direct | ||
− | add action=deny | + | add action=deny src-address=0.0.0.0/0 |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
</pre> | </pre> | ||
+ | Zalecane jest żeby dokonać zabezpieczenia proxy. Mamy na to dwie metody: | ||
+ | # możemy globalnie firewall i blokować ruch od strony internetu i dopuścić tylko wybrane klasy | ||
+ | # albo możemy w samym proxy | ||
+ | <pre> | ||
+ | /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 | ||
+ | </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=== | ===Utworzenie konta=== | ||
− | Na Mikrotiku należy utworzyć konto o takiej nazwie jaka podana jest w zmiennej konfiguracyjnej: '''MIKROTIK_Login'''. | + | 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: | Domyślnie jest to: | ||
<pre>net47</pre> | <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=== | ===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. | 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== | ==Automatyczne generowanie backupów== |
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:
- możemy globalnie firewall i blokować ruch od strony internetu i dopuścić tylko wybrane klasy
- 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:
- albo filtrujemy w L7 i przekierowujemy tylko http https
- 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.