Ubuntu Server instellen als een router met PPPoE



Probeer Ons Instrument Voor Het Oplossen Van Problemen

Ubuntu Server is technisch ontworpen als een CLI-prompt-besturingssysteem voor gebruik met grote grote ijzeren servers, maar er is geen reden waarom het niet kan werken in routers en embedded systemen die ook Point-to-Point Protocol via Ethernet beheren. Aangenomen wordt dat voor een dergelijk project een kleine pc zonder ventilator of een soort routerbox nodig is die u kunt aanpassen via een NAND-flashchip. Meer dan waarschijnlijk ga je een behoorlijke hoeveelheid RAM en een solid-state schijf installeren om ruis en bewegende delen te elimineren. Mogelijk bent u geïnteresseerd in het gebruik van een SDHC-naar-SATA-converter, zodat u het volledige besturingssysteem vanaf een SD-kaart kunt gebruiken. SD-kaarten die in zijsleuven op legacy-vrije hardware worden gestoken, kunnen ook het besturingssysteem opstarten. Dit werkt prima bij gebruik met een PPPoE-systeem.



Hoewel je misschien denkt dat het gebruik van dit soort configuratie traag kan zijn zonder een goede elektromechanische harde schijf, zou je in theorie de toegangstijd verkorten. Ubuntu Server is zo klein dat hij toch snel opstart. Als u uw router eenmaal op zijn plaats heeft, zult u deze waarschijnlijk niet vaak meer in- en uitschakelen. Ongeacht de configuratie die u kiest, moet u uw browser naar https://www.ubuntu.com/download/server verwijzen om een ​​ISO te downloaden. De nieuwste versie op het moment van schrijven, Ubuntu Server 16.04.1 LTS, is alleen ontworpen voor gebruik met 64-bits architecturen. De meeste moderne router- en thin client-apparaten voldoen prima aan deze vereiste, maar dit kan een probleem zijn als u iets echt exotisch probeert, zoals het gebruik van een netbook als router.





Ubuntu Server configureren als een PPPoE-router

Verschillende grote ISP-netwerken vereisen nog steeds PPPoE-verificatie. Bijna alle DSL-netwerken gebruiken dit, en hoewel het niet nodig is bij het werken met een glasvezelverbinding, gebruiken sommigen het nog steeds. Netgear-routers bieden een inlogprompt waarmee u gemakkelijk verbinding kunt maken met dit soort netwerken, maar het zal wat werk vergen om een ​​zelfgebouwde Linux-router correct te laten samenwerken met dit soort technologie.

Als je er nog niet bent in je browser, ga dan naar http://releases.ubuntu.com/16.04.1/ . Je had de ISO van deze pagina kunnen downloaden als je die niet had, maar als je hem eenmaal hebt, scrol je naar beneden naar de link die MD5SUMS leest en selecteer je deze.



Voer vanaf de CLI-prompt md5sum uit op de Ubuntu Server ISO en zorg ervoor dat het overeenkomt met het nummer naast ubuntu-16.04-desktop-amd64.iso in de aanbieding.

Als dit het geval is, zorg dan dat u een volledig lege USB-geheugenstick of SD-kaart bij de hand hebt en typ sudo if = ubuntu-16.04-desktop-amd64.iso of = / dev / sdLetter bs = 8M , waarbij de of = prompt wordt vervangen door de naam van het apparaat in kwestie. Je kunt gebruiken sudo fdisk -l om alle apparaten te vinden die op uw systeem zijn aangesloten. Zodra u dit heeft gedaan, verwijdert u de schijf op de juiste manier en sluit u deze aan op het routersysteem. Start het opnieuw op en druk op de sleutel die nodig is om het systeem op te starten vanaf een verwijderbare opslag. Ubuntu Server kan relatief eenvoudig worden geïnstalleerd op basis van een aantal op tekst gebaseerde ncurses-prompts.

Een probleem met het op deze manier installeren is echter dat u voor de verwisselbare media tijdens de installatie met internet moet zijn verbonden en dat het rechtstreeks aansluiten van een box als deze op een netwerk enkele beveiligingsproblemen met zich meebrengt. Sluit hem aan op een van de netwerkpoorten van uw oude router om firewallservices te bieden totdat u hem in gebruik neemt. Zodra je dat doet, moet je een aantal wijzigingen aanbrengen in de GRUB-opstartlader. Koppel, indien mogelijk, uw Linux-router zo snel mogelijk los van uw bestaande machine om de installatie offline voort te zetten. Dit voorkomt vreemde DHCP-problemen die u anders op uw bestaande verbinding zou kunnen krijgen.

Het is zeer waarschijnlijk dat u geen aanvullende software wilt installeren tijdens het configuratieproces van het besturingssysteem. GRUB start stil op een standaard Ubuntu Server-installatie, wat betekent dat u geen foutopsporingsberichten zult zien. Als u een knipperende cursor ziet met niets anders nadat deze is opgestart, houdt u Ctrl, Alt en F1 ingedrukt om naar een virtuele console te gaan. Log in op uw account en typ hoewel je misschien ook vi wilt gebruiken. Zoek een regel die luidt GRUB_CMDLINE_LINUX_DEFAULT = 'stille splash' en verwijder de rustige splash-woorden tussen aanhalingstekens. U wilt ook een regel bewerken die leest GRUB_CMDLINE_LINUX = '' om net.ifnames = 0 biosdevname = 0 op te nemen tussen dubbele aanhalingstekens om uw netwerkkaarten de juiste naam te geven. Sla het bestand op en voer vervolgens sudo update-grub uit om je bootloder bij te werken, aangezien het grub-bestand zich waarschijnlijk op een soort UEFI-partitie bevindt.

Zoek een regel die luidt GRUB_CMDLINE_LINUX_DEFAULT = 'stille splash' en verwijder de woorden ' rustige plons ”Die tussen aanhalingstekens staan. fsafa

Dat moet een piraat zijn.

Type sudo nano om uw interfacebestand te openen voor bewerking, en vervolgens de namen van de netwerkkaarten die u daar aantreft te veranderen naar de traditionele eth0 en eth1 , sla het bestand op en sluit af. Zodra u het bestand heeft verlaten, kunt u het systeem opnieuw opstarten om ervoor te zorgen dat de wijzigingen correct worden doorgevoerd.

Nu moet u de juiste PPPoE- en OpenSSL-software installeren om de installatie te voltooien. U kunt DNS, DHCP, PPPoE en OpenSSL installeren met één opdrachtregelprobleem:

sudo apt-get install bind9 isc-dhcp-server openssl pppoeconf

Dit kan even duren en er kan worden gevraagd of u klaar bent om de wijzigingen goed te keuren. Zorg ervoor dat u het vertelt dat u dat bent. Zodra alles is voltooid, kunt u de verbinding met internet verbreken en offline verder gaan. Misschien wilt u de sync-opdracht een paar keer gebruiken om ervoor te zorgen dat alle buffers worden gesynchroniseerd voor het geval er iets ergs gebeurt.

Uw internetprovider geeft u een gebruikersnaam en wachtwoord, die u in het chap-secrets-bestand moet invoeren. Type maar onthoud dat je nog steeds vi kunt gebruiken als je dat liever hebt. Uw gebruikersnaam en wachtwoord moeten worden vermeld. U wilt bijvoorbeeld mogelijk:

'Billy' * 'mypass3'

Sla het bestand op en navigeer nu naar het In deze directory vindt u een bestand met de naam provider. Open het met nano zoals je deed met de andere configuratiebestanden, of maak op dezelfde manier een nieuwe. Zet elk van deze opdrachten op een aparte regel in het bestand:

noipdefault

standaard route

vervangendefaultroute

volharden

plugin rr-pppoe.so eth0

gebruiker 'billy'

Je kunt ook hide-password en noauth invoeren als je liever geen aanmeldingsprompts gebruikt, aangezien je dit als router gaat gebruiken en niet als een echte productiemachine met een gewone interface. Vervang de naam billy door de daadwerkelijke gebruikersnaam die u heeft, en voer vervolgens pon provider uit of de naam van het bestand dat u maakt om verbinding te maken. Het zou u tijdens het proces relevante foutmeldingen moeten geven, maar u kunt ifconfig gebruiken om de ppp0- of ppp1-netwerkinterface te vinden. U moet hier later naar verwijzen. U kunt usepeerdns toevoegen als u de peer om een ​​aantal DNS-serveradressen wilt vragen, die vervolgens worden doorgegeven aan als omgevingsvariabelen met het label DNS2 en DNS1. Je forceert ook een omgevingsvariabele met de naam USEPEERDNS om zichzelf ook in te stellen op 1. Als u liever uw eigen DNS-servers gebruikt en niet de servers die aan u zijn toegewezen door uw ISP, kunt u lijnen toevoegen aan uw bestand zoals:

Deze moeten hier aanwezig zijn, aangezien elke keer dat u de server herstart of een nieuwe PPPoE-verbinding tot stand brengt, de bestanden worden overschreven.

In de meeste gevallen is uw MTU ingesteld op ongeveer 1500, maar het hoogste niveau bereikt u rond 1492 of misschien zelfs minder sinds u de PPPoE-interface gebruikt. Ervan uitgaande dat u de maximale MTU voor uw ppp0- of ppp1-systeem heeft bepaald, moet u om het ip-up-bestand te openen en vervolgens de regel toe te voegen / sbin / ifconfig ppp0 man #### helemaal onderaan, vervangen #### met uw juiste waarde. Het kan ergens rond 1480 zijn als u het niet zeker weet.

Veel tutorials zullen je vertellen om de eth0 WAN-verbinding in te stellen op DHCP, maar je moet deze instellen op handmatig vanwege de PPPoE-verbinding waarmee je werkt. Gebruik en bewerk het zodat het codeblok onder # De WAN-netwerkinterface leest auto eth0 en iface eth0 inet manual en dan zou het codeblok eronder moeten lezen:

# De LAN-netwerkinterface

auto eth1

iface eth1 inet statisch

adres 192.168.1.1

netmasker 255.255.255.0

Routers hebben pakket doorsturen nodig om als router te kunnen fungeren, dus gebruik en verwijder vervolgens het octothorpe voor net.ipv4.ip_forward = 1 voordat u opslaat. Je vindt het onder een citaat met de volgende regel # Uncomment the next line om packet forwarding in te schakelen voor IPv4, maar je kunt ook het merkteken voor net.ipv6.conf.all.forwarding = 1 verwijderen als je van plan bent om IPv6-routering, wat een uitdaging kan zijn onder een PPPoE-systeem.

Open het iptables-bestand om het te bewerken met de commando en voeg deze regels eraan toe:

Sla het bestand op en sluit nano of een andere teksteditor die je hebt gebruikt af voordat je verder gaat. De iptables vormen de belangrijkste firewall voor de Linux-kernel, dus het is een goed idee om deze tabellen op orde te hebben voordat je de ISP-verbinding daadwerkelijk start.

U moet nu de machtigingen voor het bestand in kwestie wijzigen, dus u kunt sudo -i of sudo bash gebruiken om een ​​root-prompt te krijgen. Zodra u gebruik heeft gemaakt:

Zodra deze machtigingen zijn toegepast, kunt u exit typen en op de enter-toets drukken om de verhoogde prompt te verlaten.

Het volgende configuratiebestand waarmee we moeten openen en je bewerkt het op exact dezelfde manier. U moet de volgende instellingen toevoegen en het octothorpes met het juiste IP-adres voor uw router:

subnet ###. ###. ##. # netmask 255.255.255.0 {

bereik ###. ###. ##. ### ###. ###. ##. ###;

optie routers ###. ###. ##. #;

optie domeinnaam-servers ###. ###. ##. #;

optie uitzendadres ###. ###. ##. ###;

}

Sla het bestand op en sluit het. Als u met een SD-kaart of iets dergelijks werkt, is dit een goed moment om ook de synchronisatieopdracht uit te voeren.

U moet sudo nano nogmaals om het bestand om uw eigen aangepaste regels op te nemen. We werken nog steeds met een PPPoE-verbinding, dus we gebruiken het ppp0-apparaatbestand in plaats van de eth0-standaard.

Onder een codeblok dat begint met de opmerking ' # Klem de MSS op de MTU-maat, 'Bevatten de volgende regel:

-A VOORUIT -p tcp -tcp-vlaggen SYN, RST SYN -j TCPMSS -klem-mss-naar-pmtu

Deze regel is vereist om te voorkomen dat webpagina's maar halverwege worden geladen of dat er een time-out optreedt. In plaats daarvan pint het de MTU en MSS samen, zodat u deze problemen niet zult hebben. Dit stelt de Linux-kernel nu in staat om te raden naar de juiste formaten, maar je kunt ze desgewenst ook specificeren. Onder een codeblok dat begint met ' # Specificeer MSS-grootte, 'Moet je toevoegen:

-A VOORUIT -p tcp –tcp-vlaggen SYN, RST SYN -j TCPMSS –set-mss ####

Vervang de sectie #### door de juiste MSS-waarde. U kunt het uitzoeken met een eenvoudig beetje wiskunde. Trek de grootte van de PPPoE-header af van uw MTU en trek vervolgens de IP-header en de TCP-header af. Het verschil is de totale MSS-grootte.

Mogelijk moet u de SSH-serviceregel wijzigen om de optie –syn toe te voegen waarmee u toegang krijgt tot SSH naar deze router vanaf een andere computer die op uw LAN is geregistreerd. Als u commentaar geeft op de ICMP-serviceregel, reageert uw machine niet op pings. Dit zal uw computer in feite behoorlijk heimelijk maken, hoewel u dit niet als een soort eindbehandeling moet beschouwen die uw surfgedrag via deze router onzichtbaar maakt. Het zal niet, maar het is een extra beveiligingslaag om u te beschermen.

Soms maken de interfaces of PPPoE-verbindingen waarmee u werkt niet meteen verbinding wanneer u de router opstart, dus u wilt misschien een korte opstartscrip maken om ervoor te zorgen dat deze correct werkt wanneer het systeem opstart. Het voegt slechts 8-10 seconden toe aan de totale opstarttijd, dus het is het echt waard. Bewerk het bestand nogmaals met sudo nano en voeg vervolgens

slaap 3

ifup eth0

slaap 3

ifup eth1

slaap 3

pon-provider

U moet de provider vervangen door de naam van een aangepast bestand als u er een heeft gemaakt om het standaardproviderbestand te vervangen. Veel routers hebben slechts 1-2 seconden slaaptijd nodig, dus misschien wilt u daarmee experimenteren om de opstartprestaties te verbeteren. Het zou hoe dan ook niet veel tijd moeten kosten om opnieuw op te starten.

Dit zou de pon- en ifup-opdrachten moeten uitvoeren nadat het systeem volledig is opgestart, maar voordat de daadwerkelijke inlogprompts van de virtuele console verschijnen. Als de verbinding tot stand is gebracht, gebeurt er helemaal niets, maar als een van de verbindingen niet goed werkt, zorgt dit script ervoor dat deze correct wordt geïnitialiseerd. Het laatste pon-commando is gebaseerd op eth0 en eth1, dus je moet het altijd positioneren als de laatste stap, anders kan het script mislukken.

Zodra u de machine opnieuw opstart nadat u al deze wijzigingen heeft aangebracht, heeft u een volledig functionerende router die werkt op Ubuntu Server. Misschien wilt u af en toe gebruiken sudo iptables-L als u hun status van tijd tot tijd moet controleren, maar verder werkt alles net zo goed, zo niet beter dan een commercieel vervaardigde router. Uw nieuwe router zal alle andere benodigde Ubuntu-pakketten uitvoeren, maar u hoeft geen X Server of iets anders te installeren, omdat het systeem correct zou moeten werken zonder dat er aanvullende gebruikersinterfacesoftware nodig is.

9 minuten gelezen