Fórum Ubuntu CZ/SK
Ostatní => Tipy a triky pro Linux => Téma založeno: LS 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
sudo ifconfig eth0 192.168.1.1 netmask 255.255.255.0
Na 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)
(http://www.volny.cz/lukas_svoboda/ubuntu/router.png)
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)
nameserver MMM.NNN.OOO.PPP
IP adresu nastavíte příkazem
sudo ifconfig eth0 192.168.1.2 netmask 255.255.255.0
a výchozí bránu příkazem
sudo route add default gw 192.168.1.1
Pokud 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
sudo apt-get install firehol
Konfigurace 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ě.
#
# $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
sudo firehol restart
Nyní 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
-
Dobry. Na Wiki s tim! :)
-
Souhlas ať se dá doplňovat a editovat. Je to dobře rozepsaný.
-
Prosim te a bude mi i pres to fungovat znackovani paketu pro HTB ?
-
Nevim, HTB nepouzivam. Podle http://gentoo-wiki.com/HOWTO_Packet_Shaping by to ale nemel byt problem.
-
Mas pravdu s HTB neni problem.
-
Značkování paketů funguje bez problému, htb pro cca 400pc mi běží lépe než na fedoře :)
-
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
-
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.
-
;)
-
Zaujima ma co v tom configu znamena cast ? Co to robi ?
server_icq_ports="tcp/5190"
client_icq_ports="default"
-
Definujes si vlastni sluzbu, viz http://firehol.sourceforge.net/adding.html , se kterou muzes dal pracovat (client icq accept)
-
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
-
azureus je torrent, ne? ja mam v configu
# Bittorrent. tcp ports 6881 to 6999
server_torrent_ports="tcp/6881:6999"
client_torrent_ports="default"
-
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í...
-
Jakym kabelem to mate propojene? Krizenym nebo nekrizenym?
Poslete vypis ifconfig z Linuxu a ipconfig /all z Windows. Poslete take vypis firehol.conf.
-
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
-
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.
-
a co multicastove routovani a multicastovy nat?
-
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.
-
...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.
-
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?
-
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?
-
navod zcela prepracovan
-
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?
-
Našel jsem pěkný generátor na skript pro nastavení iptables, má připravenu ochranu proti známějším útokům, po vygenerování jsem ho lehce upravil a nyní mi routuje provoz pro 30 počítačů...
http://easyfwgen.morizot.net/gen/
-
Bohužel, nepodařilo se mi zprovoznit routování pomocí tohoto nového configu :( Proto zde uvedu ten, pod kterým mi vše šlapalo ok. Opravdu nevím, čím to je (Kód uvádím celý, ale důležité jsou jen poslední tři řádky).
# 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 eth1 internal
protection strong 10/sec 10
policy drop
server dns accept
server http accept
server https accept
server netbios_ns accept
server netbios_dgm accept
server netbios_ssn accept
server samba accept
server squid accept
server ssh accept
server icmp accept
server ping accept
client all accept
interface eth0 external
protection strong 10/sec 10
policy drop
server ssh accept
client dns accept
client icmp accept
client ping accept
client telnet accept
client http accept
client https accept
client ftp accept
client ntp accept
client ssh accept
client icq accept
client jabber accept
client webcache accept
router internal2external inface eth1 outface eth0
masquerade
route all accept
-
všechno jsem udělal dle návodu, ale při zadání "sudo firehol restart" mi to hodí hromadu chyb a nakonec napíše, že obnovuje původní nastavení firewallu.
Chyby vypadají takto:
--------------------------------------------------------------------------------
ERROR : # 2.
WHAT : A runtime command failed to execute (returned error 2).
SOURCE : line INIT of /etc/firehol/firehol.conf
COMMAND : /sbin/iptables -t filter -A in_internal_ssh_s1 -p tcp --sport 1024:65535 --dport 22 -m state '' --state NEW\,ESTABLISHED -j ACCEPT
OUTPUT :
Try `iptables -h' or 'iptables --help' for more information.
Bad argument `'
--------------------------------------------------------------------------------
ERROR : # 3.
WHAT : A runtime command failed to execute (returned error 2).
SOURCE : line INIT of /etc/firehol/firehol.conf
COMMAND : /sbin/iptables -t filter -A out_internal_ssh_s1 -p tcp --sport 22 --dport 1024:65535 -m state '' --state ESTABLISHED -j ACCEPT
OUTPUT :
Try `iptables -h' or 'iptables --help' for more information.
Bad argument `'
...
Stopped: Couldn't activate new firewall.
FireHOL: Restoring old firewall: OK
Děkuji za kažkou radu.
-
Na jake verzi Ubuntu to zkousite? Na Feisty FireHOL zatim nefunguje, viz. nekolik dalsich vlaken zde ve foru.
-
Ano, je to zapříčiněno mojí verzí Ubuntu.
-
Po týdenním nezdárném hledání jsem našel odvahu se zeptat.
Mám PC (Ubuntu FF 3 týdny) připojené na Internet přes síťovku, Internet běží v pohodě.
Chci toto pripojení zazdílet přes Wifi svému NB s Wifi modulem (Ubuntu FF/Windows).
Poradíte mi, nebo odkážete na nějaké linky se zdílením Internetu přes WiFi.
Wifi v PC by mohla pracovat bez problémů: iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
eth1 no wireless extensions.
ra0 RT2500 Wireless ESSID:""
Mode:Managed Frequency=2.412 GHz Bit Rate=11 Mb/s Tx-Power:0 dBm
RTS thr:off Fragment thr:off
Link Quality=0/100 Signal level=-120 dBm Noise level:-197 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Díky
-
Na jake verzi Ubuntu to zkousite? Na Feisty FireHOL zatim nefunguje, viz. nekolik dalsich vlaken zde ve foru.
Postupoval jsem podle tohoto (http://ubuntuforums.org/showthread.php?p=2545135) návodu a dle veškerých online testů mi firehol opět jede bez problémů.
-
Pls pooomoooc!!! Nedari se mi si zdilet pres ubuntu net. Pls poradte kde je chyba?
Diky moooc
eth0 Link encap:Ethernet HWaddr 00:E0:4C:F0:03:E4
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::2e0:4cff:fef0:3e4/64 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:278 errors:0 dropped:0 overruns:0 frame:0
TX packets:177 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:22473 (21.9 KiB) TX bytes:10728 (10.4 KiB)
Interrupt:17 Base address:0x4800
root@ubuntu:~# ifconfig eth1
eth1 Link encap:Ethernet HWaddr 00:0E:2E:31:3D:6B
inet addr:192.168.1.141 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20e:2eff:fe31:3d6b/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2104 errors:0 dropped:0 overruns:0 frame:0
TX packets:215 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:140325 (137.0 KiB) TX bytes:25968 (25.3 KiB)
Interrupt:18 Base address:0x8c00
Windows:
Ip adresa: 192.168.1.2
Maska podsite : 255.255.255.0
Vychozi brana : 192.168.1.1
DNS: 192.168.1.1
Firehol :
#
# $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 ssh accept dst
route http accept dst
route https 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
Jeste jendou diky za jakekoliv info!!!
-
Podobné se řeší v http://forum.ubuntu.cz/index.php?topic=14748.msg106873;topicseen#new
Přispívejte tam.
-
Tento příspěvek je na doplnění prvního výborného návodu Lukáše Svobody. Je vytvořen na základě zkušeností a opakovaných dotazů na fóru, zejména s důrazem na nastavení routovací tabulky.
Znaky "<>" jsou uvozeny příkazy, když budete některé zde popsané příkazy používat, tyto znaky tam nepište !
*--------------------------------------------------------------------------------------
Pro dobrou funkci sítí a routování - předáváni paketů na Linux PC jsou potřebné tři předpoklady
1. Nastavení IP adres.
2. Nastavení default route.
3. Zapnutí, či spuštění předávání paketů.
1. Nastavení IP adres je dobře popsáno v příspěvku #1. Jen krátce doplním.
Pokud na jsou na PC zároveň windows a v nich je síť funkční, je možné zjistit tyto údaje z windows.
Zjistit se dají jednak přes GUI na kartě "Okolní počítače", nebo v příkazovém řádku příkazem <ipconfig /all>
Tyto hodnoty vložíte na příslušná místa v Linuxu buď v grafickém nastavení sítě, nebo v příkazovém řádku
2. Nastavení default route
Proč je routovací tabulka důležitá je stručně popsáno v http://forum.ubuntu.cz/index.php?topic=14521.msg104719;topicseen#msg104719 (http://forum.ubuntu.cz/index.php?topic=14521.msg104719;topicseen#msg104719)
Nastavení default route přiblíženo znamená "Cesta pro odeslání všech paketů, které sem nepatří"
Routovací tabulka v jádře Linuxu se ovládá příkazem <route>. Její změnu ale může provést také nějaký network manager, tak i skript, který spouští síť.
Je možné např. nastavit default route přidáním řádku: <gateway 10.20.30.1> do souboru "/etc/network/interfaces" do sekce odpovídajícího rozhraní.
Pak se při startu sítě nastaví v routovací tabulce hodnota default route na stroj s IP 10.20.30.1. Tento způsob se využije při ručním nastavování parametrů rozhraní.
Obsah směrovací tabulky vypíšeme v terminálu příkazem <sudo route>.
Příklad nastavení routování jednoduché sítě s bránou do internetu popsané v #1.
IP adresa tohoto PC je 192.168.1.2 a je zde jedno rozhraní
Směrovací tabulka na tomto PC s jedním rozhraním (jednou síťovou kartou) vypadá takto:
Směrovací tabulka v jádru pro IP
Adresát Brána Maska Přízn Metrik Odkaz Užt Rozhraní
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
*----------------------------------------------------------------------------
Na prvním řádku je směr na síť. Určuje, přes které rozhraní mají jít pakety určené do sítě, ve které je PC adresováno - 192.168.1.0. Pakety pro všechny počítače v síti 192.168.1.0, to je 192.168.1.1 až 192.168.1.254 jsou poslány přes rozhraní eth0. (Přes jiné to nejde, je tu jen jedno).
Na druhém řádku je defaultní směr, to je IP adresa PC přes který se pošlou pakety do všech jiných sítí. Překvapivě je to taky přes rozhraní eth0, protože toto je stroj jen s jednou síťovou kartou a jinam to poslat nejde. Celek je ovšem v pořádku, protože jak toto PC, tak i gateway jsou na stejné síti, tedy jednotlivá PC "na sebe vidí".
Další příklad ukazuje routovací tabulku na bráně - gatewayi.
IP adresy tohoto PC jsou dvě: eth1 je vnější internetové rozhraní, IP AAA.BBB.CCC.DDD, maska 255.255.255.0
eth0 je vnitřní síť, IP 192.168.1.1, maska 255.255.255.0
Jedná se o gateway z vnitřní sítě do internetu. Je zde prováděno předávání paketů mezi oběma sítěmi (viz obrázek v #1).
Směrovací tabulka v jádru pro IP
Adresát Brána Maska Přízn Metrik Odkaz Užt Rozhraní
AAA.BBB.CCC.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 AAA.BBB.CCC.1 0.0.0.0 UG 0 0 0 eth1
*----------------------------------------------------------------------------
Trošičku nám přituhlo, ale pustíme se do toho.
Na 1. řádku je směr do sítě AAA.BBB.CCC.0, přes rozhraní eth1.
Na 2. řádku je směr do vnitřní sítě 192.168.1.0, přes rozhraní eth0.
Na 3. řádku je defaultní směr - je uvedena IP adresa PC na které mají být pakety adresovány a rozhraní přes které mají být poslány. (PC s adresou AAA.BBB.CCC.1 na obrázku není vidět, je "schované" někde v bublině s nápisem internet).
Funguje to takto. Ze stanice je odeslán paket do internetu (www.....). Z routovací tabulky systém zjistí, že paket nemá adresu lokální sítě a pošle jej přes rozhraní eth0 na PC s adresou default gatewaye, tedy 192.168.1.1.
Gateway paket převezme a zjistí opět že nemá jinou cestu kam jej poslat, než na svůj default GW, to je na další "hop" v internetu. Ale ještě před tím, než jej odešle, si jej zaznamená, aby při odpovědi věděl, kam ji má poslat (masquerading).
Příkazem <route> s parametry můžeme routovací tabulku "ručně" změnit. Je ale nutné tak činit s rozmyslem. Routovací tabulka se nedá nastavit do nějakých default hodnot. Dá se upravit, nebo vymazat.
Vypíšeme tu pouze nastavení defaultního směru, který může být z nějakých příčin špatně.
nejprve defaultní směr smažeme (ono jich tam může být více a to způsobí problémy).
<sudo route del default>
A nastavíme správný směr:
<sudo route add default gw EEE.FFF.GGG.HHH>
Za písmena doadíme hodnotu "výchozí brány" zjištěné potupně ve windows, nebo v informacích od providera.
A to je vše ...
Zapomněli jsme na bod 3., zapnout předávání paketů. To obvykle zajistí nějaký firewall, LS to ve svém příspěvku předpokládá a nepopisuje. Ručně se to dá způsobit příkazem <sudo echo 1 > /proc/sys/net/ipv4/ip_forward>. (Ta šipka doprava tam patří) V podstatě zapsat do souboru "/proc/sys/net/ipv4/ip_forward" jedničku. Má smysl ale pouze na strojích se dvěma rozhraními, které mají routovat, jinak je nepotřebné.
V tomto okamžiku máte dostatek informací ke konfiguraci jak jednotlivého PC, tak i domácí sítě. Jednotlivé příkazy a konfiguraci rozhraní neuvádím, jsou stokrát popsány zde na fóru.
Happy networKING :)
-
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í...
Chtělo by to, aby jsi sem napsal jakou verzi Ubuntu jsi použil a lhece naznačil jak jsi nastavil klientský PC, předpokládam, že na serveru jsi se držel návodu. Možná když sem napíšeš něco víc, tak ti někdo pomůže, ale když řekneš že ti to nefunguje, asi nikdo nepujde k tobě domu a opraví ti to (neber si to nějak osobně)
-
Zdravim, ja sem se drzel presne navodu ale nepodarilo se mi spustit firehol(v. 1.231-7)
maximus@maximus-laptop:~$ sudo firehol restart
--------------------------------------------------------------------------------
ERROR #: 1
WHAT : Running simple rules for server 'smtp'
WHY : Cannot understand directive 'in_incoming_smtp_s2'.
COMMAND: route smtp accept dst
SOURCE : line 38 of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 2
WHAT : Running simple rules for server 'smtp'
WHY : Simple service 'smtp' returned an error (1).
COMMAND: route smtp accept dst
SOURCE : line 38 of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 3
WHAT : Running simple rules for server 'pop3s'
WHY : Cannot understand directive 'in_incoming_pop3s_s3'.
COMMAND: route pop3s accept dst
SOURCE : line 39 of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 4
WHAT : Running simple rules for server 'pop3s'
WHY : Simple service 'pop3s' returned an error (1).
COMMAND: route pop3s accept dst
SOURCE : line 39 of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 5
WHAT : Running simple rules for server 'imaps'
WHY : Cannot understand directive 'in_incoming_imaps_s4'.
COMMAND: route imaps accept dst
SOURCE : line 40 of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 6
WHAT : Running simple rules for server 'imaps'
WHY : Simple service 'imaps' returned an error (1).
COMMAND: route imaps accept dst
SOURCE : line 40 of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 7
WHAT : Running simple rules for server 'ssh'
WHY : Cannot understand directive 'in_incoming_ssh_s5'.
COMMAND: route ssh accept dst
SOURCE : line 41 of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 8
WHAT : Running simple rules for server 'ssh'
WHY : Simple service 'ssh' returned an error (1).
COMMAND: route ssh accept dst
SOURCE : line 41 of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 9
WHAT : Running simple rules for server 'http'
WHY : Cannot understand directive 'in_incoming_http_s6'.
COMMAND: route http accept dst
SOURCE : line 42 of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 10
WHAT : Running simple rules for server 'http'
WHY : Simple service 'http' returned an error (1).
COMMAND: route http accept dst
SOURCE : line 42 of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 11
WHAT : Running simple rules for server 'https'
WHY : Cannot understand directive 'in_incoming_https_s7'.
COMMAND: route https accept dst
SOURCE : line 43 of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 12
WHAT : Running simple rules for server 'https'
WHY : Simple service 'https' returned an error (1).
COMMAND: route https accept dst
SOURCE : line 43 of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 13
WHAT : Setting up rules for initial FTP connection server
WHY : Cannot understand directive 'in_incoming_ftp_s8'.
COMMAND: route ftp accept dst
SOURCE : line 44 of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 14
WHAT : Setting up rules for initial FTP connection server
WHY : Complex service 'ftp' returned an error (1).
COMMAND: route ftp accept dst
SOURCE : line 44 of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 15
WHAT : Running simple rules for server 'rdp'
WHY : Cannot understand directive 'in_incoming_rdp_s9'.
COMMAND: route rdp accept dst
SOURCE : line 45 of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 16
WHAT : Running simple rules for server 'rdp'
WHY : Simple service 'rdp' returned an error (1).
COMMAND: route rdp accept dst
SOURCE : line 45 of /etc/firehol/firehol.conf
FireHOL: Restoring old firewall: OK
-
max007: tipuji ze to zkousite v Ubuntu 7.04 - bohuzel v teto verzi Ubuntu FireHOL nefunguje.
-
ano, nejspise se jeste jednalo o 7.04.
-
jo mel bych jeden dotaz doma mam presne takovou sitakorat misto prvniho pocitace je router a do nej je zapojeny muj pocitac s ubuntu linux a taky pocitac od tatika s win xp a jak sdilet soubory mezi temito dvema pocitaci??
Kdyz zadam ping na router tak se pingne ale na tatikuv pocitac ne.
Prosim poradte.
-
zdravim mam podobni problem ako max007
az na ten warning a mam opacne eth0 a eth1 ale v configu som to prepisal a ubuntu bi som mal mat 8,04 server
WARNING
File '/etc/firehol/RESERVED_IPS' is more than 90 days old.
You should update it to ensure proper operation of your firewall.
Run the supplied get-iana.sh script to generate this file.
FireHOL: Saving your old firewall to a temporary file: OK
FireHOL: Processing file /etc/firehol/firehol.conf:
--------------------------------------------------------------------------------
ERROR #: 1
WHAT : Running simple rules for server 'smtp'
WHY : Cannot understand directive 'in_incoming_smtp_s2'.
COMMAND: route smtp accept dst
SOURCE : line INIT of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 2
WHAT : Running simple rules for server 'smtp'
WHY : Simple service 'smtp' returned an error (1).
COMMAND: route smtp accept dst
SOURCE : line INIT of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 3
WHAT : Running simple rules for server 'pop3s'
WHY : Cannot understand directive 'in_incoming_pop3s_s3'.
COMMAND: route pop3s accept dst
SOURCE : line INIT of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 4
WHAT : Running simple rules for server 'pop3s'
WHY : Simple service 'pop3s' returned an error (1).
COMMAND: route pop3s accept dst
SOURCE : line INIT of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 5
WHAT : Running simple rules for server 'imaps'
WHY : Cannot understand directive 'in_incoming_imaps_s4'.
COMMAND: route imaps accept dst
SOURCE : line INIT of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 6
WHAT : Running simple rules for server 'imaps'
WHY : Simple service 'imaps' returned an error (1).
COMMAND: route imaps accept dst
SOURCE : line INIT of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 7
WHAT : Running simple rules for server 'ssh'
WHY : Cannot understand directive 'in_incoming_ssh_s5'.
COMMAND: route ssh accept dst
SOURCE : line INIT of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 8
WHAT : Running simple rules for server 'ssh'
WHY : Simple service 'ssh' returned an error (1).
COMMAND: route ssh accept dst
SOURCE : line INIT of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 9
WHAT : Running simple rules for server 'http'
WHY : Cannot understand directive 'in_incoming_http_s6'.
COMMAND: route http accept dst
SOURCE : line INIT of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 10
WHAT : Running simple rules for server 'http'
WHY : Simple service 'http' returned an error (1).
COMMAND: route http accept dst
SOURCE : line INIT of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 11
WHAT : Running simple rules for server 'https'
WHY : Cannot understand directive 'in_incoming_https_s7'.
COMMAND: route https accept dst
SOURCE : line INIT of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 12
WHAT : Running simple rules for server 'https'
WHY : Simple service 'https' returned an error (1).
COMMAND: route https accept dst
SOURCE : line INIT of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 13
WHAT : Setting up rules for initial FTP connection server
WHY : Cannot understand directive 'in_incoming_ftp_s8'.
COMMAND: route ftp accept dst
SOURCE : line INIT of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 14
WHAT : Setting up rules for initial FTP connection server
WHY : Complex service 'ftp' returned an error (1).
COMMAND: route ftp accept dst
SOURCE : line INIT of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 15
WHAT : Running simple rules for server 'rdp'
WHY : Cannot understand directive 'in_incoming_rdp_s9'.
COMMAND: route rdp accept dst
SOURCE : line INIT of /etc/firehol/firehol.conf
--------------------------------------------------------------------------------
ERROR #: 16
WHAT : Running simple rules for server 'rdp'
WHY : Simple service 'rdp' returned an error (1).
COMMAND: route rdp accept dst
SOURCE : line INIT of /etc/firehol/firehol.conf
NOTICE: No changes made to your firewall.
FAILED
FireHOL: Restoring old firewall: OK
-
odpoviem si sam
router incoming inface eth1 outface eth0 # ktere sluzby uvnitr site budou pristupne zvenku, viz. Tipy na konci navodu
route ssh accept dst
route http accept dst
route https accept dst
po odstraneni "dst" to uz error nehadze ale aj tak mi nejde net na pripojenom pc s win xp
ale mozno bude problem v firewalle v ubuntu
-
Hloupý dotaz, uznávám předem..se zapnutým fireholem po restartu networkingu mi funguje přístup do netu z ostatních pc v síti. (síť tvořena serverem Debian 4.0 rc.4 s usb modemem cdma na ppp0 a kartou eth0, + 2 pc s win xp sp3) Adresy pro pc a nastavení sítě jim posílá dhcp3-server. ddclient se zapnutým fireholem se asi pere protože se na moje registrovanou adresu "něco.homelinux.net" nepřihlásím. Se zapnutým fireholem se nepřihlásím na adresu https://debian:10000 kde by měl čekat (a čeká) webmin. Také nefunguje ping debian z jiného pc v síti..host nenalezen je odpověď...když vypnu firehol (etc/init.d/firehol stop) a restartnu síť (/etc/init.d/networking restart) tak se sice na net nedostanu, ale funguje ping debian i přihlášení se na do webmina...použil jsem config z prvního příspěvku se změnami eth1->ppp0; eth0=eth0 a odstranil jsem dst.
btw..dá se editovat to co provedou příkazy networking start a restart ? jak přidat pon cdma ?
Děkuji za trpělivost
-
Super článek. Funguje mi na 8.04.1..
Mám dotaz k této větě :
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).
JAK mám nastavit přesměrování portů aby byl viditelná z netu můj Apache když jsem připojený do netu cestou cdma modemu, mám registrovanou dyndns službu a ddclienta spouštěného jako deamona..karta pro vnitřní síť je eth0..
Díky za info..
+ doplňuji otázkou :
podařilo se někomu rozchodit torrenty z vnitřní sítě..na lokálech mám win xp a zkoušel jsem různé možnosti a nic nefunguje....
-
Vím, že je to už velmi staré vlákno, ale i v novém Ubuntu podle tohoto návodu router funguje.
Chtěl bych ale vědět jak nastavit routování pro dva počítače. Mám eth0 jako WAN a eth1 do 1. počítače. Mám doma několik síťových karet a jednu bych chtěl použít ještě pro další PC abych nemusel kvůli jednomu počítači kupovat switch. Eth0 má adresu DHCP, eth1 192.168.1.1, a eth2 jestli má být v síti jako eth1 (tedy např. 192.168.1.100) nebo v další síti např. 192.168.2.1
Tedy jak nastavit tu druhou síťovku eth2 aby šel internet do obou PC a zároveň sdílení souboru mezi oběma PC.