Prekladateľ: Miroslav Nadhajský
Pôvodný text: http://www.howtoforge.com/nat-gateway-iptables-port-forwarding-dns-and-dhcp-setup-ubuntu-8.10-server
Takže, si tiež dosť chudobný na to aby si si kúpil daľší drahý router a chceš robiť veci sám? Našiel si správny tutoriál! Tento tutoriál ti ukáže ako nastaviť Ubuntu 8.10 router s NAT, port forwardingom , DNS serverom a DHCP serverom.
Prečo Ubuntu?
Nielen Ubuntu je výborný operačný systém, je tiež veľmi flexibilný a výkonný... Poznámka: Reštartuj počítač po každom kroku. Zaručí ti to že všetko bude určite pracovať správne.
Nejaké základné veci, ktoré budeme potrebovať sú..
DHCP - dhcp3-server
DNS - bind9
iptables - obsiahnuté v ubuntu
Budeš potrebovať 2 sieťové karty. Zober prvú kartu a pripoj ju do WAN pripojenia. Mal by si vedieť ktorá karta je to, eth0 eth1 atď... Ak nevieš ktorá je ktorá, skúšaj.
Povedzme že WAN karta bude eth0 (ak je eth1, tak všetko rovnako, akurát musíš príslušne prispôsobiť konfiguráciu). Chceme zobraziť súbor /etc/network/interfaces. Použime naň príkaz vi
sudo vi /etc/network/interfaces
Takto to má vyzerať (ak si doteraz nič nenastavoval):
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
Ideme pridávať text do tohto súboru (Ak nevieš ako používať vi, použi nano alebo sa nauč vi).
auto eth0
iface eth0 inet dhcp
Kód auto eth0 znamená že pri boote sa má naštartovať eth0, podobne ako keby pustíme
sudo ifconfig eth0 up
Kód iface eth0 inet dhcp znamená že rozhranie eth0 vyhľadá DHCP server a získa odtiaľ info. Je to dôležité, najmä ak si pripojený cez káblový modem, kedže chceš získať verejnú IP od tvojho poskytovateľa internetu (ISP).
Ďaľší krok je nastavenie sieťovej karty eth1. To bude tvoja "LAN" karta.
Ak si spomínaš, naša /etc/network/interfaces konfigurácia vyzerala:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
Ideme tento súbor znova editovať a pridáme zopár riadkov:
sudo vi /etc/network/interfaces
Pridaj tieto riadky na koniec súboru.
auto eth1
iface eth1 inet static
address 172.17.207.121
netmask 255.255.255.0
broadcast 172.17.207.255
network 172.17.207.0
Toto ti len nastaví statickú IP pre tvoj server na LAN karte.
Teraz by ten súbor mal vyzerať takto:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet static
address 172.17.207.121
netmask 255.255.255.0
broadcast 172.17.207.255
network 172.17.207.0
Teraz, skôr ako zabudneme, editujme /etc/hosts súbor.
sudo vi /etc/hosts
Urob to nech ten súbor vyzerá ako môj, ale ak chceš volať svoj server userve alebo myserver, môžeš to kludne zmeniť.
A tiež si všimni meno domény asus.local, je dobre používať svoje, ako mydomain.local ale pre potreby vzdelávania môžeš použiť moje.
Používame .local pretože je ľahké si to zapametať a nie je verejné, a ničomu to nebude prekážať.
127.0.0.1 localhost server.localhost
172.17.207.121 server.asus.local server asus.local
Teraz máme naše rozhrania nakonfigurované a ideme inštalovať a nastavovať DHCP server. Na inštalovanie DHCP serveru pusti tento príkaz
sudo apt-get install dhcp3-server
Poďme editovať dhcpd.conf súbor.
sudo vi /etc/dhcp3/dhcpd.conf
Teraz ak ten súbor niečo obsahuje, tak to zmaž.
Toto skopíruj a vlož do svojho súboru, potom to zapíš a ukonči vi.
ddns-update-style none;
option domain-name "whatever.local"; //zmen si to ako chces napr. mydomain.local
option domain-name-servers 172.17.207.121, 24.92.226.41; //zmen si druhú adresu na adresu lokálneho DNS servera tvojho ISP
option routers 172.17.207.121;
default-lease-time 42300;
max-lease-time 84600;
authoritative;
log-facility local7;
subnet 172.17.0.0 netmask 255.255.255.0 {
range 172.17.207.1 172.17.207.100; //tu si môžes zväčšiť rozsah do .254
}
Teraz pusti príkaz
sudo /etc/init.d/dhcp3-server start
To ti naštartuje DHCP server, a môžme túto časť označiť za ukončenú.
Bind je DNS balíček ktorý budeme používať. Pre inštaláciu spusti
sudo apt-get install bind9
Stiahne a nainštaluje ti to náš bind server.
Začneme príkazom
vi /etc/bind/named.conf
V tom súbore vymaž všetko, skopíruj tam toto a hľadaj tam moje poznámky, označené //.
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local
include "/etc/bind/named.conf.options";
// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/etc/bind/db.root";
};
// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912
zone "asus.local" { //zmeň asus.local tak, ako si si nazval svoju doménu, napr. mydomain.local
type master;
file "/etc/bind/zones/asus.local.db"; //toto je súbor alebo zložka, ktorá neexistuje a budeme ju musieť vytvoriť
};
zone "207.17.172.in-addr.arpa" {
type master;
file "/etc/bind/zones/rev.207.17.172.in-addr.arpa";///toto je tiež súbor, ktorý neexistuje a budeme ho musieť vytvoriť
};
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
include "/etc/bind/named.conf.local";
Pred tým ako vytvoríme dva súbory, asus.local.db a rev.207.17.172.in-addr.arpa, potrebujeme ešte jeden súbor editovať.
sudo vi /etc/bind/named.conf.options
Odstráň jeho celý obsah a použi toto...
options {
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.
forwarders {
24.92.226.41; //veľmi dôležité, zmeň to na lokálny DNS server(y) tvojho ISP
24.92.224.40;
};
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
Dávaj pozor na poznámky, treba zmeniť adresy našich forwarderov na lokálny DNS poskytovateľa (ISP).
Ďalej vytovríme zložku a editujeme nový súbor:
cd
/etc/bind/
sudo mkdir zones
cd zones
sudo vi asus.local.db
(Alebo použi meno domény napr. mydomain.local.db, to ktoré si napísal do /etc/bind/named.conf)
Vož do toho súboru toto, a nezabudni patrične zmeniť meno domény.
$ORIGIN .
$TTL 4000 ;
asus.local. IN SOA server.asus.local. admin.asus.local. (
2007031001 ; serial
28800 ; refresh
3600 ; retry
604800 ; expire
38400 ; min
)
NS server.asus.local.
$ORIGIN asus.local.
IN A 172.17.207.121
www IN A 172.17.207.121 //príklad
server IN A 172.17.207.121 //príklad
macpro IN A 172.17.207.4 //príklad
Ak teraz pustíš makro nslookup macpro, dostaneš odpoveď 172.17.207.4, takže si zmeň doménové mená a IP adresy na svoje nastavenia.
Ďalej ideme editovať súbor rev.207.17.172.in-addr.arpa, ktorý ešte neexisuje. Takže ak si stále v zložke zones:
vi rev.207.17.172.in-addr.arpa
Vlož do neho nasledujúci text s prislúchajúcimi zmenami.
$ORIGIN .
$TTL 28800 ; 8 hours
207.17.172.IN-ADDR.ARPA IN SOA server.asus.local. admin.asus.local. (
2008110601 ; serial
28800 ; refresh (8 hours)
7200 ; retry (2 hours)
604800 ; expire (1 week)
86400 ; minimum (1 day)
)
NS server.asus.local.
$ORIGIN 207.17.172.IN-ADDR.ARPA.
4 PTR macpro.asus.local.
Takže teraz ak spravíš reverzný lookup na 172.17.207.4, mal by si dostať macpro.asus.local.
Teraz spustíme named:
sudo /etc/init.d/named start
Ak to nenaštartovalo, pozri logy v /var/logs.
Najskôr potrebujeme editovať sysctl.conf v zložke /etc/, takže:
sudo vi /etc/sysctl.conf
Odkomentuj riadok 28. Teda zo začiatku odstráň #. Ten riadok by mal byť net.ipv4.ip_forward=1
Ďalej edituj rc.local:
sudo vi /etc/rc.local
Pridaj tieto dva riadky na koniec súboru:
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables --table nat -A POSTROUTING -o eth0 -j MASQUERADE
Toto ti nastaví bránu použitím iptables. Ale môžeš použiť iptables aby si toto spravil oveľa bezpečnejšie, ako len toto základné nastavenie.
Na forwardovanie(smerovanie) portov môžeš pridať niečo podobné ako tento riadok na koniec rc.local súboru.
/sbin/iptables -t nat -A PREROUTING -p tcp -i eth0 -d jgibbs.dyndns.org --dport 3389 -j DNAT --to 172.17.207.4:3389
Tento dlhý riadok znamená, že bude smerovať všetku komunikáciu na porte 3389 na IP adresu 172.17.207.4, takže sa môžem pripojiť na vzdialenú plochu môjho Windowsu mimo mojej siete.
No a toto môžeš spraviť s hociktorým portom.
REŠTART!
A tiež, oznám mi akúkoľvek chybu a ja opravím tento tutoriál s akualizáciou. Ďakujem, Jeremy používateľ gibbsj.
Copyright © 2009
Jeremy Gibbs
All Rights Reserved.