Otthoni útválasztó (Otthoni router)
Ez a dokumentum leírja, hogy miként lehet egy régi Gentoo számítógépet útválasztóvá alakítani azért, hogy egy otthoni hálózatot rácsatlakoztasson az internetre.
Bevezetés
Egy személyes útválasztó felépítése régi tartalék alkatrészekből számos előnnyel jár a nagy cégek (Linksys, D-Link, Netgear stb.) által gyártott előre elkészített útválasztók vásárlásával szemben. Messze a legnagyobb előny a kapcsolat feletti teljes kontroll. A többi előnyt a felhasználó képzeletére lehet bízni. Ebben az esetben szinte bármi megvalósítható, csupán az igények kérdése. Nincsenek útválasztógyártói korlátozások, gyártói szoftveres lebutítások.
Ez az útmutató utasításokat nyújt a hálózati címfordítás (NAT) beállításához egy egyedi útválasztón (kernel és iptables), a gyakori szolgáltatások hozzáadásához és beállításához (Domain Name System (DNS) a net-dns/dnsmasq segítségével, DHCP a net-misc/dhcpcd segítségével, ADSL a net-dialup/ppp segítségével), végül pedig bemutatja azokat az összetett és szórakoztató dolgokat, amelyekre az egyedi útválasztók teljesen ingyen és bérmentve képesek (porttovábbítás, forgalomszabályozás, proxyk/cache-elés stb.).
Mielőtt elkezdené, tekintse át az alapvető követelmények listáját:
- Egy számítógép, amelyben legalább 2 hálózati interfészkártya (NIC) van telepítve.
- Az internetkapcsolathoz szükséges beállítások (tartalmazhat például IP-t, DNS-t, átjárót, felhasználónevet/jelszót).
- (Opcionálisan) egy Wi-Fi kártya, amely támogatja a mester módot. A mester mód ajánlott, hogy elkerülje azokat a NIC-eket, amelyek áthidalási funkcióval rendelkeznek, mivel egyes NIC-ekhez szükség van saját fejlesztésű meghajtókra. A saját fejlesztésű meghajtó hiányában a kártya véglegesen áthidalási módban marad, és nem lesz használható.
- Egy kis szabadidő és Gentoo iránti lelkesedés annak érdekében, hogy sikeresen kövesse ezt az útmutatót, és megvalósítson egy jól működő otthoni útválasztót.
Ebben az útmutatóban használt konvenciók a következők:
- eth0 - Helyi hálózathoz (LAN) vagy több NIC-ből álló hálózati hídhoz csatlakoztatott NIC.
- eth1 - Széles körű hálózathoz (WAN) csatlakoztatott NIC.
- A LAN a privát 192.168.0.xxx hálózatot használja.
- Az útválasztó hardveresen be van állítva a szabványos 192.168.0.1 IP-címre.
Biztonsági óvintézkedések miatt erősen ajánlott leállítani minden szükségtelen szolgáltatást az útválasztón, amíg a tűzfal nem működik. A jelenleg futó szolgáltatások megtekintéséhez futtassa az rc-status parancsot.
Kernelbeállítás (először ismerje meg önmagát)
A kernelben telepíteni kell a megfelelő illesztőprogramokat a rendszeren jelen lévő mindkét NIC-hez. Annak ellenőrzésére, hogy a kártyák be vannak-e már állítva, használja a ip link parancsot. A kimenet kissé eltérhet a következő példától. Ami fontos, hogy a hálózati interfészek létezzenek.
root #
ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 00:60:F5:07:07:B8 brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 00:60:F5:07:07:B9 brd ff:ff:ff:ff:ff:ff
Ha csak az egyik (vagy egyik sem) jelenik meg a két kártya közül, akkor próbálja meg futtatni az lspci | grep Ethernet parancsot.
Miután megszerezte a NIC(ek) típusát/modelljét, állítsa be a kernelt a megfelelő illesztőprogramok támogatásával. A kernel beállításával kapcsolatos további információkért tekintse meg a Kernelbeállítás útmutatót.
A következő lépés az IP táblák és a NAT (valamint szükség esetén a csomagformázás) támogatásának biztosítása. Az alábbi lista felosztása a következő: mindig szükséges (*), csak ADSL-hez PPPoE-n keresztül szükséges (a), mindenki számára ajánlott (x), és csak a formázási (s) funkciókhoz szükséges. Nem számít, hogy a funkciók a kernelbe vannak-e beépítve, vagy modulokként vannak-e megvalósítva, mindaddig, amíg a funkció szükséges, a megfelelő modul(ok) betöltésre kerülnek. A kernelmodulok betöltéséről további információkat a Kernelmodulok leírásban talál.
-*- Networking support --->
Networking options --->
[*] TCP/IP networking
[*] IP: advanced router
[*] Network packet filtering framework (Netfilter) --->
[*] Advanced netfilter configuration
IPv6: Netfilter Configuration --->
<*> IPv6 connection tracking support
<*> IP6 tables support (required for filtering)
Azok, akik inkább közvetlenül a menuconfig-ban keresnék ezeket a funkciókat, az alábbi neveken találhatják meg őket: CONFIG_INET, CONFIG_IP_ADVANCED_ROUTER, és CONFIG_NETFILTER, CONFIG_NETFILTER_ADVANCED, CONFIG_NF_CONNTRACK_IPV6, és CONFIG_IP6_NF_IPTABLES.
Bizonyos dolgok kissé eltérhetnek az újabb kernelek menuconfig felületén, például a CONFIG_NF_CONNTRACK_IPV6 nem létezik az 5.10-es kernelben, és mostanra összevonásra került a CONFIG_NF_CONNTRACK alá mind IPV6, mind IPV4 esetében (a "Core Netfilter Configuration" fülön)!
Amikor a 2.4.x kernel kerül felhasználásra, akkor a DHCP-hez a következőket kell engedélyezni:
[*] Socket Filtering
IP: Netfilter Configuration --->
[*] Connection tracking (required for masq/NAT)
[x] FTP protocol support
[x] IRC protocol support
[*] IP tables support (required for filtering/masq/NAT)
[*] IP range match support
[x] MAC address match support
[*] Multiple port match support
[*] Packet filtering
[*] REJECT target support
[x] REDIRECT target support
[*] Full NAT
[*] MASQUERADE target support
[s] Packet mangling
[s] MARK target support
[x] LOG target support
QoS and/or fair queueing --->
[s] QoS and/or fair queueing
[s] HTB packet scheduler
[s] Ingress Qdisc
[a] PPP (point-to-point protocol) support
[a] PPP filtering
[a] PPP support for async serial ports
[a] PPP support for sync tty ports
[a] PPP Deflate compression
[a] PPP BSD-Compress compression
[a] PPP over Ethernet
Bizonyos dolgok kissé eltérhetnek az újabb kernelek menuconfig felületén, azonban nem lehet túl nehéz kitalálni ezeket. Sok szerencsét hozzá!
Ölelje át a WAN-t (vagyis az internetet)
Bevezető
Számos módja van az internetkapcsolat létrehozásának, azonban általában csak néhányat használ a nagyközönség. Az ADSL (PPPoE) és a kábelmodemek (statikus/dinamikus) a két leggyakoribb módszer, amelyet az internetszolgáltatók (ISP) biztosítanak. Ha vannak elérhető egyéb módszerek, bátran adja hozzá őket ehhez a wiki cikkhez. Hagyja ki azokat az alábbi szakaszokat ebben a fejezetben, amelyek nem vonatkoznak az adott felhasználási esetre. Ez a fejezet azt tárgyalja, hogy miként csatlakoztassa az útválasztót az internethez az eth1 interfészen keresztül.
ADSL és PPPoE
Az összes kifinomult PPPoE szoftver, amelyet korábban az rp-pppoe (Roaring Penguin) biztosított, integrálva lett a standard PPP szoftvercsomagba. Egyszerűen futtassa a emerge ppp parancsot a PPPoE telepítéséhez. Emlékszik, hogy a felhasználónév és a jelszó információ kötelezően szükséges volt, ahogy fentebb említettük? Nyissa meg a /etc/conf.d/net fájlt a Ön kedvenc szövegszerkesztőjében, és állítsa be ennek megfelelően.
Cserélje le a következő példában szereplő <username>
és <user_password>
helyőrzőket a szükséges felhasználónévre és jelszóra:
/etc/conf.d/net
ADSL használata az eth1 interfészen keresztül a ppp0 számáraconfig_ppp0="ppp"
link_ppp0="eth1"
plugins_ppp0="pppoe"
pppd_ppp0="
defaultroute
usepeerdns
"
username_ppp0="<username>"
password_ppp0="<user_password>"
root #
ln -s net.lo /etc/init.d/net.ppp0
root #
rc-update add net.ppp0 default
root #
service net.ppp0 start
Amikor a DSL interfész elindul, egy "ppp0" bejegyzést hoz létre a ip parancs kimenetében. Bár a NIC neve eth1, az IP-cím valójában a ppp0-hoz kötődik. Innentől kezdve cserélje le az
eth1
jelölést ppp0
jelölésre.Győződjön meg arról, hogy megváltoztatja a /etc/conf.d/net fájl jogosultságait, hogy csak root jogosultsággal rendelkező felhasználók tudják azt írni és olvasni. Ez fontos, mivel a fájlban a felhasználónév és jelszó ember által olvasható szöveges formátumban lett megadva.
Azoknak a felhasználóknak, akik a net-dialup/rp-pppoe szoftvercsomagról váltanak, vagy akik furcsa kapcsolat-megszakadásokat tapasztalnak, tekintsék meg az MTU szakaszt a lenti Hibaelhárítás bekezdésben.
Kábel és/vagy dinamikus/statikus IP
Ha statikus IP szükséges, akkor további beállítási adatokra lesz szükség. A statikus IP-címet használóknak meg kell adniuk az IP-címet, az átjáró IP-címét és a DNS-szerver IP-címe(ke)t.
Dinamikus IP-címet használó felhasználók:
root #
emerge --ask net-misc/dhcpcd
/etc/conf.d/net
Dinamikus IP-címekconfig_eth1="dhcp"
Statikus IP-címet használó felhasználók:
/etc/conf.d/net
Statikus IP-cím beállításaconfig_eth1="66.92.78.102/24"
routes_eth1="default via 66.92.78.1"
/etc/resolv.conf
DNS információk hozzáadásanameserver 123.123.123.123
Dinamikus és statikus beállítás:
root #
ln -s net.lo /etc/init.d/net.eth1
root #
rc-update add net.eth1 default
root #
service net.eth1 start
Miután a fenti módosításokat elvégeztük, a rendszer készen állhat a folytatásra.
Ölelje át a LAN-t (hozzon magával néhány barátot)
Ez a lépés egyszerűbb az előzőnél. Ahhoz, hogy több mint két eszközt használjon (többet, mint egyet a LAN-hoz és egyet a WAN-hoz), szükség lesz egy Hálózati híd beállítására az összes LAN-t használó NIC között. Ez lehetővé teszi, hogy több NIC is elérhető legyen ugyanazzal az IP-címmel.
Ha szükséges a hálózati híd, akkor kövesse a hálózati hídbeállításának útmutatóját. A híd neve (alapértelmezett br0) a wiki lépéseiben a LAN-eszköz esetében helyettesíti az eth0-t. Ha sok hálózati eszköz található az otthoni útválasztóban, akkor érdemes lehet azokat udev segítségével átnevezni, hogy az adminisztráció könnyebb legyen. A híd beállítása és az eszközök átnevezése teljesen opcionális, de nagyobb otthoni hálózatok esetében ajánlott.
Wi-Fi hozzáférési pont létrehozásakor győződjön meg róla, hogy a Wi-Fi kártya támogatja a master módot, és állítsa be a Hostapd szoftvert.
/etc/conf.d/net
config_eth0="192.168.0.1/24"
root #
rc-update add net.eth0 default
root #
service net.eth0 start
LAN-szolgáltatások (Mert rendes emberek vagyunk)
DHCP szerver
Milyen jó lenne, ha a házban mindenki egyszerűen csak csatlakoztatná a számítógépét a hálózathoz, és minden működne! Nem kellene emlékezni bonyolult részletekre, vagy a zavaros beállítás képernyőket bámulniuk. Ugye, milyen nagyszerű lenne az élet? Bemutatjuk a DHCP protokollt, és azt, hogy miért érdemes mindenkinek odafigyelnie rá.
A DHCP pontosan azt jelenti, amit a neve sugall: Egy olyan protokoll, amely lehetővé teszi a kliensszámítógépek dinamikus beállítását, mindezt automatikus formában. Futtasson Ön egy DHCP-szervert az útválasztón, adja meg neki az összes információt a hálózatról (érvényes IP-címek, DNS-szerverek, átjárók stb...), majd amikor a többi kliensszámítógép elindul, ők futtathatnak egy DHCP klienst, hogy automatikusan beállíthassák önmagukat. Semmi bonyodalom, semmi gond! A DHCP-ről további információt találhat a Wikipedia DHCP szócikkében.
Ez a szakasz a net-dns/dnsmasq szoftvercsomagot fogja használni, amely mind a DHCP, mind a DNS szolgáltatásokat biztosítja. Most koncentráljunk a DHCP részre. Megjegyzés: ha egy másik DHCP-szervert szeretne futtatni, akkor egy másik példa található az alábbi Vicces dolgok szakaszban. Továbbá, a DHCP-szerver beállításaival való kísérletezéshez olvassa el a megjegyzéseket a /etc/dnsmasq.conf fájlban.
root #
emerge --ask net-dns/dnsmasq
/etc/dnsmasq.conf
dhcp-range=eth0,192.168.0.100,192.168.0.250,72h
interface=eth0
root #
rc-update add dnsmasq default
root #
service dnsmasq start
Az interfész beállítása nagyon fontos. Az alapértelmezett dnsmasq beállítások használata DNS amplification támadásoknak teheti ki az útválasztót, ami ijesztő e-maileket eredményezhet a kapcsolatot biztosító internetszolgáltatótól. Ellenőrizze, hogy az útválasztó nem teszi lehetővé a DNS amplification támadásokat a [1] használatával.
Mostanra a kis útválasztónk valódi DHCP-szerverré vált. Csatlakoztassa a kliens számítógépeket, és figyelje, ahogy működnek! Windows rendszereken navigáljon a TCP/IP Properties menüponthoz, és válassza az Obtain an IP address automatically és Obtain DNS server address automatically opciókat. Néha a változások nem azonnaliak, így lehet, hogy meg kell nyitni egy parancssort, és futtatni kell a ipconfig /release és ipconfig /renew parancsokat. Elég az ostoba Windowsból ennyi, most térjünk vissza mindenki kedvenc pingvinéhez!
DNS szerver
Amikor az emberek egy webhelyet szeretnének meglátogatni az interneten, akkor ők inkább neveket tudnak megjegyezni jobban, nem pedig furcsa számok sorozatát. Végül is, mi a könnyebb megjegyezni: miniszterelnok.hu vagy 84.206.132.208 ? Itt lép be a DNS a képbe. DNS-szerverek futnak az interneten mindenütt, és amikor valaki megszeretné látogatni az miniszterelnok.hu oldalt, ezek a szerverek a "miniszterelnok.hu" szöveget (amit mi értünk) "84.206.132.208" IP-címre (amit a számítógépek értenek) alakítják. A DNS-ről további információt találhat a Wikipédián.
Mivel a dnsmasq DHCP-szerverként van használva, és tartalmaz egy DNS-szervert is, itt már semmi teendő nincs! A kis útválasztó már DNS szolgáltatást biztosít a DHCP kliensei számára. Ugye, más is ilyen egyszerű lehetne? ;)
Lehetőség van más DNS-szerverek választására, ha azok beállítása kényelmesebb. Ebben a cikkben a dnsmasq van használva, mert kifejezetten arra lett tervezve, hogy pontosan azt tegye, amit ez az útmutató igényel. Ez egy kis DNS gyorsítótárazó/továbbító szerver helyi hálózatok számára. Ennek az útmutatónak a célja nem az, hogy DNS szolgáltatást biztosítson egy doménhez, hanem, hogy egyszerű DNS-szolgáltatásokat kínáljon minden otthoni LAN-felhasználónak.
NAT (más néven IP-cím elfedése)
Ezen a ponton a hálózaton lévő emberek tudnak egymással kommunikálni, és a DNS segítségével host-neveket kereshetnek, de valójában még mindig nem tudnak csatlakozni az internethez. Bár a hálózati rendszergazda (az a személy, aki nagy valószínűséggel olvassa most ezt a leírást) talán nagyszerűnek találja ezt, a többi felhasználó valószínűleg nem túl boldog internetkapcsolat nélkül.
Itt lép be a hálózati címfordítás (Network Address Translation). A NAT egy olyan módszer, amely lehetővé teszi több számítógép csatlakoztatását egy privát LAN hálózatban az internethez, amikor csak kevés nyilvános IP-cím áll rendelkezésre. Általában egy otthoni internethasználó számára az internetszolgáltató egy nyilvános IP-címet biztosít, amelyen keresztül az egész ház csatlakozhat az internethez. A NAT az a varázslat, amely ezt lehetővé teszi. További információért a NAT-ról kérjük, hogy látogasson el a Wikipédiára.
Mielőtt elkezdené, győződjön meg róla, hogy az IPtables telepítve van az operációs rendszeren. Ha nincs telepítve, akkor telepítse azt az emerge iptables parancs segítségével.
Miután az IPtables telepítve lett, törölje a jelenlegi csomagszűrő szabályokat:
root #
iptables -F
root #
iptables -t nat -F
Állítsa be az alapértelmezett szabályokat a nem egyező forgalom kezelésére:
root #
iptables -P INPUT ACCEPT
root #
iptables -P OUTPUT ACCEPT
root #
iptables -P FORWARD DROP
Másolja ki és illessze be a következőt:
root #
export LAN=eth0
root #
export WAN=eth1
A következő lépés zárolja a szolgáltatásokat, hogy azok csak a LAN-ból működjenek:
root #
iptables -I INPUT 1 -i ${LAN} -j ACCEPT
root #
iptables -I INPUT 1 -i lo -j ACCEPT
root #
iptables -A INPUT -p UDP --dport bootps ! -i ${LAN} -j REJECT
root #
iptables -A INPUT -p UDP --dport domain ! -i ${LAN} -j REJECT
(Opcionális) Tegye lehetővé a WAN-ról való hozzáférést az ssh szerverhez:
root #
iptables -A INPUT -p TCP --dport ssh -i ${WAN} -j ACCEPT
Dobja el a TCP/UDP csomagokat a kiváltságos portokra:
root #
iptables -A INPUT -p TCP ! -i ${LAN} -d 0/0 --dport 0:1023 -j DROP
root #
iptables -A INPUT -p UDP ! -i ${LAN} -d 0/0 --dport 0:1023 -j DROP
Végül adja hozzá a NAT szabályokat:
root #
iptables -I FORWARD -i ${LAN} -d 192.168.0.0/16 -j DROP
root #
iptables -A FORWARD -i ${LAN} -s 192.168.0.0/16 -j ACCEPT
root #
iptables -A FORWARD -i ${WAN} -d 192.168.0.0/16 -j ACCEPT
root #
iptables -t nat -A POSTROUTING -o ${WAN} -j MASQUERADE
Tájékoztassa a kernelt arról, hogy az IP továbbítás engedélyezett:
root #
echo 1 > /proc/sys/net/ipv4/ip_forward
root #
for f in /proc/sys/net/ipv4/conf/*/rp_filter ; do echo 1 > $f ; done
Adja meg az IPtables szolgáltatásnak, hogy mentse el a szabályok módosításait, majd adja hozzá az IPtables-t az alapértelmezett futási szinthez:
root #
/etc/init.d/iptables save
root #
rc-update add iptables default
/etc/sysctl.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
Dinamikus internetkapcsolathoz a következő beállítást kell engedélyezni:
/etc/sysctl.conf
net.ipv4.ip_dynaddr = 1
Miután a fenti szöveget beírta, a hálózat többi felhasználójának mostantól úgy kell tudnia használni az internetet, mintha közvetlenül csatlakoztak volna rá.
Az ip_dynaddr
opció hasznos a kérésre történő tárcsázási rendszerek esetében, vagy amikor az internetszolgáltató dinamikus címeket oszt ki. Ez megoldja azt a problémát, amikor a kapcsolatot még azelőtt próbálják meg, hogy az internetes interfész teljesen beállításra került volna. Ez gördülékenyebb hálózati élményt biztosít az útválasztó mögötti felhasználók számára.
Vicces dolgok (egy esős napra)
Bevezető
Higgye el, hogy elkészült! Innentől kezdve néhány egyéb, gyakori téma kerülhet szóba, amely érdekes lehet az Ön számára. Az alábbi szakaszokban szereplő minden információ teljesen opcionális.
Porttovábbítás (Port forwarding)
Előfordulhat, hogy a felhasználóknak szolgáltatásokat kell hostolniuk egy útválasztó mögötti számítógépen, vagy távolról kell csatlakozniuk egy útválasztó mögötti számítógéphez. Talán egy FTP, HTTP, SSH vagy VNC szerverre van szükség egy vagy több számítógépen az útválasztó mögött, és a külső felhasználóknak csatlakozniuk kell ezekhez a számítógépekhez. A porttovábbítás egyetlen kikötése, hogy portonként csak egy szolgáltatás/gép kombináció hozható létre. Például nincs gyakorlati módja három FTP szerver beállításának az útválasztó mögött úgy, hogy mindhárom FTP szerverhez a 21-es porton keresztül történjen a csatlakozás. Kizárólag egy rendszer lehet a 21-es porton, míg a többieknek más portokra kell kerülniük (a 123-as és 567-es port például jó lehetőségek).
Minden porttovábbítási szabály az alábbi formátumú: iptables -t nat -A PREROUTING -p [protokoll] --dport [külső port az útválasztón] -i ${WAN} -j DNAT --to [ip/port amelyre továbbítani kell]
. Sajnos az iptables nem fogad el host-neveket porttovábbításkor. Ha a külső portot ugyanarra a portra továbbítjuk a belső gépen, akkor hagyja ki a célportot. További információért tekintse meg az man iptables(8) súgót.
root #
export LAN=eth0
root #
export WAN=eth1
Továbbítsa a kettes portot egy belső host-számítógépen lévő ssh számára:
root #
iptables -t nat -A PREROUTING -p tcp --dport 2 -i ${WAN} -j DNAT --to 192.168.0.2:22
FTP-továbbítás egy belső host-számítógépre:
root #
iptables -t nat -A PREROUTING -p tcp --dport 21 -i ${WAN} -j DNAT --to 192.168.0.56
HTTP-továbbítás egy belső host-számítógépre:
root #
iptables -t nat -A PREROUTING -p tcp --dport 80 -i ${WAN} -j DNAT --to 192.168.0.56
VNC továbbítása a belső host-számítógépek számára:
root #
iptables -t nat -I PREROUTING -p tcp --dport 5900 -i ${WAN} -j DNAT --to 192.168.0.2
root #
iptables -t nat -I PREROUTING -p tcp --dport 5901 -i ${WAN} -j DNAT --to 192.168.0.3:5900
A VNC kliensek alapértelmezés szerint az 5900-as portra csatlakoznak. Ha másik portot kell kiválasztani, akkor a legtöbb VNC kliens egy utótagot használ a csatlakozási címhez, amelyet hozzáadnak az 5900-hoz, hogy megtalálják a végleges portot. Így például az említett esetben, ha a 192.168.0.3 címre szeretne VNC-n keresztül csatlakozni, akkor adja hozzá a
:1
utótagot a cél IP-címéhez (ami az útválasztó WAN címe), így a VNC kliens az 5901-es portra fog rácsatlakozni.SAMBA továbbítása egy belső host-számítógéphez (többlet portokkal a Windows támogatásához):
root #
iptables -t nat -I PREROUTING -p tcp --dport 135 -i ${WAN} -j DNAT --to 192.168.0.2
root #
iptables -t nat -I PREROUTING -p tcp --dport 139 -i ${WAN} -j DNAT --to 192.168.0.2
root #
iptables -t nat -I PREROUTING -p tcp --dport 445 -i ${WAN} -j DNAT --to 192.168.0.2
root #
iptables -t nat -I PREROUTING -p udp --dport 137:138 -i ${WAN} -j DNAT --to 192.168.0.2
root #
iptables -t nat -I PREROUTING -p udp --dport 445 -i ${WAN} -j DNAT --to 192.168.0.2
Bittorrent továbbítása:
root #
iptables -t nat -A PREROUTING -p tcp --dport 6881:6889 -i ${WAN} -j DNAT --to 192.168.0.2
eDonkey/eMule továbbítása:
root #
iptables -t nat -A PREROUTING -p tcp --dport 4662 -i ${WAN} -j DNAT --to 192.168.0.55
Game Cube Warp Pipe támogatás:
root #
iptables -t nat -A PREROUTING -p udp --dport 4000 -i ${WAN} -j DNAT --to 192.168.0.56
Playstation 2 Online támogatás:
root #
iptables -t nat -A PREROUTING -p tcp --dport 10070:10080 -i ${WAN} -j DNAT --to 192.168.0.11
root #
iptables -t nat -A PREROUTING -p udp --dport 10070:10080 -i ${WAN} -j DNAT --to 192.168.0.11
Xbox Live:
root #
iptables -t nat -A PREROUTING -p tcp --dport 3074 -i ${WAN} -j DNAT --to 192.168.0.69
root #
iptables -t nat -A PREROUTING -p udp --dport 3074 -i ${WAN} -j DNAT --to 192.168.0.69
root #
iptables -t nat -A PREROUTING -p udp --dport 88 -i ${WAN} -j DNAT --to 192.168.0.69
Identd (IRC számára)
Az Internet Relay Chat (IRC) nagymértékben használja az ident szolgáltatást. Most, hogy az IRC kliensek az útválasztó mögött helyezkednek el, szükség van egy módra, amely lehetővé teszi az ident szolgáltatás működését mind az útválasztó, mind a kliensek számára. Erre a célra létrehoztak egy szervert, amelynek neve: net-misc/midentd.
root #
emerge --ask net-misc/midentd
root #
rc-update add midentd default
root #
service midentd start
A Portage fában található néhány más ident szerver is. További lehetséges opciók a net-misc/oidentd és net-misc/fakeidentd szoftvercsomagok.
Időszerver
A rendszeridő pontos megőrzése elengedhetetlen az egészséges rendszer fenntartásához. Az egyik leggyakoribb módszer ennek elérésére a Network Time Protocol (NTP) használata, valamint a net-misc/ntp szoftvercsomag, amely mind a szerver implementációt, mind a kliensimplementációt biztosítja.
Sok felhasználó futtat NTP klienst a számítógépén. Nyilvánvaló, hogy minél több NTP kliens van a világban, annál nagyobb terhelést kell elviselniük az NTP szervereknek. Olyan környezetekben, mint például az otthoni hálózatok, helyben is be lehet állítani egy NTP szervert, hogy ezáltal csökkentve legyen a nyilvános szerverekre jutó terhelés, miközben a beállított helyi NTP szerverszámítógépek továbbra is biztosítják a megfelelő időt a helyi rendszerek számára. További előny az, hogy a privát frissítések sokkal gyorsabbak lesznek a helyi kliensek számára! A beállítás egyszerű: futtasson egy NTP szervert az útválasztón, amely szinkronizálja magát a nyilvános internetes szerverekkel, miközben egyidejűleg biztosítja az időt a hálózat többi számítógépének. A kezdéshez egyszerűen futtassa a emerge ntp parancsot az útválasztón, majd tetszés szerint szerkessze a /etc/conf.d/ntp-client fájlt.
root #
rc-update add ntp-client default
/etc/ntp.conf
restrict default ignore
restrict 192.168.0.0 mask 255.255.255.0 notrust nomodify notrap
Ez lehetővé teszi, hogy csak az NTP kliensek, amelyek IP-címe a 192.168.0.xxx tartományban található, használják az NTP szervert.
root #
rc-update add ntpd default
root #
service ntpd start
Győződjön meg arról, hogy a szerver beállításakor engedélyezi a bejövő és kimenő kommunikációt az NTP porton (123/udp). Az kliensnek csak kimenő hozzáférésre van szüksége a 123-as porton UDP protokollal.
Mostantól futtatni lehet a klienseken a emerge ntp parancsot. Ennek futtatásával az NTP kliens beállítása sokkal egyszerűbbé válik.
A /etc/conf.d/ntp-client fájlban módosítsa a NTPCLIENT_OPTS
változóban lévő pool.ntp.org
szervert a 192.168.0.1
címre.
root #
rc-update add ntp-client default
root #
service ntp-client start
Rsync szerver
Azok számára, akik több Gentoo számítógépet futtatnak ugyanazon a helyi hálózaton, érdemes megakadályozni, hogy minden számítógép emerge --sync parancsot futtasson a távoli szerverekkel. Egy helyi rsync beállításával mind a személyes sávszélességet, mind a Gentoo rsync szerverek sávszélességét megtakaríthatja. A folyamat viszonylag egyszerű.
Egy sokkal részletesebb rsync útmutatóért kérjük, tekintse meg az hivatalos rsync útmutatót.
Mivel minden Gentoo számítógéphez szükséges az rsync, ezért nincs szükség az emerge futtatására. Szerkessze az alapértelmezett /etc/rsyncd.conf beállításfájlt. Vonja vissza a [gentoo-portage]
szakasz kikommentezett részét, és győződjön meg róla, hogy hozzáad egy address
opciót. Az összes többi alapértelmezésnek már megfelelően beállítottnak kell lennie.
/etc/rsyncd.conf
pid file = /var/run/rsyncd.pid
use chroot = yes
read only = yes
address = 192.168.0.1
[gentoo-portage]
path = /mnt/space/portage
comment = Gentoo Linux Repository
exclude = /distfiles /packages
A szolgáltatást ezután el kell indítani (az alapértelmezések ismét megfelelőek).
root #
service rsyncd start
root #
rc-update add rsyncd default
Már csak az van hátra, hogy beállítsa a klienseket, hogy szinkronizáljanak az útválasztóval. Szerkessze a /etc/portage/repos.conf/gentoo.conf beállításfájlt. Ha ez a fájl nem létezik, akkor hozzon létre egy könyvtárat /etc/portage alatt repos.conf néven, és másolja a /usr/share/portage/config/repos.conf fájlt ebbe a könyvtárba. Ezután frissítse ezt a fájlt megfelelően - ne felejtse el a sync-uri
értékét úgy beállítani, hogy egyezzen a szerver (az otthoni útválasztó) címével.
/etc/portage/repos.conf/gentoo.conf
Kliens beállítása az új rsync szerverhez való csatlakozáshoz[DEFAULT]
main-repo = gentoo
[gentoo]
location = /var/db/repos/gentoo
sync-type = rsync
sync-uri = rsync://192.168.0.1/gentoo-portage
auto-sync = yes
Mail szerver
Időnként hasznos lehet egy Simple Mail Transfer Protocol (SMTP) szervert futtatni az útválasztón. Minden felhasználónak megvan a saját indoka arra, hogy miért szeretné ezt megtenni, azonban az SMTP útválasztón való futtatásának egyik előnye, hogy a felhasználók azonnal elküldöttként érzékelik az e-maileket, és az újraküldés/routing feladatát a levelezőszerver végzi el. Egyes internetszolgáltatók nem engedélyezik az e-mail továbbítást olyan fiókok esetében, amelyek nem részei az ő hálózatuknak. Emellett szükség lehet az e-mailek kézbesítésének korlátozására, hogy a nagy méretű mellékletek ne okozzanak jelentős lassulást az internetkapcsolatban.
root #
emerge --ask mail-mta/netqmail
Győződjön meg arról, hogy a hostname parancs kimenete helyes:
root #
emerge --config netqmail
root #
iptables -I INPUT -p tcp --dport smtp ! -i ${LAN} -j REJECT
root #
ln -s /var/qmail/supervise/qmail-send /service/qmail-send
root #
ln -s /var/qmail/supervise/qmail-smtpd /service/qmail-smtpd
root #
cd /etc/tcprules.d
Szerkessze a tcp.qmail-smtp fájlt, és adjon hozzá egy bejegyzést az alábbi módon az engedélyezési szakaszhoz:
niltcp.qmail-smtp
192.168.0.:allow,RELAYCLIENT=""
root #
make
root #
rc-update add svscan default
root #
service svscan start
Amikor az e-mail beállítása megtörténik a hálózatban lévő host-számítógépeken, tájékoztassa őket arról, hogy az SMTP szerver címe: 192.168.0.1. További dokumentációért a netqmail használatáról látogasson el a netqmail honlapra.
Teljes DHCP szerver
Korábban a dnsmasq szoftver lett használva a DHCP szolgáltatás nyújtására minden DHCP kliens számára. A legtöbb egyszerű, kis helyi hálózattal rendelkező ember számára ez tökéletes, azonban előfordulhat, hogy több funkcióra van szükség. Ezért egy teljes funkcionalitású DHCP szervert kínálnak az ISC fejlesztői azok számára, akik a maximumot igénylik.
root #
emerge --ask net-misc/dhcp
/etc/dhcp/dhcpd.conf
Itt látható egy egyszerű beállításfájlauthoritative;
ddns-update-style interim;
subnet 192.168.0.0 netmask 255.255.255.0 {
pool {
range 192.168.0.100 192.168.0.250;
default-lease-time 259200;
max-lease-time 518400;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.0.255;
option routers 192.168.0.1;
option domain-name-servers 192.168.0.1;
}
}
A /etc/conf.d/dhcpd fájlban állítsa be a IFACE
értékét "eth0"-ra.
root #
rc-update add dhcpd default
root #
service dhcpd start
Ez a minimális beállítás szükséges a korábban használt dnsmasq DHCP funkciójának a lecseréléséhez. A dnsmasq DHCP funkcióit le kell tiltani? Ha nem, akkor kommentezze ki a dhcp-range
beállítást a /etc/dnsmasq.conf fájlban, és indítsa újra a szolgáltatást.
Csatlakoztasson egy másik helyi hálózatot (vagy kettőt, esetleg hármat)
Előfordulhat, hogy az útválasztót egy másik helyi hálózathoz kell csatlakoztatni. Ez ideiglenesen lehetővé teszi baráti társaságok összekapcsolását, vagy különböző számítógépcsoportok elkülönítését. Bármi legyen is az ok, az útválasztó kiterjesztése más helyi hálózatokra egyszerű feladat. Az alábbi példákban ez a cikk feltételezi, hogy az új hálózat egy harmadik Ethernet kártyán, nevezetesen a eth2
kártyán keresztül csatlakozik.
Először konfigurálja az interfészt. Kövesse az ebben a szakaszban található utasításokat, és cserélje ki a config_eth0="192.168.0.1/24"
értéket a config_eth2="192.168.1.1/24"
értékre.
Finomítsa a dnsmasq beállításait az új interfész kiszolgálásához. Szerkessze újra a /etc/conf.d/dnsmasq fájlt, és adjon hozzá -i eth2
beállítást a DNSMASQ_OPTS
paraméterhez. Többszörös -i használata megengedett. Ezután szerkessze a /etc/dnsmasq.conf fájlt, és adjon hozzá egy új sort, amely hasonló a dhcp-range sorhoz ebben a szakaszban, cserélve a dhcp-range=eth0,192.168.0.100,192.168.0.250,72h
értéket dhcp-range=eth2,192.168.1.100,192.168.1.250,72h
értékre, és cserélje ki a interface=eth0
értéket interface=eth2
értékre. Többszörös dhcp-range és interface sorok használata szintén megengedett.
Végül nézze meg a szabályokat ebben a szakaszban, és duplikálja azokat a szabályokat, amelyekben -i ${LAN}
szerepel. Szükség lehet egy másik változó létrehozására, például LAN2
, hogy megkönnyítse a folyamatot.
Hibaelhárítás
Hasznos eszközök
Amikor problémák merülnek fel a számítógépek közötti kommunikációval kapcsolatban, akkor próbálja ki az alábbi eszközöket (mind megtalálhatók a net-analyzer Portage kategóriában):
Segédprogram | Leírás |
---|---|
net-analyzer/wireshark | Pentesterek, hackerek körében is népszerű, grafikus felhasználó felülettel rendelkező szoftver. A nyers hálózati adatok megtekintéséhez használható, amely szűrők alapján (is) vizsgálja a hálózati forgalmat. |
net-analyzer/tcpdump | Parancssorban működő eszköz a nyers hálózati adatok szűrők szerinti kiírásához. |
net-analyzer/iptraf-ng | Egy ncurses alapú IP LAN monitorozó. |
net-analyzer/ettercap | Egy ncurses alapú hálózati monitorozó/vezérlő. |
Nem indul el a DHCP
Amikor először indítja el a dhcp init.d szkriptet, akkor előfordulhat, hogy nem töltődik be, és nem nyújt hasznos információt.
root #
service dhcp start
* Setting ownership on dhcp.leases ... [ ok ] * Starting dhcpd ... [ !! ]
A trükk az, hogy kiderítsük, vajon hová küldi a dhcpd a kimenetét. Böngésszen a /var/log könyvtárban, és olvassa el a naplófájlokat. Mivel a pontos naplófájl a syslogot használó szoftvercsomagtól függ, ezért próbálja meg futtatni a grep -Rl dhcpd /var/log parancsot, hogy szűkítse a lehetőségeket. Valószínű, hogy elírás történt a beállításfájlban. Egy másik kipróbálandó parancs a dhcpd -d -f (a debug / foreground rövidítése). Ez segít a hibák hibakeresésében a kimenet alapján.
Helytelen MTU érték
Ha furcsa hibák lépnek fel (például néhány weboldal nem érhető el, míg mások jól betöltődnek), az Path MTU Discovery problémát jelenthet. Ennek gyors teszteléséhez futtassa a következő iptables parancsot:
root #
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Ez minden új kapcsolatot érinteni fog. Frissítse a problémás weboldalt a javítás teszteléséhez. Segítségképpen a 100mbit-es ethernet kapcsolatok szabványos MTU értéke 1500
. Ez az érték a PPPoA-ra is érvényes. A PPPoE kapcsolatok esetében az érték 1492
. További információért olvassa el a Linux Advanced Routing & Traffic Control HOWTO 15. fejezetét.
Ha a fenti parancs nem működik, akkor fontolja meg, hogy a szabályt a mangle táblába helyezze el. Egyszerűen adja hozzá a -t mangle
opciót a parancshoz.
Nem lehet közvetlenül két gépet csatlakoztatni
Ha valamilyen okból kifolyólag két számítógépet közvetlenül kell összekötni egy hub vagy switch nélkül, a szokványos ethernet kábel valószínűleg nem fog működni, hacsak nem áll rendelkezésre egy Auto MDI/MDI-X (más néven 'autosensing') képes hálózati adapter. Egy másik kábel, az úgynevezett crossover kábel szükséges a közvetlen NIC-NIC kapcsolatokhoz. Ez a Wikipedia oldal részletezi az alacsony szintű technikai információkat.
Záró megjegyzések
Nem állnak rendelkezésre további végleges megjegyzések. Ha bármilyen probléma adódik ezzel az útmutatóval kapcsolatban, akkor frissítse ezt a cikket a helyes információkkal, vagy hagyjon egy rövid üzenetet ennek a cikknek a beszélgetési oldalán, összefoglalva, hogy pontosan ami az ami nem működik. Végül valakinek sikerülnie kell kijavítania a problémá(ka)t. Lehetőség van hibát jelenteni a Gentoo hibakövető webhelyén. Ha vannak más érdekes részek, akkor amelyek javítanák ezt az útmutatót, feltétlenül vegye bele őket! A legrosszabb, ami történhet, az, hogy eltávolítják őket.
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Mike Frysinger (vapier)
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.