Meny
Är gratis
registrering
Hem  /  / Ändra standard gateway freebsd. Konfigurera en FreeBSD-router

Ändra standard gateway freebsd. Konfigurera en FreeBSD-router

Inledning == Kortfattat skulle jag vilja skissera en plan som bör följas så att kursen på Internet för kontoret blir korrekt och ingen vandrar åt sidan. Jag noterar direkt att en gateway i Unix inte är ett program, utan ett dussin program, som vart och ett utför sin egen åtgärd och har sina egna inställningar. Vi använder: * FreeBSD 7 * natd * namngiven, dirigerad * ipfw * squid * squidGuard * apache * dhcpd My testserverär redan inom lokalt nätverk så jag tror det externt nätverk Jag har den 192.168.0.0/24, och den interna är 172.16.0.0/16. Siffror spelar trots allt ingen roll - huvudsaken är mening. Jag installerade FreeBSD i en minimal konfiguration och min rc.conf innehåller endast: hostname = "vm = freepro.local" ifconfig_em0 = "DHCP" linux_enable = "JA" sshd_enable = "JA"== Konfigurerar NAT == Mitt externa gränssnitt - em0 - får som standard sin IP-adress via DHCP från en vanlig router med adressen 192.168.1.1. Uppenbarligen fungerar samma router som en DNS-server. I det första steget gör jag NAT (alltid på det yttre gränssnittet!) Och ändrar filen /etc/rc.conf så här: värdnamn = "vm = freepro.local" defaultrouter = "192.168.1.1" ifconfig_em0 = "inet 192.168.1.10 nätmask 255.255.255.0" linux_enable = "JA" sshd_enable = "JA om 1 omkon 192.168.1.0 nätmask 255.255.255.5.5 Internet 1.5.5 Internet 1.5.5 .0.0 "gateway_enable =" JA "natd_enable =" JA "natd_interface =" em0 "#natd_flags =" - f /etc/redirect.conf "firewall_enable =" JA "firewall_type =" öppna "#firewall_script =" / etc / brandvägg . conf "router_enable =" JA "router =" / sbin / dirigerad "router_flags =" - q " Jag fixade den externa adressen och ställde in den interna. Låt oss nu fixa DNS i filen /etc/resolv.conf: namnserver 192.168.1.1 Det var allt! Vi startar tjänsten: # /etc/rc.d/ipfw start # /etc/rc.d/natd start # /etc/rc.d/routed start # /etc/rc.d/named start Och internet fungerar! Naturligtvis ordinerar vi till kunden för hand: IP: 172.16.0.2 MASK: 255.255.0.0 GATE: 172.16.0.1 DNS1: 192.168.1.1 Naturligtvis är detta en mycket dålig gateway. För det första är den inte skyddad alls, och för det andra är den inte cachad alls, och för det tredje omdirigerar den alla DNS-förfrågningar "uppåt", och det finns inget sätt att få någon statistik eller hantera någonting. Men å andra sidan är detta en väldigt lätt och snabb gateway, och från ytterligare inställningar kommer dess prestanda bara att öka, inte minska. Notera förresten att två rader redan är kommenterade i nya rc.conf. Den första kommentaren - kommer att hjälpa mig i framtiden att "vidarebefordra" några portar utanför - inne i nätverket. De där. till exempel, om jag vill komma åt via ssh till klientdatorn 172.16.0.2, då måste jag göra en fil så här: # FIL /etc/redirect.conf redirect_port tcp 172.16.0.2:22 2222 Detta innebär att när jag ansluter till servern utanför på port 2222 kommer jag till maskinen på det lokala nätverket bara på port 22 (ssh). Den andra kommentaren är min personliga brandväggskonfiguration, vässad och testad. == Konfigurera ipfw == Min konfiguration för ipfw på detta stadium det ser ut så här: #! / bin / sh # IPFW-konfiguration för en enkel NAT-server /etc/firewall.conf cmd = "/ sbin / ipfw -q" IfOut = "em0" IpOut = "192.168.1.10" NetOut = "192.168.1.0/24 "IfIn =" em1 "IpIn =" 172.16.0.1 "NetIn =" 172.16.0.0/16 "########################### #################### # Rensa ######################### # ##################### $ (cmd) -f flush $ (cmd) tabell 0 flush $ (cmd) tabell 1 flush ##### # ################################################ # # Vitlista / Svartlista # ########################################## #### $ (cmd) tabell 0 add 172.16.0.12 $ (cmd) table 1 add 172.16.0.13 ######################### #### ################### # Loopback ####################### #### #################### $ (cmd) lägg tillåt ip från valfri till valfri via lo0 ############ #### ############################### # Blockera världen till privat ######## ### ##################################### $ (cmd) lägg till neka ip från någon till 127.0 .0.0 / 8 $ (cmd) lägg till deny ip från 127.0.0.0/8 till någon # $ (cmd) lägg till deny ip från 172.16.0.0/16 till någon via $ (IfOut) # $ (cmd) lägg till d eny ip från 192.168.1.0/24 till valfri via $ (IfOut) $ (cmd) lägg deny ip från vilken som helst till 10.0.0.0/8 via $ (IfOut) # $ (cmd) lägg deny ip från vilken som helst till 172.16.0.0/ 12 via $ (IfOut) # $ (cmd) lägg deny ip från valfri till 192.168.0.0/16 via $ (IfOut) $ (cmd) lägg deny ip från valfri till 0.0.0.0/8 via $ (IfOut) $ (cmd ) lägg deny ip från valfri till 169.254.0.0/16 via $ (IfOut) $ (cmd) lägg deny ip från vilken som helst till 192.0.2.0/24 via $ (IfOut) $ (cmd) lägg neka ip från vilken som helst till 224.0.0.0 / 4 via $ (IfOut) $ (cmd) lägg till deny ip från valfri till 240.0.0.0/4 via $ (IfOut) ####################### ################################## # ICMP ############ ######### ############################# $ (cmd) lägg till deny icmp från någon till någon frag $ (cmd) add deny log icmp från valfri till 255.255.255.255 in via $ (IfOut) $ (cmd) add deny log icmp från valfri till 255.255.255.255 ut via $ (IfOut) ######### ########### ############################## # NAT ###### ########### ################################ $ (cmd) lägg till vidarekoppling 8668 ip från $ (NetIn) till valfri via $ (IfOut) $ (cmd) lägg till vidarekoppla 8668 ip från valfri till $ (IpOut) via $ (IfOut) # $ (cmd) lägg till vidarekoppla 8668 ip från vilken som helst till vilken som helst via $ (IfOut) ####################### ########################## # Blockera privat till världen ################## # ############################# $ (cmd) lägg till deny ip från 10.0.0.0/8 till någon via $ ( IfOut ) # $ (cmd) lägg till deny ip från 172.16.0.0/12 till vilken som helst via $ (IfOut) # $ (cmd) lägg deny ip från 192.168.0.0/16 till vilken som helst via $ (IfOut) $ (cmd) lägg deny ip från 0.0.0.0/8 till valfri via $ (IfOut) $ (cmd) lägg till deny ip från 169.254.0.0/16 till valfri via $ (IfOut) $ (cmd) lägg till deny ip från 192. 0.2.0 / 24 till valfri via $ (IfOut) $ (cmd) lägg till deny ip från 224.0.0.0/4 till valfri via $ (IfOut) $ (cmd) lägg deny ip från 240.0.0.0/4 till vilken som helst via $ ( IfOut) ############################################ # Vitlista ############################################## # $ (cmd) lägg tillåt alla från "tabell (0)" till valfri $ (cmd) lägg tillåt allt från vilken som helst till "tabell (0)" ############## ### ############################### # Svartlista ################ ################################ $ (cmd) lägg till neka allt från "tabell (1 )" till valfri ################################################ Håll etablerade ############################################### # $ (cmd) lägg tillåt tcp från någon till mig etablerad ##################################### ############ # Main ############################ ####### ############## $ (cmd) lägg tillåt ip från valfri till valfri frag $ (cmd) lägg tillåt icmp från valfri till $ (IpOut) icmptypes 0, 8.11 # dns $ (cmd) ) lägg tillåt tcp från vilken som helst till $ (IpOut) dst-port 53 setup $ (cmd) lägg tillåt utp från vilken som helst till $ (IpOut) dst-port 53 $ (cmd) lägg tillåt udp från $ (IpOut) 53 till valfri $ (cmd) lägg tillåt udp från $ (IpOut) till valfri dst-port 53 keep-state # dns-klient $ (cmd) lägg tillåt tcp från valfri till $ (NetIn) dst-port 53 setup $ (cmd) lägg tillåt udp från valfri till $ (NetIn) dst-port 53 $ (cmd) lägg tillåt udp från $ (NetIn) 53 till valfri $ (cmd) lägg tillåt udp från $ (NetIn) till valfri dst-port 53 keep-state # tid $ (cmd) lägg tillåt udp från $ (IpOut) till valfri dst-port 123 keep-state # time-client $ (cmd) lägg tillåt udp från $ (NetIn) ) till valfri dst-port 123 keep-state # ssh-in $ (cmd) lägg tillåt tcp från valfri till $ (IpOut) 22 $ (cmd) lägg tillåt tcp från $ (IpOut) 22 till valfri # ssh-out $ ( cmd) lägg tillåt tcp från $ (IpOut) till valfri 22 $ (cmd) lägg tillåt tcp från valfri 22 till $ (IpOut) # http $ (cmd) lägg tillåt tcp från $ (IpOut) till valfri dst-port 80 # http -klient $ (cmd) lägg tillåt tcp från $ (NetIn) till valfri dst-port 80 $ (cmd) lägg tillåt tcp från valfri 80 till $ (NetIn) # smtp $ (cmd) lägg tillåt tcp från valfri till $ (IpOut ) dst-port 25 setup # framåt 8080 till 81 $ (cmd) lägg tillåt tcp från valfri till $ (IpOut ) dst-port 8080 $ (cmd) lägg tillåt tcp från $ (IpOut) 8080 till valfri $ (cmd) lägg tillåt tcp från vilken som helst till $ (NetIn) dst-port 81 $ (cmd) lägg tillåt tcp från $ (NetIn) 81 till valfri # ut $ (cmd) lägg till neka logg tcp från vilken som helst till vilken som helst in via $ (IfOut) setup # $ (cmd) lägg tillåt tcp från vilken som helst till valfri inställning ############# ##################################### # Lokalt nätverk ########## ####################################### $ (cmd) lägg tillåt allt från vilken som helst till någon via $ (IfIn) ########################################## ##### # Neka alla ###################################### ## ####### $ (cmd) lägg till neka allt från vilken som helst till vilken som helst Jag kommenterade specifikt några av raderna som spikar paket från lokala nätverk 192, 172 på det externa gränssnittet, eftersom mitt externa gränssnitt är det lokala. I verkligheten behövs dessa linjer. Låt oss gå längre. == Konfigurera bläckfisk == Nu behöver jag bläckfisk - en cachande proxyserver som på ett kompetent sätt kan distribuera Internet till alla användare enligt reglerna som ställts in av systemadministratören. pkg_add -r squid Obs: självklart är det mer korrekt att bygga mjukvara från färska och uppdaterade portar, men vi sparar tid, så vi installerar i paket. Vi kommer att uppgradera någon gång senare med portupgrade. För bläckfisk gör vi den enklaste inställningen - redigera filen /usr/local/etc/squid/squid.conf # Minsta SQUID-konfiguration acl alla src 0.0.0.0/0.0.0.0 acl-hanterare proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.net 127.0.0.net 127.0.0.net .4cl lokal 5.0.0.0/8.0.0.0 acl CONNECT-metod CONNECT http_access tillåt manager localhost http_access tillåt lokalnät http_access neka hanterare http_access neka Safe_ports http_access neka CONNECT SSL_ports http_access neka alla icp_access tillåta alla http_port 3128 transparent hierarchy_stoplist cgi-bin? acl QUERY urlpath_regex cgi-bin \? cache neka QUERY cache_dir ufs / usr / local / squid / cache 100 16 256 access_log /usr/local/squid/logs/access.log squid cache_log /usr/local/squid/logs/cache.log cache_store_log / usr / local / /logs/store.log refresh_pattern ^ ftp: 1440 20% 10080 refresh_pattern ^ gopher: 1440 0% 1440 refresh_pattern. 0 20% 4320 acl apache rep_header Server ^ Apache broken_vary_encoding tillåt apache cache_effective_user squid cache_effective_group squid visible_hostname vm-freepro.local icp_port 0 error_directory / usr / local / etc / squid local / etc / squid squid / squid local _ Jag tog medvetet bort kommentarerna från konfigurationsfilen, eftersom det inte finns många, men många av dem. Glöm inte att korrigera /etc/rc.conf genom att lägga till raden: squid_enable = "JA" Därefter bygger vi om cachen och startar bläckfisken: # squid -z # /usr/local/etc/rc.d/squid start Det första vi gör efter bläckfiskinstallationer- vi förbjuder lokala användare att komma åt Internet via port 80. Vi överför port 80 till 3128 - d.v.s. vi får alla användare att bara gå igenom bläckfisk. Det finns en stor liten hake här. Detta kan bara göras genom att införa IPFW-stöd i kärnan, annars fungerar inte vidarebefordran. Ja, det betyder att nu måste vi bygga vår egen kärna! Det är inte en lätt uppgift, men användbar - efter att ha monterat sin kärna bör hastigheten på dess drift öka och volymen ska minska märkbart. Använd först sysinstall för att installera kärnkällorna: # sysinstall Gå till / Konfigurera / Distributioner Markera inuti avsnittet src [X] base [X] sys Nu har vi kärnkällorna i mappen / usr / src. Kopiera sedan den GENERISKA konfigurationen till "vår" MYKERNEL och redigera MYKERNEL: # cd / usr / src / sys / i386 / conf # cp GENERIC MYKERNEL # mcedit MYKERNEL När du redigerar konfigurationen, se till att ange följande alternativ: # Aktivering av brandväggen i kärnan alternativ IPFIREWALL # Aktivering av "logg" mekanism alternativ IPFIREWALL_VERBOSE # Begränsning av loggar - alternativ för översvämningsskydd IPFIREWALL_VERBOSE_LIMIT = 50 # Aktiverar alternativen för paketvidarebefordran IPFIREWALL_FORWARD # Aktiverar översättningsmekanismen NAT-adresser alternativ IPDIVERT # Aktivera alternativ för kanalhastighetsbegränsning DUMMYNET Och ta även bort all onödig "hårdvara", som du i verkligheten inte har. Nu bygger vi kärnan. Denna operation kan ta lite tid och kan misslyckas med ett fel som kräver att du installerar ytterligare källor från sysinstall beroende på vad du skrev i konfigurationen. Vi hoppas att det inte finns något överflödigt där. # cd / usr / src # gör byggkärnan KERNCONF = MYKERNEL # gör installationskärnan KERNCONF = MYKERNEL Nu måste du starta om, men innan du startar om, se till att läsa manualen om omstarten misslyckas. Jag vill naturligtvis att detta inte ska hända. Så ladda om och redigera /etc/firewall.conf igen. #! / bin / sh # IPFW-konfiguration för NAT-server och SQUID proxy cmd = "/ sbin / ipfw -q" IfOut = "em0" IpOut = "192.168.1.10" NetOut = "192.168.1.0/24" IfIn = "em1 " IpIn = "172.16.0.1" NetIn = "172.16.0.0/16" ############################# ### ################ # Rensa ########################### ### ################## $ (cmd) -f flush $ (cmd) tabell 0 flush $ (cmd) tabell 1 flush ######### ## ##################################### # Vitlista / Svartlista #### ### ################################################ # $ (cmd) tabell 0 add 172.16.0.2 $ (cmd) table 1 add 172.16.0.13 ############################ ### ############### # # Loopback ############################ ## ################## $ (cmd) lägg tillåt ip från valfri till valfri via lo0 ################ ### ############################## # Blockera världen till privat ########### #### ################################### $ (cmd) lägg till neka ip från någon till 127.0.0.0/ 8 $ (cmd) lägg till deny ip från 127.0.0.0/8 till valfri # $ (cmd) lägg deny ip från 172.16.0.0/16 till någon via $ (IfOut) # $ (cmd) lägg deny ip från 19 2.168.1.0/24 till valfri via $ (IfOut) $ (cmd) lägg till deny ip från vilken som helst till 10.0.0.0/8 via $ (IfOut) # $ (cmd) lägg deny ip från vilken som helst till 172.16.0.0/12 via $ (IfOut) # $ (cmd) lägg till deny ip från vilken som helst till 192.168.0.0/16 via $ (IfOut) $ (cmd) lägg deny ip från vilken som helst till 0.0.0.0/8 via $ (IfOut) $ (cmd) lägg deny ip från vilken som helst till 169.254.0.0/16 via $ (IfOut) $ (cmd) lägg deny ip från vilken som helst till 192.0.2.0/24 via $ (IfOut) $ (cmd) lägg deny ip från vilken som helst till 224.0.0.0/4 via $ (IfOut) $ (cmd) lägg till deny ip från valfri till 240.0.0.0/4 via $ (IfOut) ######################### ####################### # ICMP ####################### ######################## $ (cmd) lägg till deny icmp från valfri till valfri frag $ (cmd) lägg till neka log icmp från vilken som helst till 255.255 .255.255 in via $ (IfOut) $ (cmd) lägg till deny log icmp från valfri till 255.255.255.255 ut via $ (IfOut) ####################### ################################################ ########## ############################# $ (cmd) lägg till vidarekoppla 8668 ip från $ (NetIn) till valfri via $ (IfOut) $ (cmd) lägg till vidarekoppla 8668 ip från valfri till $ (IpOut) via $ ( IfOut) # $ (cmd) lägg till vidarekoppla 8668 ip från vilken som helst till vilken som helst via $ (IfOut) ############################ #################### # Blockera privat till världen ####################### # ######################## $ (cmd) lägg till deny ip från 10.0.0.0/8 till valfri via $ (IfOut) # $ (cmd) ) lägg till deny ip från 172.16.0.0/12 till valfri via $ (IfOut) # $ (cmd) lägg deny ip från 192.168.0.0/16 till valfri via $ (IfOut) $ (cmd) lägg deny ip från 0.0.0.0/ 8 till valfri via $ (IfOut) $ (cmd) lägg till deny ip från 169.254.0.0/16 till valfri via $ (IfOut) $ (cmd) lägg till deny ip från 192. 0.2.0 / 24 till valfri via $ (IfOut) $ (cmd) lägg till deny ip från 224.0.0.0/4 till valfri via $ (IfOut) $ (cmd) lägg deny ip från 240.0.0.0/4 till vilken som helst via $ ( IfOut) ############################################ # Vitlista ############################################## # $ (cmd) lägg tillåt alla från "tabell (0)" till valfri $ (cmd) lägg tillåt allt från vilken som helst till "tabell (0)" ############## ### ############################### # Svartlista ################ ################################ $ (cmd) lägg till neka allt från "tabell (1 )" till valfri ################################################ Håll etablerade ############################################### # $ (cmd) lägg tillåt tcp från någon till mig etablerad ##################################### ############ # Main ############################ ####### ############## $ (cmd) lägg tillåt ip från valfri till valfri frag $ (cmd) lägg tillåt icmp från valfri till $ (IpOut) icmptypes 0, 8.11 # dns $ (cmd) ) lägg tillåt tcp från vilken som helst till $ (IpOut) dst-port 53 setup $ (cmd) lägg tillåt utp från vilken som helst till $ (IpOut) dst-port 53 $ (cmd) lägg tillåt udp från $ (IpOut) 53 till valfri $ (cmd) lägg tillåt udp från $ (IpOut) till valfri dst-port 53 keep-state # dns-klient $ (cmd) lägg tillåt tcp från valfri till $ (NetIn) dst-port 53 setup $ (cmd) lägg tillåt udp från valfri till $ (NetIn) dst-port 53 $ (cmd) lägg tillåt udp från $ (NetIn) 53 till valfri $ (cmd) lägg tillåt udp från $ (NetIn) till valfri dst-port 53 keep-state # tid $ (cmd) lägg tillåt udp från $ (IpOut) till valfri dst-port 123 keep-state # time-client $ (cmd) lägg tillåt udp från $ (NetIn) ) till valfri dst-port 123 keep-state # ssh-in $ (cmd) lägg tillåt tcp från valfri till $ (IpOut) 22 $ (cmd) lägg tillåt tcp från $ (IpOut) 22 till valfri # ssh-out $ ( cmd) lägg tillåt tcp från $ (IpOut) till valfri 22 $ (cmd) lägg tillåt tcp från valfri 22 till $ (IpOut) # http $ (cmd) lägg tillåt tcp från $ (IpOut) till valfri dst-port 80 # http -klient # $ (cmd) lägg tillåt tcp från $ (NetIn) till valfri dst-port 80 # $ (cmd) lägg tillåt tcp från valfri 80 till $ (NetIn) # squid $ (cmd) lägg tillåt allt från $ (NetIn) ) till $ (IpIn) 3128 via $ (IfIn) $ (cmd) lägg till fwd $ (IpIn), 3128 tcp från $ (NetIn) till valfri 80 # smtp $ (cmd) lägg tillåt tcp från vilken som helst till $ (IpOut) dst-port 25 setup # ut $ (cmd) lägg deny log tcp från vilken som helst till vilken som helst in via $ (IfOut) setup # $ (cmd) lägg tillåt tcp från vilken som helst till vilken konfiguration som helst ########################################### #### # Lokalt nätverk ######################################### ###### $ (cmd) lägg tillåt allt från vilken som helst till vilken som helst via $ (IfIn) ######################## ### #################### # Neka alla ###################### ### ######################## $ (cmd) lägg till neka allt från valfritt till valfritt Vi startar om tjänsterna och kontrollerar - allt fungerar, och klienterna, obemärkta av sig själva, går igenom kontrollsystemet. Vi kommer att skjuta upp konfigurationen av åtkomstkontroll tills vidare, och vi kommer att lösa ett annat viktigt problem: att skaffa DNS. == Konfigurera DNS == Nu har våra kunder en registrerad DNS-adress 192.168.1.1 - externt till det interna nätverket 172.16.0.0/16. Vi kan säga att klienter klättrar över servern tusentals gånger om dagen på jakt efter adresser. Låt oss göra systemet bättre – vi kommer att sätta upp en cachande DNS-server som skulle tillåta oss att undvika end-to-end-anslutningar till utsidan, spara oss trafik och påskynda vårt arbete. Glöm inte innan dess att neka åtkomst på port 53 utanför för alla klienter. I filen /etc/namedb/named.conf, redigera avlyssningsparametrarna, forwarders: alternativ (katalog "/ etc / namedb"; pid-fil "/ var / run / named / pid"; dump-fil "/var/dump/named_dump.db"; statistikfil "/var/stats/named.stats "; lyssna på (127.0.0.1; 172.16.0.1;); inaktivera-tom-zon" 255.255.255.255.IN-ADDR.ARPA "; inaktivera-tom-zon" 0.0.0.0.0.0.0.0.0.0.0.0 .0 .0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA "; inaktivera-tom-zon" 1.0.0.0.0.0.0.0.0.0.0.0.0.0. 0.0.0.0.0. 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA "; speditörer (192.168.1.1;); // fråga-källa adress * port 53;); Gör först den lokala DNS i filen /etc/resolv.conf: namnserver 127.0.0.1 namnserver 192.168.1.1 I /etc/firewall.conf, förbjud klienter från att använda extern DNS (redigera avsnitt med dns-klientkommentaren) # dns-client # Inaktivera extern DNS # $ (cmd) lägg tillåt tcp från valfri till $ (NetIn) dst-port 53 setup # $ (cmd) lägg tillåt udp från valfri till $ (NetIn) dst-port 53 # $ ( cmd) lägg tillåt udp från $ (NetIn) 53 till valfri # $ (cmd) lägg tillåt udp från $ (NetIn) till valfri dst-port 53 keep-state # Tillåt endast lokal DNS $ (cmd) lägg tillåt tcp från $ ( NetIn) till $ (IpIn) dst-port 53 setup $ (cmd) lägg tillåt udp från $ (NetIn) till $ (IpIn) dst-port 53 Omstart: # /etc/rc.d/named omstart # /etc/rc.d/ipfw omstart Låt oss nu gå tillbaka till frågan om Internetåtkomstkontroll. Det finns två lösningar samtidigt. Konfigurera först acl-policyer i squid. För det andra, installera och konfigurera squidGuard, en dedikerad åtkomstkontrollapplikation. Låt oss börja i ordning. == Konfigurera squid acl == acl är reglerna i squid-konfigurationen som är ganska effektiva för att begränsa informationsflöde går via en proxyserver. Kort sagt – med acl på nolltid kan du döda vilken vänsterism som helst som stör arbetet. Alla acl-inställningar som standard skrivs i filen squid.conf, men kan också flyttas till externa filer... Som ett exempel kommer jag att ge en del av konfigurationen: # Vi förbjuder alla filplundrare acl-andelar dstdomain .rapidshare.com .webfile.ru http_access neka aktier # Vi förbjuder alla från att begära webbplatser via IP acl ip_urls url_regex http: // + \. + \. + \. + [: /] Http_access neka ip_urls # Grupprestriktioner src group_strict (ip 172.16.0.20-172.16.0.25) src group_allow (ip 172.16.0.26-172.16.0.30) acl (group_allow) groupe_allow (passera alla) groupe_allow (passera alla) Det blir jättebra. Men det är uppenbart att i en bra proxy bör det finnas många sådana regler - en regel för varje "hål". Att ta reda på "hål" och skriva ut dem en efter en är tråkigt, men som alltid finns det en färdig lösning - squidGuard - en filterapplikation med en enorm uppsättning regler, som i princip kan fyllas på även enl. cron-schemat. Vi studerar frågan. == Konfigurera squidGuard == Låt oss nu försöka installera och konfigurera squidGuard. Detta är inte svårt att göra, men du måste vara försiktig. Så: # pkg_add -r squidGuard # cp /usr/local/etc/squid/squidGuard.conf.sample /usr/local/etc/squid/squidGuard.conf Filen squidGuard.conf innehåller alla inställningar, av vilka några måste korrigeras direkt, nämligen: # SquidGuard.conf fil ... källexempel-klienter (ip 172.16.0.0/16) ... Låt oss binda squidGuard till squid - lägg till 3 rader till squid.conf-filen: redirector_bypass på redirect_program / usr / local / bin / squidGuard -c /usr/local/etc/squid/squidGuard.conf redirect_children 10 squidGuard lagrar sin konfigurationsdatabas i / var / db / squidGuard. Innan den första lanseringen eller efter att du har gjort ändringar måste den byggas om: # rehash # squidGuard -C all # chown -R squid: squid / var / db / squidGuard # /usr/local/etc/rc.d/squid omstart Allt är bra, men när en klient försöker komma in på en förbjuden webbplats, till exempel http://3warez.com/, ser vi bromsar. Och jag skulle vilja få något begripligt meddelande. För detta behöver vi apache. == Konfigurera apache == Som redan nämnts behöver vi apache för att visa information om blockerade adresser och orsaker till blockering. Vi gör som vanligt: # pkg_add -r apache22 # echo "apache22_enable =" JA "" >> /etc/rc.conf Apache-inställningarna finns i filen /usr/local/etc/apache22/httpd.conf. Innan du börjar måste du kontrollera DocumentRoot- och ServerName-direktiven - jag kommer att utelämna detaljerna, eftersom på Internet finns det många artiklar om hur du ställer in denna server. Klart på 1 sek. Lansera: # echo "Access denied"> /usr/local/www/apache22/data/index.html # /usr/local/etc/rc.d/apache22 start Låt oss fixa squidGuard.conf-konfigurationen lite: # I slutet av acl-filen (..... standard (omdirigering http://172.16.0.1/index.html))== Konfigurera dhcpd == Och nu börjar vi närma oss slut. Nätverket är uppbyggt och fungerar utmärkt. Allt är under kontroll, allt är strikt begränsat. Men efter piskan är det dags att erbjuda kunderna en morot också – i form av att distribuera automatiska DHCP-adresser. En bra administratör fuskar förstås även här - han kommer bara att distribuera adresser via MAC, men vi lägger bara lite russin på det. # pkg_add -r isc-dhcp3-server # cp /usr/local/etc/dhcpd.conf.sample /usr/local/etc/dhcpd.conf Lägg till raderna i filen /etc/rc.conf: dhcpd_enable = "JA" dhcpd_flags = "- q" dhcpd_ifaces = "em1" Du måste också fixa den viktigaste konfigurationen /usr/local/etc/dhcpd.conf: alternativet domännamn "example.com"; option domännamn-servrar 172.16.0.1; alternativ undernätmask 255.255.255.0; default-lease-time 3600; max-lease-tid 86400; ddns-update-style ingen; subnät 172.16.0.0 nätmask 255.255.0.0 (intervall 192.16.0.11 172.16.0.15; alternativroutrar 172.16.0.1;) Vi slår på elen: # /usr/local/etc/rc.d/isc-dhcpd start Det är kanske allt, det viktigaste. Den här artikeln gör inte anspråk på att vara komplett och meningsfull, men beskriver kortfattat de steg som måste passeras för att få servern till ett fungerande tillstånd. Vidare - bara trimma och åter trimma. Glöm inte heller att detta inte är det enda sättet att konfigurera servern - i unix finns det alltid ett alternativ och du kan använda helt andra applikationer.

ALEXEY BEREZHNOY

Konfigurera en Internet-gateway baserad på FreeBSD

Att använda FreeBSD på små routrar för att kommunicera med omvärlden har för länge sedan upphört att vara något enastående. Detta lättanvända operativsystem med låga resurser och lågt underhåll är nästan idealiskt för sådana uppgifter.

Vi behöver

  • Hårdvara... För att få det interna nätverket till Internet räcker det med en Pentium III 600 MHz dator, 256 MB RAM, 10 GB hårddisk, 2 nätverkskort. Konfigurationen är tagen med marginal, för ett fullfjädrat nätverk av ett litet kontor (ca 50 användare) skulle Pentium II 400 MHz med 128 MB RAM vara helt tillräckligt. Men i framtiden kanske du vill installera på samma gateway, till exempel en proxyserver, det är bättre att välja en konfiguration på högre nivå.
  • Operativ system: FreeBSD 5.5 eller 6.1.
  • Dessutom: Därför att den här datorn med förbehåll för kontinuerlig användning rekommenderar jag att du levererar den i fodralet ytterligare fläktar för att åstadkomma forcerad blåsning/ventilation av kylluft. Nästan alla moderna ATX-fodral låter dig göra detta.

Eftersom alla nödvändiga moduler ingår i operativ system, vi behöver inget annat.

Konfigurera nätverksgränssnitt

Det är nödvändigt att förtydliga namnen på nätverkskortens gränssnitt, genom vilka operativsystemet känner igen dem.

# ifconfig

Något sådant här borde dyka upp:

rl0: flaggor = 8843 mtu 1500

Alternativ = 8

Eter 00: xx: xx: xx: xx: xx

Status: aktiv

xl0: flaggor = 8843 mtu 1500

Alternativ = 9

Eter 00: zz: zz: zz: zz: zz

Media: Ethernet autoselect (100baseTX)

Status: aktiv

plip0: flaggor = 108810 mtu 1500

lo0: flaggor = 8049 mtu 16384

Inet6 :: 1 prefix 128

Datorn har två nätverkskort med gränssnittsnamnen rl0 och xl0.

I vårt fall kommer rl0-gränssnittet att "se" in yttre världen, och xl0 - till det interna nätverket. IP-adress internt gränssnitt: 192.168.9.2, nätmask 255.255.255.0, gränssnittsnamn xl0; Det externa gränssnittets IP-adress är 83.xxx.xxx.xxx, nätmasken är 255.255.255.224 och gränssnittsnamnet är rl0.

Du kan ta reda på vilka nätverkskort av vilka tillverkare som motsvarar vissa nätverksadresser genom att titta på filen GENERIC i katalogen / usr / src / sys / i386 / conf:

# mer / usr / src / sys / i386 / conf / GENERISK

I den hittar vi motsvarande rader:

enhet rl # RealTek 8129/8139

enhet xl # 3Com 3c90x (`` Boomerang "", "Cyclone" ")

Således motsvarar rl0-gränssnittet RealTek 8129/8139 nätverkskortet och dess analoger. Nätverksgränssnittet xl0 matchar 3Coms nätverkskort.

Separat är det värt att nämna filen GENERIC. Detta är kärnkonfigurationsfilen som installeras som standard när FreeBSD är installerat. Det är organiserat så att systemet kan stödja de flesta av de mest använda enheterna, inklusive de specificerade nätverkskorten. Mycket ofta byggs ytterligare kärnmodifieringar på en modifierad kopia av denna fil. I det här fallet kommer vi att göra just det:

  • Leverantörens gateway - som standard 83.xxx.xxx.1.
  • Nätverket innehåller användardatorer - 192.168.9.31, 192.168.9.32.
  • Vår domän är (villkorligt) ourdomain.ru.
  • Värdnamnet (datorns) är ourhost.ourdomain.ru.

Vi konfigurerar nätverkskort. Du kan använda sysinstall-verktyget (/ stand / sysinstall för FreeBSD 5.5 och / usr / sbin / sysinstall för FreeBSD 6.1) Men eftersom vi känner till alla nödvändiga parametrar, för att förenkla processen och spara tid kommer vi att ställa in parametrarna genom att redigera motsvarande parametrar konfigurationsfiler.

FreeBSD nätverksgränssnittsinställningar lagras i filen /etc/rc.conf. Vi öppnar den för redigering:

# vi /etc/rc.conf

Och lägg till följande rader:

# Ställ in det interna gränssnittet

ifconfig_xl0 = "inet 192.168.9.2 nätmask 255.255.255.0"

# Ställ in det externa gränssnittet

ifconfig_rl0 = "inet 83.xxx.xxx.xxx nätmask 255.255.255.224"

# Ställ in leverantörens standardgateway

defaultrouter = "83.xxx.xxx.1"

# Värdnamn

hostname = "ourhost.ourdomain.ru"

# Vi anger att servern kommer att fungera som en router

gateway_enable = "JA"

Sedan startar vi om datorn:

# starta om

V det här ögonblicket datorn behövde inte startas om. Men vi vill se till att våra gränssnitt är korrekt installerade och fungerar, så jag rekommenderar ändå en omstart.

Efter laddning kontrollerar vi:

# ifconfig

Utdata från ifconfig-kommandot:

rl0: flaggor = 8843 mtu 1500

Alternativ = 8

Inet6 fe80 :: 215: 58ff: fe3e: 8fb1% rl0 prefixlen 64 scopeid 0x1

Inet 83.xxx.xxx.xxx nätmask 0xffffffe0 broadcast 83.xxx.xxx.yyy

Eter 00: xx: xx: xx: xx: xx

Media: Ethernet autoselect (100baseTX)

Status: aktiv

xl0: flaggor = 8843 mtu 1500

Alternativ = 9

Inet6 fe80 :: 20a: 5eff: fe62: ade2% xl0 prefixlen 64 scopeid 0x2

Inet 192.168.9.2 nätmask 0xffffff00 broadcast 192.168.9.255

Eter 00: zz: zz: zz: zz: zz

Media: Ethernet autoselect (100baseTX)

Status: aktiv

plip0: flaggor = 108810 mtu 1500

lo0: flaggor = 8049 mtu 16384

Inet6 :: 1 prefix 128

Inet6 fe80 :: 1% lo0 prefixlen 64 scopeid 0x4

Inet 127.0.0.1 nätmask 0xff000000

rc.conf-filen kan enligt min mening kallas en nyckelkonfigurationsfil. Ett mycket stort antal parametrar som används av systemet ställs in i form av motsvarande variabler i denna fil. Inklusive inställningar av nätverksgränssnitt, brandvägg och NAT som används av oss.

Konfigurera gatewayen

Vi kommer att använda den inbyggda FreeBSD IPFW-brandväggen. För att göra detta måste vi göra några ändringar i kärnan i systemet. Om du har ytterligare frågor om kärnkompilering rekommenderar jag dig att läsa ytterligare material: http://freebsd.org.ru/how-to/kernelconfig.html.

Observera att du måste använda kärnkällorna för motsvarande arkitektur. Eftersom arkitekturen på vår dator är baserad på i386-plattformen måste kärnan också kompileras i enlighet med plattformen. För ägare av datorer på andra plattformar rekommenderar jag att du hänvisar till relevant litteratur.

Kärnkällorna finns som standard i katalogen / usr / src / sys / i386 / conf. Följaktligen går vi till denna katalog:

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

Vanligtvis ändras GENERIC-filen som innehåller standardkärnalternativen. För att göra detta, gör en kopia av den här filen:

# cp GENERISK vår kärna

Öppna för redigering ny fil vår kärna:

# vi vår kärna

och lägg till följande alternativ:

Alternativ IPFIREWALL #brandvägg

Alternativ IPFIREWALL_VERBOSE?

#enable loggning till syslogd (8)

Alternativ IPFIREWALL_FORWARD?

#enable transparent proxy support

Alternativ IPFIREWALL_VERBOSE_LIMIT = 100 #begränsa mångfald

Alternativ IPFIREWALL_DEFAULT_TO_ACCEPT #tillåt allt som standard

Alternativ DUMMYNET

Alternativ IPDIVERT #divert-uttag

Efter att ha gjort ändringarna kan du börja omkompilera kärnan.

Vi utför kommandona:

# konfigurera vår kärna

# cd / usr / src / sys / i386 / kompilera / vår kärna

# gör beroende

# göra

# gör installationen

Överbelastning:

# starta om

Om servern fungerar bra efter omstart, låt oss börja konfigurera brandväggen.

För att organisera brandväggens arbete används följande variabler, läggs till, om nödvändigt, till filen rc.conf.

Tillåter eller nekar användningen av brandväggen:

# Ställ in på JA för att aktivera brandväggsfunktionalitet

firewall_enable = "NEJ"

Namnet och platsen för filen som ansvarar för att initiera brandväggen.

# Vilket skript som ska köras för att konfigurera brandväggen

firewall_script = "/ etc / rc.firewall"

Vid installation av denna regel i "JA" är displayen undertryckt:

firewall_quiet = "NEJ"

Aktivera/inaktivera loggning av händelser:

firewall_logging = "NEJ"

Brandväggskonfigurationstyp:

firewall_type = "OKÄNT"

som standard använder FreeBSD reglerna i filen /etc/rc.firewall.

Den har flera färdiga mallar:

  • öppen- brandväggen tillåter alla paket att passera.
  • klient- Rekommenderas för att endast skydda den här datorn. Det vill säga att brandväggen är konfigurerad som en standard klientdator. Den tillåter alla utgående anslutningar och nekar alla inkommande anslutningar förutom anslutningar på port 25.
  • enkel- den är tänkt för inställningar av enkla gateways etc. Det vill säga som den enklaste brandväggen som skyddar det interna nätverket från intrång utifrån. Vi kommer att skapa ett mer flexibelt regelsystem, så vi kommer inte att använda den här mallen.
  • stängd- Trafik på det lokala gränssnittet lo0 är tillåten. Resten av trafiken passeras av standardregeln. Som regel är detta ett förbud mot all åtkomst, exklusive det interna gränssnittet lo0 (enkelt uttryckt, endast åtkomst "till sig själv" är tillåten)
  • OKÄND- inaktivera laddning av brandväggsregler från standardkonfigurationsskriptet. Brandväggen är inte konfigurerbar på något sätt. Om det kommer att passera trafik eller inte beror på konfigurationen av systemkärnan. Används som standard.

Samma variabel i värdet "filnamn" - "filnamn" - kan användas för att ställa in din egen konfigurationsfil för brandväggen.

Till exempel:

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

kommer att ladda inställningarna från den genererade filen /etc/rc.firewall.newconfig.

“Firewall_flags =” ”” - tjänar till att skicka ytterligare argument vid användning av firewall_type med filnamnsvärde.

Vår uppgift är att skapa ett system som uppfyller följande kriterier:

  • Enkel administration.
  • On-the-fly modifiering, osynlig för användare. Därför är operationer som att bryta anslutningar och desto mer omstart inte önskvärda för oss.
  • Garanterat att vårt system fungerar på de flesta maskiner.

I vårt exempelskript är alla datorer på det lokala nätverket uppdelade i två villkorliga grupper: en privilegierad grupp är de som får åtkomst till Internet med de vanligaste tjänsterna, som:

  • HTTP- port 80;
  • HTTPS- port 443;
  • FTP- portar 20, 21 och från 1025 till 65535;
  • SMTP-protokoll för vidarebefordran av e-post- port 25;
  • POP3-protokoll för att ta emot meddelanden- port 110.

Det finns en annan grupp, datorer från vilka endast tillåts åtkomst till en extern företagsserver med en IP-adress på 83.xxx.xxx.2 (endast SMTP- och POP3-protokoll).

Vi måste se till att det är möjligt att förändra den privilegierade gruppen, som de säger, "i farten", om möjligt utan att gå sönder etablerade förbindelser... För att göra detta kallar vi det extra skriptet rc.firewall.local.inet från vårt skript. Det räcker med att redigera och starta om detta extra skript utan att påverka alla andra brandväggsinställningar.

Dessutom måste vi sörja för en situation när nätverksparametrar ändras, till exempel IP-adressen för leverantörens gateway. För detta kommer vi att använda lokala variabler i skriptet. Om du till exempel ändrar standardgatewayen behöver du bara ändra värdet på variabeln intgateway och starta om skriptet rc.firewall.run.

Här är vårt exempelskript:

# vi rc.firewall.run

#! / bin / sh

extip = "83.xxx.xxx.xxx"

intip = "192.168.9.2"

intnet = "192.168.9.0/24"

mailserver = "83.xxx.xxx.2"

intgateway = "83.xxx.xxx.1"

/ sbin / ipfw -f flush &

/ sbin / ipfw lägg till 180 avleda natd ip från $ (intnet) till valfri ut xmit fxp0

/ sbin / ipfw lägg till 190 avled natd ip från valfri till $ (extip)

# ICMP

/ sbin / ipfw add 500 tillåter icmp från vilken som helst till vilken som helst

# SSH

/ sbin / ipfw lägg till 10000 tillåt tcp från vilken som helst till vilken som helst 22

/ sbin / ipfw add 10010 tillåt tcp från valfri 22 till valfri

# DNS

/ sbin / ipfw add 11000 tillåter tcp från vilken som helst till vilken som helst 53

/ sbin / ipfw add 11010 tillåt tcp från valfri 53 till valfri

/ sbin / ipfw add 11020 tillåter udp från vilken som helst till vilken som helst 53

/ sbin / ipfw add 11030 tillåter udp från valfri 53 till valfri

# Web FTP

/ sbin / ipfw lägg till 12000 tillåt tcp från mig till valfri 20,21,80,443

/ sbin / ipfw add 12010 tillåt tcp från valfri 20,21,80,443 till mig

/ sbin / ipfw add 12020 tillåt udp från mig till valfri 20,21

/ sbin / ipfw add 12030 tillåt udp från valfri 20,21 till mig

# Skript för privilegiegruppen

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

# Neka annan dator med LAN

/ sbin / ipfw lägg till 12960 deny tcp från $ (intnet) till valfri 20,21,80,443

/ sbin / ipfw lägg till 12970 neka tcp från valfri 20,21,80,443 till $ (intnet)

/ sbin / ipfw lägg till 12980 deny udp från $ (intnet) till valfri 20,21

/ sbin / ipfw add 12990 deny udp från valfri 20.21 till $ (intnet)

/ sbin / ipfw add 13000 tillåt tcp från $ (intnet) till $ (mailserver) 25,110

/ sbin / ipfw add 13010 tillåt tcp från $ (mailserver) 25 110 till $ (intnet)

/ sbin / ipfw add 55010 tillåter tcp från vilken som helst till vilken som helst 1024-65534

/ sbin / ipfw lägg till 55020 tillåt tcp från valfri 1024-65534 till valfri

/ sbin / ipfw lägg till 55030 tillåt tcp från valfri 1024-65534 till valfri

/ sbin / ipfw add 55040 tillåter tcp från vilken som helst till vilken som helst 1024-65534

/ sbin / ipfw add 55050 tillåter udp från vilken som helst till vilken som helst 1024-65534

/ sbin / ipfw lägg till 55060 tillåt udp från valfri 1024-65534 till valfri

/ sbin / ipfw lägg till 55070 tillåt udp från valfri 1024-65534 till valfri

/ sbin / ipfw add 55080 tillåter udp från vilken som helst till vilken som helst 1024-65534

# Neka alla

/ sbin / ipfw add 65534 neka ip från någon till någon

Skapa och redigera rc.firewall.local.inet-skriptet så att det fungerar med en privilegierad adressgrupp:

# vi / etc / rc.firewall.local.inet

#! / bin / sh

intnet = "192.168.9.0/24"

privgroup = (31.32)

/ sbin / ipfw radera 12310

/ sbin / ipfw radera 12320

/ sbin / ipfw radera 12330

/ sbin / ipfw radera 12340

/ sbin / ipfw lägg till 12310 tillåt tcp från $ (intnet) $ (privgrupp) till valfri 20,21,80,443,1025-65535

/ sbin / ipfw add 12320 tillåt tcp från valfri 20,21,80,443,1025-65535 till $ (intnet) $ (privgroup)

/ sbin / ipfw lägg till 12330 tillåt udp från $ (intnet) $ (privgroup) till valfri 20,21,1025-65535

/ sbin / ipfw add 12340 tillåt udp från valfri 20,21,1025-65535 till $ (intnet) $ (privgroup)

I skriptet för att ändra sammansättningen av den privilegierade gruppen måste du redigera variabeln privgroup genom att lägga till/ta bort värdnumret i den på det lokala undernätet.

Till exempel, för att lägga till två datorer med IP-adresserna 192.168.9.33 och 192.168.9.45, skulle du skriva "privgroup = (31-33.45)".

Det är lite fult att använda regler som "/ sbin / ipfw radera NNNNN" vid systemstart när det inte fanns någon sådan regel. När du försöker ta bort en regel som inte finns visar systemet följande meddelande på konsolen:

ipfw: regel 13031: setsockopt (IP_FW_DEL): Ogiltigt argument

I det här fallet fortsätter systemet att fungera normalt.

Om du gör allt strikt måste du skapa två skript: ett för att köras vid start, det andra - när du gör ändringar i farten. Men då måste du göra lämpliga ändringar i båda skripten.

Eftersom huvudmålet är att skapa ett system som är lätt att administrera kan detta problem i vårt fall försummas.

Men nu, efter att ha gjort lämpliga ändringar, kan vi helt enkelt starta om skriptet för den privilegierade gruppen.

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

Vi kan också göra ändringar och starta om skriptet rc.firewall.run, även om vi designmässigt kommer att behöva göra detta mycket mindre ofta än i fallet med det privilegierade gruppskriptet.

# / bin / sh rc.firewall.run

Eftersom vi skrev vårt eget skript för att ogiltigförklara de befintliga reglerna och starta en alternativ brandväggskonfiguration, måste vi tänka på hur vi startar det.

FreeBSD har en underbar startmekanism anpassade program: rc.local fil. Den saknas som standard i systemet.

Eftersom vi redan skapar den här filen, lägg till kommandot för att starta natd-demonen, som är ansvarig för NAT-stöd.

natd-demonen startas från filen rc.conf. (Återigen den här filen, den spelar verkligen en nyckelroll för hela FreeBSD-systemet som helhet!)

Mekanismen för att köra den här filen från rc.conf är genom följande variabler:

# - sökvägen till själva natd-filen

natd_program = "/ sbin / natd"

# Tillåt NAT (om firewall_enable == JA)

natd_enable = "JA"

# Frontend eller ipadress att använda

natd_interface = ""

# Valfria natd lanseringsflaggor

natd_flags = ""

Men i det här fallet kommer vi att använda anropet till natd-demonen via rc.local. Kommando:

# vi /etc/rc.local

skapar automatiskt filen /etc/rc.local och öppnar den för redigering.

Lägg till följande rader:

# Natd startkommando

/ sbin / natd -n rl0

# där "-n rl0" är namnet på gränssnittet där NAT startas

# Och kör vårt skript för att ställa in brandväggsregler:

/ bin / sh /etc/rc.firewall.run

Vi startar om och kontrollerar åtkomst till nödvändiga internetresurser från en dator från det lokala nätverket.

  1. Evie Nemeth, Garth Snyder, Scott Seabass, Trent R. Hein. UNIX. Förvaltning systemadministratör... BHV, Peter, 2004
  2. Alexey Fedorchuk, Alexey Torn. FreeBSD. Installation, konfiguration, användning. BHV, 2003
  3. Philip Torchinsky. En praktisk guide för UNIX-administratören. "Symbol", 2003

Wi-fi-router med DHCP och DNS-servrar FreeBSD 8.2

Vad vi vill få:
- så att Wi-Fi-klienter finns på samma subnät som trådbundna.
- så att trådbundna och trådlösa klienter tar emot adresser automatiskt via DHCP
- att ha en cachande DNS
– Självklart vill vi att alla ska gå online
- att ha RDP-åtkomst till den interna servern

Generellt sett vill vi få något liknande funktionalitet som Dlink DIR-300-routern

Det vi har:
Celeron 700, 256 MB RAM, 80 GB IDE-skruv och ett konstigt moderkort som bara fungerar med ACPI inaktiverat
nätverkskort:

LAN - rl0 (10 \ 100 någon form av realtek hittad bakom garderoben på jobbet) [e-postskyddad]:1 :8 :0 : klass = 0x020000 kort = 0x813910ec chip = 0x813910ec rev = 0x10 hdr = 0x00 leverantör = "Realtek Semiconductor" enhet = Realtek RTL8139 Family PCI FastEthernet NIC RTL- 8139 / 8139C / 8139D klass = nätverksunderklass = ethernet WAN - stge0 (10 \ 100 \ 1000 asus-adapter) [e-postskyddad]:1 :5 :0 : klass = 0x020000kort = 0x81801043chip = 0x102313f0 rev = 0x41 hdr = 0x00 leverantör = "Sundance Technology Inc" enhet = "IC Plus IP1000 Family Gigabit Ethernet Adapter" klass = nätverksunderklass = Ethernet Dcheap Wi-Fi-kort (dcheap Wi-Fi) [e-postskyddad]:1 :10 :0 : klass = 0x028000kort = 0x3a711186chip = 0x03021814 rev = 0x00 hdr = 0x00 leverantör = "Ralink Technology, Corp." enhet = "trådlös a/b (RT2525 2 .4GHz transceiver + RT2560 MAC / BBP) "klass = nätverk

ISP-tillhandahållen vit IP-adress:
IP 9.9.9.9
mask 255.255.255.0
gateway 9.9.9.1
DNS1 9.9.9.254
DNS1 9.9.9.253
inställningarna skiljer sig från de verkliga, men detta ändrar inte essensen

LAN-intervall: 192.168.0.0 med mask 255.255.255.0

FreeBSD 8.2 OS installerat:

# uname -en FreeBSD GATE 8 .2 -SLÄPP FreeBSD 8 .2 -SLÄPP # 0: lör 9 april 20:13:28 OMSST 2011 [e-postskyddad]: / usr / src / sys / i386 / kompilera / GATE i386

innehållet i /etc/rc.conf:

9 .9 .9 .1 9 .9 .9 .9 nätmask 255 .255 .255 .0 "ifconfig_rl0 =" inet 192 .168 .0 .1 nätmask 255 .255 .255 .0 "

innehållet i /etc/resolv.conf (DNS-server):

namnserver 9 .9 .9 .254 namnserver 9 .9 .9 .253

Vi börjar förbereda:

Vi tar bort alla onödiga drivrutiner från kärnan (nåja, eller ta inte bort, eftersom det är bekvämt för alla) samtidigt som vi lämnar alla drivrutiner för trådlösa enheter... Om du vet vilken drivrutin som är lämplig för ditt kort, lämna den, och resten kan tas bort. Jag visste inte vilken som skulle fungera för mig, så jag lämnade allt. Vi bygger om kärnan med alternativen:

enhet if_bridge # Modul för brodrift enhet wlan # 802.11-stöd (Wi-fi) # vet inte vad det är, laddas automatiskt enhet wlan_amrr # AMRR sändningshastighetskontrollalgoritmer enhet wlan_xauth # Auktoriseringsstödmodul för åtkomstpunktläge enhet wlan_wep # Stödmodul för WEP-säkerhetsalgoritm enhet wlan_tkip # TKIP-krypteringsstödmodul enhet wlan_ccmp # CCMP-krypteringsstödmodul anordning pf # Jag använder Packet Filter som brandvägg # stöd för köalgoritm (trafikprioritering) alternativ ALTQ alternativ ALTQ_CBQ # Klass Baser Kö (CBQ) alternativ ALTQ_RED # Slumpmässig tidig upptäckt (RED) alternativ ALTQ_RIO # RÖD In/Ut alternativ ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC) alternativ ALTQ_PRIQ # Priority Queuing (PRIQ) # eftersom jag har en enkärnig processor behöver jag inte stöd för många kärnor #options ALTQ_NOPCC # Krävs för SMP-build

bygga och installera kärnan:

# cd / usr / src # gör byggkärnan KERNCONF = GATE && \ gör installationskärnan KERNCONF = GATE

Starta om och se vad som hände:

8843 mtu 1500 optioner = 8209b eter 01 :01 :01 :01 :01 :01 inet 9 .9 .9 .9 9 .9 .9 .255 8802 metrisk 0 mtu 1500 alternativ = 3808 eter 00 :50 : fc: ef: 4d: 75 inet 192 .168 .0 .1 nätmask 0xffffff00 sändning 192 .168 .0 .255 media: Ethernet autoselect (100baseTX 8802 metrisk 0 mtu 2290 eter 00 :26 :5a: 77 :38 : ba media: IEEE 802 .11 Wireless Ethernet autoselect (autoselect) status: ingen operatör lo0: flaggor = 8049 mtu 16384 alternativ = 3 inet 127 .0 .0 .1 nätmask 0xff000000

Wi-fi-kortet identifierades som ral0. Redan bra. Du kan bygga om kärnan igen och ta bort onödiga trådlösa drivrutiner.

Redigera /etc/hostapd.conf till detta tillstånd:

Redigera /etc/rc.conf:

keymap = "ru.koi8-r" hostname = "GATE" gateway_enable = "JA" standardrouter = " 9 .9 .9 .1 "sshd_enable =" JA "ifconfig_stge0 =" inet 9 .9 .9 .9 nätmask 255 .255 .255 .0 " # konfigurera det trådlösa kortet som en åtkomstpunkt wlans_ral0 = "wlan0" create_args_wlan0 = "wlanmode hostap" ifconfig_wlan0 = "upp mediaopt hostap" # ta bort IP-adressen från rl0-gränssnittet # ifconfig_rl0 = "inet 192.168.0.1 nätmask 255.255.255.0" # skapa en brygga mellan trådbundet och trådlöst LAN # och häng på den IP-adressen för den lokala nätverksgatewayen cloned_interfaces = "bridge0" ifconfig_bridge0 = "inet 192 .168 .0 .1 nätmask 255 .255 .255 .0 \ addm wlan0 addm rl0 upp "ifconfig_rl0 =" upp " # aktivera åtkomstpunktsfunktionalitet hostapd_enable = "JA"

Vi startar om. Låt oss se vad som hände:

# ifconfig stge0: flaggor = 8843 mtu 1500 optioner = 8209b eter 01 :01 :01 :01 :01 :01 inet 9 .9 .9 .9 nätmask 0xffffff00 sändning 9 .9 .9 .255 media: Ethernet autoselect (100baseTX ) status: aktiv rl0: flaggor = 8943 mtu 1500 alternativ = 3808 eter 00 :50 : fc: ef: 4d: 75 media: Ethernet autoselect (100baseTX ) status: aktiv ral0: flaggor = 8843 metrisk 0 mtu 2290 eter 00 :26 :5a: 77 :38 : ba media: IEEE 802 .11 status: kör lo0: flaggor = 8049 metrisk 0 mtu 16384 alternativ = 3 inet 127 .0 .0 .1 nätmask 0xff000000 bridge0: flaggor = 8843 mtu 1500 eter a6: 09 :ed: c1: 23 :38 inet 192 .168 .0 .1 nätmask 0xffffff00 sändning 192 .168 .0 .255 id 00 :00 :00 :00 :00 :00 prioritet 32768 hej tid 2 fwddelay 15 maxage 20 hållcnt 6 proto rstp maxaddr 100 Paus 1200 rot-id 00 :00 :00 :00 :00 :00 prioritet 32768 ifcost 0 hamn 0 medlem: rl0 flaggor = 143 ifmaxaddr 0 hamn 2 prioritet 128 vägkostnad 200000 medlem: wlan0 flaggor = 143 ifmaxaddr 0 hamn 6 prioritet 128 vägkostnad 370370 wlan0: flaggor = 8943 mtu 1500 eter 00 :26 :5a: 77 :38 : ba media: IEEE 802 .11 Trådlöst Ethernet autovalsläge 11g status: kör ssid kanal 1 (2412 MHz 11 g) bssid 00 :26 :5a: 77 :38 : ba land USA authmode WPA2 / 802 .11i sekretess MIXED deftxkey 2 AES-CCM 2 :128 -bit AES-CCM 3 :128 -bit TXpower 0 scanvalid 60 protmode CTS dtimperiod 1 -dfs

Allt är bra, Wi-Fi och trådbundna kort är anslutna med en brygga och en IP-adress hänger på denna brygga

Låt oss börja konfigurera PF. PF låter dig aktivera trafikprioritering. Kort beskrivning titta här:
http://www.freebsd.org/doc/ru/books/handbook/firewalls-pf.html
skapa en fil /usr/local/etc/pf.conf och för den till detta tillstånd:

# Det är här jag definierar de variabler som det är bekvämare för mig att skriva skriptet med. WAN = "stge0" LAN = "brygga0" LAN_POOL = " 192 .168 .0 .0 /24 "WANIP =" 9 .9 .9 .9 "SERVER =" 192 .168 .0 .3 "ADMIN =" 192 .168 .0 .2 "RDP_PORT =" 3389 "EXTRDP_PORT =" 33389 " # trafik till och från dessa portar kommer att förbjudas på det externa gränssnittet DROP_PORTS = "(135: 139 ,445}" # Vad man ska göra efter att ett paket träffar en blockeringsregel (blockera) # set block-policy drop - släpp paketet och gör ingenting # set block-policy reject - kassera paketet och skicka ett felmeddelande # till värden som skickade den. ställ in blockpolicy drop # Kontrollera inte trafiken för lo0 ställ hoppa på lo0 # Kontrollera inte trafiken på bridge0-gränssnittet (vi har inga interna begränsningar) ställ in hoppa på $ LAN # "Normalisera" paket. Beskrivningen av detta alternativ, enligt min mening, är tillräckligt # är vaga, men bör vara användbara mot vissa typer av nätverksattacker. skrubba i alla # Jag har en hastighet på ~ 5000 kbps, men du måste ange din hastighet här altq på $ WAN priq bandbredd 5000Kb kö (privat, annat) # Jag har 2 köer # För trafik med högre prioritet (RDP från server) kö priv qlimit 25 prioritet 14 priq (röd) # För alla andra kö annan qlimit 30 prioritet 10 priq (standard) # Storleken på köerna tas, kan man säga, från taket: (Inte alltför # fokusera på dem, tack. Försök själv hitta storleken på kön # aktivera NAT på det externa gränssnittet för LAN-nätverket nat på $ WAN från $ LAN_POOL till valfri -> ($ WAN) # Vidarebefordran av porten till servern Vidarebefordrar en annan port än standardporten # för att skydda mot brute-force-apor som skannar standardportar rdr på $ WAN proto tcp från valfri till $ WANIP \ port $ EXTRDP_PORT -> $ SERVER port $ RDP_PORT # Klipp av ping-förfrågningar till vår adress blockera snabbt på $ WAN proto icmp från vilken som helst till $ WANIP icmp-typ 8 # Det ska inte finnas någon trafik från NETBIOS på det externa gränssnittet blockera snabbt på $ WAN proto (tcp udp) från vilken som helst till vilken port som helst $ DROP_PORTS # aktivera anti-spoofing på WAN-gränssnittet # Citerar http://openbsd.corebsd.or.id/faq/pf/ru/filter.html: # Adresser är förfalskade när en angripare förfalskar originalet # IP-adresser i paket, de överförs antingen till skalet på deras riktiga adresser, # eller porträttera en annan nod på nätverket. Efter att användaren har blivit falsk # de kommer att kunna starta en nätverksattack utan att avslöja den verkliga källan # attackerar eller försöker komma åt nätverkstjänster, som # begränsad till specifika IP-adresser. antispoof snabbt för $ WAN # Neka all uttryckligen obehörig trafik blockera alla # ### Inkommande trafik # Privilegerad trafik skicka in snabbt på $ WAN proto tcp från valfri till $ WANIP-port $ EXTRDP_PORT kö priv # Normal trafik passerar snabbt på $ WAN från valfri till $ WANIP behåll tillståndskö annan # Egentligen på inkommande trafik fungerar inte prioritering i PF, men reglerna I # skrev fortfarande. # ### Utgående trafik # Privilegerad trafik slockna snabbt på $ WAN proto tcp från $ WANIP \ port $ EXTRDP_PORT till valfri behåll tillståndskö priv # Normal trafik slocknar snabbt på $ WAN från $ WANIP till valfri behåll tillståndskö annan
pf_enable = "JA" pf_rules = "/ usr / lokal / etc / pf.conf"

och starta om pf:

# /etc/rc.d/pf starta om

Vi kontrollerar riktigheten av att skapa regler med hjälp av kommandona:

pfctl -sn Befintliga NAT-regler
pfctl -sr Befintliga regler sändningar
pfctl -ss Etablerade förbindelser
pfctl -si Olika diskar
pfctl -sa Allt ovanstående på en gång
pfctl -sq -vvv Visar status för köer

Uppdatera portar med portsnap:

# portsnap hämta Söker upp portsnap.FreeBSD.org-speglar ... 5 speglar hittade. Hämtar snapshot-tagg från portsnap5.FreeBSD.org ... klar. Hämtar metadata för ögonblicksbild ... klar. Uppdatering från ons jun 15 14 :21 :31 MSD 2011 till tors jul 21 11 :37 :27 MSD 2011 ... Hämtar 3 metadata patchar .. klar. Applicerar metadatakorrigeringar ... klar. Hämtar 3 metadatafiler ... klar. Hämtar 9656 plåster..... 10 .... <Часть вывода удалена> ...........9650 ... Gjort. Applicering av plåster ... gjort. Hämtar 1282 nya portar eller filer ... klar. # portsnap-extrakt /usr/ports/.cvsignore / usr / ports / CHANGES .................<Часть вывода удалена>................. / usr / ports / x11 / yelp / / usr / ports / x11 / zenity / Bygga nya INDEX-filer ... gjort.

Vi använder dnscache från djbdns-paketet som cachande DNS-server, eftersom den äter mindre minne och anses vara säkrare än BIND DNS-servern som ingår i FreeBSD.

Installera djbdns:

# cd / usr / ports / dns / djbdns && gör installationen ren

Vi samlar in och installerar med följande alternativ:

DUMPCACHE persistent cache för dnscache IPV6 IPv6-stöd av Felix von Leitner IGNOREIP ignoreip2 patch av Russell Nelson JUMBO jumbo patch av Claudiu Costin [X] MAN manual pages av Gerritt Pape PERSISTENT_MMAP persistent mm record patch av Lennert Buyten HandVhek SRV SRV SRV Michael SRV Michael

djbdns kommer att dra daemontools-porten tillsammans med den. daemontools är designat för att starta demoner och övervaka deras arbete. Det vill säga, om någon demon under dess kontroll "kraschar", kommer daemontools att starta om den.

Skapa en dnsusers-grupp, som kommer att inkludera användare under vilka själva dnscachen och dnslog (en logger för djbdns) kommer att köras:

skapa en användare för dnslog:

# pw useradd dnslog -s / sbin / nologin -d / dev / null -G dnusers

skapa en mapp med innehållet i vilken daemontools fungerar:

kör daemontools:

eftersom dnscache-konfigurationen finns i / usr / local / etc / djbdns, och daemontools fungerar med / var / service-mappen, gör vi länken:

# ln -s / usr / local / etc / dnscache / var / service / dnscache

Mappen / usr / local / etc / dnscache / env innehåller filer med en mer avancerad dnscache-konfiguration, men i det här fallet klarar vi oss bra med standardinställningarna.

För normal drift av servern måste du ställa in adresserna för uppströmsservrarna till den. För varje zon finns det en fil med samma namn som zonnamnet, placerad i / usr / local / etc / dnscache / root / servrar. Varje fil innehåller ip-adresserna till de servrar som ansvarar för denna zon. Eftersom vi omdirigerar alla förfrågningar till leverantörens DNS-servrar, skriver vi deras namn till en fil som heter "@" (ansvarig för rotzonen).

Starta om dnscache:

Installera DHCP-servern (jag byggde den med dessa alternativ):

# cd / usr / ports / net / isc-dhcp41-server && gör installationen ren Alternativ för isc-dhcp41-server 4 .1 .e_1, 2 DHCP_IPV6 Aktivera stöd för IPv6 [X] DHCP_PARANOIA Aktivera stöd för chroot DHCP_LDAP Experimentellt LDAP-backend-stöd DHCP_LDAP_SSL Stöd LDAP-anslutning över SSL/TLS

Vi tar DHCP-serverns konfiguration (/usr/local/etc/dhcpd.conf) till detta tillstånd:

lokal adress 192 .168 .0 .1 ; default-lease-tid 600 ; max-lease-tid 7200 ; auktoritativ; ddns-update-style interim; log-anläggning lokal7; subnät 192 .168 .0 .0 nätmask 255 .255 .255 .0 (räckvidd 192 .168 .0 .10 192 .168 .0 .250 ; alternativ routrar 192 .168 .0 .1 ; # Om du har höjt SAMBA kan du försöka ge till kunder # även värdet på WINS-servern. # option netbios-namnservrar 192.168.0.1; # vi har redan höjt vår DNS-server, så vi ger dess adress alternativet domännamn-servrar 192 .168 .0 .1 ; } # "binda" specifika MAC-adresser till specifika IP-adresser host admin (hårdvara ethernet 03 :03 :03 :03 :03 :03 ; fast adress 192 .168 .0 .2 ; ) värdserver (hårdvara ethernet 04 :04 :04 :04 :04 :04 ; fast adress 192 .168 .0 .3 ; }

Lägg till följande rader till /etc/rc.conf:

och starta DHCP-servern:

Allt är bra. Funktionaliteten hos den enklaste dir-300 har uppnåtts.

I den här artikeln kommer vi att ta en titt på nätverksgränssnitt i FreeBSD 11.1, låt oss visa nätverksinställningarna genom konfigurationsfilen / etc / rc.conf, nämligen syftet statisk inställningar och få dem DHCP. Låt oss skriva adresserna DNS-servrar, ställ in värdar och överväg indikationen tillfälliga nätverksinställningar.

Visa nätverksgränssnitt.

Låt oss först klargöra: Det finns två tillstånd för nätverkskortet UPP(inblandad) och NER(inte använd).

Det första steget är att titta på våra nätverksgränssnitt, vi kommer att titta med kommandot ifconfig(Fig. 1) Kommandoutgång visar alla gränssnitt UPP och NER.

Ifconfig

ifconfig -a kommer att visa dig detsamma.

Ifconfig -a

Här finns det några skillnader från ifconfig v Ubuntu server .(v Ubuntu server "ifconfig" visar endast gränssnitt UPP,"ifconfig -a" visar alla gränssnitt och UPP och NER)

Fig. 1 - Resultatet av att ange kommandot ifconfig.

Och vad ser vi då:

  • em0- vårt nätverkskort, med en IP-adress 192.168.3.11 .
  • em1- andra nätverkskortet inte konfigurerat.
  • lo- lokal loop, den finns som standard för alla.

För att endast se gränssnitten UPP, kommandot används ifconfig -u(Fig. 2):

Ifconfig -u

och endast för att se gränssnitten NER, kommandot används ifconfig -d(Fig. 3):

Ifconfig -d
Fig. 2 - Resultatet av att ange kommandot ifconfig -u.
Fig. 3 - Resultatet av att ange kommandot ifconfig -d.

I framtiden kommer jag att visa exempel på inställningar på gränssnittet. "em0".

För att aktivera gränssnittet, använd kommandot ifconfig"NAMN-GRÄNSSNITT" upp.

Ifconfig em0 upp

För att stänga av gränssnittet, använd kommandot ifconfig "NAMN-GRÄNSSNITT" ner.

Ifconfig em0 ner

"Leka" med ett gränssnitt, såvida du förstås inte är ansluten av ssh och lämna den i ett tillstånd UPP.

Konfigurera nätverket via konfigurationsfilen.

För att konfigurera en statisk eller dynamisk IP-adress måste vi redigera nätverksgränssnittets konfigurationsfil - / etc / rc.conf vi kommer att redigera den med textredigerarevi(Fig. 4) Jag ska berätta omedelbart för att kunna redigera in vi behöver trycka på en bokstav "jag", och för att spara och stänga dokumentet, tryck på "Esc" att introducera ": wq!" och tryck "Stiga på".

Figur 4 - vi /etc/rc.conf.

Hämta nätverksinställningar via DHCP.

För att tilldela mottagandet av inställningar via DHCP, måste du ange (eller ändra den befintliga) raden i / etc / rc.conf(Fig. 5)

ifconfig_NAMN-GRÄNSSNITT= "DHCP"

Ifconfig_em0 = "DHCP"
Fig. 5 - Mottagning nätverksinställningar via DHCP.

Omstart nätverkstjänst netif(Fig. 6)

/etc/rc.d/netif omstart Fig. 6 - Starta om FreeBSD-nätverkstjänsten.

Vi tittar på de aktiva nätverksgränssnitten, vi ser, mottagna via DHCP, gränssnittets IP-adress em0- 192.168.3.6 (Fig. 7)

Ifconfig -u

Ping 8.8.8.8
Fig. 7 - Kontrollera aktiva gränssnitt och nätverksåtkomst.

Pings kommer. Allt perfekt!

Ange nätverksinställningar manuellt.

Att tilldela en statisk adress till vår Freebsd behöver fil / etc / rc.conf ange två rader (bild 8)

ifconfig_NAMN-GRÄNSSNITT= "inet IP-ADRESS-FREEBSD nätmask MASK NÄTVERK "

defaultrouter = " GATEWAY IP-ADRESS "

Ifconfig_em0 = "inet 192.168.3.11 nätmask 255.255.255.0" standardrouter = "192.168.3.1"
Fig. 8 - Statiska inställningar för nätverksgränssnittet.

Vi startar om nätverkstjänsten.

/etc/rc.d/netif starta om

Kontrollera aktiva gränssnitt

Ifconfig -u

Vi kontrollerar internetåtkomsten genom att pinga Google Eights.

Ping 8.8.8.8

DNS-inställning.

IP-adresser DNS-servrar lagras i filen / etc / resolv.conf(Fig. 9)

Vi öppnar resolv.conf i redaktör vi.

Vi /etc/resolv.conf

Vi går in IP adress DNS server. (Du kan ange hur många adresser du vill.)

Namnserver 192.168.3.1 namnserver 8.8.8.8 namnserver 8.8.4.4

Om du inte har en fil resolv.conf skapa den sedan i katalogen / etc

Tryck på /etc/resolv.conf
Fig. 9 - Innehållet i filen resolv.conf.

/ etc / hosts-filen.

Filen / etc / värdar innehåller tabeller för att mappa DNS-namn till IP-adresser. Först och främst kommer din server att komma åt filen värdar och sedan till DNS-servern.

För mig själv noterade jag att det var användbart att lägga till värdar spelar in detta freebsd(IP-adressen för det lokala nätverket är namnet på servern). Nu kan vi specificera i alla konfigurationsfiler DNS-namn, och inte IP-adressen, och om nödvändigt, på kortast tid, ändra din IP-adress genom att korrigera värdar och gränssnittsinställningar i / etc / rc.conf.

Detta är bara ett exempel för dig att göra detta. inte nödvändigt.

Låt oss börja redigera (bild 10):

Vi / etc / värdar

Jag går in:

192.168.3.11 freebsd.itdeer.loc Fig. 10 - Innehållet i hosts-filen.

Jag ska kolla genom att pinga namn från värdar(Fig. 11)

Ping localhost ping freebsd.itdeer.loc
Fig. 11 - Pingande namn från värdar.

Tillfällig tilldelning av en ip-adress.

För att vara ärlig så vet jag inte vad den tillfälliga tilldelningen av nätverksinställningar kan vara användbar för. Om inte låt oss säga att du har någon sorts server som endast är designad för ditt lokala nätverk och du plötsligt bestämde dig för att snabbt uppdatera programvaran via Internet på denna server, för att inte gå till gatewayen, inte distribuera Internet till önskad IP adress osv. Du klarar dig med ett par kommandon.

Det vet vi till exempel på 192.168.3.109 Det finns definitivt tillgång till Internet, vi tilldelar denna IP-adress till vårt gränssnitt, du måste också ange nätverksmasken (Fig. 12):

Ifconfig em0 192.168.3.109 nätmask 255.255.255.0

eller ett kommando med en kort nätmaskpost.

Ifconfig em0 192.168.3.109/24
Fig. 12 - Specificering av tillfälliga inställningar för em0-nätverksgränssnittet.

Internet kanske inte visas eftersom ingen standardgateway är angiven. Vi registrerar den och pingar google-åttorna. (Fig. 13)

Route add default 192.168.3.1 ping 8.8.8.8
Fig. 13 - Ange standardgateway. Kontrollerar ping.

Om vi ​​har registrerat vår standardgateway korrekt kan ses i routingtabellen. Det visas med kommandot "netstat -rn" Standardgatewayen kommer att indikeras med en flagga UG(Fig. 14)

Netstat -rn
Fig. 14 - Utdata från routingtabellen.

Om du stavade fel någonstans eller om du har angett en annan gateway, så kan du det ta bort standardgateway.

Route del default

Detta slutför den tillfälliga konfigurationen, kom ihåg att efter omstart av servern eller separat tjänsterna nätverk, försvinner alla tillfälliga inställningar.

Lägg till en rutt till nätverket 192.168.0.0/16 (Mask 255.255.0.0) genom standardgatewayen 192.168.3.1/24

Rutt tillägg 192.168.0.0/16 192.168.3.1

Möjlighet att lägga till en rutt med helmask.

Route add -net 192.168.0.0 -netmask 255.255.0.0 192.168.3.1

Byt namn på em0-gränssnittet till wan0.

För enkelhetens skull byter vissa administratörer namn på gränssnitt så att de omedelbart kan se vad gränssnittet är till för. Låt oss säga att vi har en gateway med två nätverksgränssnitt em0(internet) och em1(lokalt nätverk) och att arbeta med sådana namn är obekvämt, eftersom det kan bli förvirrat att ha ett stort antal gränssnitt. Det är mycket bekvämare att arbeta med gränssnitt wan0 och lan1.

Vi kommer att visa ett exempel på att byta namn på ett gränssnitt. em0 v wan0 i filen / etc / rc.conf(Fig. 15)

Ifconfig_em0 = "inet 192.168.3.11 nätmask 255.255.255.0"

Ersätt med två rader:

Ifconfig_ em0 _namn = " wan0"ifconfig_ wan0= "inet 192.168.3.11 nätmask 255.255.255.0"
Fig. 15 - Byta namn på gränssnitten i filen /etc/rc.conf.

Glöm inte att starta om nätverkstjänsten:

/etc/rc.d/netif starta om

Kontrollera, ange kommandot ifconfig -u... Vi ser vår wan0 med höger IP-adress. (Bild 16)

Ifconfig -u
Fig. 16 - Kontrollerar det nya namnet på gränssnittet. ifconfig -u.


En router är en enhet som ger tillgång till datorer som är anslutna till ett lokalt nätverk till Internet. Med hjälp av FreeBSD kan du bygga en liknande router och detta görs helt enkelt, överväg möjligheten att bygga en router för ett litet lokalt nätverk på 20 ... 30 arbetsstationer.

Initial data - en PC med två nätverkskort med FreeBSD installerat (för närvarande använder FreeBSD 8.4 STABLE), extern ip-adress tillhandahållen av vår leverantör, ip-adress till leverantörens gateway och ip-adress till DNS-servern.

För att göra om den till en router, lägg bara till en rad i rc.conf-konfigurationsfilen:

# echo gateway_enable = ”JA”> /etc/rc.conf

Vilket tillåter överföring av ip-paket från ett nätverksgränssnitt till ett annat. Med hjälp av ifconfig-kommandot tar vi reda på information om nätverksgränssnitten och bestämmer vilket som kommer att vara "externt" (vi kommer att tilldela det leverantörens ip-adress), och vilket som kommer att vara "internt" (vi kommer att tilldela den en ledig ip- adress till det interna lokala nätverket). Låt oss se vad vi får:


Vi definierar "em0" som det externa gränssnittet (med den tilldelade ip 192.168.5.39), "em1" som den interna redigeringen av rc.conf-filen (tilldela den till exempel ip 192.168.0.240), i samma fil den är nödvändigt för att registrera vår leverantörs gateway

# echo defaultrouter = ”xxx.xxx.xxx.xxx”> /etc/rc.conf

Där xxx.xxx.xxx.xxx är IP-adressen för leverantörens gateway.

Som ett resultat fick jag följande form av filen rc.conf


Då måste du registrera ip-adressen till leverantörens DNS-server så att vi kan referera till sidan med deras namn. Låt oss göra ett inträde konfigurationsfil resolv.conf

# echo nameserver xxx.xxx.xxx.xxx> /etc/resolv.conf

Där xxx.xxx.xxx.xxx är IP-adressen för DNS-servern.

Om det finns flera DNS-servrar är det lämpligt att lista dem alla, var och en med en ny rad.


I vårt fall är dessa IP-adresserna för servrarna 192.168.5.200 och 192.168.5.201. Adress 8.8.8.8 DNS-server bra Google, som en sista utväg kan du använda den.

Startar om...

# avstängning –r nu

Det är det, den initiala konfigurationen av routern är klar (du kan konfigurera datorn för det lokala nätverket). Därefter kommer vi att överväga att sätta upp en brandvägg, möjliggöra nätverksadressöversättning (NAT) och alla typer av routingscheman.

Vi tittar på att sätta upp arbetsstationer under Windows OS för Internet (hur och var man registrerar ip-adressen till PC, router och DNS). Som en applikation, för säkerhets skull, plötsligt behöver någon den.

Vi tittar på fortsättningen av routerkonfigurationen (del 2).