Nastavenie NAT Gateway, Iptables, Port Forwarding, DNS a DHCP - Ubuntu 8.10 Server

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

Na začiatok

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ú.

Prechádzame k DNS

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.

Nakoniec IPTABLES

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.