❗️Toto je původní verze internetového fóra ISPforum.cz do února 2020 bez možnosti registrace nových uživatelů. Aktivní verzi fóra naleznete na adrese https://telekomunikace.cz

Firewall filter mikrotik

Návody a problémy s konfigurací.
bach1
Příspěvky: 14
Registrován: 10 years ago

Firewall filter mikrotik

Příspěvekod bach1 » 10 years ago

Dobrý den.
Marně si lámu hlavu s nastavením Firewallu na mikrotiku, jelikož jsem začátečník, aplikoval jsem základní pravidla takto:

Kód: Vybrat vše

add chain=forward action=accept protocol=icmp in-interface=ether1
add chain=forward action=accept protocol=tcp in-interface=ether1 dst-port=80
add chain=forward action=accept protocol=tcp in-interface=ether1 dst-port=443
add chain=forward action=accept connection-state=established in-interface=ether1
add chain=forward action=accept connection-state=related in-interface=ether1
add chain=forward action=accept out-interface=ether1
add chain=forward action=drop in-interface=ether1


Vše funguje jak má, ale potřeboval bych omezit z určitého rozsahu IP Adres rozsah portů směrem do internetu např.

IP 192.168.1.10-192.168.1.20 omezit odchozí porty jen na fungování prohlížení stránek na internetu , tedy budou mít povoleny pouze tcp porty 80,8080,443, a dns udp 53

Poradí někdo jak to upravit?
Děkuji
0 x

ludvik
Příspěvky: 4448
Registrován: 14 years ago

Příspěvekod ludvik » 10 years ago

Nebylo by lepší nejdřív firewalling nastudovat teoreticky? Se zaměřením na linuxový paketový filtr, iptables. Dost se toho objevilo i zde na ispforu. A to i relativně nedávno ...

Např. máš stejný IN a OUT interface ...

Tohle je naprostý základ, vše z LAN strany může ven, dovnitř nesmí nic:

Kód: Vybrat vše

add chain=forward action=accept connection-state=established
add chain=forward action=accept connection-state=related
add chain=forward action=accept in-interface=LAN
add chain=forward action=reject


A jakékoliv výjimky, hraješ si s tím řádkem 3.

Povolení skupin adres buď můžeš dělat otrocky po jedné, nebo lépe, zadáš je do address-list. A potom jen vybrané mohou ven.

Kód: Vybrat vše

add chain=forward action=accept connection-state=established
add chain=forward action=accept connection-state=related
add chain=forward action=accept in-interface=LAN src-address-list=TEN_MUJ_ADDR_LIST
add chain=forward action=drop


Pak existují tzv. user defined chains. Prostě podprogramy ...

Kód: Vybrat vše

add chain=forward action=accept connection-state=established
add chain=forward action=accept connection-state=related
add chain=forward action=accept in-interface=LAN src-address-list=TYHLE_MUZOU_VSE
add chain=forward action=jump jump-target=POVOLENE_SLUZBY in-interface=LAN src-address-list=JENOM_NECO
add chain=forward action=drop
add chain=POVOLENE_SLUZBY action=accept ATD CO MŮŽE

Jak to funguje?
Na začátku říkáš, že chceš průchod paketům, které už nějak začaly a vztahují se k nějaké konexi (libovolným směrem, proto se explicitně nepovoluje průchod z WAN, není k tomu důvod, pokud neběží uvnitř nějaké služby co mají být dostupné právě i z WAN strany). A pokud konexe teprve začíná, zpracují se další řádky.
Třetí řádek říká, že povolíš všechny pakety pokud přichází z LAN strany a mají zdrojovou IP zadanou v address listu s názvem TYHLE_MUZOU_VSE
Čtvrtý řádek se týká zbytku definovaného opět v nějakém address listu a pro takové pakety provedu odskok do extra chainu, kde si povolím co chci. Pokud v tom chainu nezabere ani jeden řádek, automaticky se zpracování vrací - na řádek pět, kde to prostě zahodím (ale reject je asi lepší, stanice nečekají na timeouty).

Bez toho chainu se obejdeš, když ho otrocky opíšeš s pomocí toho address-listu. Ale takhle je to čitelnější.

Globálně povolené (či zakázané) služby se tedy dávají hned za RELATED,ESTABLISHED. Potom už vlastně jen výjimky. A na konci striktní zákaz.

---
A dodatek: správný firewall by měl mít pro jistotu i INPUT definovaný. Tedy ochranu samotného routeru. Nikdy člověk neví, co tam vlastně běží ... I když, když člověk ví co dělá a na čem, obejde se i bez toho.
0 x
Jelikož je zde zakázáno se negativně vyjadřovat k provozním záležitostem, tak se holt musím vyjádřit takto: nové fórum tak jak je připravováno považuji za cestu do pekel. Nepřehledný maglajz z toho bude. Do podpisu se mi pozitiva již nevejdou.

ludvik
Příspěvky: 4448
Registrován: 14 years ago

Příspěvekod ludvik » 10 years ago

Dodatek 2: nejenom UDP je DNS ...
0 x
Jelikož je zde zakázáno se negativně vyjadřovat k provozním záležitostem, tak se holt musím vyjádřit takto: nové fórum tak jak je připravováno považuji za cestu do pekel. Nepřehledný maglajz z toho bude. Do podpisu se mi pozitiva již nevejdou.

bach1
Příspěvky: 14
Registrován: 10 years ago

Příspěvekod bach1 » 10 years ago

Díky za informaci a obsáhlou odpověď, ale nemám v síti 100 PC, ale jen cca 10 a zhruba 8 IP adresám potřebuju omezit porty směrem ven a jen 2 ip to povolit vše.

šlo by to asi i takto?:

Kód: Vybrat vše

add action=drop chain=forward disabled=no dst-port=!53,80,443,8080 protocol=tcp
 add action=drop chain=forward disabled=no dst-port=!53,80,443,8080 protocol=udp

Alenevím jak tam vnutit ip rozsah?

Kód: Vybrat vše

add action=drop chain=forward disabled=no dst-port=!53,80,443,8080 protocol=tcp src-address=192.168.200.97/28

Vím že bych to měl nastudovat, ale to vezmě nějaký čas a já to momentálně potřebuju co nejrychleji než to nastuduju a dám do nějakého tvaru, tako jak to mám se mi to nelíbí. Díky za ochotu a pomoc.
0 x

Mazzalo
Příspěvky: 168
Registrován: 18 years ago

Příspěvekod Mazzalo » 10 years ago

bach1 píše:Alenevím jak tam vnutit ip rozsah?

Kód: Vybrat vše

add action=drop chain=forward disabled=no dst-port=!53,80,443,8080 protocol=tcp src-address=192.168.200.97/28

Vím že bych to měl nastudovat, ale to vezmě nějaký čas a já to momentálně potřebuju co nejrychleji než to nastuduju a dám do nějakého tvaru, tako jak to mám se mi to nelíbí. Díky za ochotu a pomoc.


Jak ti krásně poradil ludvik pomocí address listu, kam si naházíš IP adresy které potřebuješ omezit a v reject pravidle se na ten address list odkážeš.
0 x

ludvik
Příspěvky: 4448
Registrován: 14 years ago

Příspěvekod ludvik » 10 years ago

adress-list má výhodu, že ti zároveň určuje povolené IP adresy konkrétně. Ale obecně je fuk, co za "src-" použiješ. Zda address list, nebo přímo segment jak tě napadlo.
0 x
Jelikož je zde zakázáno se negativně vyjadřovat k provozním záležitostem, tak se holt musím vyjádřit takto: nové fórum tak jak je připravováno považuji za cestu do pekel. Nepřehledný maglajz z toho bude. Do podpisu se mi pozitiva již nevejdou.

Radek.Kovacik
Příspěvky: 162
Registrován: 13 years ago

Příspěvekod Radek.Kovacik » 10 years ago

Je lepší na konci jako zákazové pravidlo použít reject nebo drop?
0 x

Majklik
Příspěvky: 1949
Registrován: 14 years ago

Příspěvekod Majklik » 10 years ago

Blokov8n9 ye strany WAN DROP, co s eblokuje ye strany LAN, tak REJECT.
0 x

bach1
Příspěvky: 14
Registrován: 10 years ago

Příspěvekod bach1 » 10 years ago

jak by tedy mělo vypadat pravidlo z LAN v mém případě?
takto?

Kód: Vybrat vše

add action=reject chain=forward disabled=no out-interface=ether1 dst-port=!53,80,443,8080 protocol=tcp src-address=192.168.200.97/28


jdou nějak zgroupovat nebo pojmenovat ta rozhraní?

Ether1 mám internet jako wan a ether2-5 mám vnitřní síť jako LAN
0 x

Mazzalo
Příspěvky: 168
Registrován: 18 years ago

Příspěvekod Mazzalo » 10 years ago

Řekl bych že pravidlo je ok, rozhraní jdou pojmenovat jak potřebuješ, když ho ve winboxu rozklineš tak na záložce General do Name si napiš co potřebuješ.
0 x

bach1
Příspěvky: 14
Registrován: 10 years ago

Příspěvekod bach1 » 10 years ago

Pořád tomu nerozumím , mám jen tato pravidla:

Kód: Vybrat vše

add chain=forward action=accept protocol=icmp in-interface=ether1
add chain=forward action=accept connection-state=established in-interface=ether1
add chain=forward action=accept connection-state=related in-interface=ether1
add action=accept chain=forward disabled=no out-interface=bridge1 dst-port=53,80,443,8080 protocol=tcp
add action=accept chain=forward disabled=no out-interface=bridge1 dst-port=53,123 protocol=udp
add chain=forward action=drop in-interface=ether1


a přesto se spojím na PPTP z LAN a data se mi načítají přes connection-state=established in-interface=ether1

Fakt jsem už z toho na prášky....
Mohl by mi někdo to pravidlo napsat, aby jely jen vyjmenované porty z LAN (tedy internet) a nešlo se spojit přes PPTP protokol na VPN a přitom bylo zabezpečeno WAN?
0 x

Mazzalo
Příspěvky: 168
Registrován: 18 years ago

Příspěvekod Mazzalo » 10 years ago

Máš nějaké pravidla v NATu?
0 x

bach1
Příspěvky: 14
Registrován: 10 years ago

Příspěvekod bach1 » 10 years ago

To mám, jelikož mám v síti servery synology, na kterém mi běží pošta a web a zde jsem se dočetl, že musím použít ještě tato pravidla , abych se z vnitřní lan dostal přes zavolání do mé domény na svůj server synology, který je též v LAN. http://www.neni.cz/index.php/stavba-sit ... -mikrotiku

Synology mám 200.2 a Mikrotik router má 200.1 a Druhý synology má 200.150 a 2x VOIP jedno na 200.110 a druhé na 200.200

v Natu mám toto:

Kód: Vybrat vše

/ip firewall nat
add action=masquerade chain=srcnat out-interface=ether1
add action=dst-nat chain=dstnat dst-port=25 in-interface=ether1 protocol=tcp \
    to-addresses=192.168.200.2 to-ports=25
add action=dst-nat chain=dstnat dst-port=5060 in-interface=ether1 protocol=\
    udp to-addresses=192.168.200.110
add action=dst-nat chain=dstnat dst-port=6060 in-interface=ether1 protocol=\
    udp to-addresses=192.168.200.200 to-ports=6060
add action=dst-nat chain=dstnat dst-port=6065 in-interface=ether1 protocol=\
    udp to-addresses=192.168.200.200 to-ports=6065
add action=dst-nat chain=dstnat dst-port=24 in-interface=ether1 protocol=tcp \
    to-addresses=192.168.200.2 to-ports=22
add action=dst-nat chain=dstnat dst-port=8080 in-interface=ether1 protocol=\
    tcp to-addresses=192.168.200.150 to-ports=8080
add action=dst-nat chain=dstnat dst-port=8008 in-interface=ether1 protocol=\
    tcp to-addresses=192.168.200.150 to-ports=8008
add action=dst-nat chain=dstnat dst-port=5000 in-interface=ether1 protocol=\
    tcp to-addresses=192.168.200.150 to-ports=5000
add action=dst-nat chain=dstnat dst-port=5005 in-interface=ether1 protocol=\
    tcp to-addresses=192.168.200.150 to-ports=5005
add action=dst-nat chain=dstnat dst-port=10001 in-interface=ether1 protocol=\
    tcp to-addresses=192.168.200.29 to-ports=10001
add action=dst-nat chain=dstnat dst-port=143 in-interface=ether1 protocol=tcp \
    to-addresses=192.168.200.2 to-ports=143
add action=dst-nat chain=dstnat dst-port=80 in-interface=ether1 protocol=tcp \
    to-addresses=192.168.200.2 to-ports=80
add action=dst-nat chain=dstnat dst-port=8081 in-interface=ether1 protocol=\
    tcp to-addresses=192.168.200.2 to-ports=80
add action=dst-nat chain=dstnat dst-port=465 in-interface=ether1 protocol=tcp \
    to-addresses=192.168.200.2 to-ports=465
add action=dst-nat chain=dstnat dst-port=993 in-interface=ether1 protocol=tcp \
    to-addresses=192.168.200.2 to-ports=993
add action=dst-nat chain=dstnat dst-port=5002 in-interface=ether1 protocol=\
    tcp to-addresses=192.168.200.2 to-ports=5000
add action=dst-nat chain=dstnat dst-port=7002 in-interface=ether1 protocol=\
    tcp to-addresses=192.168.200.2 to-ports=7000
add action=dst-nat chain=dstnat dst-port=35500 in-interface=ether1 protocol=\
    tcp to-addresses=192.168.200.212 to-ports=35500
add action=dst-nat chain=dstnat dst-port=8085 in-interface=ether1 protocol=\
    tcp to-addresses=192.168.200.5 to-ports=8085
add action=dst-nat chain=dstnat comment=\
    "Pristup na web z LAN" dst-address=!192.168.200.0/24 \
    dst-address-type=local dst-port=80,143,993,465 protocol=tcp to-addresses=\
    192.168.200.2
add action=masquerade chain=srcnat comment=\
    "Pristup na web z LAN" protocol=tcp src-address=\
    192.168.200.0/24


V původním firewallu mám toto:

Kód: Vybrat vše

/ip firewall filter
add chain=forward in-interface=ether1 protocol=icmp
add chain=forward comment="Pakety pro navazana spojeni" connection-state=\
    established in-interface=ether1
add chain=forward comment="Pakety pro navazana spojeni" connection-state=\
    related in-interface=ether1
add chain=forward dst-port=53,80,443,8080,143,465,993,445 out-interface=\
    bridge1 protocol=tcp
add chain=forward dst-port=53,123 out-interface=bridge1 protocol=udp
add chain=forward comment=SIP dst-port=5060 protocol=udp
add chain=forward comment=SIP dst-port=6060 protocol=udp
add chain=forward comment=SIP dst-port=6065 protocol=udp
add chain=forward dst-port=80,5000,8080,5002,7002,25,465,143,993 \
    in-interface=ether1 protocol=tcp
add action=drop chain=forward comment="Zakaz vseho" in-interface=ether1


Tak fakt nevím v čem je potíž.
0 x

Majklik
Příspěvky: 1949
Registrován: 14 years ago

Příspěvekod Majklik » 10 years ago

bach1 píše:Mohl by mi někdo to pravidlo napsat, aby jely jen vyjmenované porty z LAN (tedy internet) a nešlo se spojit přes PPTP protokol na VPN a přitom bylo zabezpečeno WAN?


Kód: Vybrat vše

add chain=forward action=accept connection-state=established
add chain=forward action=accept connection-state=related
add action=accept chain=forward disabled=no out-interface=ether1 dst-port=53,80,443,8080 protocol=tcp connection-state=new
add action=accept chain=forward disabled=no out-interface=ether1 dst-port=53,123 protocol=udp connection-state=new
add chain=forward action=reject out-interface=ether1 reject-with=icmp-admin-prohibited
add chain=forward dst-address=192.168.200.2 dst-port=22,25,80,143,465,993,5000,7000 protocol=tcp connection-state=new
add chain=forward dst-address=192.168.200.110 dst-port=5060 protocol=udp connection-state=new
add chain=forward dst-address=192.168.200.200 dst-port=6060,6065 protocol=udp connection-state=new
add chain=forward action=drop


Tohle ti pustí ven jen ty požadované porty na forward a dovnitř ti povolí něco z toho, co máš v tom NATu, to si snad už sám správně doplníš. Neřeší to, co může lézt přímo na router.
0 x

bach1
Příspěvky: 14
Registrován: 10 years ago

Příspěvekod bach1 » 10 years ago

Díky za pomoc otestuju a dám vědět , jakmile to provedu.
Ten NAT je v pořádku?
0 x