Mikrotik
Skrypt do konfiguracji urządzeń Mikrotik.
Spis treści |
Instalacja modułu
Jeżeli moduł nie został jeszcze zainstalowany należy go zainstalować według instrukcji znajdującej się TUTAJ
Konfiguracja Mikrotik
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
Skrypt
W miejsce IP_MIKROTIKA oraz IP_RADIUSA należy podać swoje dane.
/interface pppoe-server server add authentication=chap default-profile=default disabled=no interface=wlan14 \ keepalive-timeout=10 max-mru=1480 max-mtu=1480 max-sessions=0 mrru=\ disabled one-session-per-host=yes service-name=testowy /ppp profile set 0 address-list="" !bridge !bridge-path-cost !bridge-port-priority \ change-tcp-mss=yes !dns-server !idle-timeout !incoming-filter \ local-address=IP_MIKROTIKA name=default only-one=default !outgoing-filter \ !rate-limit !remote-address !session-timeout use-compression=default \ use-encryption=default use-mpls=default use-vj-compression=default \ !wins-server set 1 address-list="" !bridge !bridge-path-cost !bridge-port-priority \ change-tcp-mss=yes !dns-server !idle-timeout !incoming-filter \ !local-address name=default-encryption only-one=default !outgoing-filter \ !rate-limit !remote-address !session-timeout use-compression=default \ use-encryption=yes use-mpls=default use-vj-compression=default \ !wins-server /ppp aaa set accounting=yes interim-update=15m use-radius=yes /ip firewall filter add action=jump chain=forward !connection-bytes !connection-limit \ !connection-mark !connection-rate !connection-state !connection-type \ !content disabled=no !dscp !dst-address !dst-address-list \ !dst-address-type !dst-limit !dst-port !fragment !hotspot !icmp-options \ !in-bridge-port !in-interface !ingress-priority !ipv4-options \ jump-target=ppp !layer7-protocol !limit !nth !out-bridge-port \ !out-interface !p2p !packet-mark !packet-size !per-connection-classifier \ !port !priority !protocol !psd !random !routing-mark !routing-table \ !src-address !src-address-list !src-address-type !src-mac-address \ !src-port !tcp-flags !tcp-mss !time !ttl add action=add-src-to-address-list address-list=przekierowanie \ address-list-timeout=10m chain=przypominajka !connection-bytes \ !connection-limit !connection-mark !connection-rate !connection-state \ !connection-type !content disabled=no !dscp dst-address=!IP_RADIUSA \ !dst-address-list !dst-address-type !dst-limit !dst-port !fragment \ !hotspot !icmp-options !in-bridge-port !in-interface !ingress-priority \ !ipv4-options !layer7-protocol !limit !nth !out-bridge-port \ !out-interface !p2p !packet-mark !packet-size !per-connection-classifier \ !port !priority !protocol !psd !random !routing-mark !routing-table \ !src-address !src-address-list !src-address-type !src-mac-address \ !src-port !tcp-flags !tcp-mss !time !ttl add action=accept chain=forward comment="Akceptujemy ruch dnsa" \ !connection-bytes !connection-limit !connection-mark !connection-rate \ !connection-state !connection-type !content disabled=no !dscp \ !dst-address !dst-address-list !dst-address-type !dst-limit dst-port=53 \ !fragment !hotspot !icmp-options !in-bridge-port !in-interface \ !ingress-priority !ipv4-options !layer7-protocol !limit !nth \ !out-bridge-port !out-interface !p2p !packet-mark !packet-size \ !per-connection-classifier !port !priority protocol=udp !psd !random \ !routing-mark !routing-table !src-address src-address-list=przekierowanie \ !src-address-type !src-mac-address !src-port !tcp-flags !tcp-mss !time \ !ttl add action=accept chain=forward comment=\ "Akceptujemy ruch o strony z komunikatem i do panelu usera" \ !connection-bytes !connection-limit !connection-mark !connection-rate \ !connection-state !connection-type !content disabled=no !dscp \ dst-address=IP_RADIUSA !dst-address-list !dst-address-type !dst-limit \ !dst-port !fragment !hotspot !icmp-options !in-bridge-port !in-interface \ !ingress-priority !ipv4-options !layer7-protocol !limit !nth \ !out-bridge-port !out-interface !p2p !packet-mark !packet-size \ !per-connection-classifier !port !priority !protocol !psd !random \ !routing-mark !routing-table !src-address src-address-list=przekierowanie \ !src-address-type !src-mac-address !src-port !tcp-flags !tcp-mss !time \ !ttl add action=drop chain=forward comment=\ "Blokujemy ruch z komputer\F3w z komunikatami" !connection-bytes \ !connection-limit !connection-mark !connection-rate !connection-state \ !connection-type !content disabled=no !dscp !dst-address \ !dst-address-list !dst-address-type !dst-limit !dst-port !fragment \ !hotspot !icmp-options !in-bridge-port !in-interface !ingress-priority \ !ipv4-options !layer7-protocol !limit !nth !out-bridge-port \ !out-interface !p2p !packet-mark !packet-size !per-connection-classifier \ !port !priority !protocol !psd !random !routing-mark !routing-table \ !src-address src-address-list=przekierowanie !src-address-type \ !src-mac-address !src-port !tcp-flags !tcp-mss !time !ttl /ip firewall nat add action=redirect chain=dstnat comment=Przekierowanie !connection-bytes \ !connection-limit !connection-mark !connection-rate !connection-type \ !content disabled=no !dscp !dst-address !dst-address-list \ !dst-address-type !dst-limit dst-port=80 !fragment !hotspot !icmp-options \ !in-bridge-port !in-interface !ingress-priority !ipv4-options \ !layer7-protocol !limit !nth !out-bridge-port !out-interface !packet-mark \ !packet-size !per-connection-classifier !port !priority protocol=tcp !psd \ !random !routing-mark !routing-table !src-address src-address-list=\ przekierowanie !src-address-type !src-mac-address !src-port !tcp-mss \ !time !to-addresses to-ports=8080 !ttl /ip proxy set always-from-cache=no cache-administrator=webmaster cache-hit-dscp=4 \ cache-on-disk=no enabled=yes max-cache-object-size=2048KiB \ max-cache-size=none max-client-connections=600 max-fresh-time=3d \ max-server-connections=600 parent-proxy=0.0.0.0 parent-proxy-port=0 port=\ 8080 serialize-connections=no src-address=IP_MIKROTIKA /ip proxy access add action=allow comment="Akceptujemy ruch do strony z komunikatem" disabled=\ no dst-address=IP_RADIUSA !dst-host dst-port="" !local-port !method !path \ !redirect-to !src-address add action=allow comment="Ruch do mBank" disabled=no !dst-address dst-host=\ *.mbank.pl dst-port="" !local-port !method !path !redirect-to \ src-address=0.0.0.0/0 add action=allow comment="Ruch do mBank" disabled=no !dst-address dst-host=\ *.mbank.com.pl dst-port="" !local-port !method !path !redirect-to \ src-address=0.0.0.0/0 add action=allow comment="Ruch do BZWBK" disabled=no !dst-address dst-host=\ *.centrum24.pl dst-port="" !local-port !method !path !redirect-to \ src-address=0.0.0.0/0 add action=allow comment="Ruch do BZWBK" disabled=no !dst-address dst-host=\ *.bzwbk.pl dst-port="" !local-port !method !path !redirect-to \ src-address=0.0.0.0/0 add action=deny comment="Przekierowujemy ruch na adres url" disabled=no \ !dst-address !dst-host dst-port=80 !local-port !method !path redirect-to=\ nowynet.ostrog.net/notification src-address=0.0.0.0/0 /ip proxy direct add action=deny disabled=no !dst-address !dst-host dst-port="" !local-port \ !method !path src-address=0.0.0.0/0 /radius add accounting-backup=no accounting-port=1813 address=IP_RADIUSA \ authentication-port=1812 called-id="" disabled=no domain="" realm="" \ secret=amen service=ppp timeout=2000ms /radius incoming set accept=no port=3799
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
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:
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.
Automatyczne generowanie backupów
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();\" ";
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
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.
Kontrola Pasma
Opis kontroli pasma dla urządzeń można znaleźć TUTAJ.