Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Blog Ubuntu -- Správa "projektů" české komunity Ubuntu

Novinky: Školení nejen k OS Ubuntu pro širokou veřejnost, více informací zde.

Autor Téma: [HOWTO] - Ubuntu jako firewall, router, gateway  (Přečteno 43883 krát)

Lukáš Svoboda

  • Závislák
  • ****
  • Příspěvků: 3839
  • Karma: +177/-11
    • Zobrazit profil
    • http://linux.euweb.cz
[HOWTO] - Ubuntu jako firewall, router, gateway
« kdy: 06 Září 2006, 16:28:01 »
!!! POZOR !!! POZOR !!! POZOR !!! POZOR !!! POZOR !!! POZOR !!! POZOR !!!
Návod zcela přepracován, opraven 22.1.2007


Snad nejčastější otázka, která se zde ve fóru opakuje, je "Jak použít počítač s Ubuntu, připojený k internetu, pro sdílení připojení pro další počítače?". Možných řešení je mnoho, pokusím se nastínit jedno, velmi jednoduché, efektivní a podle mého názoru i bezpečné. Lze jej snadno použít i pro připojení a zabezpečení celé menší domácí nebo firemní počítačové sítě.

1. Konfigurace IP
Centrem celého řešení je počítač se dvěma síťovými kartami (eth0, eth1) a s nainstalovaným Ubuntu 6.06 nebo 6.10.
Tento počítač je síťovou kartou eth1 trvale připojen k internetu. Naprosto nehraje roli, jestli má toto rozhraní veřejnou nebo privátní adresu (za NAT), jestli je IP nastavena staticky nebo přes DHCP. Konfiuraci IP pro toto rozhraní stanovuje poskytovatel připojení k internetu. Rekněme, že se jedná o tyto hodnoty:
IP adresa: AAA.BBB.CCC.DDD
Maska: EEE.FFF.GGG.HHH
Výchozí brána: III.JJJ.KKK.LLL
DNS server: MMM.NNN.OOO.PPP

Druhá síťová karta tohoto počítače (eth0) může mýt připojena přímo kříženým kabelem k dalšímu počítači, nebo nekříženým kabelem k nějakému aktivnímu prvku (např. switch), ke kterému budou připojeny další počítače.
Na rozhraní eth0 provedeme nastavení pro privátní síť, například takto:
IP adresa: 192.168.1.1
Maska: 255.255.255.0
Totoho nastavení dosáhneme zadáním příkazu
Kód: [Vybrat]
sudo ifconfig eth0 192.168.1.1 netmask 255.255.255.0Na ostatních počítačích, které se prostřednictvím "serveru" s Ubuntu budou připojovat k internetu, provedeme nastavení takto:
IP adresa: 192.168.1.2 (na poslední pozici cokoliv 2-254)
Maska: 255.255.255.0 (stejná jako maska na rozhraní eth0 serveru)
Výchozí brána: 192.168.1.1 (ip adresa rozhraní eth0 serveru)
DNS server: MMM.NNN.OOO.PPP (stejný jako DNS server používaný serverem)



Na strojích s Windows XP tyto hodnoty zadáte v Local Area Connection -> Properties -> Internet Protocol (TCP/IP) -> Properties.
Na strojich s Linuxem DNS server nastavte v souboru /etc/resolv.conf (adresu nastavte podle vaší potřeby)
Kód: [Vybrat]
nameserver MMM.NNN.OOO.PPPIP adresu nastavíte příkazem
Kód: [Vybrat]
sudo ifconfig eth0 192.168.1.2 netmask 255.255.255.0a výchozí bránu příkazem
Kód: [Vybrat]
sudo route add default gw 192.168.1.1Pokud nyní zkusíte ping na adresu serveru, pakety by měly správně přicházet.
Vše lze výrazně zjednodušit nainstalováním a nastavením DHCP serveru na počítač s přímým připojením k internetu.

2. Firewall, routování
V Ubuntu je k dispozici celá řada nástrojů pro konfiguraci iptables. Po vyzkoušení řady z nich jsem si vybral FireHOL. Nemá (nebo má?) sice pěkné grafické klikací rozhraní jako třeba Firestarter, zato razí zásadu, která se mi nesmírně líbí: Jednoduché věci se dají dělat jednoduše, zároveň ale není nijak znemožněno nebo znepříjemněno nastavování složitějších konstrukcí. FireHOL nainstalujeme zadáním příkazu
Kód: [Vybrat]
sudo apt-get install fireholKonfigurace firewallu je uložeba v souboru /etc/firehol/firehol.conf, jako příklad uvádím stav s povolenými pouze základními službami pro odchozí spojení (http, https, ftp, dns, ssh, icq, jabber apod.). Serverové služby jsou zakázané. Další nastavení najdete na domovské stránce FireHOLu: http://firehol.sourceforge.net/
V posledních řádcích je definované směrování z internetu do privátní sítě.
Kód: [Vybrat]
#
# $Id: client-all.conf,v 1.2 2002/12/31 15:44:34 ktsaou Exp $
#
# This configuration file will allow all requests originating from the
# local machine to be send through all network interfaces.
#
# No requests are allowed to come from the network. The host will be
# completely stealthed! It will not respond to anything, and it will
# not be pingable, although it will be able to originate anything
# (even pings to other hosts).
#

version 5

# Accept all client traffic on any interface
# interface any world
# client all accept

DEFAULT_CLIENT_PORTS="1024:65535"

server_icq_ports="tcp/5190"
client_icq_ports="default"

interface eth0 internal
        protection      strong  10/sec  10
        policy          drop
        server  ssh     accept # povolime ssh pripojeni k serveru z vnitrni site
        client  all     accept

interface eth1 external
        protection      strong  10/sec  10
        policy  drop
        server  ssh     accept # povolime ssh pripojeni k serveru z vnejsi site
        client  all     accept

router  incoming inface eth1 outface eth0 # ktere sluzby uvnitr site budou pristupne zvenku, viz. Tipy na konci navodu
        route   dns     accept
        route   smtp    accept  dst
        route   pop3s   accept  dst
        route   imaps   accept  dst
        route   ssh     accept  dst
        route   http    accept  dst
        route   https   accept  dst
        route   ftp     accept  dst
        route   rdp     accept  dst

router  outgoing inface eth0 outface eth1 # ktere sluzby v internetu budou pristupne zevnitr site
        masquerade # chceme provadet preklad adres
        route   dns     accept
        route   smtp    accept
        route   pop3    accept
        route   pop3s   accept
        route   imap    accept
        route   imaps   accept
        route   http    accept
        route   https   accept
        route   ftp     accept
        route   rdp     accept
        route   icq     accept
        route   jabber  accept
        route   rsync   accept
Firewall aktivujete úpravou souboru /etc/default/firehol (START_FIREHOL=NO změňte na START_FIREHOL=YES)
a zadáním
Kód: [Vybrat]
sudo firehol restartNyní můžete na všech počítačích přistupovat na internet, v rámci privátní sítě můžete všechno. Firehol se automaticky spouští s každým startem počítače.
V případě zájmu o FireHOL rád blíže vysvětlím jeho funkci a jednotlivé položky v konfiguračním souboru.
Tip: Pokud chcete uvnitr vasi site provozovat nejake servery dostupne z internetu, potrebujete pro tyto stroje verejne IP adresy (nebude se provadet maskarada) nebo je nutne na stavit presmerovani prislusnych portu na pozadovany stroj (stroje).
Tip: Lze kombinovat volby src a dst, tím lze docílit povolení spojení mezi předem určenou dvojicí strojů.
Tip: Lze uvést více povolených IP adres, pak se seznam adres uzavře do uvozovek.
Tip: Lze uvádět rozsahy IP adres ve tvaru IP_adresa/maska, např. 192.168.1.0/24 nebo 192.168.1.0/255.255.255.0

Jere

  • Stálý člen
  • ***
  • Příspěvků: 625
  • Karma: +4/-1
    • Zobrazit profil
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #1 kdy: 06 Září 2006, 18:16:03 »
Dobry. Na Wiki s tim! :)

Tomáš "Piškot" Petera

  • Stálý člen
  • ***
  • Příspěvků: 839
  • Karma: +26/-7
    • Zobrazit profil
    • http://www.spolnet.cz
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #2 kdy: 06 Září 2006, 18:33:06 »
Souhlas ať se dá doplňovat a editovat. Je to dobře rozepsaný.
Už to funguje ... tedy než se rozhodnu to zase poladit.

Míla Zajíček

  • Návštěvník
  • *
  • Příspěvků: 71
  • Karma: +0/-0
    • Zobrazit profil
    • http://www.screenprotector.cz
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #3 kdy: 06 Září 2006, 20:54:38 »
Prosim te a bude mi i pres to fungovat znackovani paketu pro HTB ?
HP Mini 5103 Atom N550 ArchLinux
HTPC: Ubuntu Server 11.10
 www.screenprotector.cz Ochranné fólie na PDA, Fotoaparáty a mobilní telefony.

Lukáš Svoboda

  • Závislák
  • ****
  • Příspěvků: 3839
  • Karma: +177/-11
    • Zobrazit profil
    • http://linux.euweb.cz
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #4 kdy: 06 Září 2006, 21:25:40 »
Nevim, HTB nepouzivam. Podle http://gentoo-wiki.com/HOWTO_Packet_Shaping by to ale nemel byt problem.

Míla Zajíček

  • Návštěvník
  • *
  • Příspěvků: 71
  • Karma: +0/-0
    • Zobrazit profil
    • http://www.screenprotector.cz
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #5 kdy: 10 Září 2006, 15:54:52 »
Mas pravdu s HTB neni problem.
HP Mini 5103 Atom N550 ArchLinux
HTPC: Ubuntu Server 11.10
 www.screenprotector.cz Ochranné fólie na PDA, Fotoaparáty a mobilní telefony.

Tomáš "Piškot" Petera

  • Stálý člen
  • ***
  • Příspěvků: 839
  • Karma: +26/-7
    • Zobrazit profil
    • http://www.spolnet.cz
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #6 kdy: 13 Září 2006, 16:20:19 »
Značkování paketů funguje bez problému, htb pro cca 400pc mi běží lépe než na fedoře :)
Už to funguje ... tedy než se rozhodnu to zase poladit.

zigi

  • Člen
  • **
  • Příspěvků: 389
  • Karma: +2/-0
    • Zobrazit profil
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #7 kdy: 13 Září 2006, 18:02:21 »
nevidim to poprve a asi ne naposled:
Proc pro domaci sit pouzivate IP adresy tridy A a ne C?

Dale, co je to znackovani paketu HTB?

thx
..:: be free - use kubuntu ::..

Lukáš Svoboda

  • Závislák
  • ****
  • Příspěvků: 3839
  • Karma: +177/-11
    • Zobrazit profil
    • http://linux.euweb.cz
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #8 kdy: 13 Září 2006, 18:15:17 »
Pro priklad jsem pouzil 10.0.0.0/24, tedy jedno cecko. Asi mate pravdu ze by se mela dodrzovat doporuceni, 10.x.x.x rozsah je definovany jako jedno acko a naopak 192.168.0.0 jako 256 cecek. Co nejdrive IP adresy pouzite v prikladu zmenim.

P.S. pro ty co nevedi o cem je rec: vsechno bude fungovat i s IP adresami v privatni siti 10.0.0.x, jen to neni uplne v souladu s RFC1918.

zigi

  • Člen
  • **
  • Příspěvků: 389
  • Karma: +2/-0
    • Zobrazit profil
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #9 kdy: 13 Září 2006, 18:55:39 »
;)
..:: be free - use kubuntu ::..

DaedRuaN

  • Člen
  • **
  • Příspěvků: 147
  • Karma: +3/-0
  • Co je osobni text ? :P
    • Zobrazit profil
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #10 kdy: 17 Říjen 2006, 23:30:39 »
Zaujima ma co v tom configu znamena cast ? Co to robi ?
Kód: [Vybrat]
server_icq_ports="tcp/5190"
client_icq_ports="default"
Rozumies co ja chapem ? ;D

Jere

  • Stálý člen
  • ***
  • Příspěvků: 625
  • Karma: +4/-1
    • Zobrazit profil
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #11 kdy: 17 Říjen 2006, 23:32:06 »
Definujes si vlastni sluzbu, viz http://firehol.sourceforge.net/adding.html , se kterou muzes dal pracovat (client icq      accept)

DaedRuaN

  • Člen
  • **
  • Příspěvků: 147
  • Karma: +3/-0
  • Co je osobni text ? :P
    • Zobrazit profil
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #12 kdy: 17 Říjen 2006, 23:48:59 »
Jasne, to som nechapal ze naco sa to definuje ale prave som tiez pozeral na ten topic s tvojim configom a tam to Lukas vysvetlil. Neviete mi este povedat na akom protokole a porte bezi Azureus alebo ako to zadefinovat ? Vdaka
Rozumies co ja chapem ? ;D

Jere

  • Stálý člen
  • ***
  • Příspěvků: 625
  • Karma: +4/-1
    • Zobrazit profil
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #13 kdy: 18 Říjen 2006, 00:00:24 »
azureus je torrent, ne?  ja mam v configu
# Bittorrent. tcp ports 6881 to 6999
server_torrent_ports="tcp/6881:6999"
client_torrent_ports="default"

Koko

  • Návštěvník
  • *
  • Příspěvků: 9
  • Karma: +0/-0
    • Zobrazit profil
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #14 kdy: 21 Říjen 2006, 19:45:53 »
Já mám internet do jednoho compa(linux) a z toho vede kabel do druhýho(xp). Udělal jsem to přesně podle návodu, ale na 2. pořád nejde internet :( spolu myslim komunikují...

Lukáš Svoboda

  • Závislák
  • ****
  • Příspěvků: 3839
  • Karma: +177/-11
    • Zobrazit profil
    • http://linux.euweb.cz
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #15 kdy: 21 Říjen 2006, 19:57:23 »
Jakym kabelem to mate propojene? Krizenym nebo nekrizenym?
Poslete vypis ifconfig z Linuxu a ipconfig /all z Windows. Poslete take vypis firehol.conf.

Koko

  • Návštěvník
  • *
  • Příspěvků: 9
  • Karma: +0/-0
    • Zobrazit profil
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #16 kdy: 21 Říjen 2006, 20:41:35 »
Je to kříženým kabelem a firehol tam nemám.

eth0      Zapouzdření:Ethernet  HWadr 00:08:A1:77:70:BE
          inet adr:192.168.1.2  Všesměr:192.168.1.255  Maska:255.255.255.0
          inet6-adr: fe80::208:a1ff:fe77:70be/64 Rozsah:Linka
          AKTIVOVÁNO VŠESMĚROVÉ_VYSÍLÁNÍ BĚŽÍ MULTICAST  MTU:1500  Metrika:1
          RX packets:1779 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1786 errors:0 dropped:0 overruns:0 carrier:0
          kolizí:0 délka odchozí fronty:1000
          Přijato bajtů: 774230 (756.0 KiB) Odesláno bajtů: 223964 (218.7 KiB)
          Přerušení:209 Vstupně/Výstupní port:0xe000

eth1      Zapouzdření:Ethernet  HWadr 00:11:2F:CF:FD:71
          inet adr:10.0.0.1  Všesměr:10.0.0.255  Maska:255.255.255.0
          inet6-adr: fe80::211:2fff:fecf:fd71/64 Rozsah:Linka
          AKTIVOVÁNO VŠESMĚROVÉ_VYSÍLÁNÍ BĚŽÍ MULTICAST  MTU:1500  Metrika:1
          RX packets:5803 errors:0 dropped:0 overruns:0 frame:0
          TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
          kolizí:0 délka odchozí fronty:1000
          Přijato bajtů: 362850 (354.3 KiB) Odesláno bajtů: 4154 (4.0 KiB)
          Přerušení:201

lo        Zapouzdření:Místní smyčka
          inet adr:127.0.0.1  Maska:255.0.0.0
          inet6-adr: ::1/128 Rozsah:Počítač
          AKTIVOVÁNO SMYČKA BĚŽÍ  MTU:16436  Metrika:1
          RX packets:5 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
          kolizí:0 délka odchozí fronty:0
          Přijato bajtů: 272 (272.0 b) Odesláno bajtů: 272 (272.0 b)

Konfigurace protokolu IP systému Windows



        Název hostitele . . . . . . . . . : mourek

        Primární přípona DNS. . . . . . . :

        Typ uzlu  . . . . . . . . . . . . : smíšený

        Povoleno směrování IP . . . . . . : Ne

        WINS Proxy povoleno . . . . . . . : Ne



Adaptér sítě Ethernet Připojení k místní síti 2:



        Přípona DNS podle připojení . . . :

        Popis . . . . . . . . . . . . . . : Realtek RTL8139 Family PCI Fast Ethe

rnet NIC #2

        Fyzická Adresa. . . . . . . . . . : 00-08-A1-77-72-5B

        Protokol DHCP povolen . . . . . . : Ne

        Adresa IP . . . . . . . . . . . . : 10.0.0.2

        Maska podsítě . . . . . . . . . . : 255.255.255.0

        Výchozí brána . . . . . . . . . . : 10.0.0.1

        Servery DNS . . . . . . . . . . . : 10.0.0.1

Lukáš Svoboda

  • Závislák
  • ****
  • Příspěvků: 3839
  • Karma: +177/-11
    • Zobrazit profil
    • http://linux.euweb.cz
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #17 kdy: 21 Říjen 2006, 20:58:11 »
Citace: Koko
Je to kříženým kabelem a firehol tam nemám.
V minulem prispevku jste napsal, ze jste to nastavil "presne podle toho navodu" a hned o prispevek dal pisete "firehol tam nemam".

Jak tedy resite routovani z jedne site do druhe? Rucni konfiguraci iptables?

IP adresy mate nastavene spravne. Firehol tam neni jenom kvuli firewallu, ale take nastavuje routovani.

zigi

  • Člen
  • **
  • Příspěvků: 389
  • Karma: +2/-0
    • Zobrazit profil
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #18 kdy: 21 Říjen 2006, 22:26:45 »
a co multicastove routovani a multicastovy nat?
..:: be free - use kubuntu ::..

Koko

  • Návštěvník
  • *
  • Příspěvků: 9
  • Karma: +0/-0
    • Zobrazit profil
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #19 kdy: 22 Říjen 2006, 09:47:11 »
Citace: lukas.svoboda
Citace: Koko
Je to kříženým kabelem a firehol tam nemám.
V minulem prispevku jste napsal, ze jste to nastavil "presne podle toho navodu" a hned o prispevek dal pisete "firehol tam nemam".

Jak tedy resite routovani z jedne site do druhe? Rucni konfiguraci iptables?

IP adresy mate nastavene spravne. Firehol tam neni jenom kvuli firewallu, ale take nastavuje routovani.
Aha, tak firehol jsem tam taky hodil se stejným cofigem jako je nahoře, ale jde mi jenom icq, skype atd...normální prohlížeč mi nejde. To dělá ten firewall? Jak ho mám vypnout já potřebuju jenom aby to routovalo.

Lukáš Svoboda

  • Závislák
  • ****
  • Příspěvků: 3839
  • Karma: +177/-11
    • Zobrazit profil
    • http://linux.euweb.cz
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #20 kdy: 22 Říjen 2006, 19:32:19 »
Citace: Koko
...jde mi jenom icq, skype atd...normální prohlížeč mi nejde...
Blokovane pakety se loguji do souboru /var/log/kern.log. Sledujte v tomto souboru jestli se blokuje neco, co by se blokovat nemelo.

parm

  • Návštěvník
  • *
  • Příspěvků: 4
  • Karma: +0/-0
    • Zobrazit profil
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #21 kdy: 23 Říjen 2006, 15:03:25 »
Zkuste nastavit ve windows jako DNS server misto 10.0.0.1 adresu DNS poskytovatele pripojeni. Server 10.0.0.1 patrne nepreklada adresy. Jeste se mi nezda u toho eth0 ta adresa 192.168.1.2 jste si jist, ze tuto Vam pridelil poskytovatel pripojeni? Problem je, pokud provider jede pres DHCP. Nevite nekdo jak na to?

fentomas

  • Návštěvník
  • *
  • Příspěvků: 2
  • Karma: +0/-0
    • Zobrazit profil
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #22 kdy: 01 Prosinec 2006, 00:37:14 »
V \etc mě do \firehol vůbec nepustí, že nemám potřebná oprávnění. Jak je to možné, když jsem zprávce a jediný user na tomto PC?

Lukáš Svoboda

  • Závislák
  • ****
  • Příspěvků: 3839
  • Karma: +177/-11
    • Zobrazit profil
    • http://linux.euweb.cz
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #23 kdy: 22 Leden 2007, 04:00:33 »
navod zcela prepracovan

hunter

  • Návštěvník
  • *
  • Příspěvků: 1
  • Karma: +0/-0
    • Zobrazit profil
[HOWTO] - Ubuntu jako firewall, router, gateway
« Odpověď #24 kdy: 29 Leden 2007, 08:32:20 »
Návod je to dobrý ale mám problém nevíte o nějakém návodu přes itables na routing nechci použivat firehol jen kvůli routování a firewali plánuji jiný.Je tu nějaký takový boss co mi poradí  dělal to někdo přes ITABLES?