Vychytávky v iptables



Podobné dokumenty
Firewall, mac filtering, address filtering, port forwarding, dmz. Ondřej Vojtíšek, Jakub Niedermertl

Firewal ing v Linuxe

Zjednodusene zaklady prace s IPTABLES Jiri Kubina jiri.kubina@osu.cz Ver. 1.1 zari 2006

GUIDELINES FOR CONNECTION TO FTP SERVER TO TRANSFER PRINTING DATA

User manual SŘHV Online WEB interface for CUSTOMERS June 2017 version 14 VÍTKOVICE STEEL, a.s. vitkovicesteel.com

PRAVIDLA ZPRACOVÁNÍ STANDARDNÍCH ELEKTRONICKÝCH ZAHRANIČNÍCH PLATEBNÍCH PŘÍKAZŮ STANDARD ELECTRONIC FOREIGN PAYMENT ORDERS PROCESSING RULES

Instalace. Samotný firewall již je s největší pravděpodobností nainstalovaný Zjistíme dle parametru při použití. aptitude search iptables

POPIS TUN TAP. Vysvetlivky: Modre - překlad Cervene - nejasnosti Zelene -poznamky. (Chci si ujasnit o kterem bloku z toho schematu se mluvi.

WORKSHEET 1: LINEAR EQUATION 1

Téma 11: Firewall v CentOS. Nastavení firewallu

Tento materiál byl vytvořen v rámci projektu Operačního programu Vzdělávání pro konkurenceschopnost.

Osobní firewall s iptables

Postup objednávky Microsoft Action Pack Subscription

Introduction to MS Dynamics NAV

Transportation Problem

VY_32_INOVACE_06_Předpřítomný čas_03. Škola: Základní škola Slušovice, okres Zlín, příspěvková organizace

BEZPEČNOST SLUŽEB NA INTERNETU

Social Media a firemní komunikace

Vánoční sety Christmas sets

Czech Republic. EDUCAnet. Střední odborná škola Pardubice, s.r.o.

Operační systémy 2. Firewally, NFS Přednáška číslo 7b

CODE BOOK NEISS 8. A code book is an identification tool that allows the customer to perform a test result evaluation using a numeric code.

půjčky do 3 tisic jedna noc. Do hlavního vysílacího času se pak mají vrátit některé programy, jako třeba Ozák. Incident 1:Since I started the Qubee

Téma 8. Náklady kapitálu. Kapitálová struktura a její optimalizace

Y36SPS: Firewalling laborka

Automatika na dávkování chemie automatic dosing

UŽIVATELSKÁ PŘÍRUČKA

DC circuits with a single source

PART 2 - SPECIAL WHOLESALE OFFER OF PLANTS SPRING 2016 NEWS MAY 2016 SUCCULENT SPECIAL WHOLESALE ASSORTMENT

Gymnázium, Brno, Slovanské nám. 7 WORKBOOK. Mathematics. Teacher: Student:

Problém identity instancí asociačních tříd

Uživatelská příručka. Xperia P TV Dock DK21

2N LiftIP. IO Extender. Communicator for Lifts. Version

EU přijímá nový program pro bezpečnější internet: 55 milionů EUR na bezpečnější internet pro děti

Škola: Střední škola obchodní, České Budějovice, Husova 9. Inovace a zkvalitnění výuky prostřednictvím ICT

PB169 Operační systémy a sítě

2N Voice Alarm Station

LOGBOOK. Blahopřejeme, našli jste to! Nezapomeňte. Prosím vyvarujte se downtrade

Základní konfigurace Linux firewallu

ové služby na IPv6-only

18.VY_32_INOVACE_AJ_UMB18, Frázová slovesa.notebook. September 09, 2013

Arduino Ethernet Shield W5100 R3

Sociální sítě jako Velký bratr. Martin Klubal AEC a.s.

IP protokol v linuxu trocha teorie a hodně praxe příkazy ip, iptables a další.

EURO přeshraniční platba

POSLECH. Cinema or TV tonight (a dialogue between Susan and David about their plans for tonight)

Zubní pasty v pozměněném složení a novém designu

Síť LAN. semestrální práce X32PRS Ondřej Caletka ČVUT V PRAZE, Fakulta Elektrotechnická

Jak importovat profily do Cura (Windows a

PAINTING SCHEMES CATALOGUE 2012

World cup #9 and #10 Czech republic

Připojení internetového modulu econet300 Do regulátoru ecomax 810P3-L TOUCH.

Číslo materiálu: VY 32 INOVACE 29/18. Číslo projektu: CZ.1.07/1.4.00/

Výukový materiál zpracovaný v rámci operačního programu Vzdělávání pro konkurenceschopnost

SPECIFICATION FOR ALDER LED

BEZPEČNOST SLUŽEB NA INTERNETU

Výukový materiál zpracovaný v rámci projektu EU peníze do škol. illness, a text

VELKÁ CENA HRADCE KRÁLOVÉ A KRÁLOVÉHRADECKÉHO KRAJE V PLAVÁNÍ 2. ročník ČESKÝ POHÁR V PLAVÁNÍ 1. kolo:

Anotace Mgr. Filip Soviš (Autor) Angličtina, čeština Speciální vzdělávací potřeby - žádné -

AIC ČESKÁ REPUBLIKA CZECH REPUBLIC

Firewally a iptables. Přednáška číslo 12

Aktivita CLIL Chemie I.

Projekt: ŠKOLA RADOSTI, ŠKOLA KVALITY Registrační číslo projektu: CZ.1.07/1.4.00/ EU PENÍZE ŠKOLÁM

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49

WL-5480USB. Quick Setup Guide

Informace o písemných přijímacích zkouškách. Doktorské studijní programy Matematika

Škola: Střední škola obchodní, České Budějovice, Husova 9. Inovace a zkvalitnění výuky prostřednictvím ICT

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Tabulka 1 Stav členské základny SK Praga Vysočany k roku 2015 Tabulka 2 Výše členských příspěvků v SK Praga Vysočany Tabulka 3 Přehled finanční

Routování na Mikrotiku

CZ.1.07/1.5.00/

Úvod do iptables aneb UN*Xové firewally

Database systems. Normal forms

Název projektu: Multimédia na Ukrajinské

Manuál pro vyplnění přihlášky

Configuration vs. Conformation. Configuration: Covalent bonds must be broken. Two kinds of isomers to consider

Škola: Střední škola obchodní, České Budějovice, Husova 9. Inovace a zkvalitnění výuky prostřednictvím ICT

Aplikace matematiky. Dana Lauerová A note to the theory of periodic solutions of a parabolic equation

Anotace Mgr. Filip Soviš (Autor) Angličtina, čeština Speciální vzdělávací potřeby - žádné -

Litosil - application

Travelling Rules for Inbounds in District 2240 Czechia and Slovakia

USING VIDEO IN PRE-SET AND IN-SET TEACHER TRAINING

Instalace Pokyny pro instalaci v operačním systému Windows XP / Vista / Win7 / Win8

2. Entity, Architecture, Process

WYSIWYG EDITOR PRO XML FORM


II_ _Listening Pracovní list č. 2.doc II_ _Listening Pracovní list č. 3.doc II_ _Listening Řešení 1,2.doc

ActiPack rozšířil výrobu i své prostory EMBAX Od ledna 2015 jsme vyrobili přes lahviček či kelímků. Děkujeme za Vaši důvěru!

Fytomineral. Inovace Innovations. Energy News 04/2008

PRAVIDLA ZPRACOVÁNÍ EXPRESNÍCH ELEKTRONICKÝCH DOMÁCÍCH PLATEBNÍCH PŘÍKAZŮ EXPRESS ELECTRONIC DOMESTIC PAYMENT ORDERS PROCESSING RULES

Immigration Studying. Studying - University. Stating that you want to enroll. Stating that you want to apply for a course.

Immigration Studying. Studying - University. Stating that you want to enroll. Stating that you want to apply for a course.

nftables budoucnost linuxového firewallu Petr Krčmář 18. listopadu 2014

Progressive loyalty V1.0. Copyright 2017 TALENTHUT

Mechanika Teplice, výrobní družstvo, závod Děčín TACHOGRAFY. Číslo Servisní Informace Mechanika:

Výukový materiál zpracovaný v rámci operačního programu Vzdělávání pro konkurenceschopnost

Hi-Res Audio/DNC Headset MDR-NC750

VOŠ, SPŠ automobilní a technická. Mgr. Marie Šíchová. At the railway station

TKGA3. Pera a klíny. Projekt "Podpora výuky v cizích jazycích na SPŠT"

Gymnázium a Střední odborná škola, Rokycany, Mládežníků 1115

Transkript:

1 NAT NAT neboli Network Address Translation je technika vyvinutá především kvůli omezení velikosti IPv4 adresního prostoru. Jeho princip spočívá jednoduše řečeno v tom, že se určité (privátní)ipadresy schovají zaveřejnouadresou,pomocíkterésepakpočítačeznašísítě prokazují za jejími hranicemi. Nemalou výhodou NATování je vyšší bezpečnost zařízení za NATem. Rozlišujeme DNAT, SNAT a speciální případ SNATu Masquerade. Pravidla pro NAT se na GNU/Linuxu dnes dělají pomocí iptables. Na ipmasqadm můžete v klidu zapomenout(stejně jste o něm nikdy neslyšeli;o)). Samozřejmě, jak už je u iptables zvykem, musíte mít příslušnou podporu v jádře, ať už jako moduly nebo staticky zakompilovanou. Na následujícím obrázku můžeme vidět, jak procházejí pakety skrz jádro. Všimněme si zejména řetězců PREROUTING a POSTROUTING, neboť ty jsou pro nás teď nejpodstatnější. Všimněme si také řetězce FORWARD zde pakety také protékají, proto nezapomeňme na povolení forwardingu: echo 1 > /proc/sys/net/ipv4/ip_forward Středisko UN*Xových technologií 1

1.1 SNAT SNAT neboli Source NAT je technika při které se mění zdrojová(source) IP adresa. Máme-li např. PC s adresou 192.168.1.5 za routerem který dělá SNAT na adresu 147.32.105.30, pak přistupujeme-li do internetu, prokazujeme se právě adresu 147.32.105.30. Jinými slovy, když máte na SH pokoji 2 počítače, notebook, IP kameru, WiFi AP, lednici, žehličku a pračku snic,můžete 1 všechnatatozařízenípropojitdosvéprivátnísítě,zjednohopcudělat router,zanatovatvšechnatazařízenízanímarouterpřipojitksítish.vašeledniceteď můževeseleklábositosvýchzkaženýchpotravináchnainternetuanikdonepozná 2,žeksíti není připojen pouze jeden počítač tak, jak je to dovoleno. Ale k věci. Důležitá informace pro sestavování pravidel je, že SNAT se provádí po routování. Samotné nastavení SNATu je jednoduché, uveďme si 3 příklady: Změna adresy na jednu konkrétní: # iptables -t nat -A POSTROUTING-o eth0 -j SNAT --to 1.2.3.4 Změna adresy na jednu z rozsahu: # iptables -t nat -A POSTROUTING-o eth0 -j SNAT \ --to 1.2.3.4-1.2.3.9 Změna adresy a portu: # iptables -t nat -A POSTROUTING-p tcp -o eth0 -j SNAT \ --to 1.2.3.4:1-1023 1.1.1 Masquerade neboli maškaráda Maškaráda je zvláštní a zároveň asi nejpoužívanější případ SNATu. Všechny stroje za NATem se schovávají za jedno jediné IPčko, které je přiřazeno routeru. Tento případ NATu budete potřebovat, pokud si budete chtít doma(načerno:o)) připojit do sítě providera více počítačů. Jeho hlavní výhoda je použití dynamicky přiřazené adresy, ovšem používá se i při pevně přidělené adrese. Nastavení maškarády je veskrze jednoduché: # iptables -t nat -A POSTROUTING-o eth0 -j MASQUERADE A můžete vesele brouzdat netem dokud na vás nepřijdou:o)) 1.2 DNAT DNAT neboli Destination NAT je naopak technika, při níž se mění cílová(destination) adresa IP zařízení. Můžete tak realizovat port forwarding, transparentní proxování atd. Důležitá avšak jasná připomínka DNAT se provádí před routováním. 1 Nemůžete;o) 2 Pokudovšemnebudechtít... Středisko UN*Xových technologií 2

Opět několik příkladů DNATu: Změna cílové adresy na jinou: # iptables -t nat -A PREROUTING-i eth0 -j DNAT --to 5.6.7.8 Změna cílové adresy na jinou ze zadaného rozsahu: # iptables -t nat -A PREROUTING-i eth0 -j DNAT --to 5.6.7.8-5.6.7.10 Přesměrovánívšehocopřijdenaport80najinýstrojnaport8080: # iptables -t nat -A PREROUTING-p tcp --dport 80 -i eth0 \ -j DNAT --to 5.6.7.8:8080 Přesměrování(redirect) na transparentní proxy: # iptables -t nat -A PREROUTING-i eth1 -p tcp --dport 80 \ -j REDIRECT --to-port 3128 1.3 Závěrem k NATu Ukázali jsme si jak nastavit NAT. Ještě než toto téma opustíme, zmíníme pár(ne)zajímavých detailů o způsobu fungování tohoto mechanizmu: NAT se snaží měnit konexe minimálním možným způsobem, pokud to jde, zachovává čísla portů. Portyjsourozdělenydo3tříd(do512,512 1023,1024avýše),přemapováváníportů (pokudnanějdojde)seprovádívrámcijednétřídy. Některéprotokoly(např.ftp)senemajísNATemrády,buďsesnimimusíterozloučit nebo můžete použít některé patche do iptables. NAT tabulka je použita pouze pro první paket spojení, proto nemá cenu v PREROU- TING a POSTROUTING řetězcích vymýšlet nějaká filtrovací pravidla. Na to je určen především řetězec FORWARD. HlavnívýhodaDNATuspočívávtom,žemůžemeschovatsvéserveryasměrovatnaně pouze konkrétní povolené konexe. Středisko UN*Xových technologií 3

2 Podmíněné otvírání portů V této kapitole se budeme bavit o portknockingu. Portknocking je technika, při které se otevírají porty teprve po poslání správných paketů na správné porty. Realizovat portknocking je možné více metodami- použitím démonu knockd, iptables aj. My, protože se bavíme o iptables, si ukážeme realizaci pomocí tohoto nástroje. Úvodem je třeba zmínit, že zaklepání naportyjenutnéprovéstvesprávnémpořadí.nížeuvedenýskriptjemožnéještě vylepšit např. požadavkem na konkrétní nastavený příznak u jednotlivých paketů(syn, ACK, FIN...), jednak časovým limitem pro provedení celého portknockingu apod. 2.1 Nejdříve něco o ipt recent Základem všeho je iptablový modul ipt recent. Jeho manuálovou stránku najdete na konci této kapitoly, než postoupíte k samotnému skriptu si ji určitě přečtěte. 2.2 Hurá na věc Pokud už máte představu jak recent modul funguje, můžeme se směle pustit do sestavení pravidel. Následuje skript, který můžeme buď přímo použít, nebo si jej upravit k obrazu svému. Jeho fungování probereme na přednášce, nicméně nebojte se experimentovat;o) HOST_IP="12.34.56.78" /sbin/iptables-n INTO-PHASE2 /sbin/iptables-a INTO-PHASE2-m recent --name PHASE1 --remove /sbin/iptables-a INTO-PHASE2-m recent --name PHASE2 --set /sbin/iptables-a INTO-PHASE2-j LOG --log-prefix"into PHASE2:" /sbin/iptables-n INTO-PHASE3 /sbin/iptables-a INTO-PHASE3-m recent --name PHASE2 --remove /sbin/iptables-a INTO-PHASE3-m recent --name PHASE3 --set /sbin/iptables-a INTO-PHASE3-j LOG --log-prefix"into PHASE3:" /sbin/iptables-a INPUT -m recent --update--name PHASE1 /sbin/iptables-a INPUT -p tcp --dport 100 -m recent \ --set --name PHASE1 /sbin/iptables-a INPUT -p tcp --dport 200 -m recent \ --rcheck--name PHASE1 -j INTO-PHASE2 /sbin/iptables-a INPUT -p tcp --dport 300 -m recent \ --rcheck--name PHASE2 -j INTO-PHASE3 /sbin/iptables-a INPUT -p tcp -s HOST_IP--dport 22 -m recent \ --rcheck--seconds 5 --name PHASE3 -j ACCEPT A jak port otevřít? Potřebujeme poslat pár paketů na konkrétní porty, což můžeme udělat např. pomocí netcatu, telnetu apod. Středisko UN*Xových technologií 4

2.3 Manuálová stránka modulu recent ipt_recent Allows you to dynamicallycreate a list of IP addresses and then match against that list in a few differentways. For example,you can create a badguy list out of people attemptingto connect to port 139 on your firewall and then DROP all future packets from them without considering them. --name name Specify the list to use for the commands.if no name is given then DEFAULT will be used. [!] --set This will add the source address of the packet to the list. If the source address is already in the list, this will update the existing entry. This will always return success(or failure if! is passed in). [!] --rcheck Check if the source address of the packet is currentlyin the list. [!] --update Like --rcheck, except it will update the "last seen" timestamp if it matches. [!] --remove Check if the source address of the packet is currentlyin the list and if so that address will be removedfrom the list and the rule will return true. If the addressis not found, false is returned. [!] --secondsseconds This option must be used in conjunction with one of --rcheck or --update. When used, this will narrow the match to only happen when the address is in the list and was seen within the last given number of seconds. [!] --hitcounthits This option must be used in conjunction with one of --rcheck or --update. When used, this will narrow the match to only happen when the address is in the list and packetshad been received greaterthan or equal to the given value. This option may be used along with --secondsto create an even narrower match requiring a certain number of hits within a specific time frame. --rttl This option must be used in conjunction with one of --rcheck or --update. Středisko UN*Xových technologií 5

When used, this will narrow the match to only happen when the address is in the list and the TTL of the currentpacket matches that of the packet which hit the --set rule. This may be useful if you have problems with people faking their source addressin order to DoS you via this module by disallowing others access to your site by sending bogus packets to you. Examples: # iptables -A FORWARD -m recent --name badguy --rcheck --seconds 60 -j DROP # iptables -A FORWARD -p tcp -i eth0 --dport 139 -m recent --name badguy \ --set -j DROP Official website (http://snowman.net/projects/ipt_recent/) also has some examples of usage. /proc/net/ipt_recent/* are the current lists of addresses and information about each entry of each list. Each file in /proc/net/ipt_recent/ can be read from to see the current list or written two using the following commands to modify the list: echo xx.xx.xx.xx > /proc/net/ipt_recent/default to Add to the DEFAULT list echo -xx.xx.xx.xx > /proc/net/ipt_recent/default to Remove from the DEFAULT list echo clear > /proc/net/ipt_recent/default to empty the DEFAULT list. The module itself accepts parameters, defaults shown: ip_list_tot=100 Number of addresses remembered per table ip_pkt_list_tot=20 Number of packets per address remembered ip_list_hash_size=0 Hash table size. 0 means to calculate it based on ip_list_tot, default: 512 ip_list_perms=0644 Permissions for /proc/net/ipt_recent/* files debug=0 Set to 1 to get lots of debugging info Středisko UN*Xových technologií 6

3 Závěr Sestavit pravidla pro jednoduchý NAT by nyní neměl být problém. Nicméně zkuste se např. zamyslet nad problematikou dvojitého NATu, určitě vám to trochu potrápí mozkové závity. Seznámili jsme se také s realizací portknockingu pomocí iptables, pokud jej budete někde zkoušet, zkuste trochu experimentovat. Také se zamyslete, jak portknocking udělat co nejbezpečnější, aby vám schovávaný port neotevřel např. portscan, nebo proč hrozí nebezpečí že člověkuněhožjerouterkvašílincevámtenportdokážeotevřít. 4 Literatura Víceseoprobranýchtématechdozvítevnásledujícíliteratuře 3 : http://laurel.datsi.fi.upm.es/cgi-bin/man/man2html?iptables+8 manuálové stránky zmíněných programů NAT howto Netfilter Double NAT HOWTO http://iptables-tutorial.frozentux.net/(russelův iptables tutoriál, nejkvalitnější čtení oiptables) 5 O tomto dokumentu Tento dokument byl vysázen v systému LATEX. Autor se omlouvá za nedokonalou sazbu a problémy s některými fonty, ovšem již nezbývá čas zabývat se kompatibilitou s Acrobat Readerem. Věcné chyby reportujte na k.dedecius@sh.cvut.cz nebo na webových stránkách projektu SUT http://sut.sh.cvut.cz. Tento dokument byl připraven jako pomůcka k přednášce Vychytávky v iptables. Můžete jej volně šířit. 3 Nenícitovánapodlenormy,alezatoměsnadpopotahovatnebudete:o)) Středisko UN*Xových technologií 7