Menü
Bedava
kayıt
ev  /  ÜZERİNDE/ Varsayılan ağ geçidi freebsd'yi değiştirin. FreeBSD Yönlendiriciyi Yapılandırma

Varsayılan ağ geçidi freebsd'yi değiştirin. FreeBSD Yönlendiriciyi Yapılandırma

Giriş == Kısaca ofis için internetteki kursun doğru olması ve kimsenin başıboş dolaşmaması için izlenmesi gereken bir plan taslağı vermek istiyorum. Unix'teki bir ağ geçidinin bir program değil, her biri kendi eylemini gerçekleştiren ve kendi ayarlarına sahip bir düzine program olduğunu hemen not ediyorum. Kullandığımız: * FreeBSD 7 * natd * adlandırılmış, yönlendirilmiş * ipfw * squid * squidGuard * apache * dhcpd test sunucusu zaten içinde yerel ağ bu yüzden buna inanıyorum harici ağ Bende 192.168.0.0/24 var ve dahili olanı 172.16.0.0/16. Sonuçta sayılar önemli değil - asıl şey anlam. FreeBSD'yi minimal bir konfigürasyonda kurdum ve rc.conf'um sadece şunları içeriyor: hostname = "vm = freepro.local" ifconfig_em0 = "DHCP" linux_enable = "EVET" sshd_enable = "EVET"== NAT Yapılandırma == Harici arayüzüm - em0 - varsayılan olarak IP adresini DHCP aracılığıyla 192.168.1.1 adresli normal bir yönlendiriciden alır. Açıkçası, aynı yönlendirici bir DNS sunucusu görevi görür. İlk adımda NAT yapıyorum (her zaman dış arayüzde!) Ve /etc/rc.conf dosyasını şu şekilde değiştiriyorum: hostname = "vm = freepro.local" defaultrouter = "192.168.1.1" ifconfig_em0 = "inet 192.168.1.10 ağ maskesi 255.255.255.0" linux_enable = "EVET" sshd_enable = "EVET" # İnternet ağ geçidi ifconfig_em1 = "inet 172.16.0.25 ağ maskesi 255. .0.0 "gateway_enable =" EVET "natd_enable =" EVET "natd_interface =" em0 "#natd_flags =" - f /etc/redirect.conf "firewall_enable =" EVET "firewall_type =" açık "#firewall_script =" / etc / güvenlik duvarı . conf "router_enable =" EVET "yönlendirici =" / sbin / yönlendirilmiş "router_flags =" - q " Harici adresi düzelttim ve dahili adresi ayarladım. Şimdi /etc/resolv.conf dosyasındaki DNS'yi düzeltelim: nameserver 192.168.1.1 İşte bu kadar! Hizmeti başlatıyoruz: # /etc/rc.d/ipfw başlangıç ​​# /etc/rc.d/natd başlangıç ​​# /etc/rc.d/yönlendirilmiş başlangıç ​​# /etc/rc.d/adlandırılmış başlangıç Ve internet çalışıyor! Tabii ki, müşteriye elle reçete ediyoruz: IP: 172.16.0.2 MASKE: 255.255.0.0 KAPI: 172.16.0.1 DNS1: 192.168.1.1 Tabii ki, bu çok kötü bir geçit. Birincisi, hiç korunmaz ve ikincisi, hiç önbelleğe alınmaz ve üçüncü olarak, tüm DNS isteklerini "yukarıya" yönlendirir ve herhangi bir istatistik almanın veya herhangi bir şeyi yönetmenin bir yolu yoktur. Ancak öte yandan, bu çok hafif ve hızlı bir ağ geçididir ve daha ileri ayarlardan performansı düşmez, yalnızca artar. Bu arada, yeni rc.conf dosyasında iki satırın zaten yorumlandığını unutmayın. İlk yorum - gelecekte ağ içindeki bazı bağlantı noktalarını "iletmeme" yardımcı olacak. Onlar. örneğin, 172.16.0.2 istemci bilgisayarına ssh üzerinden erişmek istersem, bunun gibi bir dosya oluşturmam gerekecek: # DOSYA /etc/redirect.conf yönlendirme_port tcp 172.16.0.2:22 2222 Bu, 2222 numaralı bağlantı noktasından dışarıdaki sunucuya bağlanırken, yerel ağdaki makineye sadece 22 numaralı bağlantı noktasından (ssh) ulaşacağım anlamına gelir. İkinci yorum, keskinleştirilmiş ve test edilmiş kişisel güvenlik duvarı yapılandırmamdır. == ipfw'yi yapılandırma == ipfw için yapılandırmam şurada bu aşamaşuna benziyor: #! / bin / sh # Basit bir NAT sunucusu için IPFW yapılandırması /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 "########################### # ##################### # Temizle ########################## # ####################### $ (cmd) -f floş $ (cmd) tablo 0 floş $ (cmd) tablo 1 floş ##### # ################################################# # # Beyaz Liste / Kara Liste # ######################################### #### $ (cmd) tablo 0 ekle 172.16.0.12 $ (cmd) tablo 1 ekle 172.16.0.13 ######################### ##### #################### # Geri Döngü ###################### ##### ##################### $ (cmd) ekle lo0 yoluyla herhangi birinden herhangi birine ip izin ver ########### ##### ################################# Dünyayı özele engelle ####### #### ###################################### $ (cmd) engelleme ipi ekleyin herhangi birinden 127.0.0.0 / 8 $ (cmd) 127.0.0.0/8'den herhangi bir # $ (cmd)'ye red ip ekle ekle 172.16.0.0/16'dan herhangi birine $ (IfOut) # $ (cmd) ekle NS eny ip 192.168.1.0/24'den herhangi birine $ (IfOut) $ (cmd) ile herhangi bir'den 10.0.0.0/8'e kadar inkar ipi ekleyin $ (IfOut) # $ (cmd) herhangi bir'den 172.16.0.0/'a redde ipi ekleyin 12 $ (IfOut) # $ (cmd) herhangi bir'den 192.168.0.0/16'ya $ (IfOut) $ (cmd) ile red ipi ekle, herhangi bir'den 0.0.0.0/8'e $ (IfOut) $ (cmd) ile red ipi ekle ) herhangi birinden 169.254.0.0/16'ya $ (IfOut) $ (cmd) üzerinden red ipi ekle $ (IfOut) $ (cmd) üzerinden herhangi birinden 192.0.2.0/24'e red ipi ekle herhangi birinden 224.0.0.0'a red ipi ekle / 4 ile $ (IfOut) $ (cmd) herhangi birinden 240.0.0.0/4'e kadar inkar ipini ekleyin $ (IfOut) ####################### ################################################# ################# ############################# $ (cmd ) herhangi birinden herhangi bir parçaya reddet icmp ekle $ (cmd) herhangi birinden 255.255.255.255'e kadar $ (IfOut) $ (cmd) ile red log icmp'yi herhangi birinden 255.255.255.255'e $ (IfOut) üzerinden ekle red log icmp'yi ekle # ################################################# # NAT ################# ############################## ## $ (cmd) 8668 ip'yi $ (NetIn)'den $ (IfOut) yoluyla herhangi birine yönlendirme ekle $ (cmd) herhangi bir'den $'a 8668 ip yönlendirme ekle (IpOut) $ (IfOut) # $ (cmd) herhangi birinden herhangi birine yönlendirme 8668 ip ekle $ (IfOut) ######################## ########################## # Blok dünyaya özel ################### ############################### $ (cmd) 10.0.0.0/8'den herhangi birine $ (IfOut) yoluyla engelleme ipi ekleyin ) # $ (cmd) 172.16.0.0/12'den herhangi birine $ (IfOut) yoluyla red ipi ekle # $ (cmd) 192.168.0.0/16'dan herhangi birine $ (IfOut) $ (cmd) ekle red ipi ekle 0.0.0.0/8'den herhangi birine $ (IfOut) $ (cmd) ile 169.254.0.0/16'dan herhangi birine $ (IfOut) $ (cmd) ile red ip ekle 192'den red ipi ekle. 0.2.0 / 24'ten herhangi birine $ (IfOut) $ (cmd) 224.0.0.0/4'ten herhangi birine, $ (IfOut) $ (cmd) ile red ip ekle, 240.0.0.0/4'ten herhangi birine, $ ( IfOut) ############################################# # # Beyaz liste ############################################# ## $ (cmd) ekle "tablo (0)"dan herhangi bir $ (cmd)'ye hepsine izin ver ekle Herhangi birinden "tablo (0)"a izin ver ############## ## ################################### # Kara liste ############ ## #################################### $ (cmd) "tablo (1)" den tümünü reddet herhangi bir ############################################## # # Kurulmaya devam edin ######################################## #### ### $ (cmd) ekle bana herhangi birinden tcp'ye izin ver kurulmuş ############################# ##### ################ Ana ########################### ##### ################# $ (cmd) ekle herhangi bir parçadan herhangi bir parçaya ip izin ver $ (cmd) ekle herhangi bir parçadan icmp'ye izin ver (IpOut) icmptypes 0, 8.11 # dns $ (cmd) add tcp'den herhangi birine izin ver (IpOut) dst-port 53 kurulum $ (cmd) add udp'ye herhangi bir ila $ (IpOut) dst-port 53 $ (cmd) ekle $ (IpOut) 53'ten herhangi bir $ (cmd)'ye udp'ye izin ver ekle $ (IpOut)'tan herhangi bir dst-port 53'e udp'ye izin ver (NetIn) dst-port 53 kurulum $ (cmd) add udp'den herhangi birine izin ver (NetIn) dst-port 53 $ (cmd) ekle $ (NetIn)'den herhangi bir $ (cmd)'ye udp'ye izin ver ekle $'dan udp'ye izin ver (NetIn) herhangi bir dst-port 53'e keep-state # time $ (cmd) add $ (IpOut)'dan herhangi bir dst-port 123'e udp'ye izin ver # time-client $ (cmd) ekle udp'ye $ (NetIn)'den izin ver ) herhangi bir dst-port 123'e keep-state # ssh-in $ (cmd) ekle tcp'den herhangi birine izin ver (IpOut) 22 $ (cmd) ekle tcp'ye izin ver $ (IpOut) 22'den herhangi bir # ssh-out $ ( cmd) ekle $ (IpOut)'tan herhangi bir 22 $'a (cmd) tcp'ye izin ver ekle 22'den $'a (IpOut) herhangi bir tcp'ye izin ver (IpOut) # http $ (cmd) ekle $ (IpOut)'tan herhangi bir dst-port'a tcp'ye izin ver 80 # http -client $ (cmd) add $ (NetIn)'den herhangi bir dst-port'a tcp'ye izin ver 80 $ (cmd) add tcp'ye herhangi bir 80'den $'a izin ver (NetIn) # smtp $ (cmd) add tcp'ye herhangi bir ila $ (IpOut) arasında izin ver ) dst-port 25 kurulum # ileri 8080 ila 81 $ (cmd) add tcp'ye herhangi bir ila $ (IpOut) izin ver ) dst-port 8080 $ (cmd) ekle $ (IpOut) 8080'den herhangi bir $ (cmd)'ye tcp'ye izin ver ekle Herhangi bir ila $ (NetIn)'e ​​tcp'ye izin ver dst-port 81 $ (cmd) ekle $ (NetIn)'den tcp'ye izin ver 81 herhangi bir # çıkışa $ (cmd) ekle herhangi birinden herhangi birine $ (IfOut) kurulum yoluyla red log tcp ekle # $ (cmd) herhangi bir kurulumdan herhangi bir kuruluma tcp'ye izin ver ############# ##################################### # Yerel ağ ########## ####################################### $ (cmd) ekle hepsine izin ver $ (IfIn) yoluyla herhangi bir ######################################### ##### # Tümünü Reddet ######################################## ####### $ (cmd) tümünü reddet Harici arayüzüm yerel olduğundan, harici arayüzde yerel ağlardan 192, 172 paketleri çivileyen bazı satırları özellikle yorumladım. Gerçekte, bu satırlara ihtiyaç vardır. Daha ileri gidelim. == Kalamar kurulumu == Şimdi squid'e ihtiyacım var - sistem yöneticisi tarafından belirlenen kurallara göre İnternet'i tüm kullanıcılara yetkin bir şekilde dağıtabilen bir önbelleğe alma proxy sunucusu. pkg_add -r squid Not: Yazılımı yeni ve güncellenmiş portlardan kurmak elbette daha doğru ama zamandan tasarruf ettiğimiz için paketler halinde kuruyoruz. Bir süre sonra portupgrade ile yükselteceğiz. Kalamar için en basit ayarı yapıyoruz - /usr/local/etc/squid/squid.conf dosyasını düzenleyin # Minimum SQUID yapılandırması acl tüm kaynak 0.0.0.0/0.0.0.0 acl yöneticisi proto cache_object acl localhost kaynağı 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl localnet kaynağı 172.16.0.0/255.255.0.0 acl SSL_ports bağlantı noktası 443 acl CONNECT method CONNECT http_access yöneticiye izin ver localhost http_access yerel ağa izin ver http_access reddet yönetici http_access reddet Safe_ports http_access reddet BAĞLAN! SSL_ports http_access hepsini reddet icp_access tüm http_port 3128'e izin ver şeffaf hiyerarşi_stoplist cgi-bin? acl SORGU urlpath_regex cgi-bin \? önbellek reddetme 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 / squid /logs/store.log refresh_pattern ^ ftp: 1440 20% 10080 refresh_pattern ^ gopher: 1440 0% 1440 refresh_pattern. 0 20% 4320 acl apache rep_header Sunucu ^ Apache kırık_vary_encoding apache'ye izin ver cache_effect_user squid cache_effect_group squid visible_hostname vm-freepro.local icp_port 0 error_directory / usr / local / etc / squid / error / İngilizce coredump_dir / usr / local / squid Yorumları kasıtlı olarak yapılandırma dosyasından kaldırdım, çünkü bunların çoğu değil, çok fazla. /etc/rc.conf'u şu satırı ekleyerek düzeltmeyi unutmayın: squid_enable = "YES" Ardından, önbelleği yeniden oluşturun ve kalamarı başlatın: # squid -z # /usr/local/etc/rc.d/squid başlangıç sonra yapacağımız ilk şey kalamar tesisleri- yerel kullanıcıların 80 numaralı bağlantı noktası üzerinden İnternet'e erişmesini yasaklıyoruz. 80 numaralı bağlantı noktasını 3128'e aktarıyoruz - yani. tüm kullanıcıları sadece kalamardan geçiriyoruz. Burada büyük bir küçük pürüz var. Bu, yalnızca çekirdeğe IPFW desteği ekleyerek yapılabilir, aksi takdirde iletme çalışmaz. Evet, bu artık kendi çekirdeğimizi oluşturmamız gerektiği anlamına geliyor! Bu kolay bir iş değildir, ancak yararlıdır - çekirdeğini monte ettikten sonra, çalışma hızı artmalı ve hacim gözle görülür şekilde azalmalıdır. İlk olarak, çekirdek kaynaklarını yüklemek için sysinstall'ı kullanın: # sysinstall Git / Yapılandır / Dağıtımlar src [X] base [X] sys bölümünün içinde işaretleyin Artık /usr/src klasöründe çekirdek kaynaklarımız var. Ardından, GENEL konfigürasyonu "bizim" MYKERNEL'imize kopyalayın ve MYKERNEL'i düzenleyin: # cd / usr / src / sys / i386 / conf # cp GENEL MYKERNEL # mcedit MYKERNEL Yapılandırmayı düzenlerken aşağıdaki seçenekleri belirttiğinizden emin olun: # Çekirdek seçeneklerinde güvenlik duvarını etkinleştirme IPFIREWALL # "Günlük" kayıt mekanizması seçeneklerini etkinleştirme IPFIREWALL_VERBOSE # Günlükleri kısıtlama - taşma koruma seçenekleri IPFIREWALL_VERBOSE_LIMIT = 50 # Paket yönlendirme mekanizması seçeneklerini etkinleştirme IPFIREWALL_FORWARD # Çeviri mekanizmasını etkinleştirme NAT adresleri seçenekler IPDIVERT # Kanal hızı sınırlama seçeneklerini etkinleştir DUMMYNET Ayrıca gerçekte sahip olmadığınız tüm gereksiz "donanımı" da kaldırın. Şimdi çekirdeği oluşturuyoruz. Bu operasyon biraz zaman alabilir ve yapılandırmada yazdıklarınıza bağlı olarak sysinstall'dan ek kaynaklar yüklemenizi gerektiren bir hatayla başarısız olabilir. Orada gereksiz bir şey olmadığını umuyoruz. # cd / usr / src # make buildkernel KERNCONF = MYKERNEL # make installkernel KERNCONF = MYKERNELŞimdi yeniden başlatmanız gerekiyor, ancak yeniden başlatmanın başarısız olması durumunda yeniden başlatmadan önce kılavuzu okuduğunuzdan emin olun. Bunun elbette olmamasını isterim. Bu nedenle, /etc/firewall.conf dosyasını yeniden yükleyin ve yeniden düzenleyin. #! / bin / sh # NAT sunucusu ve SQUID proxy için IPFW yapılandırması 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" ############################ ### ################## Temizle ############################### ################### $ (cmd) -f floş $ (cmd) tablo 0 floş $ (cmd) tablo 1 floş ######## ## ###################################### # Beyaz liste / Kara liste #### ### ################################################# # $ (cmd) tablo 0 ekle 172.16.0.2 $ (cmd) tablo 1 ekle 172.16.0.13 ############################ ### ################ # Geri Döngü ########################### ## ################### $ (cmd) ekle lo0 yoluyla herhangi birinden herhangi birine ip izin ver ############### ### ################################ # Dünyayı özele engelle ########### #### ################################### $ (cmd) herhangi birinden engelleme ipi ekleyin 127.0.0.0/ 8 $ (cmd) 127.0.0.0/8'den herhangi bir # $ (cmd)'ye inkar ipi ekle 172.16.0.0/16'dan herhangi birine $ (IfOut) # $ (cmd) ekle red ip'yi 19 2.168.1.0/24 üzerinden herhangi biri ile $ (IfOut) $ (cmd) herhangi bir ile 10.0.0.0/8 arası red ip ekle $ (IfOut) # $ (cmd) ile herhangi bir ile 172.16.0.0/12 arası red ip ekle $ ile (IfOut) # $ (cmd) herhangi birinden 192.168.0.0/16'ya kadar $ (IfOut) ile red ipi ekle $ (cmd) herhangi birinden 0.0.0.0/8'e kadar red ipi ekle $ (IfOut) $ (cmd) ekle reddet herhangi bir'den 169.254.0.0/16'ya kadar $ (IfOut) $ (cmd) ile herhangi bir'den 192.0.2.0/24'e kadar inkar ipi ekleyin $ (IfOut) $ (cmd) ile herhangi bir'den 224.0.0.0/4'e kadar inkar ipi ekleyin $ (IfOut) $ (cmd) herhangi birinden 240.0.0.0/4'e $ (IfOut) yoluyla engelleme ipi ekle ######################### ######################## # ICMP ####################### ########################## $ (cmd) herhangi bir parçadan herhangi bir parçaya reddet icmp ekle $ (cmd) herhangi bir parçadan 255.255'e reddet log icmp ekle $ (IfOut) yoluyla .255.255 girişi $ (cmd) herhangi birinden 255.255.255.255'e kadar $ (IfOut) ile reddet log icmp ekle ###################### ################################################# ########## ############################# $ (cmd) yönlendirme ekle $ 'dan 8668 ip (NetIn) üzerinden herhangi birine $ (IfOut) $ (cmd) ile herhangi birinden $ (IpOut)'a 8668 ip yönlendirme ekleyin $ ( IfOut) # $ (cmd) $ (IfOut) yoluyla herhangi birinden herhangi birine yönlendirme 8668 ip ekleyin ############################# ##################### # Blok dünyaya özel ######################## # ######################### $ (cmd) 10.0.0.0/8'den herhangi birine $ (IfOut) yoluyla reddetme ipi ekleyin # $ (cmd ) 172.16.0.0/12'den herhangi birine $ (IfOut) # $ (cmd) yoluyla reddetme ipi ekleyin 192.168.0.0/16'dan herhangi birine $ (IfOut) $ (cmd) ile reddetme ipini 0.0.0.0/'dan reddet ipini ekleyin 8'den herhangi birine $ (IfOut) $ (cmd) ekleyin, 169.254.0.0/16'dan herhangi birine $ (IfOut) $ (cmd) ile 192'den red ipi ekleyin. 0.2.0 / 24'ten herhangi birine $ (IfOut) $ (cmd) 224.0.0.0/4'ten herhangi birine, $ (IfOut) $ (cmd) ile red ip ekle, 240.0.0.0/4'ten herhangi birine, $ ( IfOut) ############################################# # # Beyaz liste ############################################# ## $ (cmd) ekle "tablo (0)"dan herhangi bir $ (cmd)'ye hepsine izin ver ekle Herhangi birinden "tablo (0)"a izin ver ############## ## ################################### # Kara liste ############ ## #################################### $ (cmd) "tablo (1)" den tümünü reddet herhangi bir ########################################## #### # Kurulmaya devam edin ######################################## ##### ## $ (cmd) ekle bana herhangi birinden tcp'ye izin ver kurulmuş ############################# ###### ############## # Ana ########################### ###### ################ $ (cmd) ekle herhangi bir parçadan herhangi bir parçaya ip izin ver $ (cmd) ekle herhangi bir parçadan icmp'ye izin ver (IpOut) icmptypes 0, 8.11 # dns $ ( cmd) ekle tcp'den herhangi birine izin ver (IpOut) dst-port 53 kurulum $ (cmd) ekle udp'ye herhangi bir ile izin ver $ (IpOut) dst-port 53 $ (cmd) ekle $ (IpOut) 53'ten herhangi bir $ (cmd)'ye udp'ye izin ver ekle $ (IpOut)'tan herhangi bir dst-port 53'e udp'ye izin ver (NetIn) dst-port 53 kurulum $ (cmd) add udp'den herhangi birine izin ver (NetIn) dst-port 53 $ (cmd) ekle $ (NetIn)'den herhangi bir $ (cmd)'ye udp'ye izin ver ekle $'dan udp'ye izin ver (NetIn) herhangi bir dst-port 53'e keep-state # time $ (cmd) add $ (IpOut)'dan herhangi bir dst-port 123'e udp'ye izin ver # time-client $ (cmd) ekle udp'ye $ (NetIn)'den izin ver ) herhangi bir dst-port 123'e keep-state # ssh-in $ (cmd) ekle tcp'den herhangi birine izin ver (IpOut) 22 $ (cmd) ekle tcp'ye izin ver $ (IpOut) 22'den herhangi bir # ssh-out $ ( cmd) ekle $ (IpOut)'dan herhangi bir 22 $'a (cmd) tcp'ye izin ver ekle 22'den $'a (IpOut) herhangi bir tcp'ye izin ver (IpOut) # http $ (cmd) ekle $ (IpOut)'tan herhangi bir dst-port'a tcp'ye izin ver 80 # http -client # $ (cmd) add $ (NetIn)'den herhangi bir dst-port'a tcp'ye izin ver 80 # $ (cmd) add herhangi bir 80'den $'a (NetIn) tcp'ye izin ver # squid $ (cmd) ekle $ (NetIn)'den hepsine izin ver ) $ (IpIn) 3128 ile $ (IfIn) $ (cmd) üzerinden fwd $ (IpIn), $ (NetIn)'den herhangi bir 80'e 3128 tcp ekleyin # smtp $ (cmd) add tcp'den herhangi birine izin ver $ (IpOut) dst-port 25 kurulum # out $ (cmd) herhangi birinden herhangi birine reddet log tcp'yi $ (IfOut) kurulumuyla ekle # $ (cmd) ekle tcp'ye izin ver herhangi bir kurulumdan herhangi bir kuruluma ########################################### #### # Yerel ağ ########################################## ###### $ (cmd) ekleme $ (IfIn) yoluyla herhangi birinden herhangi birine izin ver ########################### ###################### # Tümünü Reddet ######################### ########################## $ (cmd) hepsini birden herhangi birine reddet Hizmetleri yeniden başlatıyoruz ve kontrol ediyoruz - her şey çalışıyor ve kendileri tarafından fark edilmeyen müşteriler kontrol sisteminden geçiyor. Erişim kontrol konfigürasyonunu şimdilik erteleyeceğiz ve bir diğer önemli sorunu çözeceğiz: DNS almak. == DNS kurulumu == Artık müşterilerimizin kayıtlı bir DNS adresi 192.168.1.1 var - dahili ağ 172.16.0.0/16 dışında. İstemcilerin adres aramak için günde binlerce kez sunucunun üzerine çıktığını söyleyebiliriz. Sistemi iyileştirelim - dışarıya uçtan uca bağlantılardan kaçınmamıza, trafikten tasarruf etmemize ve işimizi hızlandırmamıza izin verecek bir önbelleğe alma DNS sunucusu kuracağız. Bundan önce, tüm istemciler için dışarıdaki 53 numaralı bağlantı noktasına erişimi reddetmeyi unutmayın. /etc/namedb/named.conf dosyasında dinleme, ileticiler parametrelerini düzenleyin: seçenekler ("/ etc / nameb" dizini; pid dosyası "/ var / run / adlı / pid"; döküm dosyası "/var/dump/named_dump.db"; istatistik dosyası "/var/stats/named.stats "; dinle (127.0.0.1; 172.16.0.1;); devre dışı bırak-boş bölge" 255.255.255.255.IN-ADDR.ARPA "; devre dışı bırak-boş bölge" 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 "; devre dışı bırak-boş bölge" 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.IP6.ARPA "; ileticiler (192.168.1.1;); // sorgu-kaynak adresi * bağlantı noktası 53;);/etc/resolv.conf dosyasında önce yerel DNS'yi yapın: ad sunucusu 127.0.0.1 ad sunucusu 192.168.1.1/etc/firewall.conf dosyasında, istemcilerin harici DNS kullanmasını yasaklayın (dns-client yorumuyla bölümleri düzenleyin) # dns-client # Harici DNS'yi devre dışı bırak # $ (cmd) add tcp'ye herhangi birinden $ (NetIn)'e ​​izin ver dst-port 53 kurulum # $ (cmd) add udp'ye herhangi bir ila $ (NetIn) dst-port 53 # $ ( cmd) ekle $ (NetIn) 53'ten herhangi bir # $ (cmd)'ye udp'ye izin ver ekle $ (NetIn)'den herhangi bir dst-port 53'e udp'ye izin ver devam et # Yalnızca yerel DNS'ye izin ver $ (cmd) ekle $ ('dan tcp'ye izin ver) NetIn) - $ (IpIn) dst-port 53 kurulum $ (cmd) add udp'ye $ (NetIn)'den $ (IpIn)'e ​​izin ver dst-port 53 Tekrar başlat: # /etc/rc.d/adlandırılmış yeniden başlatma # /etc/rc.d/ipfw yeniden başlatmaŞimdi İnternet erişim kontrolü konusuna geri dönelim. Aynı anda iki çözüm var. İlk olarak, squid'de acl politikalarını yapılandırın. İkinci olarak, özel bir erişim kontrol uygulaması olan squidGuard'ı kurun ve yapılandırın. Sırayla başlayalım. == squid acl yapılandırması == acl, squid yapılandırmasında sınırlamada oldukça etkili olan kurallardır. bilgi akışı bir proxy sunucusundan geçiyor. Kısacası - hiçbir zaman acl ile, çalışmaya müdahale eden herhangi bir solculuğu öldürebilirsiniz. Tüm acl-ayarları varsayılan olarak squid.conf dosyasına yazılır, ancak aynı zamanda şuraya da taşınabilir. harici dosyalar... Örneğin, yapılandırmanın bir bölümünü vereceğim: # Tüm dosya yağmacıları yasaklıyoruz acl paylaşımları dstdomain .rapidshare.com .webfile.ru http_access paylaşımları reddet # Herkesin IP üzerinden site talep etmesini yasaklıyoruz acl ip_urls url_regex http: // + \. + \. + \. + [: /] Http_access reddetme ip_urls # Grup kısıtlamaları 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 (herhangi birini iletin) group_strict (yerel hiçbirini iletin)) Harika oluyor. Ancak, iyi bir vekilde bu tür birçok kuralın olması gerektiği açıktır - her "delik" için bir kural. "Delikleri" bulmak ve bunları tek tek reçete etmek sıkıcıdır, ancak her zaman olduğu gibi hazır bir çözüm vardır - squidGuard - ilke olarak, hatta göre doldurulabilen çok sayıda kurala sahip bir filtre uygulaması cron zamanlaması. Konuyu inceliyoruz. == squidGuard'ı yapılandırma == Şimdi squidGuard'ı yüklemeyi ve yapılandırmayı deneyelim. Bunu yapmak zor değil, ancak dikkatli olmanız gerekiyor. Yani: # pkg_add -r squidGuard # cp /usr/local/etc/squid/squidGuard.conf.sample /usr/local/etc/squid/squidGuard.conf squidGuard.conf dosyası, bazılarının hemen düzeltilmesi gereken tüm ayarları içerir, yani: # SquidGuard.conf dosyası ... kaynak örnek istemciler (ip 172.16.0.0/16) ... squidGuard'ı squid'e bağlayalım - squid.conf dosyasına 3 satır ekleyelim: redirect_program / usr / local / bin / squidGuard -c /usr/local/etc/squid/squidGuard.conf üzerinde redirect_bypass redirect_children 10 squidGuard, yapılandırma tabanını / var / db / squidGuard'da saklar. İlk lansmandan önce veya değişiklik yaptıktan sonra yeniden oluşturulmalıdır: # rehash # squidGuard -C hepsi # chown -R squid: squid / var / db / squidGuard # /usr/local/etc/rc.d/squid restart Her şey yolunda, ancak bir müşteri, örneğin http://3warez.com/ gibi yasaklı bir siteye girmeye çalıştığında, frenler görüyoruz. Ve anlaşılır bir mesaj almak istiyorum. Bunun için apache'ye ihtiyacımız var. == Apache'yi Yapılandırma == Daha önce de belirtildiği gibi, engellenen adresler ve engelleme nedenleriyle ilgili bilgileri görüntülemek için apache'ye ihtiyacımız var. Her zamanki gibi yapıyoruz: # pkg_add -r apache22 # echo "apache22_enable =" EVET "" >> /etc/rc.conf Apache ayarları /usr/local/etc/apache22/httpd.conf dosyasındadır. Başlamadan önce DocumentRoot ve ServerName yönergelerini kontrol etmeniz gerekir - ayrıntıları atlayacağım çünkü İnternette bu sunucunun kurulumuyla ilgili birçok makale var. 1 saniyede yapılır. Başlatmak: # echo "Erişim engellendi"> /usr/local/www/apache22/data/index.html # /usr/local/etc/rc.d/apache22 start squidGuard.conf yapılandırmasını biraz düzeltelim: # acl dosyasının en sonunda (..... varsayılan (yönlendirme http://172.16.0.1/index.html))== dhcpd kurulumu == Ve şimdi tamamlanmaya yaklaşıyoruz. Ağ kuruluyor ve harika çalışıyor. Her şey kontrol altında, her şey kesinlikle sınırlı. Ancak kırbaçtan sonra, müşterilere otomatik DHCP adresleri dağıtma şeklinde bir havuç sunma zamanı geldi. İyi bir yönetici elbette burada da hile yapar - adresleri yalnızca MAC aracılığıyla dağıtır, ancak üzerine biraz kuru üzüm koyacağız. # pkg_add -r isc-dhcp3-server # cp /usr/local/etc/dhcpd.conf.sample /usr/local/etc/dhcpd.conf/etc/rc.conf dosyasına şu satırları ekleyin: dhcpd_enable = "EVET" dhcpd_flags = "- q" dhcpd_ifaces = "em1" Ayrıca en önemli yapılandırma /usr/local/etc/dhcpd.conf dosyasını da düzeltmeniz gerekir: seçenek alan adı "example.com"; seçenek etki alanı adı sunucuları 172.16.0.1; alt ağ maskesi seçeneği 255.255.255.0; varsayılan kiralama süresi 3600; maksimum kiralama süresi 86400; ddns-güncelleme stili yok; alt ağ 172.16.0.0 ağ maskesi 255.255.0.0 (aralık 192.16.0.11 172.16.0.15; seçenek yönlendiriciler 172.16.0.1;) Elektriği açıyoruz: # /usr/local/etc/rc.d/isc-dhcpd başlangıç Belki de hepsi bu, en önemli şey. Bu makale eksiksiz ve anlamlı olduğunu iddia etmemektedir, ancak sunucuyu çalışır duruma getirmek için geçilmesi gereken adımları kısaca açıklamaktadır. Ayrıca - sadece tekrar ayarlama ve ayarlama. Sunucuyu yapılandırmanın tek yolunun bu olmadığını unutmayın - unix'te her zaman bir alternatif vardır ve tamamen farklı uygulamalar kullanabilirsiniz.

ALEXEY BEREZHNOY

FreeBSD'ye dayalı bir İnternet ağ geçidi yapılandırması

FreeBSD'yi küçük yönlendiricilerde dış dünyayla iletişim kurmak için kullanmak, uzun zamandan beri olağanüstü bir şey olmaktan çıktı. Bu kullanımı kolay, düşük kaynak ve az bakım gerektiren işletim sistemi, bu tür görevler için neredeyse idealdir.

İhtiyacımız var

  • Donanım... Dahili ağı internete taşımak için bir Pentium III 600 MHz bilgisayar, 256 MB RAM, 10 GB HDD, 2 ağ kartı yeterlidir. Yapılandırma, küçük bir ofisin (yaklaşık 50 kullanıcı) tam teşekküllü bir ağı için, 128 MB RAM'e sahip Pentium II 400 MHz yeterli olacaktır. Ancak gelecekte, örneğin aynı ağ geçidine bir proxy sunucusu kurmak isteyebilirsiniz, daha yüksek seviyeli bir yapılandırma seçmek daha iyidir.
  • İşletim sistemi: FreeBSD 5.5 veya 6.1.
  • bunlara ek olarak: çünkü bu bilgisayar sürekli kullanıma tabidir kılıf içinde teslim etmenizi tavsiye ederim ek hayranlar soğutma havasının cebri üfleme/havalandırmasını sağlamak. Hemen hemen tüm modern ATX kasaları bunu yapmanıza izin verir.

Gerekli tüm modüller programa dahil edildiğinden işletim sistemi, başka bir şeye ihtiyacımız yok.

Ağ arayüzlerini yapılandırma

İşletim sisteminin tanıdığı ağ kartlarının arayüzlerinin adlarını netleştirmek gerekir.

# ifconfig

Bunun gibi bir şey görünmelidir:

rl0: bayraklar = 8843 mtu 1500

Seçenekler = 8

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

Durum: aktif

xl0: bayraklar = 8843 mtu 1500

Seçenekler = 9

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

Medya: Ethernet otomatik seçimi (100baseTX)

Durum: aktif

plip0: işaretler = 108810 mtu 1500

lo0: bayraklar = 8049 mtu 16384

Inet6 :: 1 önek 128

Bilgisayarda rl0 ve xl0 arabirim adlarına sahip iki ağ kartı vardır.

Bizim durumumuzda, rl0 arayüzü "bakacak" Dış dünya ve xl0 dahili ağa gider. IP adresi dahili arayüz: 192.168.9.2, alt ağ maskesi 255.255.255.0, arayüz adı xl0; Harici arabirim IP adresi 83.xxx.xxx.xxx, alt ağ maskesi 255.255.255.224 ve arabirim adı rl0'dır.

/usr / src / sys / i386 / conf dizinindeki GENERIC dosyasına bakarak hangi üreticilerin hangi ağ kartlarının belirli ağ adreslerine karşılık geldiğini öğrenebilirsiniz:

# devamı / usr / src / sys / i386 / conf / GENEL

İçinde ilgili satırları buluyoruz:

cihaz rl # RealTek 8129/8139

cihaz xl # 3Com 3c90x (`` Boomerang "", "Siklon" ")

Böylece, rl0 arayüzü, RealTek 8129/8139 ağ kartına ve analoglarına karşılık gelir. xl0 ağ arabirimi, 3Com ağ arabirim kartıyla eşleşir.

GENERIC dosyasından da bahsetmeliyiz. Bu, FreeBSD kurulduğunda varsayılan olarak yüklenen çekirdek yapılandırma dosyasıdır. Sistemin, belirtilen ağ kartları da dahil olmak üzere en sık kullanılan aygıtların çoğunu destekleyebilmesi için düzenlenmiştir. Çoğu zaman, daha fazla çekirdek değişikliği, bu dosyanın değiştirilmiş bir kopyası üzerine kurulur. Bu durumda, sadece bunu yapacağız:

  • Sağlayıcı ağ geçidi - varsayılan olarak 83.xxx.xxx.1.
  • Ağ, kullanıcı bilgisayarlarını içerir - 192.168.9.31, 192.168.9.32.
  • Etki alanımız (şartlı olarak) etkialanımız.ru'dur.
  • Ana bilgisayar (bilgisayar) adı bizimhost.ourdomain.ru'dur.

Ağ kartlarını yapılandırıyoruz. Sysinstall yardımcı programını (FreeBSD 5.5 için / stand / sysinstall ve FreeBSD 6.1 için / usr / sbin / sysinstall) kullanabilirsiniz. yapılandırma dosyaları.

FreeBSD ağ arayüzü ayarları /etc/rc.conf dosyasında saklanır. Düzenlemek için açın:

# vi /etc/rc.conf

Ve Ekle aşağıdaki satırlar:

# Dahili arayüzü ayarlayın

ifconfig_xl0 = "inet 192.168.9.2 ağ maskesi 255.255.255.0"

# Harici arayüzü ayarlayın

ifconfig_rl0 = "inet 83.xxx.xxx.xxx ağ maskesi 255.255.255.224"

# Sağlayıcının varsayılan ağ geçidini ayarlayın

defaultrouter = "83.xxx.xxx.1"

# Ana bilgisayar adı

hostname = "yourhost.ourdomain.ru"

# Sunucunun yönlendirici görevi göreceğini belirtiyoruz

gateway_enable = "EVET"

Ardından bilgisayarı yeniden başlatıyoruz:

# yeniden başlat

V şu an bilgisayarın yeniden başlatılmasına gerek yoktu. Ancak arayüzlerimizin doğru şekilde kurulduğundan ve çalıştığından emin olmak istiyoruz, bu yüzden yine de yeniden başlatmayı öneriyorum.

Yüklemeden sonra şunları kontrol ederiz:

# ifconfig

ifconfig komutunun çıktısı:

rl0: bayraklar = 8843 mtu 1500

Seçenekler = 8

Inet6 fe80 :: 215: 58ff: fe3e: %8fb1% rl0 öneki 64 kapsam kimliği 0x1

Inet 83.xxx.xxx.xxx ağ maskesi 0xffffffe0 yayın 83.xxx.xxx.yyy

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

Medya: Ethernet otomatik seçimi (100baseTX)

Durum: aktif

xl0: bayraklar = 8843 mtu 1500

Seçenekler = 9

Inet6 fe80 :: 20a: 5eff: fe62: ade2% xl0 öneki 64 kapsam kimliği 0x2

Inet 192.168.9.2 ağ maskesi 0xffffff00 yayın 192.168.9.255

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

Medya: Ethernet otomatik seçimi (100baseTX)

Durum: aktif

plip0: işaretler = 108810 mtu 1500

lo0: bayraklar = 8049 mtu 16384

Inet6 :: 1 önek 128

Inet6 fe80 :: 1% lo0 öneki 64 kapsam kimliği 0x4

Inet 127.0.0.1 ağ maskesi 0xff000000

rc.conf dosyası, bence, bir anahtar yapılandırma dosyası olarak adlandırılabilir. Sistem tarafından kullanılan çok sayıda parametre bu dosyada karşılık gelen değişkenler şeklinde ayarlanır. Bizim tarafımızdan kullanılan ağ arayüzleri, güvenlik duvarı ve NAT ayarları dahil.

Ağ geçidini yapılandırma

Yerel FreeBSD IPFW güvenlik duvarını kullanacağız. Bunu yapmak için, sistemin çekirdeğinde bazı değişiklikler yapmamız gerekiyor. eğer varsa Ek sorularçekirdek yeniden derleme konusunda ek materyal okumanızı tavsiye ederim: http://freebsd.org.ru/how-to/kernelconfig.html.

İlgili mimari için çekirdek kaynaklarını kullanmanız gerektiğini unutmayın. Bilgisayarımızın mimarisi i386 platformuna dayandığı için kernelin de platforma uygun olarak derlenmesi gerekiyor. Diğer platformlardaki bilgisayar sahipleri için ilgili literatüre başvurmanızı tavsiye ederim.

Çekirdek kaynakları varsayılan olarak / usr / src / sys / i386 / conf dizininde bulunur. Buna göre, bu dizine gidiyoruz:

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

Tipik olarak, varsayılan çekirdek seçeneklerini içeren GENERIC dosyası değiştirilir. Bunu yapmak için bu dosyanın bir kopyasını alın:

# cp GENEL bizimçekirdeği

Düzenleme için açılış yeni dosya bizim çekirdeğimiz:

# vi bizim çekirdeğimiz

ve aşağıdaki seçenekleri ekleyin:

Seçenekler IPFIREWALL #firewall

Seçenekler IPFIREWALL_VERBOSE?

#syslogd'da oturum açmayı etkinleştir (8)

Seçenekler IPFIREWALL_FORWARD?

#şeffaf proxy desteğini etkinleştir

Seçenekler IPFIREWALL_VERBOSE_LIMIT = 100 #limit ayrıntı düzeyi

Seçenekler IPFIREWALL_DEFAULT_TO_ACCEPT #varsayılan olarak her şeye izin ver

Seçenekler DUMMYNET

Seçenekler IPDIVERT #yönlendirme soketleri

Değişiklikleri yaptıktan sonra çekirdeği yeniden derlemeye başlayabilirsiniz.

Komutları uyguluyoruz:

# çekirdeğimizi yapılandır

# cd / usr / src / sys / i386 / derleme / bizim çekirdeğimiz

#bağımlı yap

# Yapmak

# kurulum yap

Aşırı yükleme:

# yeniden başlat

Sunucuyu yeniden başlattıktan sonra düzgün çalışıyorsa, güvenlik duvarını yapılandırmaya başlayalım.

Güvenlik duvarının çalışmasını düzenlemek için aşağıdaki değişkenler kullanılır, gerekirse rc.conf dosyasına eklenir.

Güvenlik duvarının kullanımına izin verir veya vermez:

# Güvenlik duvarı işlevini etkinleştirmek için EVET olarak ayarlayın

firewall_enable = "HAYIR"

Güvenlik duvarını başlatmaktan sorumlu dosyanın adı ve konumu.

# Güvenlik duvarını kurmak için hangi betiğin çalıştırılacağı

firewall_script = "/ etc / rc.firewall"

yüklerken bu kuralın"EVET" durumunda ekran engellenir:

firewall_quiet = "HAYIR"

Olayların günlüğe kaydedilmesini etkinleştirin / devre dışı bırakın:

firewall_logging = "HAYIR"

Güvenlik duvarı yapılandırma türü:

firewall_type = "Bilinmeyen"

varsayılan olarak FreeBSD, /etc/rc.firewall dosyasındaki kuralları kullanır.

Birkaç hazır şablona sahiptir:

  • açık- güvenlik duvarı tüm paketlerin geçmesine izin verir.
  • müşteri- Yalnızca bu bilgisayarı korumanız önerilir. Yani güvenlik duvarı standart bir istemci bilgisayar olarak yapılandırılmıştır. Tüm giden bağlantılara izin verir ve 25 numaralı bağlantı noktasındaki bağlantılar dışında gelen tüm bağlantıları reddeder.
  • basit- basit ağ geçitlerinin vb. ayarları için olması gerekiyordu. Yani, dahili ağı dışarıdan gelen saldırılara karşı koruyan en basit güvenlik duvarı olarak. Daha esnek bir kurallar sistemi kuracağız, bu yüzden bu şablon bizim tarafımızdan kullanılmayacak.
  • kapalı- Yerel lo0 arabirimindeki trafiğe izin verilir. Trafiğin geri kalanı varsayılan kural tarafından geçirilir. Kural olarak, bu, dahili lo0 arayüzü hariç herhangi bir erişimin yasaklanmasıdır (basitçe söylemek gerekirse, yalnızca "kendine" erişime izin verilir)
  • BİLİNMEYEN- varsayılan yapılandırma komut dosyasından güvenlik duvarı kurallarını yüklemeyi devre dışı bırakın. Güvenlik duvarı hiçbir şekilde yapılandırılamaz. Trafiği geçip geçmeyeceği, sistem çekirdeğinin yapılandırmasına bağlıdır. Varsayılan olarak kullanılır.

"filename" - "filename" - değerindeki aynı değişken, güvenlik duvarı için kendi yapılandırma dosyanızı ayarlamak için kullanılabilir.

Örneğin:

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

ayarları oluşturulan /etc/rc.firewall.newconfig dosyasından yükleyecektir.

"Firewall_flags =" "" - dosya adı değeriyle firewall_type kullanıldığında ek argümanlar iletmeye yarar.

Görevimiz, aşağıdaki kriterleri karşılayan bir sistem oluşturmaktır:

  • Yönetim kolaylığı.
  • Anında değişiklik, kullanıcılar tarafından görülmez. Bu nedenle, bağlantıları kesme ve dahası, yeniden başlatma gibi işlemler bizim için istenmeyen bir durumdur.
  • Sistemimizin çoğu makinede çalışacağı garanti edilir.

Örnek komut dosyamızda, yerel ağdaki tüm bilgisayarlar iki koşullu gruba ayrılmıştır: ayrıcalıklı bir grup, aşağıdakiler gibi en yaygın hizmetleri kullanarak İnternet'e erişmesine izin verilenlerdir:

  • HTTP- 80 numaralı bağlantı noktası;
  • HTTPS- 443 numaralı bağlantı noktası;
  • FTP- 20, 21 ve 1025 ile 65535 arasındaki bağlantı noktaları;
  • Posta yönlendirme için SMTP protokolü- 25 numaralı bağlantı noktası;
  • Mesajları almak için POP3 protokolü- 110 numaralı bağlantı noktası.

Bilgisayarların yalnızca 83.xxx.xxx.2 IP adresine sahip harici bir şirket sunucusuna (yalnızca SMTP ve POP3 protokolleri) erişmesine izin verilen başka bir grup daha vardır.

Ayrıcalıklı grubu, mümkünse "anında" dedikleri gibi, bozulmadan değiştirmenin mümkün olduğundan emin olmalıyız. kurulan bağlantılar... Bunu yapmak için betiğimizden ek betiği rc.firewall.local.inet olarak adlandırıyoruz. Diğer tüm güvenlik duvarı ayarlarını etkilemeden bu ek komut dosyasını düzenlemek ve yeniden başlatmak yeterlidir.

Ek olarak, sağlayıcının ağ geçidinin IP adresi gibi ağ parametreleri değiştiğinde bir durum sağlamalıyız. Bunun için scriptte yerel değişkenleri kullanacağız. Örneğin, varsayılan ağ geçidini değiştirirseniz, intgateway değişkeninin değerini değiştirmeniz ve rc.firewall.run betiğini yeniden başlatmanız yeterlidir.

İşte örnek betiğimiz:

# vi rc.firewall.run

#! / bin / sh

extip = "83.xxx.xxx.xxx"

intip = "192.168.9.2"

intnet = "192.168.9.0/24"

posta sunucusu = "83.xxx.xxx.2"

intgateway = "83.xxx.xxx.1"

/ sbin / ipfw -f yıkama &

/ sbin / ipfw $ (intnet)'ten herhangi bir çıkışa 180 yönlendirme natd ip ekler xmit fxp0

/ sbin / ipfw, herhangi birinden $'a 190 yönlendirme natd ip ekle (extip)

# ICMP

/ sbin / ipfw ekle 500, herhangi birinden herhangi birine icmp'ye izin verir

# SSH

/ sbin / ipfw 10000 ekle, herhangi birinden herhangi bir 22'ye kadar tcp'ye izin ver

/ sbin / ipfw add 10010 herhangi bir 22'den herhangi birine tcp'ye izin verir

# DNS

/ sbin / ipfw add 11000, herhangi birinden herhangi birine tcp'ye izin verir 53

/ sbin / ipfw add 11010, herhangi bir 53'ten herhangi birine tcp'ye izin verir

/ sbin / ipfw add 11020, herhangi birinden herhangi birine udp'ye izin verir 53

/ sbin / ipfw add 11030, herhangi bir 53'ten herhangi birine udp'ye izin verir

# Web FTP'si

/ sbin / ipfw 12000 ekle benden herhangi bir 20,21,80,443'e tcp'ye izin ver

/ sbin / ipfw 12010 ekle, herhangi bir 20,21,80,443'ten bana tcp'ye izin ver

/ sbin / ipfw 12020 ekle benden herhangi bir 20,21'e udp'ye izin ver

/ sbin / ipfw 12030 ekle, herhangi bir 20,21'den bana udp'ye izin ver

# Ayrıcalık grubu için komut dosyası

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

# LAN'ın diğer bilgisayarını reddet

/ sbin / ipfw $ (intnet) 'den herhangi bir 20,21,80,443'e 12960 tcp'yi reddet

/ sbin / ipfw, herhangi bir 20,21,80,443 ila $ (intnet) arasında 12970 tcp'yi reddet

/ sbin / ipfw $ (intnet) 'den herhangi bir 20,21'e 12980 inkar udp ekle

/ sbin / ipfw herhangi bir 20.21'den $'a (intnet) 12990 udp'yi reddet

/ sbin / ipfw 13000 ekle $ (intnet) ile $ (mailserver) arasında tcp'ye izin verir 25,110

/ sbin / ipfw 13010 ekle tcp'ye $ (mailserver) 25.110'dan $ (intnet)'e izin verir

/ sbin / ipfw add 55010, herhangi birinden herhangi birine tcp'ye izin verir 1024-65534

/ sbin / ipfw add 55020, herhangi bir 1024-65534'ten herhangi birine tcp'ye izin verir

/ sbin / ipfw add 55030, herhangi bir 1024-65534'ten herhangi birine tcp'ye izin verir

/ sbin / ipfw add 55040, herhangi birinden herhangi birine tcp'ye izin verir 1024-65534

/ sbin / ipfw add 55050, herhangi bir ila herhangi bir 1024-65534 arasında udp'ye izin verir

/ sbin / ipfw add 55060, herhangi bir 1024-65534'ten herhangi birine udp'ye izin verir

/ sbin / ipfw add 55070, herhangi bir 1024-65534'ten herhangi birine udp'ye izin verir

/ sbin / ipfw add 55080, herhangi bir ila herhangi bir 1024-65534 arasında udp'ye izin verir

# Hepsini inkar etmek

/ sbin / ipfw ekle 65534 ipi herhangi birinden herhangi birine reddet

Ayrıcalıklı bir adres grubuyla çalışmak için rc.firewall.local.inet komut dosyasını oluşturun ve düzenleyin:

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

#! / bin / sh

intnet = "192.168.9.0/24"

özel grup = (31.32)

/ sbin / ipfw sil 12310

/ sbin / ipfw sil 12320

/ sbin / ipfw sil 12330

/ sbin / ipfw 12340'ı sil

/ sbin / ipfw add 12310, $ (intnet) $ (privgroup) değerinden herhangi bir 20,21,80,443,1025-65535'e kadar tcp'ye izin verir

/ sbin / ipfw add 12320, herhangi bir 20,21,80,443,1025-65535 ila $ (intnet) $ (privgroup) arasında tcp'ye izin verir

/ sbin / ipfw add 12330 $ (intnet) $ (privgroup) değerinden herhangi bir 20,21,1025-65535'e kadar udp'ye izin verir

/ sbin / ipfw add 12340, herhangi bir 20,21,1025-65535 ila $ (intnet) $ (privgroup) arasında udp'ye izin verir

Ayrıcalıklı grubun bileşimini değiştirmek için komut dosyasında, yerel alt ağdaki ana bilgisayar numarasını ekleyerek/kaldırarak privgroup değişkenini düzenlemeniz gerekir.

Örneğin, 192.168.9.33 ve 192.168.9.45 IP adreslerine sahip iki bilgisayar eklemek için “privgroup = (31-33.45)” yazarsınız.

Böyle bir kural yokken sistem başlangıcında “/ sbin / ipfw delete NNNNN” gibi kuralları kullanmak biraz çirkin. Var olmayan bir kuralı silmeye çalışırken sistem konsolda aşağıdaki mesajı görüntüler:

ipfw: kural 13031: setockopt (IP_FW_DEL): Geçersiz bağımsız değişken

Bu durumda sistem normal şekilde çalışmaya devam eder.

Her şeyi kesinlikle yaparsanız, iki komut dosyası oluşturmanız gerekir: biri başlangıçta çalışacak, ikincisi - anında değişiklik yaparken. Ancak daha sonra her iki komut dosyasında da uygun değişiklikleri yapmanız gerekecektir.

Ana amaç, yönetimi kolay bir sistem oluşturmak olduğundan, bizim durumumuzda bu sorun ihmal edilebilir.

Ancak şimdi, uygun değişiklikleri yaptıktan sonra, ayrıcalıklı grup için komut dosyasını yeniden başlatabiliriz.

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

Ayrıca değişiklik yapabilir ve rc.firewall.run komut dosyasını yeniden başlatabiliriz, ancak tasarım gereği bunu ayrıcalıklı grup komut dosyası durumunda olduğundan çok daha az sıklıkta yapmamız gerekecek.

# / bin / sh rc.firewall.run

Mevcut kuralları geçersiz kılmak ve alternatif bir güvenlik duvarı yapılandırması başlatmak için kendi betiğimizi yazdığımız için, nasıl başlatacağımızı düşünmemiz gerekiyor.

FreeBSD'nin harika bir başlangıç ​​mekanizması var özel programlar: rc.local dosyası. Varsayılan olarak sistemde yoktur.

Zaten yarattığımız için bu dosya, NAT desteğinden sorumlu olan natd arka plan programını başlatmak için komutu ekleyin.

natd arka plan programı rc.conf dosyasından başlatılır. (Yine bu dosya, aslında, bir bütün olarak tüm FreeBSD sistemi için kilit bir rol oynar!)

Bu dosyayı rc.conf'tan çalıştırma mekanizması aşağıdaki değişkenler aracılığıyladır:

# - natd dosyasının kendisinin yolu

natd_program = "/ sbin / natd"

# NAT'a izin ver (firewall_enable == EVET ise)

natd_enable = "EVET"

# Kullanılacak ön uç veya ipadresi

natd_interface = ""

# İsteğe bağlı natd başlangıç ​​bayrakları

natd_flags = ""

Ancak bu durumda, rc.local aracılığıyla natd arka plan programına yapılan çağrıyı kullanacağız. Emretmek:

# vi /etc/rc.local

/etc/rc.local dosyasını otomatik olarak oluşturur ve düzenleme için açar.

Üzerine şu satırları ekleyin:

# Natd başlatma komutu

/ sbin / natd -n rl0

# burada "-n rl0", NAT'ın başlatıldığı arabirimin adıdır

# Güvenlik duvarı kurallarını ayarlamak için komut dosyamızı çalıştırın:

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

Yerel ağdan bir bilgisayardan gerekli İnternet kaynaklarına erişimi yeniden başlatır ve kontrol ederiz.

  1. Evie Nemeth, Garth Snyder, Scott Seabass, Trent R. Hein. UNIX. Yönetmek sistem yöneticisi... BHV, Peter, 2004
  2. Alexey Fedorchuk, Alexey Yırtık. ÜcretsizBSD. Kurulum, konfigürasyon, kullanım. BHV, 2003
  3. Philip Torchinsky. UNIX Yöneticisi için Pratik Bir Kılavuz. "Sembol", 2003

DHCP ve DNS sunucuları ile Wi-fi yönlendirici FreeBSD 8.2

Ne almak istiyoruz:
- böylece Wi-Fi istemcileri kablolu olanlarla aynı alt ağda olur.
- kablolu ve kablosuz istemcilerin adresleri DHCP aracılığıyla otomatik olarak alması için
- önbelleğe alma DNS'sine sahip olmak
- elbette herkesin çevrimiçi olmasını istiyoruz
- dahili sunucuya RDP erişimine sahip olmak

Genel olarak, işlevsellik açısından Dlink DIR-300 yönlendiricisine benzer bir şey elde etmek istiyoruz.

Neyimiz var:
Celeron 700, 256 MB RAM, 80 GB IDE vida ve yalnızca ACPI devre dışıyken çalışan garip bir anakart
ağ kartları:

LAN - rl0 (10 \ 100 işyerinde dolabın arkasında bir çeşit realtek bulundu) [e-posta korumalı]:1 :8 :0 : sınıf = 0x020000 kart = 0x813910ec çip = 0x813910ec rev = 0x10 hdr = 0x00 satıcı = "Realtek Semiconductor" aygıt = Realtek RTL8139 Ailesi PCI FastEthernet NIC RTL- 8139 / 8139C / 8139D sınıfı = ağ alt sınıfı = ethernet WAN - stge0 (10 \ 100 \ 1000 asus adaptörü) [e-posta korumalı]:1 :5 :0 : sınıf = 0x020000kart = 0x81801043chip = 0x102313f0 rev = 0x41 hdr = 0x00 satıcı = "Sundance Technology Inc" cihazı = "IC Plus IP1000 Ailesi Gigabit Ethernet Adaptörü" sınıfı = ağ alt sınıfı = ethernet WLAN - ral0 (Dlink'ten ucuz Wi-Fi kartı) [e-posta korumalı]:1 :10 :0 : sınıf = 0x028000card = 0x3a711186chip = 0x03021814 rev = 0x00 hdr = 0x00 satıcı = "Ralink Technology, Corp." cihaz = "kablosuz a / b (RT2525) 2 .4GHz alıcı verici + RT2560 MAC / BBP) "sınıf = ağ

ISP tarafından sağlanan beyaz IP adresi:
IP 9.9.9.9
maske 255.255.255.0
ağ geçidi 9.9.9.1
DNS1 9.9.9.254
DNS1 9.9.9.253
ayarlar gerçek olanlardan farklıdır, ancak bu özü değiştirmez

LAN aralığı: 192.168.0.0 maskeli 255.255.255.0

FreeBSD 8.2 işletim sistemi kurulu:

# uname -a FreeBSD GATE 8 .2 -FreeBSD'yi YAYIN 8 .2 -SERBEST BIRAKMAK # 0: 9 Nisan Cumartesi 20:13:28 OMSST 2011 [e-posta korumalı]: / usr / src / sys / i386 / derleme / GATE i386

/etc/rc.conf içeriği:

9 .9 .9 .1 9 .9 .9 .9 ağ maskesi 255 .255 .255 .0 "ifconfig_rl0 =" giriş 192 .168 .0 .1 ağ maskesi 255 .255 .255 .0 "

/etc/resolv.conf (DNS sunucusu) içeriği:

ad sunucusu 9 .9 .9 .254 ad sunucusu 9 .9 .9 .253

Hazırlanmaya başlıyoruz:

Gereksiz tüm sürücüleri çekirdekten kaldırırız (iyi ya da herkes için uygun olduğu için kaldırmayın) tüm sürücüleri için bırakırız. Kablosuz cihazlar... Kartınız için hangi sürücünün uygun olduğunu biliyorsanız bırakın, gerisini kaldırabilirsiniz.Hangisinin benim için çalışacağını bilmiyordum, bu yüzden her şeyi bıraktım. Çekirdeği seçeneklerle yeniden oluşturuyoruz:

cihaz if_bridge # Köprü işlemi için modül cihaz wlan'ı # 802.11 desteği (Wi-fi) # ne olduğunu bilmiyorum, otomatik olarak yüklendi cihaz wlan_amrr # AMRR iletim hızı kontrol algoritmaları cihaz wlan_xauth # Erişim noktası modu için yetkilendirme destek modülü cihaz wlan_wep # WEP güvenlik algoritması destek modülü cihaz wlan_tkip # TKIP şifreleme destek modülü cihaz wlan_ccmp # CCMP şifreleme destek modülü cihaz pf # Güvenlik duvarı olarak Paket Filtre kullanıyorum # kuyruk algoritması desteği (trafik önceliği) seçenekler ALTQ seçenekleri ALTQ_CBQ # Sınıf Bazları Kuyruklama (CBQ) seçenekleri ALTQ_RED # Rastgele Erken Tespit (KIRMIZI) seçenekler ALTQ_RIO # KIRMIZI Giriş / Çıkış seçenekleri ALTQ_HFSC # Hiyerarşik Paket Zamanlayıcı (HFSC) seçenekler ALTQ_PRIQ # Öncelik Sıralaması (PRIQ) # tek çekirdekli işlemcim olduğu için çok çekirdek desteğine ihtiyacım yok #options ALTQ_NOPCC # SMP oluşturma için gerekli

çekirdeği oluştur ve yükle:

# cd / usr / kaynak # buildkernel yap KERNCONF = GATE && \ installkernel yap KERNCONF = GATE

Yeniden başlatın ve ne olduğunu görün:

8843 mtu 1500 seçenekler = 8209b eter 01 :01 :01 :01 :01 :01 inet 9 .9 .9 .9 9 .9 .9 .255 8802 metrik 0 mtu 1500 seçenekler = 3808 eter 00 :50 : fc: ef: 4d: 75 inet 192 .168 .0 .1 ağ maskesi 0xffffff00 yayını 192 .168 .0 .255 medya: Ethernet otomatik seçimi (100baseTX 8802 metrik 0 mtu 2290 eter 00 :26 : 5a: 77 :38 : ba medya: IEEE 802 .11 Kablosuz Ethernet otomatik seçimi (otomatik seçim) durumu: taşıyıcı yok lo0: işaretler = 8049 mtu 16384 seçenekler = 3 inet 127 .0 .0 .1 ağ maskesi 0xff000000

Wi-fi kartı ral0 olarak tanımlandı. Zaten iyi. Çekirdeği yeniden oluşturabilir ve gereksiz kablosuz sürücüleri kaldırabilirsiniz.

/etc/hostapd.conf dosyasını şu duruma getirin:

/etc/rc.conf'u düzenleme:

keymap = "ru.koi8-r" ana bilgisayar adı = "GATE" gateway_enable = "YES" defaultrouter = " 9 .9 .9 .1 "sshd_enable =" EVET "ifconfig_stge0 =" inet 9 .9 .9 .9 ağ maskesi 255 .255 .255 .0 " # kablosuz kartı bir erişim noktası olarak yapılandırın wlans_ral0 = "wlan0" create_args_wlan0 = "wlanmode hostap" ifconfig_wlan0 = "up mediaopt hostap" # IP adresini rl0 arayüzünden kaldırın # ifconfig_rl0 = "inet 192.168.0.1 ağ maskesi 255.255.255.0" # kablolu ve kablosuz LAN arasında bir köprü oluşturun # ve üzerine yerel ağ geçidinin IP adresini asın klonlanmış_interfaces = "bridge0" ifconfig_bridge0 = "inet 192 .168 .0 .1 ağ maskesi 255 .255 .255 .0 \ addm wlan0 addm rl0 yukarı "ifconfig_rl0 =" yukarı " # erişim noktası işlevini etkinleştir hostapd_enable = "EVET"

Yeniden başlatıyoruz. Ne olduğunu görelim:

# ifconfig stge0: bayraklar = 8843 mtu 1500 seçenekler = 8209b eter 01 :01 :01 :01 :01 :01 inet 9 .9 .9 .9 ağ maskesi 0xffffff00 yayını 9 .9 .9 .255 medya: Ethernet otomatik seçimi (100baseTX ) durum: aktif rl0: işaretler = 8943 mtu 1500 seçenekler = 3808 eter 00 :50 : fc: ef: 4d: 75 medya: Ethernet otomatik seçimi (100baseTX ) durum: aktif ral0: işaretler = 8843 metrik 0 mtu 2290 eter 00 :26 : 5a: 77 :38 : ba medya: IEEE 802 .11 durum: lo0 çalışıyor: bayraklar = 8049 metrik 0 mtu 16384 seçenekler = 3 inet 127 .0 .0 .1 ağ maskesi 0xff000000 köprü0: bayraklar = 8843 mtu 1500 eter a6: 09 : ed: c1: 23 :38 inet 192 .168 .0 .1 ağ maskesi 0xffffff00 yayını 192 .168 .0 .255 İD 00 :00 :00 :00 :00 :00 öncelik 32768 merhaba zamanı 2 ileri gecikme 15 maksimum 20 Holdcnt 6 proto rstp maxaddr 100 zaman aşımı 1200 kök kimliği 00 :00 :00 :00 :00 :00 öncelik 32768 ifcost 0 Liman 0 üye: rl0 bayrakları = 143 ifmaxaddr 0 Liman 2 öncelik 128 yol maliyeti 200000 üye: wlan0 bayrakları = 143 ifmaxaddr 0 Liman 6 öncelik 128 yol maliyeti 370370 wlan0: bayraklar = 8943 mtu 1500 eter 00 :26 : 5a: 77 :38 : ba medya: IEEE 802 .11 Kablosuz Ethernet otomatik seçim modu 11g durum: ssid çalışıyor kanal 1 (2412 MHz 11g) bssid 00 :26 : 5a: 77 :38 : ba ülke ABD authmode WPA2 / 802 .11i gizlilik KARIŞIK deftxkey 2 AES-CCM 2 :128 -bit AES-CCM 3 :128 -bit txpower 0 tarama geçerli 60 protmode CTS zaman periyodu 1 -dfs

Her şey yolunda, Wi-fi ve kablolu kartlar bir köprü ile bağlı ve bu köprüde bir IP adresi asılı

PF'yi yapılandırmaya başlayalım. PF, trafik önceliğini etkinleştirmenizi sağlar. Kısa Açıklama buraya bak:
http://www.freebsd.org/doc/ru/books/handbook/firewalls-pf.html
/usr/local/etc/pf.conf dosyasını oluşturun ve bu duruma getirin:

# Senaryo yazmamı kolaylaştıran değişkenleri burada tanımlıyorum. WAN = "stge0" LAN = "bridge0" LAN_POOL = " 192 .168 .0 .0 /24 "VANİP =" 9 .9 .9 .9 "SUNUCU =" 192 .168 .0 .3 "YÖNETİCİ =" 192 .168 .0 .2 "RDP_PORT =" 3389 "EXTRDP_PORT =" 33389 " # bu bağlantı noktalarına giden ve bu bağlantı noktalarından gelen trafik harici arabirimde yasaklanacak DROP_PORTS = "(135: 139 ,445}" # Bir paket engelleme kuralına (blok) ulaştıktan sonra ne yapılmalı # blok politikası bırakma ayarla - paketi bırak ve hiçbir şey yapma # blok politikası reddetmeyi ayarla - paketi at ve bir hata mesajı gönder # onu gönderen ana bilgisayara. blok politikası düşüşünü ayarla # lo0 için trafiği kontrol etmeyin atlamayı lo0'a ayarla # Bridge0 arayüzünde trafiği kontrol etmeyin (dahili kısıtlamamız yok)$ LAN'da atlama ayarla # Paketleri "Normalleştir". Bu seçeneğin açıklaması bence yeterli # belirsizdir, ancak bazı ağ saldırıları türlerine karşı faydalı olmalıdır. hepsini fırçala # ~ 5000 kbps hızım var ama hızınızı buraya girmeniz gerekiyor$ WAN priq bant genişliği 5000Kb kuyruğunda altq (özel, diğer) # 2 sıram var # Daha yüksek öncelikli trafik için (sunucudan RDP) kuyruk özel qlimit 25 öncelik 14 priq (kırmızı) # Diğer herkes için sıra diğer qlimit 30 öncelik 10 priq (varsayılan) # Kuyrukların boyutları, denebilir ki, tavandan alınır: (Çok değil #onlara odaklan lütfen. Kuyruğun boyutunu kendiniz bulmaya çalışın # LAN ağı için harici arabirimde NAT'ı etkinleştirin nat on $ WAN'dan $ LAN_POOL'dan herhangi birine -> ($ WAN) # Portun sunucuya iletilmesi Standart porttan farklı bir port iletilmesi # standart portları tarayan kaba kuvvet maymunlarına karşı korumak için$ WAN protokolündeki rdr, herhangi birinden $ WANIP \ bağlantı noktasına $ EXTRDP_PORT -> $ SERVER bağlantı noktasına $ RDP_PORT # Adresimize gelen ping isteklerini kesin$ WAN proto icmp'de herhangi birinden $ WANIP icmp tipine kadar hızlı blok 8 # Harici arayüzde NETBIOS'tan trafik olmamalı$ WAN protokolünde (tcp udp) herhangi bir bağlantı noktasından herhangi bir bağlantı noktasına hızlı blok yapın $ DROP_PORTS # WAN arayüzünde sahteciliğe karşı korumayı etkinleştir # http://openbsd.corebsd.or.id/faq/pf/ru/filter.html'den alıntı: # Bir saldırgan orijinali taklit ettiğinde adresler sahtedir # Paketlerdeki IP adresleri, ya gerçek adreslerinin kabuğuna iletilir, # veya ağdaki başka bir düğümü canlandırın. Kullanıcı sahtekarlığından sonra # gerçek kaynağı ifşa etmeden bir ağ saldırısı başlatabilecekler # saldırı veya erişmeye çalışın ağ hizmetleri, Hangi # belirli IP adresleriyle sınırlıdır.$ WAN için antispoof hızlı # Açıkça yetkisiz tüm trafiği reddet hepsini engelle # ### Gelen trafik # Ayrıcalıklı trafik herhangi birinden $ WANIP portuna hızlı geçiş $ WAN proto tcp'si $ EXTRDP_PORT kuyruğu priv # Normal trafik, herhangi birinden $ WAN'a hızlı bir şekilde geçer, durum kuyruğunu tut diğer # Aslında, PF'deki önceliklendirme gelen trafikte çalışmıyor, ancak kurallarım #hala yazdı. # ### Giden trafik # Ayrıcalıklı trafik$ WANIP \ bağlantı noktasından $ EXTRDP_PORT'tan herhangi bir tutma durumu kuyruğuna priv # hızlı bir şekilde geçer $ WAN proto tcp'si priv # Normal trafik, $ WAN'da $ WANIP'den herhangi bir tutma durumu kuyruğuna hızlı bir şekilde geçer diğer
pf_enable = "EVET" pf_rules = "/ usr / local / etc / pf.conf"

ve pf'yi yeniden başlatın:

# /etc/rc.d/pf yeniden başlatma

Komutları kullanarak kural oluşturmanın doğruluğunu kontrol ederiz:

pfctl -sn Mevcut NAT kuralları
pfctl -sr Mevcut kurallar yayınlar
pfctl -ss kurulan bağlantılar
pfctl -siÇeşitli sayaçlar
pfctl -sa Yukarıdakilerin hepsi aynı anda
pfctl -sq -vvv Kuyrukların durumunu gösterir

Portsnap kullanarak bağlantı noktalarını güncelleme:

# portsnap fetch portsnap.FreeBSD.org aynaları aranıyor ... 5 aynalar bulundu. Portsnap5.FreeBSD.org'dan anlık görüntü etiketi alınıyor ... tamamlandı. Anlık görüntü meta verileri alınıyor ... tamamlandı. Çar Haziran'dan itibaren güncelleniyor 15 14 :21 :31 MSD 2011 Per Tem'e kadar 21 11 :37 :27 MSD 2011 ... getiriliyor 3 meta veri yamaları .. tamamlandı. Meta veri yamaları uygulanıyor ... tamamlandı. getiriliyor 3 meta veri dosyaları ... bitti. getiriliyor 9656 yamalar ..... 10 .... <Часть вывода удалена> ...........9650 ... tamamlamak. Yamalar uygulanıyor ... tamamlandı. getiriliyor 1282 yeni bağlantı noktaları veya dosyalar ... tamamlandı. # portsnap özü /usr/ports/.cvsignore / usr / portlar / DEĞİŞİKLİKLER .................<Часть вывода удалена>................. / usr / bağlantı noktaları / x11 / yelp / / usr / bağlantı noktaları / x11 / zenity / Yeni INDEX dosyaları oluşturma ... tamamlandı.

Daha az bellek tükettiği ve FreeBSD ile sağlanan BIND DNS sunucusundan daha güvenli olduğu düşünüldüğü için önbelleğe alma DNS sunucusu olarak djbdns paketinden dnscache kullanıyoruz.

djbdns'yi yükleyin:

# cd / usr / portlar / dns / djbdns && kurulumu temizleyin

Aşağıdaki seçeneklerle toplar ve kurarız:

Dnscache için DUMPCACHE kalıcı önbellek IPV6 Felix von Leitner tarafından IPv6 desteği Russell Nelson tarafından IGNOREIP ignoreip2 yaması Claudiu Costin tarafından JUMBO jumbo yaması [X] Gerritt Pape tarafından MAN kılavuz sayfaları PERSISTENT_MMAP tarafından kalıcı mmap yaması Lennert Buyten Handhek tarafından [X] SRV Michael SRV yaması SRV Michael SRV SRV Michael

djbdns daemontools portunu da çekecektir. daemontools, arka plan programlarını başlatmak ve çalışmalarını izlemek için tasarlanmıştır. Yani, kontrolü altındaki bir arka plan programı "çökerse", daemontools onu yeniden başlatır.

dnscache ve dnslog'un (djbdns için bir günlükçü) altında çalışacağı kullanıcıları içeren bir dnsusers grubu oluşturun:

dnslog için bir kullanıcı oluşturun:

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

daemontools'un çalıştığı içeriği içeren bir klasör oluşturun:

daemontools'u çalıştırın:

dnscache yapılandırması / usr / local / etc / djbdns içinde bulunduğu ve daemontools / var / service klasörü ile çalıştığı için bir bağlantı yaparız:

# ln -s / usr / yerel / etc / dnscache / var / hizmet / dnscache

/ usr / local / etc / dnscache / env klasörü, daha gelişmiş bir dnscache yapılandırmasına sahip dosyalar içerir, ancak bu durumda, varsayılanlarla sorun yok.

Sunucunun normal çalışması için, yukarı akış sunucularının adreslerini ona ayarlamanız gerekir. Her bölgeden /usr/local/etc/dnscache/root/server içinde bulunan bölge adıyla aynı ada sahip bir dosya sorumludur. Her dosya, bu bölgeden sorumlu sunucuların ip adreslerini içerir. Herhangi bir talebi sağlayıcının DNS sunucularına yönlendirdiğimiz için adlarını "@" (kök bölgesinden sorumlu) adlı bir dosyaya yazıyoruz.

dnscache'i yeniden başlatın:

DHCP sunucusunu kurun (bu seçeneklerle oluşturdum):

# cd / usr / portlar / net / isc-dhcp41-server && kurulumu temiz yap isc-dhcp41-server seçenekleri 4 .1 .e_1, 2 DHCP_IPV6 IPv6 [X] desteğini etkinleştir DHCP_PARANOIA Chroot desteğini etkinleştir DHCP_LDAP Deneysel LDAP arka uç desteği DHCP_LDAP_SSL SSL / TLS üzerinden LDAP bağlantısını destekler

DHCP sunucu yapılandırmasını (/usr/local/etc/dhcpd.conf) şu duruma getiriyoruz:

yerel adres 192 .168 .0 .1 ; varsayılan kiralama süresi 600 ; maksimum kiralama süresi 7200 ; yetkili; ddns-güncelleme tarzı ara; günlük tesisi yerel7; alt ağ 192 .168 .0 .0 ağ maskesi 255 .255 .255 .0 (Aralık 192 .168 .0 .10 192 .168 .0 .250 ; seçenek yönlendiriciler 192 .168 .0 .1 ; # SAMBA'yı yükselttiyseniz, müşterilere vermeyi deneyebilirsiniz # ayrıca WINS sunucusunun değeri. # seçenek netbios-name-servers 192.168.0.1; # DNS sunucumuzu zaten yükselttik, bu yüzden adresini veriyoruz seçenek alan adı sunucuları 192 .168 .0 .1 ; } # belirli MAC adreslerini belirli IP adreslerine "bağla" ana bilgisayar yöneticisi (donanım ethernet 03 :03 :03 :03 :03 :03 ; sabit adres 192 .168 .0 .2 ; ) ana sunucu (donanım ethernet) 04 :04 :04 :04 :04 :04 ; sabit adres 192 .168 .0 .3 ; }

/etc/rc.conf dosyasına aşağıdaki satırları ekleyin:

ve DHCP sunucusunu başlatın:

Herşey yolunda. En basit dir-300'ün işlevselliği elde edildi.

Bu yazıda, ağ arayüzlerine bir göz atacağız. ÜcretsizBSD 11.1, ağ kurulumunu / etc / yapılandırma dosyası üzerinden gösterelim rc.conf yani amaç statik ayarları ve bunları alma DHCP. adresleri yazalım DNS-sunucular, kurulum ev sahibi ve göstergeyi düşünün geçici ağ ayarları.

Ağ arayüzlerini görüntüleyin.

Önce şunu açıklığa kavuşturalım: Ağ kartının iki durumu vardır YUKARI(katılır) ve AŞAĞI(kullanılmamış).

İlk adım ağ arayüzlerimize bakmak, komutu ile bakacağız. ifconfig(Şekil 1) Komut çıkışı tüm arayüzleri gösterir. YUKARI ve AŞAĞI.

ifconfig

ifconfig -a size aynısını gösterecektir.

ifconfig -a

Burada bazı farklılıklar var ifconfig v Ubuntu sunucusu .(v Ubuntu sunucusu "ifconfig" sadece arayüzleri gösterir YUKARI,"ifconfig -a" tüm arayüzleri gösterir ve YUKARI ve AŞAĞI)

Şekil 1 - ifconfig komutunun girilmesi sonucu.

Peki ne görüyoruz:

  • em0- IP adresi olan ağ kartımız 192.168.3.11 .
  • em1- ikinci ağ kartı yapılandırılmamış.
  • lo- yerel döngü, varsayılan olarak herkes için mevcuttur.

Yalnızca arayüzleri görüntülemek için YUKARI, komut kullanılır ifconfig -u(İncir. 2):

ifconfig -u

ve yalnızca arayüzleri görüntülemek için AŞAĞI, komut kullanılır ifconfig -d(Şekil 3):

ifconfig -d
Şekil 2 - ifconfig -u komutunu girmenin sonucu.
Şekil 3 - ifconfig -d komutunu girmenin sonucu.

Gelecekte, arayüzde ayar örnekleri göstereceğim. "em0".

Arayüzü etkinleştirmek için şu komutu kullanın: ifconfig"İSİM-ARAYÜZ" yukarı.

ifconfig em0 yukarı

Arayüzü kapatmak için şu komutu kullanın: ifconfig "İSİM-ARAYÜZ" aşağı.

ifconfig em0 aşağı

"Oynamak" bir arayüz ile, tabii ki bağlı olmadığınız sürece ssh ve bir durumda bırakın YUKARI.

Yapılandırma dosyası aracılığıyla ağ kurulumu.

Statik veya dinamik bir IP adresi yapılandırmak için ağ arayüzleri yapılandırma dosyasını - / etc / düzenlememiz gerekir. rc.conf ile düzenleyeceğiz Metin düzelticivi(Şek. 4) Düzenlemek için hemen söyleyeceğim. vi bir harfe basmak gerekiyor "ben" ve belgeyi kaydedip kapatmak için "ESC" tanıtmak ": wq!" ve bas "Girmek".

Şekil 4 - vi /etc/rc.conf.

DHCP aracılığıyla ağ ayarlarının alınması.

Ayarların DHCP yoluyla alınmasını atamak için / etc / satırına girmeniz (veya mevcut satırı değiştirmeniz) gerekir. rc.conf(Şek. 5)

ifconfig_İSİM-ARAYÜZ= "DHCP"

Ifconfig_em0 = "DHCP"
Şekil 5 - Alma ağ ayarları DHCP aracılığıyla.

Tekrar başlat ağ hizmeti net(Şekil 6)

/etc/rc.d/netif restart Şekil 6 - FreeBSD ağ hizmetini yeniden başlatma.

Aktif ağ arayüzlerine bakıyoruz, DHCP üzerinden alınan arayüzün IP adresini görüyoruz. em0- 192.168.3.6 (Şek. 7)

ifconfig -u

Ping 8.8.8.8
Şekil 7 - Aktif arayüzleri ve ağ erişimini kontrol etme.

Pingler geliyor. Hepsi mükemmel!

Ağ ayarlarını manuel olarak belirleme.

Sitemize statik bir adres atamak için ücretsiz/ etc / dosyalamanız gerekiyor rc.conf iki satır girin (Şekil 8)

ifconfig_İSİM-ARAYÜZ= "net IP-ADDRESS-FREEBSD ağ maskesi MASKE AĞI "

varsayılan yönlendirici = " AĞ GEÇİDİ IP ADRESİ "

Ifconfig_em0 = "inet 192.168.3.11 ağ maskesi 255.255.255.0" defaultrouter = "192.168.3.1"
Şekil 8 - Ağ arayüzünün statik ayarları.

Ağ hizmetini yeniden başlatıyoruz.

/etc/rc.d/netif yeniden başlat

Aktif arayüzleri kontrol etme

ifconfig -u

Google Eights'a ping atarak İnternet erişimini kontrol ediyoruz.

Ping 8.8.8.8

DNS kurulumu.

IP adresleri DNS sunucuları/ etc / dosyasında saklanır çözüm.conf(Şek. 9)

Açığız çözüm.conf editörde vi.

Vi /etc/resolv.conf

giriyoruz IP adres DNS sunucu. (İstediğiniz kadar adres girebilirsiniz.)

Ad sunucusu 192.168.3.1 ad sunucusu 8.8.8.8 ad sunucusu 8.8.4.4

bir dosyanız yoksa çözüm.conf sonra dizinde oluşturun / vesaire

/etc/resolv.conf'a dokunun
Şekil 9 - resolv.conf dosyasının içeriği.

/ etc / hosts dosyası.

/ etc / dosyası ev sahibi DNS adlarını IP adreslerine eşlemek için tablolar içerir. Her şeyden önce, sunucunuz dosyaya erişecek ev sahibi ve ardından DNS sunucusuna.

Kendim için eklemenin faydalı olduğunu not ettim. ev sahibi bunu kaydetmek ücretsiz(Yerel ağın IP adresi, sunucunun adıdır). Artık tüm konfigürasyon dosyalarında belirtebiliriz DNS adı, IP adresini değil ve gerekirse en kısa sürede IP adresinizi düzelterek değiştirin. ev sahibi ve / etc / içindeki arayüz ayarları rc.conf.

Bu sadece bunu yapmanız için bir örnek. gerekli değil.

Düzenlemeye başlayalım (Şekil 10):

Vi / etc / ana bilgisayarlar

giriyorum:

192.168.3.11 freebsd.itdeer.loc Şekil 10 - Hosts dosyasının içeriği.

İsimlere ping atarak kontrol edeceğim ev sahibi(Şek. 11)

Ping localhost'a ping freebsd.itdeer.loc
Şekil 11 - Ana bilgisayarlardan gelen ping adları.

Bir ip adresinin geçici olarak atanması.

Dürüst olmak gerekirse, ağ ayarlarının geçici olarak atanmasının ne için yararlı olabileceğini bilmiyorum. Diyelim ki sadece yerel ağınız için tasarlanmış bir tür sunucunuz var ve ağ geçidine gitmemek, İnternet'i istenen IP'ye dağıtmamak için bu sunucudaki yazılımı İnternet üzerinden hızlı bir şekilde güncellemeye karar verdiniz. adres vb. Bir kaç komutla halledebilirsin.

Örneğin, biliyoruz ki 192.168.3.109 Kesinlikle internet erişimi var, bu IP adresini arayüzümüze atadık, ayrıca ağ maskesini de belirtmeniz gerekiyor (Şekil 12):

ifconfig em0 192.168.3.109 ağ maskesi 255.255.255.0

veya kısa ağ maskesi girişi olan bir komut.

ifconfig em0 192.168.3.109/24
Şekil 12 - em0 ağ arayüzü için geçici ayarların belirtilmesi.

Varsayılan ağ geçidi belirtilmediği için İnternet görünmeyebilir. Kaydediyoruz ve google sekizine ping atıyoruz (Şek. 13)

Rota varsayılan ekleme 192.168.3.1 ping 8.8.8.8
Şekil 13 - Varsayılan ağ geçidini belirtin. Ping kontrol ediliyor.

Varsayılan ağ geçidimizi doğru şekilde kaydedip kaydetmediğimiz, yönlendirme tablosunda görülebilir. komutu kullanılarak görüntülenir. "netstat -rn" Varsayılan ağ geçidi bir bayrakla gösterilecektir. UG(Şek. 14)

Netstat -rn
Şekil 14 - Yönlendirme tablosunun çıktısı.

Yazımı bir yerde yanlış yazdıysanız veya farklı bir ağ geçidi belirlediyseniz, varsayılan ağ geçidini kaldır.

Rota del varsayılan

Bu, geçici yapılandırmayı tamamlar, sunucuyu yeniden başlattıktan sonra veya hizmetleri ayrı olarak ağ oluşturma, tüm geçici ayarlar kaybolacaktır.

Varsayılan ağ geçidi 192.168.3.1/24 aracılığıyla 192.168.0.0/16 (Maske 255.255.0.0) ağına bir yol ekleyin

Rota ekleme 192.168.0.0/16 192.168.3.1

Tam maskeli bir rota ekleme seçeneği.

Rota ekleme -net 192.168.0.0 -netmask 255.255.0.0 192.168.3.1

em0 arayüzünü wan0 olarak yeniden adlandırın.

Kolaylık sağlamak için, bazı yöneticiler arayüzün ne için olduğunu hemen görebilmeleri için arayüzleri yeniden adlandırır. Diyelim ki iki ağ arayüzüne sahip bir ağ geçidimiz var. em0(internet) ve em1(yerel ağ) ve bu tür adlarla çalışmak sakıncalıdır, çünkü çok sayıda arabirime sahip olmak kafa karıştırabilir. Arayüzlerle çalışmak çok daha uygun wan0 ve lan1.

Bir arayüzü yeniden adlandırmanın bir örneğini göstereceğiz. em0 v wan0/ etc / dosyasında rc.conf(Şek. 15)

Ifconfig_em0 = "inet 192.168.3.11 ağ maskesi 255.255.255.0"

İki satırla değiştirin:

ifconfig_ em0 _name = " wan0"ifconfig_ wan0= "inet 192.168.3.11 ağ maskesi 255.255.255.0"
Şekil 15 - /etc/rc.conf dosyasındaki arayüzlerin yeniden adlandırılması.

Ağ hizmetini yeniden başlatmayı unutmayın:

/etc/rc.d/netif yeniden başlat

Kontrol et, komutu gir ifconfig -u... bizimkileri görüyoruz wan0 sağ ile IP adresi(Şek.16)

ifconfig -u
Şekil 16 - Arayüzün yeni adının kontrol edilmesi. ifconfig -u.


Yönlendirici, yerel bir ağa bağlı bilgisayarların İnternet'e erişmesini sağlayan bir aygıttır. FreeBSD'nin yardımıyla benzer bir yönlendirici oluşturabilirsiniz ve bu oldukça basit bir şekilde yapılır, 20 ... 30 iş istasyonundan oluşan küçük bir yerel ağ için bir yönlendirici oluşturma seçeneğini düşünün.

İlk veriler - FreeBSD kurulu (şu anda FreeBSD 8.4 STABLE kullanıyor), sağlayıcımız tarafından sağlanan harici ip adresi, sağlayıcının ağ geçidinin ip adresi ve DNS sunucusunun ip adresi olan iki ağ kartına sahip bir bilgisayar.

Bir yönlendiriciye dönüştürmek için rc.conf yapılandırma dosyasına yalnızca bir satır ekleyin:

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

Bu, ip paketlerinin bir ağ arayüzünden diğerine geçişine izin verecektir. ifconfig komutunu kullanarak, ağ arayüzleri hakkında bilgi buluyoruz ve hangisinin "harici" olacağını (sağlayıcının ip adresini atayacağız) ve hangisinin "dahili" olacağını (ona boş bir ip atayacağız) belirliyoruz. -dahili yerel ağın adresi). Bakalım ne elde edeceğiz:


“em0”ı harici arabirim olarak (atanmış ip 192.168.5.19), “em1”i rc.conf dosyasının dahili düzenlemesi olarak (örneğin, ip 192.168.0.240 olarak atayın), aynı dosyada tanımlıyoruz. sağlayıcımızın ağ geçidini kaydetmek için gereklidir

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

Burada xxx.xxx.xxx.xxx, sağlayıcının ağ geçidinin IP adresidir.

Sonuç olarak, rc.conf dosyasının aşağıdaki formunu aldım.


Ardından, siteye adlarıyla başvurabilmemiz için sağlayıcının DNS sunucusunun ip adresini kaydetmeniz gerekir. giriş yapalım yapılandırma dosyasıçözüm.conf

# yankı ad sunucusu xxx.xxx.xxx.xxx> /etc/resolv.conf

Burada xxx.xxx.xxx.xxx, DNS sunucusunun IP adresidir.

Birkaç DNS sunucusu varsa, hepsini yeni bir satırla listelemeniz önerilir.


Bizim durumumuzda bunlar 192.168.5.200 ve 192.168.5.201 sunucularının IP adresleridir. Büyük Google'ın 8.8.8.8 DNS sunucusu adresini son çare olarak kullanabilirsiniz.

Yeniden başlatılıyor...

# kapatma –r şimdi

İşte bu, yönlendiricinin ilk yapılandırması hazır (yerel ağ PC'nizi yapılandırabilirsiniz). Ardından, bir güvenlik duvarı kurmayı, ağ adresi çevirisini (NAT) etkinleştirmeyi ve çeşitli yönlendirme şemalarını ele alacağız.

İnternet için Windows işletim sistemi altında iş istasyonları kurmaya bakıyoruz (bilgisayarın, yönlendiricinin ve DNS'nin ip adresinin nasıl ve nereye kaydedileceği). Bir uygulama olarak, her ihtimale karşı, birisinin buna ihtiyacı var.

Yönlendirici yapılandırmasının devamına bakıyoruz (bölüm 2).