Een gateway instellen voor uw lokale thuisnetwerk op Ubuntu Linux

Het is dus onze taak om van een computer een Debian-beheer/ Ubuntu (ik zal voor Debian schrijven) een gateway of programmeerbare router voor het distribueren van internet naar een lokaal netwerk. Een voorbeeld met twee netwerkkaarten op de distribuerende (gateway) pc.

Als u dit niet aangeeft, en de provider zendt niet automatisch ns-servers naar u uit, dan kunt u eenvoudigweg niet op internet werken of pingen externe bronnen. Over het algemeen: probeer het!

Vergeet niet de interfaces opnieuw te laden om de instellingen toe te passen, of de machine opnieuw op te starten als de interfaces weigeren correct opnieuw te laden via de opdracht.

De machine is dus beschikbaar in intern netwerk, we hebben internet op de machine zelf (het is gemakkelijk te controleren, log er bijvoorbeeld op in via ssh en ping Yandex). Hoe kunnen we het internet nu naar de lokale omgeving distribueren? Makkelijker kan het niet! Laten we een speciale pseudo gebruiken grafisch hulpprogramma Arno firewall.

apt-get installeer arno-iptables-firewall

P.s. Om de firewall later opnieuw te configureren om bijvoorbeeld nieuwe poorten toe te voegen, voert u de opdracht in:dpkg-arno-iptables-firewall opnieuw configureren

Er verschijnt onmiddellijk een mooi venster waarin u en mij worden gevraagd een firewall te configureren die ons netwerk van buitenaf zal beschermen en internet naar de lokale omgeving zal uitzenden. De firewall zal u vragen om externe en interne netwerkinterfaces op te geven. Als u bijvoorbeeld een IP-verbinding of een modemverbinding gebruikt, geef dan naast de interfacenaam ook de verbindingsnaam op.

Voor vragen van DHCP-antwoord ja , NAT - inschakelen ja, of u van buitenaf wilt pingen, zoals u wilt, of u van buitenaf toegang wilt krijgen tot uw kantoor/huis, dan ja, anders nee. Vervolgens wordt u gevraagd aan te geven welke poorten geopend moeten worden voor TCP- en UDP-verbindingen (inkomend en uitgaand verkeer). In de regel heeft elk programma zijn eigen poort, die wordt aangegeven in de help ervan, en er is ook een reeks standaardpoorten. 80/8080 https, 22 FTP, 21 SSH enzovoort. Open de poorten die u nodig hebt. Ik vestig nogmaals uw aandacht op het feit dat als een programma iets probeert te downloaden/uploaden via een poort die hier niet is gespecificeerd, niets zal werken.

Poortnummers worden gescheiden door spaties en bereiken worden gescheiden door een dubbele punt tussen de cijfers (zonder spatie). Zorg er ook voor dat de poortgegevens voor zowel UDP- als TCP-tabbladen vergelijkbaar zijn, anders zullen er incidenten optreden in de geest van het feit dat het programma informatie verzendt maar deze niet kan ontvangen - en omgekeerd.

Vervolgens worden we gevraagd naar CIDR en interne subnetregels. Ons interne subnet is 192.168.0.0/24 (we voeren dit daar in), met deze invoer kunnen alle computers op het netwerk 192.168.x.x ontvangen externe informatie. Je kunt ook alleen internet weggeven geselecteerde computers of apparaten met specifieke netwerkadressen, geef deze dan onmiddellijk op, waarbij u de adressering strikt beperkt.

En het volgende gebeurde - op de computer in lokaal netwerk Ik heb het adres expliciet aangegeven en de gateway naar onze distribuerende computerrouter ingesteld met het adres 192.168.0.1, ik heb de provider en de Google ns-servers op de clientcomputer geïnstalleerd (adres 8.8.8.8). En voila, internet staat erop.

Toen ik echter probeerde verbinding te maken met het netwerk met een apparaat dat zijn eigen adres en gateway niet kon instellen, kreeg ik een teleurstelling te verwerken! We hebben de distributie van adressen niet geconfigureerd. En dit staat in het volgende artikel - servers.

Gegeven: 1. Computer met twee netwerkkaarten. 2. Debian-distributie of Ubuntu-Linux. (Ik zou het nog steeds aanbevelen Debian-servers) 3. Rechte armen en een fris hoofd.

Dus laten we aan de slag gaan!
Laten we eerst Linux op uw computer installeren en alle netwerkinstellingen opgeven. Ik raad aan om Debian te installeren, en als daarom wordt gevraagd, hebben we een keuze benodigde pakketten, zullen we alleen de hoofdcomponenten van het systeem en de openssh-server installeren. Dat is alles, we hebben niets anders nodig om de gateway op Linux te laten werken. Geen grafische schillen. Wij installeren de app direct, waarna je via ssh verbinding kunt maken voor bediening externe server, of als het toetsenbord, de muis en de monitor niet zijn aangesloten. Debian installeren op een computer verschilt niet veel van het installeren van Ubuntu.

Nadat we Linux op een computer hebben geïnstalleerd, moeten we er een gateway van maken. Om dit te doen, moet hij iets kunnen doen.
1. Overslaan netwerkpakketten via jezelf. (VOORUIT)
2. Netwerkadressen vertalen (zet lokale netwerkadressen om naar 1 extern adres waaronder de gebruiker toegang krijgt tot het netwerk). Met andere woorden: de gateway maakt het mogelijk dat lokale netwerkgebruikers er onder hun eigen adres doorheen gaan. Je kunt het een softwarerouter noemen of wat je maar wilt. Deze dienst heet NAT (Network Address Translation).

Maar eerst dingen eerst. Laten we eerst de netwerkinterfaces configureren. Lokale netwerkinstellingen neem je over van jezelf, internetinstellingen van je provider. Als u geen toegang tot internet krijgt via IP-autorisatie, maar via een xDSL-verbinding, gebruik dan het hulpprogramma pppoeconf.

Laten we ons voorstellen dat we twee geconfigureerde netwerkinterfaces hebben. Dit zijn lokaal (eth0) en extern (eth1). Er is internet op de gateway, Yandex pingt, Google pingt daar ook. Bijna de laatste taak is om ervoor te zorgen dat onze Linux-gateway iedereen via zichzelf toegang tot internet geeft. Hier wil ik opmerken dat Linux zijn eigen firewall heeft, en deze heet iptables. Standaard werkt iptables op deze manier: "Ik laat niemand binnen, behalve via de verbindingen die door mij zijn geïnitieerd!" Maar dat zal niet werken). Daarom configureren we iptables:

Laten we gaan:
1. Maak een bestand met de naam firewall.sh in de map /etc/init.d/

# raak /etc/init.d/firewall.sh aan

2. Wij geven rechten om te lanceren

# chmod 755 /etc/init.d/firewall.sh

3. Voeg ons script toe aan het opstarten. Voor het geval dat:)

# update-rc.d firewall.sh standaardwaarden

4. Eigenlijk bewerken we ons script.

# nano /etc/init.d/firewall.sh

Laten we de kernel laten begrijpen dat dit een real.sh-script is

# !/bin/sh (hier, samen met het #-symbool en schrijf erin! Dit is het soort commentaar dat de kernel nodig heeft)

Laten we het doorsturen in Linux inschakelen.

echo 1 > /proc/sys/net/ipv4/ip_forward (1 - aan, 0 - uit :))

Laten we alle inkomende, uitgaande en doorstuurinstellingen resetten. Dit zal ons helpen om de “onjuiste” iptables-regels die in de console zijn getypt, te verwijderen. Voer gewoon het script uit en de regels worden bijgewerkt:

iptables -F INPUT
iptables -F-UITVOER
iptables -F VOORUIT

Standaardbeleid - doorsturen toegestaan:

iptables -P VOORUIT ACCEPTEREN

Laten we een nieuwe post-routingregel toevoegen netwerk tafel"nat". De logica van de regel is als volgt: vanuit de bron van het “lokale netwerk” moeten uitgaande pakketten via de externe interface worden “verzonden” (verzonden als één extern pakket), maar we zullen ons voordoen. Maskerade (MASQURADE) biedt de mogelijkheid correcte werking met een dynamisch extern IP-adres. iptables -A (nieuwe regel) POSTROUTING (post-routing) -t (tabellen...) nat (...NAT) -s (bron - van de bron) 192.168.1.0/24 (gehele lokale netwerk) -o ( output - via uitgaand...) eth1 (...interface eth1) -j (baan - werk (wat te doen?)) MASQUERADE (vermomming). Die. Dit is de iptables-regel:

iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o eth1 -j MASQUERADE

Dat is alles. Je kunt ook zoiets als een melding aan het einde van het script toevoegen, die aangeeft dat het script werkte:

echo firewallregels geaccepteerd
Opslaan en sluiten. (Als je via nano hebt bewerkt, zoals in dit artikel, druk dan op ctrl+o (opslaan) ctrl+x (sluiten)).
Laten we nu ons script uitvoeren

/etc/init.d/firewall.sh

Heeft u het bericht "firewallregels geaccepteerd" gezien? Waren er fouten? Gefeliciteerd! De Linux-gateway is klaar! Nu hebben alle computers van uw lokale netwerk toegang tot internet, zij het zonder enige beperking. En ja, als uw netwerk dat niet doet DNS-server en vervolgens moet je in de clientinstellingen de DNS van de server van de provider opgeven, of bijvoorbeeld DNS Google-server;) (het adres is gemakkelijk te onthouden - 8.8.8.8)

iptables -A FORWARD -p igmp -i eth0 -o eth1 -j ACCEPTEREN
iptables -I INPUT -d 224.0.0.0/4 -j ACCEPTEREN
iptables -I VOORUIT -d 224.0.0.0/4 -j ACCEPTEREN
route add -net 224.0.0.0 netmasker 240.0.0.0 eth0
iptables -t filter -A INPUT -d 224.0.0.0/240.0.0.0 -i eth0 -j ACCEPTEREN
iptables -t filter -A INPUT -s 224.0.0.0/240.0.0.0 -i eth0 -j ACCEPTEREN
iptables -t filter -A VOORUIT -d 224.0.0.0/240.0.0.0 -j ACCEPTEREN
iptables -t filter -A FORWARD -s 224.0.0.0/240.0.0.0 -j ACCEPTEREN
iptables -t mangle -A PREROUTING -d 224.0.0.0/240.0.0.0 -p udp -j TTL --ttl-inc 1

Met Linux OS is het eenvoudig om internet naar een lokaal netwerk te distribueren, bijvoorbeeld bekabelde netwerken en via wifi. Momenteel zijn er veel routers die deze taak kunnen uitvoeren.

Maar ze hebben ook nadelen: sommige lopen regelmatig zonder reden vast en vereisen een herstart, terwijl andere een beperkte functionaliteit voor toegangsinstellingen hebben. Dus als u de distributie van internet naar het lokale netwerk volledig wilt controleren, de beste optie zal een internetgateway op Linux opzetten.

Er zijn veel manieren om het te configureren, het hangt allemaal af van de kwalificaties van de persoon die het gaat doen. Er zijn speciale distributies waarin dergelijke toegang kan worden georganiseerd via een wizard of via een webinterface grafische programma's voor het organiseren van een internetgateway. Maar de kern van alles is één werkingsprincipe.

Een internetgateway opzetten op Linux

Internetdistributie wordt in Linux uitgevoerd met behulp van firewalls. Er zijn verschillende typen, maar de belangrijkste, die voortdurend evolueert, aangevuld met nieuwe functies en tegelijkertijd eenvoudig te configureren is, is iptables.

In iptables kun je het internet verspreiden via broadcast netwerkadressen- NAT, en de methode zelf wordt IP-masquerading genoemd. Maar naast het instellen van de iptables-regels zelf, moet je de kernelmodules laden die verantwoordelijk zijn voor de vertaling van netwerkadressen (deze zijn standaard uitgeschakeld).

De eenvoudigste manier is om iptables-instellingen op te slaan en kernelmodules te laden configuratiebestand. Het enige dat u dan nog hoeft te doen, is het zo te configureren dat het elke keer dat de computer opstart, wordt uitgevoerd. En uiteraard moeten er twee netwerkkaarten op de computer worden geïnstalleerd: de ene ontvangt internet en de andere distribueert internet naar het lokale netwerk. Of één, als internettoegang via een USB-modem wordt geboden.

Hier is een voorbeeld, we moeten er rekening mee houden dat in dit geval iptables is geïnstalleerd, maar niet geconfigureerd.

Het proces van het opzetten van een internetgateway
Open de console met beheerdersrechten en maak een bestand met de opdracht:

Raak /etc/nat.sh aan
Open het in een bekende editor, hier is een voorbeeld voor nano:

Nano -w /etc/nat.sh
En schrijf de regels erin

#!/bin/bash
Laten we variabelen declareren, paden voor de noodzakelijke uitvoerbare bestanden en benamingen netwerkinterfaces:

IPT=/sbin/iptables MDB=/sbin/modprobe
eth0 wordt beschouwd als de interface waarmee internet naar de computer komt, en eth1 is verbonden met het lokale netwerk, Waar zal de internetgateway het verkeer distribueren? op Linux:

EX=”eth0” INT=”eth1”
Laad de kernelmodules die nodig zijn voor NAT:

$MDB ip_tables $MDB ip_conntrack $MDB ip_conntrack_ftp $MDB ip_conntrack_irc $MDB iptable_nat $MDB ip_nat_ftp $MDB ip_nat_irc
We staan ​​het doorsturen van pakketten toe:

Echo "1" > /proc/sys/net/ipv4/ip_forward echo "1" > /proc/sys/net/ipv4/ip_dynaddr
Alles resetten iptables-instellingen:

$IPT -P INGANG ACCEPTEREN $IPT -F INGANG $IPT -P UITGANG ACCEPTEREN $IPT -F UITGANG
IN iptables-regels zijn als volgt geconfigureerd: eerst zijn alle verbindingen verboden en vervolgens worden er regels gemaakt die deze of gene verbinding toestaan

We hebben een blokkering ingesteld op alle ketens:

$IPT -P INPUT DROP $IPT -P VOORWAARTSE DROP $IPT -P OUTPUT ACCEPTEREN
Hierna volgen de toestemmingsregels:

Ten eerste de algemene, niet het verspreiden van internet, maar het toestaan ​​van de doorgang van pakketten externe interface:

$IPT -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT $IPT-A INPUT -i lo -j ACCEPT $IPT -A INPUT -m conntrack --ctstate INVALID -j DROP $IPT -A INPUT -p tcp -m multiport --dports 21,22,1024:6800 -j ACCEPTEER $IPT -A INPUT - multiport --dports 21,80,8080,443,3306,8000,411,22,27015,26016 -j ACCEPTEER
Maar op welke regels zal de internetgateway op Linux gebaseerd zijn - we staan ​​het doorsturen van pakketten toe buitenste verbinding naar lokaal netwerk:

$IPT -A VOORUIT -i $EX -o $INT -m staat --staat GEVESTIGD,GERELATEERD -j ACCEPT $IPT -A FORWARD -i $ EX -o $ INT -j ACCEPT
Adresvertaling inschakelen:

$ IPT -t nat -A POSTROUTING -o $EX -j MASQUERADE
Nu slaan we het bestand op, maken het uitvoerbaar, chmod +x /etc/nat.sh, voegen de regel sh /etc/nat.sh toe aan het rc.local bestand vóór de regel exit 0. Start opnieuw op en controleer of er internet is het lokale netwerk.

Dit is de gemakkelijkste manier; u kunt de toegangscontrole voor zowel computers als websites organiseren. ongepaste inhoud, het bewaken van verbindingen, maar hiervoor het is beter om een ​​internetgateway op Linux te gebruiken met een proxyserver, bijvoorbeeld INKTVIS.

0. Probleem

Onlangs ontstond de taak om internet naar een lokaal netwerk te distribueren. En niet alleen distribueren, maar ook operationele controle en gebruikersbeheer tot stand brengen, en ook controleren inkomend verkeer voor virussen. Taak nummer twee was het opzetten van een bestandsserver (ook met antivirus) om het delen van mappen te verbieden en alle bestanden alleen via deze server over te dragen.

In eerste instantie werd besloten om Ubuntu op één computer met twee netwerkkaarten te installeren en, met behulp van IPTables, het verkeer om te leiden naar de Squid-proxyserver, en voor handige bediening koppel de SAMS-webinterface eraan. Na veel googlen en gesprekken met vrienden werd de beslissing echter gewijzigd en werd gekozen voor ClarkConnect 4.3 als distributie. De voordelen zijn dat het al alles heeft wat nodig is om een ​​server (WEB, FTP, Mail, proxyserver, toegangsserver, bestandsserver, enz.) op te zetten voor een kleine en middelgrote organisatie.

1. Installatie

U kunt Clarkconnect Community downloaden. De verdeling wordt verdeeld in het formulier iso-afbeelding voor latere creatie installatie schijf. Terwijl de schijf wordt beschreven, controleren we of de geselecteerde computer aan het minimum voldoet systeemvereisten(CPU 500 MHz, 512 RAM, harde schijf 1 Gb). Om de installatie te starten, starten we op vanaf de gemaakte CD. De installatie vindt plaats in tekstmodus, in de vorm van een dialoog, en doet in het algemeen sterk denken aan RedHat Linux. Onder de talen bevindt zich Russisch, als je dit selecteert, ontvang je een Russified-installatie, een console en een beetje een webinterface (voorlopig alleen de huidige status).
Belangrijkste punten: het selecteren van de servermodus Standalone of Gateway en het partitioneren van de schijf, gevolgd door het selecteren van services. Als u de Gateway-modus gebruikt, moet u er minimaal twee gebruiken netwerkadapter. Deze modus biedt algemene toegang tot internet, met controle over inkomende en uitgaande verbindingen.
Bij het partitioneren van schijven moet u goed letten op de automatische modus - alle informatie daarop zal worden vernietigd. Mogelijk handmatige modus bij Help-schijf Druïde. De keuze van de diensten hangt af van welke functies u aan de server wilt toewijzen.
Na het kopiëren van de bestanden en het opnieuw opstarten kunt u lokaal inloggen onder rekening root met behulp van de wachtwoordprompt. Hier kunt u netwerkinterfaces configureren en de serverrol wijzigen (Standalone/Gateway). Er is ook een verkeersanalysator en natuurlijk een console.
Er is een webinterface beschikbaar om de server te configureren. Het is standaard alleen beschikbaar op interne interface(als het nodig is om in te loggen vanaf een externe interface, moet u poort 81 openen in Firewall Inkomend). Om in te loggen, belt u in adresbalk browser https://(ip-adres van uw server):81. Wanneer u voor het eerst inlogt, gebruikt u de root-login met het wachtwoord dat is opgegeven tijdens de installatie, en in de toekomst wordt aanbevolen om een ​​profiel met beheerdersrechten aan te maken en dit te gebruiken.

2.Initiële installatie

Nadat u bent ingelogd op de webinterface, gaat u naar het menu Rapporten, Huidige status - u wordt er naartoe geleid algemene informatie over geïnstalleerd systeem. Hier kunt u de hardwareconfiguratie van uw server zien, de uptime sinds de laatste herstart en informatie over bestandssystemen en bevestigingspunten. Als de status van het geheugengebruik 99% is, moet u niet reageren door deze te verhogen; alles wordt toch gebruikt, zonder uitzondering. De status van netwerkinterfaces en de hoeveelheid verkeer die er doorheen gaat, zijn ook aanwezig.
Uw eerste actie na de installatie is het registreren van het systeem op de website (gratis) en downloaden noodzakelijke updates. Ga naar de website www.clarkconnect.com, ga vervolgens naar het tabblad Inloggen en selecteer Account aanmaken. Nadat u de login en het wachtwoord heeft ontvangen, kunt u deze gebruiken bij het registreren in de webinterface door naar het menu Services, Systeem registreren, te gaan. Nadat de registratie is voltooid, gaat u naar de items Kritieke updates en Aanbevolen updates. Selecteer alle updates en installeer ze. IN Software-sectie Modules U kunt aanvullende modules bekijken en installeren.

3. Modules configureren.

Nadat u het systeem hebt bijgewerkt, gaat u naar het menu Systeem en het tabblad Actieve services. Op deze pagina kunnen we de status van services zien en de lancering ervan beheren, en de link Configureren gebruiken om naar hun configuratiepagina's te gaan. De webinterface implementeert alleen basisfuncties hun instellingen, die voldoende zijn om de eerste werking te garanderen. Voor degenen die een completer dienstenbeheer willen implementeren, is er opdrachtregel toegankelijk via SSH.
Vergeet niet het menu Accountmanager te gebruiken om een ​​beheerder aan te maken gebruikersprofielen en groepen. Houd er rekening mee dat het bijvoorbeeld niet mogelijk is om met het root-account in te loggen op de webmail https://(ip-adres van uw server):83.

4. Algemene internettoegang.
Als u de Gateway-serverrol hebt geselecteerd bij het installeren van Clarkconnect. dan te verzekeren publieke toegang alles op internet basisinstellingen zijn al aanwezig.
De firewall is al geconfigureerd om verzoeken op alle poorten te blokkeren, behalve poort 1875, die nodig is om te communiceren met www.clarkconnect.com. Alle uitgaande verbindingen zijn toegestaan. Het beheer van de Firewall-module is vrij eenvoudig en zal geen problemen veroorzaken.
Bij Hulp netwerk Tools waarmee u actieve verbindingen, routeringstabel en protocolstatistieken kunt bekijken.
Port forwarding en toewijzing van bandbreedte aan gebruikers/IP-adressen/poorten met prioriteitsgebruik zijn ook beschikbaar. Bijvoorbeeld als uw netwerk een telefoonlijn heeft Asterisk-server vervolgens kan het IP-adres of de poort (sip-5060) worden ingesteld hoogste prioriteit. Of omgekeerd: een gebruiker die Emule gebruikt, kan de bandbreedte beperken tot 64 kbit/sec en de laagste prioriteit instellen. Dit alles is eenvoudig te configureren in het menu Netwerk, item Bandbreedte.
Gebruik de module om verkeer te besparen en er rekening mee te houden Proxyserver. Wanneer ingeschakeld transparante proxyserver U kunt statistieken over gebruikers/IP-adressen/computernamen bekijken in het menu Rapport, item Proxyrapport.
De module Inbraakdetectie/Preventie wordt gebruikt om aanvallen te herkennen/blokkeren. Alle herkende aanvallen krijgen een aanvalscode toegewezen, waarvan de aanduiding kan worden bekeken door erop te klikken. IP-adressen waarvan aanvallen worden gedetecteerd, worden 24 uur lang geblokkeerd.
U kunt de bedrijfsstatistieken van alle serversystemen bekijken in het menu Rapport, item Statistieken (grafische weergave). Logbestanden zijn ook aanwezig in de sectie Logboeken.