modified on 20 lip 2010 at 12:41 ••• 21 484 views

IP/Firewall/Znakowanie

Z MikroTik Wiki

Spis treści

Informacje Ogólne

Wstęp

Narzędzie markujące pozwala na oznaczenie pakietów IP specjalnymi znacznikami. Te oznaczenia są używane przez różne narzędzia routera do identyfikacji pakietów. Dodatkowo marker jest używany do modyfikowania niektórych pól w nagłówku IP, np. pola TOS (DSCP) i TTL.

Specyfikacja

Wymagane pakiety: system

Wymagane licencje: level1

Poziom podmenu: /ip firewall mangle

Standardy i Technologie: IP

Wykorzystanie sprzętowe: Wzrasta wraz z ilością zasad markowania

Marker

Poziom podmenu: /ip firewall mangle

Opis

Marker oznakowuje pakiety specjalnymi znacznikami dla przyszłej ich obsługi. Wiele innych narzędzi RouterOS robi użytek z tych znaczników, np. drzewa kolejkowania i NAT. Identyfikują one pakiet na podstawie znacznika a następnie odpowiednio z nim postępują. Znaczniki te istnieją tylko wewnątrz routera, nie są transmitowane poza sieć.

Opis Własności

action (accept | add-dst-to-address-list | add-src-to-address-list | change-dscp | change-mss | change-ttl | jump | log | mark-connection | mark-packet | mark-routing | passthrough | return | set-priority | strip-ipv4-options; domyślnie: accept) - działanie do podjęcia jeśli pakiet pasuje do zasady

  • accept - zaakceptuje pakiet. Nie są podejmowane działania, tj. pakiet jest przepuszczany i żadne inne zasady nie są stosowane
  • add-dst-to-address-list - dodaje adres docelowy pakietu IP do listy adresowej określonej w parametrze address-list
  • add-src-to-address-list - dodaje adres źródłowy pakietu IP do listy adresowej określonej w parametrze address-list
  • change-dscp - zmienia wartość pola Differentiated Services Code Point (DSCP) określonego przez parametr new-dscp
  • change-mss - zmienia wartość pola Maximum Segment Size określonego przez parametr new-mss
  • change-ttl - zmienia wartość pola Time To Live określonego przez parametr new-ttl
  • jump - przechodzi do łańcucha określonego wartością parametru jump-target
  • log - z tym działaniem każde dopasowanie spowoduje dodanie wiadomości w logu systemowym
  • mark-connection - umieszcza znacznik określony przez parametr new-connection-mark w całym połączeniu, które pasuje do zasady
  • mark-packet - umieszcza znacznik określony przez parametr new-packet-mark na pakiecie, który pasuje do zasady
  • mark-routing - umieszcza znacznik określony przez parametr new-routing-mark na pakiecie. Znacznik ten jest używany tylko w celach polityki routingu
  • passthrough - ignoruje zasadę i przechodzi do następnej
  • return - zwraca kontrolę do łańcucha z miejsca, skąd nastąpiło przejście
  • set-priority - ustawia priorytet ustalony przez parametr new-priority pakietu wysłanego przez połączenie, które może przenosić priorytety (VLAN lub interfejs bezprzewodowy z włączonym WMM)
  • strip-ipv4-options - pokazuje pola z opcjami IPv4 pakietu IP

address-list (name) - określa nazwę listy adresowej zbierającej adresy IP z zasad mających action=add-dst-to-address lub action=add-src-to-address-list. Te listy adresowe mogą być potem użyte do dopasowywania pakietów

address-list-timeout (time; domyślnie: 00:00:00) - czas po którym adresy zostaną usunięte z listy adresowej określonej parametrem address-list. Użyte w połączeniu z add-dst-to-address-list lub add-src-to-address-list 00:00:00 - zostawia adres w liście adresowej na zawsze

chain (forward | input | output | postrouting | prerouting) - określa łańcuch, do którego może wpisać konkretną zasadę. Gdy różny ruch przechodzi przez różne łańcuchy, zawsze uważaj przy wyborze prawidłowego łańcucha dla nowej zasady. Jeśli wejście nie pasuje do nazwy już istniejącego łańcucha, zostanie stworzony nowy łańcuch

comment (text) - komentarz do zasady w dowolnej formie. Komentarz może być użyty do opisu konkretnych zasad ze skryptów

connection-bytes (integer-integer) - dopasowuje pakiety tylko jeśli dana liczba bajtów została przesłana przez konkretne połaczenie

  • 0 - oznacza nieskończoność, np. connection-bytes=2000000 - 0 oznacza, że pakiet zostanie dopasowany jeśli zostanie przesłanych więcej niż 2MB przez odpowiednie połączenie

'connection-limit (integer,netmask) - limit połączeń nałożony na adres, lub blok adresów

connection-mark (name) - dopasowuje pakiety oznaczone znacznikiem połączenia przez narzędzie markujące

connection-state' (estabilished | invalid | new | related) - interpretuje dane z analizy śledzenia połączeń dla konkretnego pakietu

  • estabilished - pakiet, który należy do istniejącego połączenia, tj. pakiet będący odpowiedzą lub pakiet który należy do połączenia, które już uzyskało odpowiedź
  • invalid- pakiet, który nie mógł być z jakichś powodów zidentyfikowany. Włączając w to brak pamięci i błedy ICMP. Zaleca się odrzucanie takich pakietów
  • new - pakiet, który rozpoczyna nowe połączenie TCP
  • related - pakiet, który jest związany z połączeniem, ale nie jest jego częścią, np. błędy ICMP lub pakiety rozpoczynające połączenie FTP (

connection-type (ftp | gre | h323 | irc | mms | pptp | quake3 | tftp) - dopasowuje pakiety z powiązanego połączenia bazując na informacjach z ich pomocy śledzenia połączeń. Odpowiedni pomocnik połączenia musi zostać uruchomiony przez /ip firewall service-port

content' (text) - tekst, jaki powinien zawierać pakiet, aby został dopasowany przez zasadę

dscp (integer: 0..63) - wartość pola DSCP (ex-ToS) nagłówka IP

dst-address (IP address/netmask | IP address-IP address) - określa zakres adresów IP, gdzie zostanie przeznaczony pakiet. Pamiętaj, że konsola konwertuje wpisane adresy/wartości masek sieciowych na odpowiednie adresy sieciowe, np.: 1.1.1.1/24 jest konwertowane na 1.1.1.0/24

dst-address-list (name) - dopasowuje adres docelowy pakietu według listy adresowej zdefiniowanej przez użytwkonika

dst-address-type (unicast | local | broadcast | multicast) - dopasowuje adres docelowy pakietu IP, jeden z:

  • unicast - adresy IP użyte do transmisji z jednego punktu do drugiego. W tym przypadku jest tylko jeden nadawca i jeden odbiorca
  • local - dopasowuje pakiety przypisane do interfejsu routera
  • broadcast - pakiet IP jest wysyłany z jednego punktu do wszystkich innych punktów w podsieci IP
  • multicast - ten typ adresowania IP jest odpowiedzialny za transmisję z jednego lub więcej punktów do zbioru innych punktów

dst-limit (integertimeintegerdst-address | dst-port | src-addresstime) - ogranicza współczynnik pakietów na sekundę (pps) ze względu na docelowe IP lub docelowy port. W przeciwieństwie do dopasowania limitów, każdy docelowy adres IP / port docelowy ma swój własny limit. Opcje są następujące (w kolejności pojawiania się):

  • count - maksymalny średni współczynnik pakietu, mierzony w pakietach na sekundę (pps), chyba że poprzedzony przez opcję time
  • time - określa czas przez który współczynnik pakietu jest mierzony
  • burst - liczba pakietów do dopasowania w sekwencji
  • mode - klasyfikator(-y) dla limitowania współczynników pakietów
  • expire - określa czas po którym zapisane adresy IP /porty zostaną usunięte

dst-port (integer: 0..65535-integer: 0..65535) - docelowy numer portu, lub jego zakres

fragment (yes | no) - czy pakiet jest fragmentem pakietu IP. Pakiet startowy (tj. pierwszy fragment) się nie liczy. Upewnij się, że śledzenie połączenia jest włączone, nie będzie fragmentów gdy system automatycznie scali każdy pakiet

hotspot (multiple choice: auth | from-client | http | local-dst | to-client) - dopasowuje pakiety odebrane od klienta pod różnymi warunkami HotSpota. Wszystkie wartości mogą zostać zanegowane

  • auth - prawda, jeśłi pakiet pochodzi od uwierzytelnionego klienta
  • from-client - prawda, jeśli pakiet pochodzi od jakiegokolwiek klienta HotSpot
  • http - prawda, jeśli klient HotSpot wysyła pakiet na adres i port wcześniej wykryty jako jego serwer proxy (Universal Proxy technique) lub jeśli port docelowy to 80 i włączone jest przeźroczyste proxy dla tego konkretnego klienta
  • local-dst - prawda, jeśli pakiet ma lokalny docelowy adres IP
  • to-client - prawda, jeśli pakiet został wysłany do klienta

icmp-options (integer:integer) - dopasowuje pola ICMP Type:code

in-bridge-port (name) - aktualny interfejs, do którego wszedł pakiet przez router

in-interface (name) - interfejs, do którego wszedł pakiet przez router (jeśli interfejs jest zmostkowany, to pakiet pojawi ze strony interfejsu mostka)

ingress-priority (integer: 0..63) - priorytet wejścia pakietu. Priorytet może pochodzić z zarówno priorytetu VLAN jak i WMM

ipv4-options (any | loose-source-routing | no-record-route | no-router-alert | no-source-routing | no-timestamp | none | record-route | router-alert | strict-source-routing | timestamp) - dopasowuje opcje nagłówka ipv4

  • any - dopasowuje pakiet z przynajmniej jedną opcją ipv4
  • loose-source-routing - dopasowuje pakiety z opcjami związanymi z routowaniem źródła. Tę opcję uzywa się do routowania datagramów bazujących na informacjach dostarczanych przez źródło
  • no-record-route - dopasowuje pakiety bez opcji routowania rekordów. Tę opcję używa się do routowania datagramów bazujących na informacjach pochodzących od źródła
  • no-router-alert - dopasowuje pakiety bez opcji modyfikującej router
  • no-source-routing - dopasowuje pakiety bez opcji routowania źródła
  • no-timestamp - dopasowuje pakiety bez opcji znakowania pakietów
  • record-route - dopasowuje pakiety z opcją zapisywania ścieżki
  • router-alert - dopasowuje pakiety z opcją modyfikacji routera
  • strict-source-routing - dopasowuje pakiety z opcją dokładnego routingu źródła
  • timestamp - dopasowuje pakiety ze znacznikiem czasu


jump-target (forward | input | output | postrouting | preroutingname) - nazwa łańcucha, do którego nastąpi skok, jeśli użyte jest action=jump

layer7-protocol' (name) - nazwa filtra warstwy 7, tak jak ustawiono w /ip firewall layer7-protocol. Uwaga: to dopasowanie wymaga dużej mocy obliczeniowej komputera

limit (integertime,integer) - ograniczenie współczynnika dopasowania pakietu do danego limitu. Użyteczne w celu ograniczenia liczby wiadomości

  • count - maksymalny średni współczynnik pakietu, mierzony w pakietach na sekundę (pps), chyba że jest poprzedzony przez opcję czasu
  • time - określa czas, po którym współczynnik pakietu zostanie zmierzony
  • burst - liczba pakietów do dopasowania w impulsie

log-prefix (text) - wszystkie wiadomości wpisane do loga będą zawierały tam określony prefiks. Będzie użyty w połączeniu z action=log

new-connection-mark (name) - określa nową wartość znacznika użytego do połączenia z action=mark-connection

new-dscp (integer: 0..63) - określa nową wartość pola DSCP, która będzie użyta do połączenia z action=change-dscp

new-mss (integer) - określa wartość MSS, która będzie u żyta do połączenia z action=change-mss

new-packet-mark (name) - określa nową wartość znacznika pakietów, która będzie użyta do połączenia z action=mark-packet

new-priority (integer) - określa nową wartość priorytetu pakietu dla interfejsów z włączoną obsługą priorytetów, użytą w połączeniu z action=set-priority

  • from-dscp - określa priorytet pakietu na podstawie wartości pola DSCP
  • from-ingress - określa priorytet pakietu na podstawie priorytetu prawa wejścia pakietu (w przypadku gdy pakiet został odebrany z interfejsu, który obsługuje priorytety - VLAN lub sieci bezprzewodowej z włączonym WMM; 0 jeśli nie jest ustawiony)

new-routing-mark (name) - określa nową wartośc znacznika użytego w połaczeniu z action=mark-routing

new-ttl (decrement | increment | setinteger) - określa nową wartość pola TTL użytą w połączeniu z action=change-ttl

  • decrement - wartość pola TTL zostanie zdekrementowana
  • increment - wartość pola TTL zostanie inkrementowana
  • set - wartość pola TTL zostanie ustawiona do podanej wartości

nth (integer,integer: 0..15,integer) - dopasowuje konkretny pakiet nth odebrany przez zasadę. Jeden z 16 dostępnych liczników zostanie użyty do zliczenia pakietów

  • severy - dopasowuje każdy pakiet every+1. Na przykład jeśli every=1, to zasada dopasuje do każdego drugiego pakietu
  • counter - określa, który licznik użyć. Licznik inkrementuje za każdym razem, gdy zasada dopasuje pakiet
  • packet - dopasowuje pod względem danego numeru pakietu. Wartość z oczywistych względów musi zawierać się między 0 i every. Jeśli tak opcja jest użyta dla danego licznika, to musi być przynajmniej every+1 zasad z tą opcja, zmieniając wszystkie wartości między 0 i every włącznie

out-bridge-port (name) - aktualny interfejs, który pakiet opuszcza przez router (jeśli jest zmostkowany, ta własność dopasuje się do aktualnego portu mostka, podczas gdy out-interface do samego mostka)

out-interface (name) - interfejs, który pakiet opuszcza przez router (jeśli interfejs jest zmostkowany, to pakiet będzie wyglądał, jakby opuścił przez interfejs mostka)

p2p (all-p2p | bit-torrent | direct-connect | edonkey | fasttrack | gnutella | soulseek | warez | winmx) - dopasowuje pakiety należące do połączeń przez powyższe protokoły P2P

packet-mark (name) - dopasowuje pakiety oznaczone w markerze specjalnymi znacznikami

packet-size (integer: 0..65535, integer: 0..65535) - dopasowuje pakiety o określonej objętości w bajtach

  • min - określa dolną granice wielkości pliku, lub pojedynczą wartość
  • max - określa górną granicę wielkości pliku

passthrough (yes | no; domyślnie: yes) - czy pozwolić pakietowi przejść dalej (jak akcja passthrough) po oznaczeniu go danym znacznikiem (własność działa tylko jeśli akcją jest markowanie pakietu, połączenie lub znacznik)

port (port{0-16}) - dopasowuje jeśli jakikolwiek (źródłowy lub docelowy) port pasuje do określonej listy portów (zauważ, że protokół nadal musi być wybrany, tak jak dla src-port i dst-port)

protocol (ddp | egp | encap | ggp | gre | hmp | icmp | idrp-cmtp | igmp | ipencap | ipip | ipsec-ah | ipsec-esp | iso-tp4 | ospf | pup | rdp | rspf | st | tcp | udp | vmtp | xns-idp | xtp | integer) - dopasowuje konkretny protokół IP określony przez nazwę lub numer. Powinieneś określić to ustawienie, jeśli chcesz określić porty

psd (integer,time,integer,integer) - próbuje zdetekować skanowanie TCP i UDP. Radzimy przypisać mniejszą wagę do portów z dużymi numerami celem redukcji częstości występowania fałszywych potwierdzeń, np. jak w passive mode FTP

  • WeightThreshold - całkowita waga ostatnich pakietów TCP/UDP z różnymi portami docelowymi pochodzącymi z takich samych hostów traktowanych jako sekwencje skanowania portów
  • DelayThreshold - opóźnienie pakietów z różnymi portami docelowymi pochodzącymi z tego samego hosta, traktowane jak możliwe podsekwencje skanowania portów
  • LowPortWeight - waga pakietu z uprzywilejowanym (<=1024) portem docelowym
  • HighPortWeight - waga pakietu z nieuprzywilejowanym portem docelowym

random (integer: 1..99) - dopasowuje pakiety losowo z danym prawdopodobieństwem

routing-mark (name) - dopasowuje pakiety markowane określonym znacznikiem

src-address (IP address/netmask | IP address-IP address) - określa zakres adresów z którego pochodzi pakiet IP. Pamiętaj, że konsola konwertuje wprowadzone adresy/maski sieciowe na prawidłowe adresy sieciowe, np. 1.1.1.1/24 jest konwertowane na 1.1.1.0/24

src-address-list (name) - dopasowuje adres źródłowy pakietu ze względu na listę adresową zdefiniowaną przez użytkownika

src-address-type (unicast | local | broadcast | multicast) - dopasowuje tym adresu źródłowego pakietu IP, jeden z:

  • unicast - adresy IP użyte do transmisji z jednego punktu do drugiego. W tym przypadku jest tylko jeden nadawca i jeden odbiorca
  • local - dopasowuje pakiety przypisane do interfejsu routera
  • broadcast - pakiet IP jest wysyłany z jednego punktu do wszystkich innych punktów w podsieci IP
  • multicast - ten typ adresowania IP jest odpowiedzialny za transmisję z jednego lub więcej punktów do zbioru innych punktów

src-mac-address (MAC address) - adresy MAC źródeł

src-port (integer: 0..65535-integer: 0..65535) - numer portu źródłowego

tcp-flags (multiple choice: ack | cwr | ece | fin | psh | rst | syn | urg) - flagi tcp do dopasowania

  • ack - dane potwierdzające
  • cwr - zredukowane okno przeciążenia
  • ece - flaga ECN-echo (explicit congestion notification)
  • fin - zakończenie połączenia
  • psh - funkcja push
  • rst - odrzuć połączenie
  • syn - nowe połączenie
  • urg - ważne dane

tcp-mss (integer: 0..65535) - dopasowuje wartość TCP MSS pakietu IP

time (time: sat | fri | thu | wed | tue | mon | sun) - pozwala na stworzenie filtru bazującego na czasie przybicia pakietów i dacie, bądź dla lokalnie wygenerowanych pakietów, czas i data wyjścia