Sådan konfigureres Ubuntu Server som en router ved hjælp af PPPoE



Prøv Vores Instrument Til At Fjerne Problemer

Ubuntu Server er teknisk designet som kun et CLI-prompt-operativsystem til brug med store store jernservere, men der er ingen grund til, at det ikke kan fungere i routere og indlejrede systemer, der også administrerer punkt-til-punkt-protokol over Ethernet. Det antages, at et projekt som dette har brug for enten en lille blæserfri pc eller en slags routerboks, som du kan ændre via en NAND-flashchip. Mere end sandsynligt vil du installere en anstændig mængde RAM såvel som en solid state-disk for at eliminere støj såvel som bevægelige dele. Du kan være interesseret i at bruge en SDHC-til-SATA-konverter, så du kan køre hele operativsystemet fra et SD-kort. SD-kort indsat i sidepladser på ældre hardware kan også starte operativsystemet. Dette fungerer, når du bruger det med et PPPoE-system helt fint.



Mens du måske tror, ​​at brugen af ​​denne form for konfiguration kan være langsom uden en ordentlig elektromekanisk harddisk, ville du faktisk teoretisk reducere adgangstiden. Ubuntu Server er så lille, at den alligevel starter hurtigt. Når du har din router på plads, vil du sandsynligvis ikke tænde og slukke for den meget ofte. Uanset hvilken konfiguration du vælger, vil du rette din browser til https://www.ubuntu.com/download/server for at downloade en ISO. Den nyeste version på tidspunktet for denne skrivning, Ubuntu Server 16.04.1 LTS, er kun designet til brug med 64-bit arkitekturer. De fleste moderne routere og tynde klientenheder opfylder dette krav helt fint, men det kan være et problem, hvis du forsøgte noget virkelig eksotisk som at bruge en netbook som en router.





Konfiguration af Ubuntu Server som en PPPoE-router

Flere større ISP-netværk kræver stadig PPPoE-godkendelse. Næsten alle DSL-netværk bruger dette, og selvom det er unødvendigt, når man arbejder med en fiberforbindelse, bruger nogle af dem stadig det også. Netgear-routere tilbyder en loginprompt, der giver dig mulighed for nemt at oprette forbindelse til disse typer netværk, men det tager noget arbejde at få en hjemmebygget Linux-router til at grænseflade korrekt med denne slags teknologi.

Hvis du ikke allerede er der i din browser, skal du gå til http://releases.ubuntu.com/16.04.1/ . Du kunne have downloadet ISO fra denne side, hvis du ikke havde det, men når du først har det, skal du rulle ned til det link, der læser MD5SUMS, og vælge det.



Fra CLI-prompten skal du køre md5sum på Ubuntu Server ISO og sørge for, at den matcher antallet ud for ubuntu-16.04-desktop-amd64.iso i listen.

Hvis det gør det, skal du få en helt tom USB-hukommelse eller et SD-kort klar og skrive sudo if = ubuntu-16.04-desktop-amd64.iso af = / dev / sdLetter bs = 8M , erstatter of = -prompten med navnet på den pågældende enhed. Du kan bruge sudo fdisk -l for at finde alle enheder, der er knyttet til dit system. Når du har gjort det, skal du fjerne drevet korrekt og tilslutte det til routersystemet. Genstart det, og tryk på den tast, der er nødvendig for at starte systemet fra flytbart lager. Ubuntu Server installerer relativt let baseret på et antal tekstbaserede ncurses-meddelelser.

Et problem med at installere det på denne måde er dog, at det flytbare medie kræver, at du har forbindelse til Internettet under installationen, og at forbinde en boks som denne direkte til et netværk udgør nogle sikkerhedsproblemer. Sæt den i en af ​​netværksportene på din gamle router for at levere firewall-tjenester, indtil du får den i gang. Så snart du gør det, bliver du nødt til at foretage nogle ændringer i GRUB boot loader. Hvis det er muligt, skal du frakoble din Linux-router fra din eksisterende maskine så hurtigt som muligt for at fortsætte installationen offline. Dette forhindrer mærkelige DHCP-problemer, som du ellers får med din eksisterende forbindelse.

Mere end sandsynligt vil du ikke installere nogen tilføjelsessoftware under operativsystemkonfigurationsprocessen. GRUB starter lydløst på en standard Ubuntu Server-installation, hvilket betyder, at du ikke kan se fejlretningsmeddelelser. Hvis du ser en blinkende markør med intet andet, efter at den er startet, skal du holde Ctrl, Alt og F1 nede for at komme til en virtuel konsol. Log ind på din konto, og skriv derefter selvom du måske også ønsker at bruge vi i stedet. Find en linje, der læser GRUB_CMDLINE_LINUX_DEFAULT = ”stille stænk” og slet de stille stænkord i anførselstegn. Du vil også gerne redigere en linje, der læser GRUB_CMDLINE_LINUX = ”” for at inkludere net.ifnames = 0 biosdevname = 0 i de dobbelte citater for at navngive dine netværkskort korrekt. Gem filen, og kør derefter sudo update-grub for at opdatere din boot-loder, da grub-filen sandsynligvis faktisk er på en slags UEFI-partition.

Find en linje, der læser GRUB_CMDLINE_LINUX_DEFAULT = ”stille stænk” og slet ordene “ stille stænk ”Der er i anførselstegn. fsafa

Det er en pirat.

Type sudo nano for at åbne din interfaces-fil til redigering og derefter ændre navnene på de netværkskort, du finder der, tilbage til det traditionelle eth0 og eth1 , gem derefter filen og afslut. Når du er ude af filen, kan du genstarte systemet for at sikre, at ændringerne træder i kraft korrekt.

Nu skal du installere den korrekte PPPoE- og OpenSSL-software for at fuldføre installationen. Du kan installere DNS, DHCP, PPPoE og OpenSSL med et enkelt kommandolinjeproblem:

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

Dette kan tage et øjeblik, og det kan spørge, om du er klar til at godkende ændringerne. Sørg for at fortælle det, at du er. Så snart det er færdig med alt, kan du faktisk afbryde forbindelsen til internettet og fortsætte offline. Det kan være en god idé at bruge kommandoen synkronisering et par gange for at sikre, at alle buffere er synkroniseret sammen, hvis der sker noget dårligt.

Din internetudbyder giver dig et brugernavn og en adgangskode, som du skal indtaste i filen chap-secrets. Type men husk at du stadig kunne bruge vi, hvis du foretrækker det. Dit brugernavn og din adgangskode skal citeres. For eksempel vil du muligvis have:

“Billy” * “mypass3”

Gem filen og naviger nu til Du finder en fil kaldet udbyder i denne mappe. Åbn det med nano, som du gjorde med de andre konfigurationsfiler, eller opret en ny på samme måde. Sæt hver af disse kommandoer på en separat linje i filen:

noipdefault

standardroute

udskiftet fejlrute

vedvarer

plugin rr-pppoe.so eth0

bruger “billy”

Du kan også indsætte skjuladgangskode og noauth, hvis du hellere ikke vil bruge login-meddelelser, da du vil bruge dette som en router og ikke som en egentlig produktionsmaskine med en almindelig grænseflade. Udskift navnet billy med det aktuelle brugernavn, du har, og kør derefter pon-udbyderen eller navnet på den fil, du opretter for at oprette forbindelse. Det skal give dig relevante fejlmeddelelser i processen, men du kan bruge ifconfig til at finde ppp0 eller ppp1 netværksgrænsefladen. Du bliver nødt til at henvise til dette senere. Du kan tilføje usepeerdns, hvis du vil bede peer om et par DNS-serveradresser, som derefter sendes til som miljøvariabler mærket DNS2 og DNS1. Du vil også tvinge en miljøvariabel kaldet BRUG at sætte sig selv til 1 også. Hvis du hellere vil bruge dine egne DNS-servere og ikke dem, der er tildelt dig af din internetudbyder, kan du tilføje linjer til din fil som:

Disse skal være her, da hver gang du genstarter serveren eller opretter en ny PPPoE-forbindelse, filer overskrives.

I de fleste tilfælde er din MTU indstillet til omkring 1500, men den højeste vil du være i stand til at få den omkring 1492 eller måske endda mindre, da du bruger PPPoE-grænsefladen. Forudsat at du har bestemt den maksimale MTU for dit ppp0- eller ppp1-system, skal du bruge det for at åbne ip-up-filen og derefter tilføje linjen / sbin / ifconfig ppp0 man #### helt nederst, erstatter #### med din korrekte værdi. Det kan være et sted omkring 1480, hvis du er i tvivl.

Mange tutorials fortæller dig at indstille eth0 WAN-forbindelsen til DHCP, men du skal indstille den til manuel på grund af den PPPoE-forbindelse, du arbejder bag. Brug og rediger det, så kodeblokken under # WAN-netværksgrænsefladen læser auto eth0 og iface eth0 inet manual, og derefter skal kodeblokken nedenunder lyde:

# LAN-netværksgrænsefladen

auto eth1

iface eth1 inet statisk

adresse 192.168.1.1

netmaske 255.255.255.0

Routere har brug for videresendelse af pakke aktiveret for at fungere som en router, så brug og fjern derefter octothorpe foran net.ipv4.ip_forward = 1 inden du gemmer. Du finder det under et citat, der lyder # Fjern kommentar til den næste linje for at aktivere videresendelse af pakke til IPv4, men du vil måske også fjerne markeringen foran net.ipv6.conf.all.forwarding = 1, hvis du planlægger at bruge IPv6-routing, hvilket kan være en udfordring under et PPPoE-system.

Åbn iptables-filen til redigering med kommando, og tilføj derefter disse linjer til den:

Gem filen, og afslut derefter nano eller en hvilken som helst anden teksteditor, du har brugt, før du fortsætter. Iptables udgør den primære firewall til Linux-kernen, så det er en god ide at have disse tabeller i orden, før du rent faktisk starter ISP-forbindelsen.

Du bliver nu nødt til at ændre tilladelserne til den pågældende fil, så du vil muligvis bruge sudo -i eller sudo bash for at få en rodprompt. Når du har brugt:

Når disse tilladelser er anvendt, kan du skrive exit og trykke på enter-tasten for at komme ud af den forhøjede prompt.

Den næste konfigurationsfil, vi skal åbne med og du redigerer det på samme nøjagtige måde. Du skal tilføje følgende indstillinger og erstatte octothorpes med den rigtige IP-adresse til din router:

undernet ###. ###. ##. # netmaske 255.255.255.0 {

rækkevidde ###.###.##.### ###.###.##.###;

option routere ###. ###. ##. #;

option domænenavn-servere ###. ###. ##. #;

option udsendelses-adresse ###. ###. ##. ###;

}

Gem og luk filen. Hvis du arbejder med et SD-kort eller noget lignende, er det også et andet godt tidspunkt at udstede synkroniseringskommandoen.

Du bliver nødt til at bruge sudo nano igen for at åbne fil for at inkludere dine egne brugerdefinerede regler. Vi arbejder stadig med en PPPoE-forbindelse, så vi bruger ppp0-enhedsfilen i stedet for eth0-standard.

Under en kodeblok, der starter med kommentaren “ # Klem MSS til MTU-størrelse, ”Inkluderer følgende linje:

-A FORWARD -p tcp –tcp-flags SYN, RST SYN -j TCPMSS –clamp-mss-to-pmtu

Denne regel er nødvendig for at forhindre, at websider kun indlæses halvvejs eller tidsindstilles. Det knytter i stedet MTU og MSS sammen, så du har ikke disse problemer. Nu tillader Linux-kernen at gætte om de rigtige størrelser, men du kan faktisk angive dem, hvis det kræves. Under en kodeblok, der starter med “ # Angiv MSS-størrelse, ”Skal du tilføje:

-E FORWARD -p tcp –tcp-flags SYN, RST SYN -j TCPMSS –set-mss ####

Udskift sektionen #### med den korrekte MSS-værdi. Du kan finde ud af det med en simpel matematik. Træk PPPoE-headerstørrelsen fra din MTU, og træk derefter IP-headeren og TCP-headeren. Forskellen er den samlede MSS-størrelse.

Du skal muligvis ændre SSH-servicereglen for at tilføje –syn-indstillingen, der giver dig adgang til SSH til denne router fra en anden computer, der er registreret på dit LAN. Hvis du kommenterer ICMP-servicereglen, får din maskine ikke til at svare på nogen ping. Dette vil faktisk gøre din computer ret snigende, selvom du ikke bør overveje dette som en slags slutbehandling, der gør dine browservaner gennem denne router usynlige. Det gør det ikke, men det er endnu et lag af sikkerhed for at beskytte dig.

Nogle gange forbinder de grænseflader eller PPPoE-forbindelser, du arbejder med, ikke med det samme, når du starter routeren, så du vil muligvis oprette et kort opstartsskript for at sikre, at det fungerer korrekt, når systemstart er. Det tilføjer kun ca. 8-10 sekunder til den samlede opstartstid, så det er det faktisk værd. Rediger fil med sudo nano igen, og tilføj derefter

sove 3

ifup eth0

sove 3

ifup eth1

sove 3

pon-udbyder

Du bliver nødt til at erstatte udbyderen med navnet på en brugerdefineret fil, hvis du oprettede en til at erstatte standardudbyderfilen. Mange routere har kun brug for en 1-2 sekunders søvntid, så det kan være en god idé at eksperimentere med det for at forbedre opstartsydelsen. Det bør overhovedet ikke tage meget tid at genstarte overhovedet.

Dette skal køre pon og ifup-kommandoer, efter at systemet er startet helt, men før den faktiske virtuelle konsoles log-in-meddelelser vises. Hvis forbindelsen er op, sker der slet intet, men hvis en af ​​forbindelserne ikke fungerer korrekt, vil dette script sikre, at det initialiseres korrekt. Den sidste pon-kommando er afhængig af eth0 og eth1, så du skal altid placere den som det sidste trin, ellers kan scriptet muligvis fejle.

Så snart du genstarter maskinen efter at have foretaget alle disse ændringer, har du en fuldt fungerende router, der arbejder på Ubuntu Server. Du ønsker muligvis lejlighedsvis at bruge sudo iptables-L hvis du har brug for at kontrollere deres status fra tid til anden, men ellers fungerer alt så godt, hvis ikke bedre end en kommercielt fremstillet router. Din nye router vil køre andre nødvendige Ubuntu-pakker, men du skal ikke installere en X-server eller noget andet, fordi systemet skal fungere korrekt uden behov for yderligere brugergrænsefladesoftware.

9 minutter læst