Come configurare smartphone e PC. Portale informativo
  • casa
  • Interessante
  • Configurare una scheda di rete su freebsd. Impostazione dei server DNS

Configurare una scheda di rete su freebsd. Impostazione dei server DNS

La distribuzione fryukha è spesso definita la più adatta per risolvere problemi di rete applicati su una rete locale. Oggi affronteremo uno dei problemi di rete: configurare un gateway su Freebsd 10 per accedere a Internet da una LAN. Questa è una funzionalità server semplice, popolare e richiesta che può essere estesa con funzionalità aggiuntive.

Noi useremo prossima versione sistemi per risolvere il nostro compito di configurazione del gateway:

# uname -v FreeBSD 10.2-RELEASE-p8 # 0 r292756M: Sat Dec 26 22:49:34 MSK 2015 [e-mail protetta]: / usr / obj / usr / src / sys / GENERICO

Il server dispone di 2 schede di rete:

  • hn0- interfaccia esterna, riceve Internet dal provider, impostazioni DHCP
  • hn1- rete locale, indirizzo 10.20.30.1, impostare manualmente

Nel nostro compito di impostare il software router freebsd includerà la configurazione del routing sul server, l'installazione e la configurazione di ipfw, l'abilitazione di nat, la configurazione del server DHCP e DNS locale.

Preparazione del server per la configurazione del gateway

Le informazioni sui leasing dhcp del server dnsmasq emessi possono essere visualizzate nel file /var/db/dnsmasq.leases.

Analizzare l'attività di rete in freebsd con iftop

A volte vuoi vedere cosa sta succedendo sul router e chi usa Internet in questo momento... Per impostazione predefinita, il sistema non dispone di uno strumento già pronto per ottenere queste informazioni. Verrà in nostro aiuto programma semplice iftop, che permette di vedere l'attività sull'interfaccia di rete in tempo reale.

Installare iftop al gateway Freebsd configurato:

# pkg install iftop

Eseguire iftop specificando l'interfaccia e visualizzando le porte utilizzate:

# iftop -i hn1 -P

Vediamo un'immagine curiosa: chi, dove, quale porto ea che velocità sta salendo.

Ad esempio, ho avviato un generatore di traffico Internet su uno dei computer. Ha occupato quasi l'intero canale ed è diventato perfettamente visibile sul router utilizzando iftop. Ovviamente questo semplice utilità non risolve tutti i problemi di monitoraggio attività di rete ma va bene per presentare l'immagine corrente a meno che non sia necessario altro.

Conclusione

Riassumiamo quello che abbiamo fatto. In breve tempo, abbiamo creato un gateway completo (in effetti, un router software) basato su Freebsd 10 per fornire ai client l'accesso a Internet dietro il server. Allo stesso tempo, hanno fornito ricevuta automatica impostazioni. Anche su modesto server virtuale un tale gateway può gestire un traffico abbastanza grande.

L'intera configurazione richiede letteralmente 10-15 minuti. La maggior parte del tempo viene speso per costruire il kernel. Il più alto Versione Freebsd, più a lungo si raccoglie, nonostante il fatto che la velocità del ferro aumenti in modo significativo.

Esaminiamo i punti e scopriamo cosa abbiamo fatto esattamente:

  1. Ha preparato il server per la configurazione del gateway.
  2. Ricostruito il kernel con i parametri richiesti.
  3. IPfw e nat configurati, routing abilitato.
  4. dnsmasq installato e configurato per distribuire le impostazioni di rete tramite dhcp e server dns.
  5. Abbiamo installato iftop per l'analisi più semplice dell'attività di rete sull'interfaccia esterna.

Questo è abbastanza per lavoro a tutti gli effetti gateway per Freebsd 10. Se è necessario calcolare il traffico utente o limitare l'accesso a determinate risorse, è possibile accedervi.

Questo articolo prenderà in considerazione l'implementazione di una semplice rete locale (ufficio o casa) con accesso a Internet basato su sistema operativo FreeBSD. Il server considerato negli articoli precedenti (ovvero il gateway per Internet) sarà implementato su questo sistema operativo. Qui prenderemo in considerazione solo l'installazione di base di FreeBSD e l'impostazione di una connessione Internet, mentre i servizi di rete aggiuntivi (FTP, WEB, ecc.) saranno considerati negli articoli corrispondenti. Altro materiale sarà basato sull'articolo "Semplice LAN per ufficio con connessione Internet".

Installazione e configurazione di base di FreeBSD

Quindi dopo azioni preparatorie discusso nell'articolo , procediamo all'installazione del sistema operativo FreeBSD 6.2.

Le immagini del CD possono essere scaricate da www.freebsd.org (2 CD).

Dopo aver avviato il computer dal CD di installazione, viene avviato il programma sysinstall, progettato per installare e Impostazioni di FreeBSD... Utilizzando questo programma, è possibile configurare il sistema operativo non solo durante l'installazione, ma anche dopo, in qualsiasi momento, eseguendolo da riga di comando(# installazione di sistema).

La navigazione in esso viene effettuata utilizzando i seguenti tasti: frecce cursore, <пробел> , , (inoltre <пробел> e > sono equivalenti e la chiave simile alle frecce sinistra destra).
Per tornare al menù precedente selezionare la voce Uscita o ... Puoi anche contrassegnare gli elementi selezionati spazio ohm o accedere th. (Dal menu di selezione del pacchetto ( pacchi) si esce solo selezionando il pulsante anche se non vuoi installare alcun pacchetto.)

Iniziamo l'installazione.

1. Seleziona la voce dal menu Costume.

2. Successivamente, nel menu che compare, seleziona la voce Partizione ed entra nell'editor delle sezioni (le sezioni corrispondono alle sezioni primarie nella terminologia di Windows e Linux; una sezione è sufficiente per installare FreeBSD). Nota: se il computer ne ha diversi dischi fissi, verrà prima richiesto un menu di selezione del disco.
Ad esempio, la mia macchina ha già due partizioni con Windows XP e il resto dello spazio è indicato come inutilizzato(non occupato):

Per eliminare una sezione, sposta il cursore su di essa con le frecce su e giù e premi , ma se necessario, lascia sezioni esistenti, ad esempio con Windows, non è necessario toccarli.
Per creare una fetta per freebsd, sposta il cursore sulla sezione contrassegnata come inutilizzato e premere il tasto (Crea fetta). Nella finestra che appare, inserisci la dimensione della fetta creata in blocchi (o megabyte, aggiungendo la lettera m dopo il numero inserito, ad esempio - 1000M) o lasciare il valore predefinito per utilizzare l'intero spazio libero.
Successivamente, siamo d'accordo con il tipo di partizione suggerito (165 - per FreeBSD). Di conseguenza, otteniamo una fetta ad2s3, dove ad2s3 si intende: un ta D isk 2 , S pidocchi 3 .

Per terminare la modifica delle sezioni, premere il tasto (Fine).

3. Nel menu che appare, seleziona l'installazione del boot manager - BootMgr.

4. Selezione di un elemento Etichetta e accedi all'editor di sezione file system FreeBSD. Qui la slice creata in precedenza può essere "tagliata" in partizioni del filesystem di FreeBSD. Questa suddivisione può essere eseguita automaticamente premendo il tasto (Impostazioni predefinite automatiche) o manualmente. Prova la suddivisione automatica. Puoi eliminare qualsiasi sezione premendo ... Ma è meglio creare manualmente le partizioni necessarie.
Per creare una sezione, posiziona il cursore sulla fetta "tagliata" ad2s3(o qualunque cosa tu abbia ... nella riga in alto) e premi il tasto (Crea), inserisci la dimensione della partizione da creare (non dimenticare la lettera alla fine del numero m, se la dimensione è inserita in megabyte), selezionare il tipo " Scambio"per una partizione di swap o" FS"- per tutte le altre partizioni e specificare il punto di montaggio. (Il punto di montaggio è la directory in cui verrà montata la partizione.) Ripetere la procedura per tutte le partizioni create. Le dimensioni delle partizioni devono essere ben previste. Ad esempio, / var partizione conterrà file temporanei, file di registro, file di database, code di stampa, posta, ecc.; in / usr (più precisamente in / usr / local) - tutte le applicazioni aggiuntive installate; in / home - directory utente; la dimensione dello SWAP la partizione viene solitamente scelta uguale a una o due dimensioni di RAM; 256 MB sono sufficienti per la partizione di root "/".
io l'ho preso così:

Come puoi vedere, le partizioni del file system sono indicate aggiungendo una lettera (a, b, ...) al nome della sezione.
Termina la modifica delle sezioni facendo clic su (Fine) e tornare al menu.

5. Passiamo al punto distribuzioni, dove puoi selezionare il tipo di installazione di base e contrassegnare l'opzione Sviluppatore, il che significa che verranno installati tutti i principali binari (utilità di sistema, librerie, compilatori), i sorgenti e la documentazione. Accetta di installare la collezione di porte. Inoltre, selezionando la voce Uscita, tornare al menu precedente e selezionare Commettere, seleziona la sorgente di installazione (nel nostro caso CD/DVD) e rispondere in senso affermativo all'avvertimento circa l'irreversibilità di ulteriori azioni. Successivamente, il processo di installazione dei componenti di base del sistema va. Al termine dell'installazione, verrà richiesto di tornare al menu di configurazione per continuare con l'installazione/configurazione. Noi scegliamo e tornare al menu.

6. in punto Password di root impostare la password per l'utente root (amministratore). Paragrafo Gestione utenti non toccare - aggiungeremo gli utenti in seguito.

7. Russifica la console (elemento Console):

  • in punto Font scegliere IBM 866,
  • in punto Mappa dei tasti scegliere Russia KOI8-R,
  • in punto Mappa dello schermo scegliere KOI8-R a IBM866,
  • in punto Ttys scegliere KOI8-R (contro25r).

8. Configuriamo il mouse (elemento Topo):

  • in punto Tipo scegliere auto(Nella maggior parte dei casi),
  • in punto Porta scegliere PS / 2(o COM1 ...),
  • in punto Abilitare attiva il supporto del mouse e controlla il suo funzionamento.

9. in punto Rete puoi configurare la rete:

  • in punto Interfacceè possibile selezionare dall'elenco e configurare determinate interfacce di rete (per alcune schede di rete potrebbe essere necessario ricompilare il kernel o configurarle prima che appaiano nell'elenco). Puoi configurare la tua rete in un secondo momento, vedi la sezione Impostazioni di rete di seguito .;
  • segna l'opzione ssh avere accesso remoto sicuro al sistema;
  • segna l'opzione Gateway per consentire l'instradamento di pacchetti ip tra interfacce di rete (se la macchina verrà utilizzata come router).

Ma torneremo a configurare la rete in uno dei seguenti articoli.

10. Paragrafo Sicurezza Non toccare.

11. Selezione di un elemento Pacchi per installare più pacchetti contemporaneamente, anche se è meglio installare applicazioni dai port. Il CD di installazione deve essere installato nel CD-ROM. Per ora, selezioneremo solo la shell bash. Si trova nel gruppo conchiglie... Bene, e poi a tuo piacimento, ad esempio, puoi selezionare immediatamente l'installazione di XFree86-4.3, kde, moziila, ecc., anche se X non è generalmente necessario per il server.
Marcatura con la chiave o i pacchetti necessari, seleziona l'articolo qui sotto , poi , attendi il completamento dell'installazione ed esci da sysinstall. Accettiamo di riavviare, non dimenticare di rimuovere il CD. Nella fase di avvio, dal menu del bootloader, selezionare FreeBSD(se si utilizzano più sistemi operativi).

12. Accediamo al sistema con il nome radice.

13. Personalizziamo la console per noi stessi. (Questo passaggio è facoltativo).
Configuriamo e realizziamo la shell bash principale da noi installata (come in Linux).
Controlliamo se è nel file / etc / conchiglie in caso contrario, aggiungi la riga lì: / usr / local / bin / bash.
Per rendere l'interprete bash quello principale per il superutente root, puoi usare il comando:

# pw usermod root -s / usr / local / bin / bash

Copiare file .bash_profile, .bashrc, .bash_logout dalla directory / usr / compat / linux / etc / skel v / radice e / usr / condividi / skel, ma già con i nomi punto.bash_profile, punto.bashrc, punto.bash_logout rispettivamente. Questo può essere fatto con i seguenti comandi:

# cp /usr/compat/linux/etc/skel/.bash_profile /root/.bash_profile # cp /usr/compat/linux/etc/skel/.bashrc /root/.bashrc # cp / usr / compat / linux / etc /skel/.bash_logout /root/.logout # cp /usr/compat/linux/etc/skel/.bash_profile /usr/share/skel/dot.bash_profile # cp /usr/compat/linux/etc/skel/.bashrc /usr/share/skel/dot.bashrc # cp /usr/compat/linux/etc/skel/.bash_logout /usr/share/skel/dot.logout

Questi file di configurazione verranno ora copiati nelle loro directory home quando vengono creati nuovi utenti.

Modifichiamo le impostazioni predefinite per il comando interattivo per l'aggiunta di utenti adduser eseguendolo con l'opzione -C:

# adduser -C

(rispondiamo class: russo, shell: bash, lasciamo il resto per impostazione predefinita).
Qualunque cosa. Ora nuovi utenti creati dall'utility Aggiungi utente, avrà una console russificata con l'interprete dei comandi bash.
E il tocco finale. Per modificare il prompt della riga di comando in file .bashrc(e /usr/share/skel/dot.bashrc) aggiungi la riga: PS1 = "$", dopodiché il prompt apparirà come [[e-mail protetta] directorycorrente] $ .
Nota che puoi modificare i file di configurazione in un semplice editor di testo eee, Per esempio:

# ee /usr/share/skel/dot.bashrc

Quindi puoi creare nuovi utenti utilizzando l'utilità Aggiungi utente... Affinché l'utente abbia l'opportunità di ottenere super diritti in futuro utente root dal comando su, deve essere incluso nel gruppo ruota.
È possibile cambiare il layout della tastiera premendo ... Con il tasto premuto svolge la sua normale funzione.

Su questo configurazione iniziale e la configurazione del sistema è completa.

Configurazione del kernel

Qui tocchiamo brevemente i problemi di configurazione e compilazione del kernel.

Probabilmente, molti hanno rabbrividito quando hanno sentito la frase spaventosa: "compilare il kernel del sistema". Tuttavia, se lo capisci con calma, non c'è niente di sbagliato in questo. Dal punto di vista del profano, il kernel è lo "strato" tra i programmi applicativi e l'hardware. Programmi applicativi non interagiscono con "l'hardware" e tra loro direttamente, tutta l'interazione viene eseguita attraverso il nucleo e questa interazione viene eseguita attraverso interfaccia standard chiamate di sistema. Oltre all'interfaccia di chiamata di sistema, il kernel contiene un sottosistema di file, un sottosistema di controllo del processo, un sottosistema di I/O, driver di dispositivo (moduli del kernel). Ma per ora, l'unica cosa che ci interessa è che il kernel interagisce direttamente con l'hardware, e FreeBSD ci permette di configurare il kernel per un hardware specifico. Il kernel predefinito supporta molto hardware che non viene utilizzato nel nostro caso e fornisce solo funzionalità di base.

Iniziamo a configurare il kernel

La personalizzazione del kernel di FreeBSD viene eseguita modificando il file di configurazione del kernel in qualsiasi editor di testo. Per impostazione predefinita è / usr / src / sys / i386 / conf / GENERICO... Ma non lo modificheremo, ma una copia di esso. / usr / src / sys / i386 / conf / NEW_GENERIC.
Per fare ciò, esegui i seguenti comandi:

# cd / usr / src # cp sys / i386 / conf / GENERIC sys / i386 / conf / NEW_GENERIC # ee sys / i386 / conf / NEW_GENERIC

Nel file NEW_GENERIC, rimuoviamo il supporto per l'hardware che non abbiamo e le funzionalità di cui non abbiamo bisogno semplicemente commentando o eliminando le righe appropriate. Se non sei sicuro, allora è meglio non cancellare nulla. Successivamente, aggiungiamo diversi parametri per abilitare NAT (address translation - conversione degli indirizzi IP di una rete locale in un indirizzo IP esterno), che consentirà di utilizzare un indirizzo IP esterno su Internet per tutti i computer sulla rete locale:

Ident NEW_GENERIC opzioni IPFIREWALL opzioni IPDIVERT opzioni IPFIREWALL_VERBOSE opzioni IPFIREWALL_VERBOSE_LIMIT = 1000

Qui ident NEW_GENERIC definisce il nome del nuovo kernel (è possibile specificarne uno qualsiasi).
opzioni IPFIREWALL- include FIREWALL.
opzioni IPFIREWALL_VERBOSE- attiva i log del firewall.
opzioni IPDIVERT - consente di reindirizzare i pacchetti da un'interfaccia di rete a un'altra, l'opzione è necessaria per la traduzione degli indirizzi, per "condividere" Internet.

Gli elenchi dei dispositivi e delle opzioni supportati sono disponibili nei file:
/ usr / src / sys / i386 / conf / NOTE e / usr / src / sys / conf / NOTE.

Compiliamo il kernel con i seguenti comandi:

# make buildkernel KERNCONF = NEW_GENERIC # make installkernel KERNCONF = NEW_GENERIC

Riavviamo il computer. Qualunque cosa. Il vecchio kernel verrà salvato automaticamente nella directory /boot/kernel.old.

I dispositivi non PnP possono essere configurati modificando il file /boot/device.hints... Al dispositivo richiesto (per analogia con altri) possono essere assegnati i numeri di interrupt, porte, ecc. È inoltre possibile vietare l'uso di qualsiasi dispositivo. Ad esempio, in mia "madre" c'era un'implementazione "storta" del supporto per acpi, motivo per cui il mouse era bacato e non volevo eseguire il reflash del bios. Quindi ho appena disattivato il supporto acpi nel kernel aggiungendo al file /boot/device.hints la seguente riga:

Suggerimento.acpi.0.disabled = "1"

Ma questo è solo un esempio. Spero che tutto funzionerà bene per te senza di essa.

Un altro punto. Tutti i dispositivi definiti dal kernel hanno designazioni alfanumeriche, ad esempio pcm0 - scheda audio... Quali dispositivi, con quali nomi e quanto bene il kernel è stato in grado di identificarli e configurarli, possono essere visualizzati all'avvio del sistema o tramite comando dmesg.

Configurazione di rete

Ora puoi iniziare a configurare il nostro server come gateway per Internet. Quindi il nostro server ha due schede di rete: una "guarda" a Internet e la seconda alla nostra rete locale. Nelle impostazioni di rete, il primo scheda di rete dobbiamo registrare l'indirizzo IP, il gateway, la subnet mask e gli indirizzi IP dei server DNS che il provider Internet ci ha fornito. Supponiamo che nel nostro esempio il provider ci abbia fornito: IP esterno 195.34.10.134, gateway del provider 195.32.10.1, server DNS: 195.34.32.116 e 87.240.1.2).

Nelle impostazioni della seconda scheda di rete, è necessario registrare l'indirizzo IP 192.168.20.1, che appartiene alla nostra rete locale (vedi. "Rete locale semplice dell'ufficio con connessione Internet").

personalizzazione interfacce di rete può essere fatto usando l'utilità che già conosci sysconfig(vedi paragrafo 9 installazione di base sopra) o modificando direttamente il file /etc/rc.conf.

Comunque, per il nostro esempio, il file /etc/rc.conf deve contenere seguenti righe(impostazioni di rete):

Ifconfig_rl0 = "inet 195.34.10.134 netmask 255.255.255.0" # IP esterno e subnet mask forniti dall'ISP ifconfig_rl1 = "inet 192.168.20.1 netmask 255.255.255.0" # IP interno, che sarà il gateway predefinito per la nostra rete locale gateway_enable = "YES"# modalità router, permette di inoltrare pacchetti tra interfacce di rete natd_enable =" YES "# abilita il daemon NATD che traduce gli indirizzi: internal to external e viceversa natd_interface =" rl0 "# natd daemon gira sull'interfaccia esterna defaultrouter = " 195.34.10.1 " # il gateway predefinito fornito dal provider firewall_enable = "YES" # abilita il firewall firewall_type = "OPEN" # per ora ci limiteremo alla versione liberale del firewall hostname = "myoffice.ru" # il nome di questo server sshd_enable = "YES" # for accesso remoto al server

rl0 e rl1- questi sono i nomi delle interfacce di rete nel nostro esempio (sul chip Realtek). Puoi vedere i nomi delle tue interfacce di rete con il comando ifconfig o tramite l'utility di configurazione interattiva syscinstall.

Se disponi di altre reti locali remote, ad esempio 192.168.40.0/24 e 192.168.50.0/24, a cui si accede dalla nostra rete locale tramite i gateway 192.168.20.101 e 192.168.20.102, rispettivamente, allora percorsi statici i percorsi verso queste reti, se necessario, possono essere specificati come segue (nel file /etc/rc.conf):

Static_routes = "net1 net2" route_net1 = "192.168.40.0/24 192.168.20.101" # pacchetti alla sottorete 192.168.40.0/24 passeranno attraverso il gateway 192.168.20.101 route_net2 = "192.168.50.0/24 192.168.20.102" # pacchetti a la sottorete 192.168 .50.0 / 24 passerà attraverso il gateway 192.168.20.102

Dominio myoffice.ru nameserver 195.34.32.116 nameserver 87.240.1.2

Ora per rendere effettive le modifiche, esegui il comando / etc / netstar t o riavviare il server.

Controlliamo la rete.
Innanzitutto, eseguiamo il ping al gateway del provider:

# ping 195.34.10.1

Quindi al server DNS:

# ping 195.34.32.116

E poi a qualsiasi sito Internet:

# ping yandex.ru

Eseguiamo il ping delle macchine sulla nostra rete locale, ad esempio:

# ping 192.168.20.4

Se i pacchetti passano, allora va tutto bene.

Configurazione dell'accesso a Internet per i computer di lavoro (workstation) nella rete locale

Passiamo ora alla configurazione dei computer di lavoro.
Se gli indirizzi IP statici vengono utilizzati per i computer di lavoro (ovvero, vengono inseriti manualmente e non distribuiti tramite un server DHCP), è sufficiente registrarsi nelle impostazioni TCP / IP per ciascun computer di lavoro:

indirizzo IP statico (unico per ogni computer della rete locale, ad esempio 192.168.20.4),
subnet mask (255.255.255.0 nel nostro caso)
gateway predefinito (192.168.20.1, cioè l'IP del nostro server su FreeBSD, che è il gateway per Internet)
Server DNS (gli stessi forniti dal provider)

Questo viene fatto in Windows XP tramite:

Pannello di avvio gestione- Le connessioni di rete sull'icona della connessione di rete alla rete locale, fare clic su clic destro mouse, selezionare "proprietà" - Impostazioni TCP/IP.

Riavviamo il computer e controlliamo il funzionamento della rete:

Nel contesto di questo manuale esamineremo l'indirizzamento IPv4. Le impostazioni dell'indirizzo IP vengono effettuate tramite il file rc.conf, e in esso registriamo sia un indirizzo IP statico che, nel caso di utilizzo di DHCP, indichiamo la necessità di utilizzarne uno dinamico.

Per prima cosa, determiniamo quali interfacce di rete sono utilizzate sulla macchina, lo faremo usando il comando ifconfig.

Lo screenshot mostra il risultato del comando ifconfig. Su di essa possiamo vedere una scheda di rete denominata em0, così come l'interfaccia di loopback virtuale lo0. Il nome dell'interfaccia di rete dipende dal produttore (ad esempio, per le schede di rete Realtek sarà re, per me questa è una scheda di rete Intel integrata). Nel nostro caso, vediamo la nostra interfaccia di rete con l'indirizzo assegnato 192.168.2.6. Netmask è scritto in esadecimale

Impostazione di un indirizzo IP statico.

Diciamo che voglio cambiare l'indirizzo IP senza riavviare la macchina. Questo può essere fatto con un singolo comando attraverso la shell. Di conseguenza, questo indirizzo cambierà dopo un riavvio. tutte le impostazioni all'avvio sono prese dal file /etc/rc.conf e non aggiungeremo ancora nulla.

Ad esempio, voglio cambiare l'indirizzo in 192.168.2.78. Ci sono due opzioni per scrivere un comando, entrambe corrette -

Ifconfig em0 192.168.2.78 netmask 255.255.255.0

Ifconfig em0 192.168.2.78/24

Entrambi i comandi cambieranno l'indirizzo IP, la differenza sta nel formato di registrazione, nel secondo caso indichiamo la 24a sottorete, che corrisponde alla netmask 255.255.255.0. Affinché questo indirizzo staticoè diventato permanente (non importa quanto possa sembrare caotico, nel senso che è stato preservato dopo il riavvio). Dobbiamo aggiungere una voce a /etc/rc.conf

Esistono anche due modi per specificare la subnet mask:

Ifconfig_em0 = "192.168.2.78 maschera di rete 255.255.255.0"

Ifconfig_em0 = "192.168.2.78/24"

Dopo il riavvio, il server assegnerà all'interfaccia em0 l'indirizzo IP 192.168.2.78 e la maschera 255.255.255.0

Ottenere un indirizzo dinamico da DHCP

V in questo caso ci sono anche due modi, il primo è temporaneo (prima del riavvio), il secondo è permanente, cioè ricevere un indirizzo ogni volta dopo un riavvio.

Di conseguenza, per il primo percorso, inseriamo semplicemente il comando

Dhclient em0 Per il secondo percorso, aggiungi una riga a rc.conf

Ifconfig_em0 = "DHCP"

Impostazione del gateway predefinito.

Per impostare il gateway predefinito, modifica il file /etc/rc.conf, aggiungi o modifica la riga -

Router predefinito = "192.168.2.254"

Puoi farlo anche con i comandi: route delete default route add default 192.168.2.254

Impostazione dei server DNS

Per specificare i server DNS (ad esempio, vogliamo installare Google DNS pubblico), apri il file /etc/resolv.conf per la modifica e la scrittura - nameserver 8.8.8.8 nameserver 8.8.4.4

L'utilizzo di FreeBSD su piccoli router per comunicare con il mondo esterno ha cessato da tempo di essere qualcosa di eccezionale. Questo sistema operativo facile da usare, con poche risorse e poca manutenzione è quasi l'ideale per tali attività.

Abbiamo bisogno

Hardware... Per ritirare rete interna a Internet basta un computer Pentium III 600 MHz, 256 MB di RAM, HDD da 10 GB, 2 schede di rete. La configurazione è presa con un margine, per una rete a tutti gli effetti di un piccolo ufficio (circa 50 utenti) Pentium II 400 MHz con 128 MB di RAM sarebbe abbastanza. Ma in futuro, potresti voler installare sullo stesso gateway, ad esempio un server proxy, è meglio scegliere una configurazione di livello superiore.

Sistema operativo: FreeBSD 5.5 o 6.1.

Inoltre: a causa del fatto che questo computer è soggetto ad un uso continuo, ti consiglio di consegnarlo all'interno della custodia fan aggiuntivi per fornire un tiraggio forzato/aria di scarico per il raffreddamento. Quasi tutto moderno Casi ATX lascia che tu lo faccia.

Poiché tutti i moduli necessari sono inclusi nel sistema operativo, non abbiamo bisogno di nient'altro.

Configurazione delle interfacce di rete

È necessario chiarire i nomi delle interfacce delle schede di rete, tramite le quali il sistema operativo le riconosce.

Dovrebbe apparire qualcosa del genere:

rl0: flag = 8843 mtu 1500
opzioni = 8
etere 00: xx: xx: xx: xx: xx

stato: attivo
xl0: bandiere = 8843 mtu 1500
opzioni = 9
etere 00: zz: zz: zz: zz: zz
supporto: selezione automatica Ethernet (100baseTX)
stato: attivo
plip0: flag = 108810 mtu 1500
lo0: flag = 8049 mtu 16384
inet6 :: 1 prefisso 128


Il computer dispone di due schede di rete con i nomi di interfaccia rl0 e xl0.

Nel nostro caso, l'interfaccia rl0 "guarderà" al mondo esterno e xl0 - alla rete interna. IP interfaccia interna: 192.168.9.2, subnet mask 255.255.255.0, nome interfaccia xl0; L'indirizzo IP dell'interfaccia esterna è 83.xxx.xxx.xxx, la subnet mask è 255.255.255.224 e il nome dell'interfaccia è rl0.

Puoi scoprire quali schede di rete di quali produttori corrispondono a determinati indirizzi di rete guardando il file GENERIC nella directory /usr/src/sys/i386/conf:

# altro / usr / src / sys / i386 / conf / GENERIC

In esso troviamo le righe corrispondenti:

dispositivo rl # RealTek 8129/8139

dispositivo xl # 3Com 3c90x ("Boomerang", "Cyclone")

Pertanto, l'interfaccia rl0 corrisponde alla scheda di rete RealTek 8129/8139 e ai suoi analoghi. L'interfaccia di rete xl0 corrisponde alla scheda di rete 3Com.

Separatamente, vale la pena menzionare il file GENERIC. Questo è il file di configurazione del kernel installato di default quando viene installato FreeBSD. È organizzato in modo che il sistema possa supportare la maggior parte dei dispositivi più comunemente utilizzati, comprese le schede di rete specificate. Molto spesso, ulteriori modifiche al kernel sono basate su una copia modificata di questo file. In questo caso, faremo proprio questo:

Gateway del provider - per impostazione predefinita 83.xxx.xxx.1.
La rete contiene i computer degli utenti - 192.168.9.31, 192.168.9.32.
Il nostro dominio è (condizionatamente) ourdomain.ru.
Il nome host (computer) è ourhost.ourdomain.ru.

Configuriamo le schede di rete. Puoi usare l'utility sysinstall (/ stand / sysinstall per FreeBSD 5.5 e / usr / sbin / sysinstall per FreeBSD 6.1) Ma dal momento che sappiamo tutto parametri richiesti, quindi per semplificare il processo e risparmiare tempo, imposteremo i parametri modificando i file di configurazione corrispondenti.

Per la modifica useremo editor di testo vi, che è presente in quasi tutti Sistema UNIX... Per gli amministratori che non hanno ancora familiarità con l'editor, posso consigliare un meraviglioso articolo di Maxim Moshkov http://www.lib.ru/unixhelp/vi.txt e http://www.lib.ru/unixhelp/vibegin. TXT.

Le impostazioni dell'interfaccia di rete di FreeBSD sono memorizzate nel file /etc/rc.conf. Lo apriamo per la modifica:

# vi /etc/rc.conf

E aggiungi le seguenti righe:

#Impostato interfaccia interna
ifconfig_xl0 = "inet 192.168.9.2 maschera di rete 255.255.255.0"
# Imposta l'interfaccia esterna
ifconfig_rl0 = "inet 83.xxx.xxx.xxx maschera di rete 255.255.255.224"
# Imposta il gateway predefinito del provider
defaultrouter = "83.xxx.xxx.1"
# Nome host
hostname = "ourhost.ourdomain.ru"
# Indichiamo che il server fungerà da router
gateway_enable = "SI"

Quindi riavviamo il computer:

A questo punto non è stato necessario riavviare il computer. Ma vogliamo assicurarci che le nostre interfacce siano installate correttamente e funzionino, quindi consiglio comunque un riavvio.

Dopo il caricamento, controlliamo:

L'output del comando ifconfig:

rl0: flag = 8843 mtu 1500
opzioni = 8
inet6 fe80 :: 215: 58ff: fe3e: 8fb1% rl0 prefixlen 64 scopeid 0x1
inet 83.xxx.xxx.xxx maschera di rete 0xffffffe0 trasmissione 83.xxx.xxx.yyy
etere 00: xx: xx: xx: xx: xx
supporto: selezione automatica Ethernet (100baseTX)
stato: attivo
xl0: bandiere = 8843 mtu 1500
opzioni = 9
inet6 fe80 :: 20a: 5eff: fe62: ade2% xl0 prefixlen 64 scopeid 0x2
inet 192.168.9.2 maschera di rete 0xffffff00 trasmissione 192.168.9.255
etere 00: zz: zz: zz: zz: zz
supporto: selezione automatica Ethernet (100baseTX)
stato: attivo
plip0: flag = 108810 mtu 1500
lo0: flag = 8049 mtu 16384
inet6 :: 1 prefisso 128
inet6 fe80 :: 1% lo0 prefixlen 64 scopeid 0x4
inet 127.0.0.1 maschera di rete 0xff000000

Il file rc.conf, secondo me, può essere chiamato file chiave configurazione. Molto grande numero i parametri utilizzati dal sistema sono impostati come variabili corrispondenti in questo file. Comprese le impostazioni delle interfacce di rete, firewall e NAT da noi utilizzati.

Configurazione del gateway

Useremo il firewall IPFW nativo di FreeBSD. Per fare ciò, dobbiamo apportare alcune modifiche al nucleo del sistema. Se hai ulteriori domande sulla ricompilazione del kernel, ti consiglio di leggere materiale aggiuntivo: http://freebsd.org.ru/how-to/kernelconfig.html.

Nota da usare testi di origine kernel per l'architettura corrispondente. Poiché l'architettura del nostro computer è basata sulla piattaforma i386, anche il kernel deve essere compilato in conformità con la piattaforma. Per i possessori di computer su altre piattaforme consiglio di fare riferimento alla relativa letteratura.

I sorgenti del kernel si trovano per impostazione predefinita nella directory /usr/src/sys/i386/conf. Di conseguenza, andiamo in questa directory:

# cd / usr / src / sys / i386 / conf

In genere, viene modificato il file GENERIC contenente le opzioni del kernel predefinite. Per fare ciò, fai una copia di questo file:

# cp GENERIC ourkernel

Aperto per la modifica nuovo file il nostro kernel:

e aggiungi le seguenti opzioni:

#
opzioni IPFIREWALL #firewall
opzioni IPFIREWALL_VERBOSE?
#abilita la registrazione su syslogd (8)
opzioni IPFIREWALL_FORWARD?
#enable supporto proxy trasparente
opzioni IPFIREWALL_VERBOSE_LIMIT = 100 #limita verbosità
opzioni IPFIREWALL_DEFAULT_TO_ACCEPT #consenti tutto per impostazione predefinita
#
opzioni DUMMYNET
#
opzioni IPDIVERT #deviazione socket

Dopo aver apportato le modifiche, puoi iniziare a ricompilare il kernel.

Eseguiamo i comandi:

# config ourkernel
# cd / usr / src / sys / i386 / compile / ourkernel
# far dipendere
# Fare
# fai installare

Sovraccarico:

Se dopo il riavvio il server funziona correttamente, iniziamo a configurare il firewall.

Per organizzare il lavoro del firewall vengono utilizzate le seguenti variabili, aggiunte, se necessario, al file rc.conf.

Consente o nega l'uso del firewall:

# Imposta su S per abilitare la funzionalità del firewall
firewall_enable = "NO"

Il nome e la posizione del file responsabile dell'inizializzazione del firewall.

# Quale script eseguire per configurare il firewall
firewall_script = "/ etc / rc.firewall"

Durante l'installazione di questa regola in "SI" la visualizzazione è soppressa:

firewall_quiet = "NO"

Abilita/disabilita la registrazione degli eventi:

firewall_logging = "NO"

Tipo di configurazione del firewall:

firewall_type = "SCONOSCIUTO"

di default FreeBSD usa le regole nel file /etc/rc.firewall.

Ha diversi modelli già pronti:

open: il firewall consente il passaggio di tutti i pacchetti.

client: consigliato per proteggere solo questo computer. Cioè, il firewall è configurato come standard computer cliente... Consente tutte le connessioni in uscita e nega tutte le connessioni in entrata ad eccezione delle connessioni sulla porta 25.

semplice - destinato alla configurazione di gateway semplici, ecc. Cioè come un semplice firewall che protegge la rete interna da intrusioni esterne. Stabiliremo un sistema di regole più flessibile, quindi dato modello non verrà utilizzato da noi.

closed - Consenti traffico sull'interfaccia locale lo0. Il resto del traffico viene passato dalla regola predefinita. Di norma, questo è un divieto di qualsiasi accesso, esclusa l'interfaccia interna lo0 (in poche parole, è consentito solo l'accesso "a se stessi")

SCONOSCIUTO - non consente il caricamento delle regole del firewall dallo script di configurazione predefinito. Il firewall non è configurabile in alcun modo. Il passaggio o meno del traffico dipende dalla configurazione del kernel di sistema. Usato per impostazione predefinita.

La stessa variabile nel valore "filename" - "filename" - può essere utilizzata per impostare il proprio file di configurazione per il firewall.

Ad esempio:

firewall_type = "/ etc / rc.firewall.newconfig"

caricherà le impostazioni dal file /etc/rc.firewall.newconfig generato.

"Firewall_flags =" "" - serve per passare argomenti aggiuntivi quando si utilizza firewall_type con il valore del nome file.

Il nostro compito è creare un sistema che soddisfi i seguenti criteri:

Facilità di amministrazione.

Modifica al volo, invisibile agli utenti. Pertanto, operazioni come l'interruzione delle connessioni e, soprattutto, il riavvio sono indesiderabili per noi.

Garantito che il nostro sistema funzionerà sulla maggior parte delle macchine.

Nel nostro script di esempio, tutti i computer della rete locale sono divisi in due gruppi condizionali: un gruppo privilegiato è costituito da coloro a cui è consentito l'accesso a Internet utilizzando i servizi più comuni, quali:

HTTP- porta 80;
HTTPS- porta 443;
FTP- porte 20, 21 e da 1025 a 65535;
protocollo SMTP per l'inoltro della posta - porta 25;
Protocollo POP3 per ricevere messaggi - porta 110.

C'è un altro gruppo, computer da cui è consentito l'accesso solo a esterni server aziendale con indirizzo IP 83.xxx.xxx.2 (solo Protocolli SMTP e POP3).

Dobbiamo fare in modo che sia possibile cambiare il gruppo privilegiato, come si suol dire, "al volo", se possibile senza rompersi connessioni stabilite... Per fare ciò, chiamiamo lo script aggiuntivo rc.firewall.local.inet dal nostro script. È sufficiente modificare e riavviare questo script aggiuntivo senza influire su tutte le altre impostazioni del firewall.

Inoltre, dobbiamo prevedere una situazione in cui i parametri di rete cambiano, come l'indirizzo IP del gateway del provider. Per questo useremo le variabili locali nello script. Ad esempio, se si modifica il gateway predefinito, è sufficiente modificare il valore della variabile intgateway e riavviare lo script rc.firewall.run.

Ecco il nostro script di esempio:

# vi rc.firewall.run
#! / bin / sh
extip = "83.xxx.xxx.xxx"
intip = "192.168.9.2"
intnet = "192.168.9.0/24"
server di posta = "83.xxx.xxx.2"
intgateway = "83.xxx.xxx.1"
#
/sbin/ipfw -f flush &
#
/ sbin / ipfw aggiunge 180 devia natd ip da $ (intnet) a qualsiasi out xmit fxp0
/ sbin / ipfw aggiungi 190 devia natd ip da any a $ (extip)
# ICMP
/ sbin / ipfw add 500 consente icmp da any a any
# SSH
/ sbin / ipfw aggiungi 10000 consenti tcp da qualsiasi a qualsiasi 22
/ sbin / ipfw add 10010 consenti tcp da qualsiasi 22 a qualsiasi
# DNS
/ sbin / ipfw add 11000 consente tcp da qualsiasi a qualsiasi 53
/ sbin / ipfw add 11010 consente tcp da qualsiasi 53 a qualsiasi
/ sbin / ipfw add 11020 consente udp da qualsiasi a qualsiasi 53
/ sbin / ipfw add 11030 consente udp da qualsiasi 53 a qualsiasi
# FTP Web
/ sbin / ipfw add 12000 consenti tcp da me a qualsiasi 20,21,80,443
/ sbin / ipfw add 12010 consenti tcp da qualsiasi 20,21,80,443 a me
/ sbin / ipfw aggiungi 12020 consenti udp da me a qualsiasi 20,21
/ sbin / ipfw add 12030 consenti udp da qualsiasi 20,21 a me
#
# Script per il gruppo di privilegi
/bin/sh /etc/rc.firewall.local.inet
# Nega altri computer della LAN
/ sbin / ipfw aggiungi 12960 nega tcp da $ (intnet) a qualsiasi 20,21,80,443
/ sbin / ipfw aggiungi 12970 nega tcp da qualsiasi 20,21,80,443 a $ (intnet)
/ sbin / ipfw aggiungi 12980 nega udp da $ (intnet) a qualsiasi 20,21
/ sbin / ipfw aggiungi 12990 nega udp da qualsiasi 20.21 a $ (intnet)
#
#
/ sbin / ipfw aggiungi 13000 consenti tcp da $ (intnet) a $ (server di posta) 25.110
/ sbin / ipfw aggiungi 13010 consenti tcp da $ (server di posta) 25.110 a $ (intnet)
#
/ sbin / ipfw add 55010 consente tcp da qualsiasi a qualsiasi 1024-65534
/ sbin / ipfw add 55020 consente tcp da qualsiasi 1024-65534 a qualsiasi
/ sbin / ipfw add 55030 consenti tcp da qualsiasi 1024-65534 a qualsiasi
/ sbin / ipfw add 55040 consente tcp da any a any 1024-65534
/ sbin / ipfw add 55050 consente udp da qualsiasi a qualsiasi 1024-65534
/ sbin / ipfw add 55060 consente udp da qualsiasi 1024-65534 a qualsiasi
/ sbin / ipfw add 55070 consente udp da qualsiasi 1024-65534 a qualsiasi
/ sbin / ipfw add 55080 consente udp da qualsiasi a qualsiasi 1024-65534
# Nega tutto
/ sbin / ipfw add 65534 nega ip da any a any

Crea e modifica lo script rc.firewall.local.inet per lavorare con un gruppo di indirizzi privilegiato:

# vi / etc / rc.firewall.local.inet
#! / bin / sh
intnet = "192.168.9.0/24"
gruppo privato = (31.32)
#
/ sbin / ipfw elimina 12310
/ sbin / ipfw elimina 12320
/ sbin / ipfw elimina 12330
/ sbin / ipfw elimina 12340
#
/ sbin / ipfw add 12310 consenti tcp da $ (intnet) $ (privgroup) a qualsiasi 20,21,80,443,1025-65535
/ sbin / ipfw add 12320 consente tcp da qualsiasi 20,21,80,443,1025-65535 a $ (intnet) $ (privgroup)
/ sbin / ipfw add 12330 consenti udp da $ (intnet) $ (privgroup) a qualsiasi 20,21,1025-65535
/ sbin / ipfw add 12340 consente udp da qualsiasi 20,21,1025-65535 a $ (intnet) $ (privgroup)

Nello script per modificare la composizione del gruppo privilegiato, è necessario modificare la variabile privgroup aggiungendo/rimuovendo il numero di host in esso contenuto nella sottorete locale.
Ad esempio, per aggiungere due computer con indirizzi IP 192.168.9.33 e 192.168.9.45, dovresti scrivere "privgroup = (31-33.45)".

È un po' brutto usare regole come "/ sbin / ipfw delete NNNNN" all'avvio del sistema quando non esisteva tale regola. Quando si tenta di eliminare una regola che non esiste, il sistema visualizza il seguente messaggio sulla console:

ipfw: regola 13031: setsockopt (IP_FW_DEL): argomento non valido

In questo caso, il sistema continua a funzionare normalmente.

Se fai tutto rigorosamente, devi creare due script: uno da eseguire all'avvio, il secondo - quando apporti modifiche al volo. Ma poi sarà necessario apportare le modifiche appropriate a entrambi gli script.Poiché l'obiettivo principale è creare un sistema facile da amministrare, questo problema nel nostro caso può essere trascurato.

Ma ora, dopo aver apportato le modifiche appropriate, possiamo semplicemente riavviare lo script per il gruppo privilegiato.

# / bin / sh rc.firewall.local.inet

Possiamo anche apportare modifiche e riavviare lo script rc.firewall.run, sebbene, in base alla progettazione, dovremo farlo molto meno spesso rispetto allo script di gruppo privilegiato.

# / bin / sh rc.firewall.run

Poiché abbiamo scritto il nostro script per annullare le regole esistenti e avviare una configurazione firewall alternativa, dobbiamo pensare a come avviarlo.

FreeBSD ha un meraviglioso meccanismo di avvio programmi personalizzati: file rc.local. È assente dal sistema per impostazione predefinita.

Poiché stiamo già creando questo file, aggiungeremo un comando per avviare il demone natd, che è responsabile del supporto di NAT.

Il demone natd viene avviato dal file rc.conf. (Ancora questo file, in effetti gioca un ruolo chiave per l'intero sistema FreeBSD nel suo insieme!)

Il meccanismo per eseguire questo file da rc.conf è attraverso le seguenti variabili:

# - il percorso del file natd stesso
natd_program = "/ sbin / natd"
# Consenti NAT (se firewall_enable == YES)
natd_enable = "SI"
# Fine frontale o indirizzo IP da usare
natd_interface = ""
# Flag di avvio natd opzionali
natd_flags = ""

Ma in questo caso, useremo la chiamata al demone natd tramite rc.local. Squadra:

# vi /etc/rc.local

crea automaticamente il file /etc/rc.local e lo apre per la modifica.

Aggiungi le seguenti righe ad esso:

# Comando di avvio Natd
/ sbin / natd -n rl0
# dove "-n rl0" è il nome dell'interfaccia su cui viene avviato NAT
#
# Ed esegui il nostro script per impostare le regole del firewall:
/bin/sh /etc/rc.firewall.run

Riavvia e controlla l'accesso a le risorse giuste Internet da un computer da una rete locale.

1. Evie Nemeth, Garth Snyder, Scott Seabass, Trent R. Hein. UNIX. Gestione amministratore di sistema... BHV, Peter, 2004
2. Alexey Fedorchuk, Alexey Torn. FreeBSD. Installazione, configurazione, utilizzo. BHV, 2003
3. Filippo Torchinsky. Guida pratica amministratore UNIX. "Simbolo", 2003

Ciao. Consideriamo uno dei modi impostazioni di rete per FreeBSD 8 su una macchina virtuale. Il programma viene utilizzato come emulatore di macchine virtuali Scatola virtuale installato su Windows 8, le impostazioni per Windows 7 sono simili, se necessario, ti orienterai lungo la strada.
Iniziamo dal momento in cui FreeBSD è già installato su macchina virtuale, e ora è il momento di configurare la rete per ulteriori lavori... L'installazione verrà eseguita in tre fasi: configurazione del sistema operativo di base (Windows 8), configurazione Programmi virtuali Scatola, configurazione di FreeBSD.

1. Prima di tutto, controlla se il firewall è abilitato.
Pannello di controllo> Firewall di Windows> Configura parametri

Per impostazione predefinita, il firewall è attivo nel sistema, se è disattivato, si consiglia vivamente di attivarlo. Dopo aver abilitato il firewall, riavvia il computer.


Pannello di controllo> Windows Firewall> Programmi consentiti


Dopo aver installato il programma Virtual Box, l'adattatore virtuale dell'emulatore dovrebbe apparire nelle "Connessioni di rete".

3. Annotiamo le impostazioni per l'host della macchina virtuale.
Pannello di controllo> Rete e Internet> Connessioni di rete> Rete solo host VirtualBox


Pertanto, questo host fungerà da gateway per FreeBSD, a cui verrà inoltrata la rete dall'adattatore fisico.

4. Configurare l'inoltro di rete da un adattatore fisico a uno virtuale (Virtual Box).
Entriamo nelle proprietà dell'adattatore fisico, la scheda "Accesso". Qui è necessario selezionare la casella " Consenti ad altri utenti della rete di utilizzare la connessione Internet questo computer ", selezionare l'host Virtual Box di seguito.

Ora devi disabilitare Server DHCP nelle impostazioni della casella virtuale.
5. Disabilita DHCP in Virtual Box
Andare a Impostazioni virtuali Box, nel gestore della macchina virtuale, vai nel menu principale File> Impostazioni, si aprirà la finestra delle impostazioni, vai alla scheda "Rete".

Apri le impostazioni di rete dell'host, nella scheda "Server DHCP", deseleziona la voce "Abilita server", salva le impostazioni.

Ora iniziamo a configurare la rete in FreeBSD stesso. Avviamo la macchina virtuale con il sistema FreeBSD installato, accediamo al sistema.

6. Determina il nome della scheda di rete FreeBSD.
Immettere il comando nella console:

#ifconfig

Gli adattatori disponibili verranno visualizzati nella console.


Abbiamo bisogno di un adattatore em0, lo configureremo.

7. Impostare i parametri per l'adattatore em0 nel file "rc.conf".
per la modifica:

#ee /etc/rc.conf

Impostiamo i parametri:

Ifconfig_em0 = "inet 192.168.2.10 netmask 255.255.255.0" defaultrouter = "192.168.2.1" hostname = "localhost"


Premi il tasto "ESC", appare il menu dell'editor, seleziona "lascia l'editor", quindi "salva modifiche", quindi abbiamo salvato le modifiche che abbiamo apportato. Ora devi registrare le impostazioni nel file resolv.conf

8. Registriamo le impostazioni nel file resolv.conf
Noi apriamo file di configurazione :

Ee /etc/resolv.conf

Aggiungi la riga:

Server dei nomi 192.168.2.1


Salviamo le modifiche. Riavvia FreeBSD, comando per riavviare:

Dopo il riavvio, accediamo al sistema e proviamo a farlo.
Ad esempio:

#ping google.kz


Assicurati che la rete funzioni. È tutto per ora. Vale la pena notare che Da questa parte questa è solo una delle tante opzioni di configurazione della rete. Se ti si addice dipende da te.

Principali articoli correlati