Tips en Trucs 2014

OpenSUSE router

Wie nog een oude computer heeft liggen, kan die inzetten als router. Het enige wat je nodig hebt is één of meerdere extra netwerkaansluitingen. Het nadeel ten opzichte van een aangekochte kant en klare router is het energieverbruik. Maar ook dit kan meevallen als je de router enkel aanzet als die effectief wordt gebruikt. Daarenboven bespaar je op de aankoop van de router. Het grote voordeel is dat je de router kunt uitbreiden met allerlei handige functies, ik denk maar aan NAS, multimedia, proxy, WiFi Access Point, enz. Daarenboven wordt uw router steeds voorzien van updates (denk aan heartbleed). En je leert hoe een router werkt en in elkaar zit. Voor deze tip gebruik ik een computer van 2006, een echte oldtimer. Wie niet over een oude computer beschikt, kan om de werking van een router te leren kennen, gebruik maken van twee virtuele computers: één voor de router en één als client (LAN) computer.

Voorbereiding

Installeer op de computer openSUSE 13.1 in Tekstmodus (minimale server). Een router heeft geen grafische omgeving nodig. Een grafische omgeving belast het computersysteem waardoor het weglaten ervan de routersoftware beter laat presteren.

Om het testen wat te vereenvoudigen heb ik na de installatie een back-up gemaakt waardoor een fout experiment direct kan hersteld worden.

Om de computer als server te laten werken heb ik de volgende BIOS instellingen aangepast:

Elke BIOS heeft afhankelijk van de gebruikte hardware en de BIOS zijn eigen instelmogelijkheden. M.a.w. overloop de instellingen, noteer wat je hebt aangepast en test of de aanpassingen een positieve invloed hebben op uw computer als router.

Bij de installatie van openSUSE 13.1 gebruik je best een scherm en USB-toetsenbord. Bij de installatie koos ik voor het beschikbaar maken van SSH waardoor de router via het netwerk bereikbaar wordt voor onderhoud en beheer. Zo voerde ik de installatie en configuratie van de router uit via een SSH verbinding.

openSUSE router

De oorspronkelijke ingebouwde netwerkaart (82573E Gigabit Ethernet Controller) gebruik ik als verbinding met het internet (WAN)(enp2s0).

De extra netwerkkaart (RTL-8169 Gigabit Ethernet) gebruik ik als toegang tot het interne LAN netwerk (desnoods één enkele computer).

De huidige configuratie kan je met de volgende opdrachten achterhalen:

linux-rvcx:~ # route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    0      0        0 enp2s0
loopback        *               255.0.0.0       U     0      0        0 lo
192.168.1.0     *               255.255.255.0   U     0      0        0 enp2s0

De verbinding met het internet verloopt via de Gateway met het IP adres 192.168.1.1.

linux-rvcx:~ # cat /etc/resolv.conf
### /etc/resolv.conf file autogenerated by netconfig!
#
# Before you change this file manually, consider to define the
# static DNS configuration using the following variables in the
# /etc/sysconfig/network/config file:
#     NETCONFIG_DNS_STATIC_SEARCHLIST
#     NETCONFIG_DNS_STATIC_SERVERS
#     NETCONFIG_DNS_FORWARDER
# or disable DNS configuration updates via netconfig by setting:
#     NETCONFIG_DNS_POLICY=''
#
# See also the netconfig(8) manual page and other documentation.
#
# Note: Manual change of this file disables netconfig too, but
# may get lost when this file contains comments or empty lines                  
# only, the netconfig settings are same with settings in this
# file and in case of a "netconfig update -f" call.
#
### Please remove (at least) this line when you modify the file!
search home
nameserver 192.168.1.1

De nameserver op het IP adres 192.168.1.1 staat in voor het omzetten van internet adressen naar IP adressen (DNS).

linux-rvcx:~ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp10s9: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:11:6b:34:db:f4 brd ff:ff:ff:ff:ff:ff
3: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:16:e6:03:6c:28 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.4/24 brd 192.168.1.255 scope global enp2s0
       valid_lft forever preferred_lft forever
    inet6 fe80::216:e6ff:fe03:6c28/64 scope link 
       valid_lft forever preferred_lft forever

Het IP adres van netwerkkaart verbonden met het internet kreeg het IP-adres 192.168.1.4/24 en behoort tot het netwerk met IP adressen die beginnen met 192.168.1 (de range is af te leiden uit het brd adres 192.168.1.255).

Mocht je niet verklaarbare foutmeldingen krijgen, dan is je systeem hoogstwaarschijnlijk niet up to date. Met de volgende opdracht zorg je dat alle software up to date is.

linux-rvcx:~ # zypper up
Gegevens van installatiebron laden...
Lezen van geïnstalleerde pakketten...
                                                                                
De volgende 4 pakketten zullen worden opgewaardeerd:
  libcap-ng0 libopenssl1_0_0 libxml2-2 openssl 

4 op te waarderen pakketten.
Totale downloadgrootte: 1,9 MiB Na de operatie zal aanvullend 2,1 KiB worden 
gebruikt.
Doorgaan? [j/n/? alle opties tonen] (j): 
pakket libcap-ng0-0.7.3-2.4.1.x86_64 wordt opgehaald
                                          (1/4),  20,8 KiB ( 44,3 KiB uitgepakt)
Delta wordt opgehaald: ./x86_64/libcap-ng0-0.7.3-2.1.2_2.4.1.x86_64.drpm, 6,5 KiB
Ophalen: libcap-ng0-0.7.3-2.1.2_2.4.1.x86_64.drpm .......................[klaar]
Delta wordt toegepast: ./libcap-ng0-0.7.3-2.1.2_2.4.1.x86_64.drpm .......[klaar]
pakket libxml2-2-2.9.1-2.12.1.x86_64 wordt opgehaald
                                          (2/4), 555,3 KiB (  1,5 MiB uitgepakt)
Delta wordt opgehaald: ./x86_64/libxml2-2-2.9.1-2.8.1_2.12.1.x86_64.drpm, 23,9 KiB
Ophalen: libxml2-2-2.9.1-2.8.1_2.12.1.x86_64.drpm .......................[klaar]
Delta wordt toegepast: ./libxml2-2-2.9.1-2.8.1_2.12.1.x86_64.drpm .......[klaar]
pakket libopenssl1_0_0-1.0.1h-11.48.1.x86_64 wordt opgehaald
                                          (3/4), 795,9 KiB (  2,4 MiB uitgepakt)
Delta wordt opgehaald: ./x86_64/libopenssl1_0_0-1.0.1g_1.0.1h-11.44.1_11.48.1.x86_64.drpm, 81,5 KiB
Ophalen: libopenssl1_0_0-1.0.1g_1.0.1h-11.44.1_11.48.1.x86_64.drpm ......[klaar]
Delta wordt toegepast: ./libopenssl1_0_0-1.0.1g_1.0.1h-11.44.1_11.48.1.x8[klaar]
pakket openssl-1.0.1h-11.48.1.x86_64 wordt opgehaald
                                          (4/4), 527,7 KiB (  1,3 MiB uitgepakt)
Delta wordt opgehaald: ./x86_64/openssl-1.0.1g_1.0.1h-11.44.1_11.48.1.x86_64.drpm, 200,4 KiB
Ophalen: openssl-1.0.1g_1.0.1h-11.44.1_11.48.1.x86_64.drpm [klaar (552,1 KiB/s)]
Delta wordt toegepast: ./openssl-1.0.1g_1.0.1h-11.44.1_11.48.1.x86_64.drp[klaar]
(1/4) Installeert: libcap-ng0-0.7.3-2.4.1 ...............................[klaar]
(2/4) Installeert: libxml2-2-2.9.1-2.12.1 ...............................[klaar]
(3/4) Installeert: libopenssl1_0_0-1.0.1h-11.48.1 .......................[klaar]
(4/4) Installeert: openssl-1.0.1h-11.48.1 ...............................[klaar]
Er zijn actieve programma's die bestanden gebruiken die recent zijn opgewaardeerd. U zou enige van deze mogelijk willen herstarten. Draai 'zypper ps' om een lijst te verkrijgen van deze programma's.

De opmerking op het einde kan je volgen door de computer te herstarten. Doe dit met de opdracht shutdown -r now.

Met de opdracht yast2 start je het systeembeheer van openSUSE op. Met behulp van de pijltoetsen selecteer je in het linker paneel de categorie Network Devices. Selecteer in het rechter paneel met behulp van de pijltoetsen de module Network Settings. Start de module Network Settings met de Return toets.

Activeer met de Tab toets het paneel met de netwerkkaarten. Aangezien de netwerkkaart die verbonden is met het internet reeds een IP adres via DHCP heeft gekregen is deze reeds tijdens te installatie van openSUSE correct geconfigureerd.

Selecteer de LAN netwerkkaart (hier RTL-8169 Gigabit Ethernet). Tab naar de knop Bewerken. Voer de opdracht Bewerken uit door Return te drukken.

Geef de netwerkaart een Statisch toegewezen IP-adres. Dit IP adres mag niet in het bereik (range) van uw andere netwerken liggen (hier 192.168.1...., meestal af te leiden uit uw Gateway, Nameserver en/of IP adres van de WAN netwerkkaart). Tab naar het veld IP-adres en vul daar het IP adres van uw toekomstige router in (hier 192.168.0.1). Het Subnetmasker bepaalt het bereik (range) van het nieuwe netwerk en de Hostnaam mag je zelf kiezen. Met F10 bevestig je de aanpassingen.

Netwerkkaart instellingen

Activeer met de pijltoetsen het tabblad Routering. Vul in het veld Standaard IPv4-gateway het IP adres van de gateway met toegang tot het internet voor de router (192.168.1.1) in. Tab naar het selectievak IP forwarding activeren en activeer de optie met de Spatie toets. Deze optie zorgt ervoor dat een IP adres afkomstig van het LAN correct verder wordt gestuurd en omgekeerd. Dit maakt van uw systeem een router. Druk F10 om de aanpassingen te bevestigen.

Routering

Activeer in het linker paneel de categorie Security and Users. Start in het rechter paneel de module Firewall.

Selecteer in het linker paneel het onderdeel Interfaces en activeer dit onderdeel met de Return toets. Tab naar het paneel met de netwerkkaarten. Selecteer de netwerkaart verbonden met het LAN netwerk (RTL-8169 Gigabit Ethernet). Tab naar de knop Wijzigen... en voer de opdracht met Return uit. Tab naar de selectielijst en pas deze met de pijltoetsen aan van Geen zone toegewezen naar Interne Zone (selecteren en Return drukken). Bevestig de aanpassing met de opdrachtknop OK.

Firewall interfaces

De netwerkkaart met toegang tot het internet (WAN) staat correct ingesteld op Externe zone.

Bij Toegestane service staan de diensten die je wilt gebruiken (bijvoorbeeld beveiligde shell server (SSHD)).

Om de twee netwerken van elkaar te scheiden worden deze verborgen, dit gebeurt met behulp van Maskering (NAT). Activeer het onderdeel Maskering in het linker paneel. Gebruik de opdrachtknop Help als je over het actieve onderdeel wat meer wilt weten. Activeer de optie Maskering netwerken.

Maskering netwerken

Bevestig de aanpassingen met F10 en voltooi de firewall instellingen nogmaals met F10.

Om de computers in het LAN netwerk van dynamische IP-adressen te voorzien hebben we een DHCP server nodig. Start in de categorie Software de module Software Management. Typ in het veld Zoekterm de tekst dhcp-server in. Start het zoeken met Return. Selecteer en activeer met de Spatie toets de pakketten dhcp-server en yast2-dhcp-server. Installeer deze pakketten met de knoppen Accepteren en OK.

Software Management

Aangezien we hier een extra YaST module hebben geïnstalleerd, sluiten we YaST af met F9 en terug op met de opdracht yast2.

Start in de categorie Network Services de module DHCP Server op. Je kunt een foutmelding krijgen waarbij de hostnaam niet bepaald kon worden, dit heeft tot gevolg dat de LDAP gebaseerde configuratie niet beschikbaar zal zijn (wat ons niet zal storen). Selecteer de LAN netwerkkaart (RTL-8169 Gigabit Ethernet) en Tab naar de keuze-optie Selecteren. Activeer de keuze-optie Selecteren met Return. Activeer de optie Firewall voor de geselecteerde interface openen.

DHCP Kaart selectie

Met F10 ga je naar het volgende dialoogvenster. Typ in het veld Naam van de DHCP-server (optioneel) een naam naar keuze in. Typ in het veld Domeinnaam de naam van uw netwerk. Typ in het veld Primaire naamserver IP het IP adres van uw naamserver. Typ in het veld Secundaire naamserver IP het IP adres van een alternatieve naamserver in (wordt enkel gebruikt als de primaire naamserver zijn werkt niet doet). In het voorbeeld gebruik ik de Google naamserver. Typ in het veld Standaard gateway (router) het IP adres van de netwerkkaart naar het LAN netwerk. Typ in het veld NTP tijdserver het IP adres van je favoriete tijdserver (hier be.pool.ntp.org). Een correcte tijd is voor veel server functies zeer belangrijk.

DHCP Globale instellingen

Ga met F10 naar het volgende dialoogvenster. Met de velden Eerste IP-adres en Laatste IP-adres bepaal je welke IP-adressen de DHCP server dynamisch mag toekennen.

Dynamische DHCP

Met F10 ga je naar het volgende dialoogvenster. Activeer de optie Tijdens het opstarten. Daardoor start de DHCP server automatisch bij het opstarten van de computer. Voltooi met F10.

DHCP opstarten

Sluit YaST af met F9.

De router is klaar.

Je kunt de router sneller namen laten omzetten naar IP-adressen als je deze gaat cachen. Dit doe je eenvoudig door de volgende drie opdrachten uit te voeren.

linux-rvcx:~ # zypper install dnsmasq
Gegevens van installatiebron laden...
Lezen van geïnstalleerde pakketten...
Afhankelijkheden tussen pakketten oplossen...

De volgende 3 NIEUWE pakketten zullen worden geïnstalleerd:
  dnsmasq libmnl0 libnetfilter_conntrack3 

3 nieuw te installeren pakketten.
Totale downloadgrootte: 399,1 KiB Na de operatie zal aanvullend 1,1 MiB worden 
gebruikt.
Doorgaan? [j/n/? alle opties tonen] (j): 
pakket libmnl0-1.0.3-7.1.2.x86_64 wordt opgehaald
                                          (1/3),  10,9 KiB ( 22,4 KiB uitgepakt)
Ophalen: libmnl0-1.0.3-7.1.2.x86_64.rpm .................................[klaar]
pakket libnetfilter_conntrack3-1.0.4-2.1.2.x86_64 wordt opgehaald
                                          (2/3),  39,2 KiB (114,6 KiB uitgepakt)
Ophalen: libnetfilter_conntrack3-1.0.4-2.1.2.x86_64.rpm .................[klaar]
pakket dnsmasq-2.65-7.1.2.x86_64 wordt opgehaald
                                          (3/3), 349,0 KiB (971,5 KiB uitgepakt)
Ophalen: dnsmasq-2.65-7.1.2.x86_64.rpm ....................[klaar (836,2 KiB/s)]
(1/3) Installeert: libmnl0-1.0.3-7.1.2 ..................................[klaar]
(2/3) Installeert: libnetfilter_conntrack3-1.0.4-2.1.2 ..................[klaar]
(3/3) Installeert: dnsmasq-2.65-7.1.2 ...................................[klaar]
linux-rvcx:~ # systemctl start dnsmasq.service
linux-rvcx:~ # systemctl enable dnsmasq.service
ln -s '/usr/lib/systemd/system/dnsmasq.service' '/etc/systemd/system/multi-user.target.wants/dnsmasq.service'

Dit kan je nagaan door op een LAN computer tweemaal dezelfde opdracht uit te voeren.

dany@linux-nlfy:~> dig linux.pindanet.be

; <<>> DiG 9.9.4-rpz2.13269.14-P2 <<>> linux.pindanet.be
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8748
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;linux.pindanet.be.             IN      A

;; ANSWER SECTION:
linux.pindanet.be.      3600    IN      A       46.30.212.115

;; Query time: 68 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Sat Jun 07 20:59:33 CEST 2014
;; MSG SIZE  rcvd: 62

dany@linux-nlfy:~> dig linux.pindanet.be

; <<>> DiG 9.9.4-rpz2.13269.14-P2 <<>> linux.pindanet.be
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13773
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;linux.pindanet.be.             IN      A

;; ANSWER SECTION:
linux.pindanet.be.      3502    IN      A       46.30.212.115

;; Query time: 0 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Sat Jun 07 21:01:11 CEST 2014
;; MSG SIZE  rcvd: 51

De eerste keer duurde het opzoeken van het IP adres 68 msec, de tweede keer 0 msec.