FreeBSD Hálózati Beállítások Részletesen
Bevezetés
A FreeBSD robusztus és rugalmas hálózati alrendszerrel rendelkezik, amely lehetővé teszi a rendszergazdák számára, hogy egyszerű asztali gépektől kezdve komplex útválasztókig és tűzfalakig mindenféle hálózati feladatot ellássanak. Ez a cikk részletesen bemutatja a FreeBSD hálózati beállításainak különböző aspektusait, beleértve az alapkonfigurációt, fejlett hálózati megoldásokat és hibaelhárítási technikákat.
Hálózati interfészek azonosítása és alapinformációk
A FreeBSD-ben a hálózati eszközök nevei tükrözik az adott hardver típusát. Néhány gyakori példa:
em0
,igb0
: Intel hálózati kártyákre0
: Realtek hálózati kártyákbge0
: Broadcom gigabit kártyákix0
: Intel 10GbE kártyákwlan0
: Vezeték nélküli interfészeklo0
: Loopback interfész
Hálózati interfészek listázása
# Összes hálózati interfész listázása
ifconfig -l
# Részletes információk minden interfészről
ifconfig
# Egy adott interfész információi
ifconfig em0
Hardverinformációk lekérése
# Hálózati kártyák azonosítása
pciconf -lv | grep -A4 network
# Eszközillesztő modulok ellenőrzése
kldstat | grep if_
Hálózati alapkonfiguráció
A FreeBSD-ben a hálózati beállításokat a /etc/rc.conf
fájlban tárolják. Itt definiálhatjuk az interfészeket, IP-címeket, alapértelmezett átjárókat és más hálózati paramétereket.
IP-konfiguráció típusok
1. Statikus IPv4 konfiguráció
# /etc/rc.conf
ifconfig_em0="inet 192.168.1.100 netmask 255.255.255.0"
defaultrouter="192.168.1.1"
2. DHCP konfiguráció
# /etc/rc.conf
ifconfig_em0="DHCP"
3. IPv6 konfiguráció
# /etc/rc.conf
# Statikus IPv6
ifconfig_em0_ipv6="inet6 2001:db8::100 prefixlen 64"
ipv6_defaultrouter="2001:db8::1"
# Vagy SLAAC/DHCPv6
ifconfig_em0_ipv6="inet6 accept_rtadv"
Több IP-cím konfigurálása egy interfészen
# /etc/rc.conf
ifconfig_em0="inet 192.168.1.100 netmask 255.255.255.0"
ifconfig_em0_alias0="inet 192.168.1.101 netmask 255.255.255.0"
ifconfig_em0_alias1="inet 192.168.1.102 netmask 255.255.255.0"
Név feloldás konfigurálása
A /etc/resolv.conf
fájl tartalmazza a DNS beállításokat:
# /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
search myhome.local
domain myhome.local
A /etc/hosts
fájl statikus név-címfeloldást tesz lehetővé:
# /etc/hosts
127.0.0.1 localhost
192.168.1.100 myserver.myhome.local myserver
A beállítások alkalmazása újraindítás nélkül
# Egy adott interfész beállításainak alkalmazása
service netif restart em0
# Összes hálózati beállítás újraindítása
service netif restart
# Alapértelmezett átjáró újrakonfigurálása
service routing restart
Fejlett hálózati konfigurációk
VLAN konfigurálása
A VLAN-ok létrehozásához először töltse be a VLAN modult:
# VLAN modul betöltése
kldload if_vlan
Majd konfigurálja a VLAN interfészt az /etc/rc.conf
fájlban:
# /etc/rc.conf
# VLAN 100 létrehozása az em0 interfészen
vlans_em0="100"
ifconfig_em0_100="inet 192.168.100.1 netmask 255.255.255.0"
# Vagy alternatív szintaxis
cloned_interfaces="vlan100"
ifconfig_vlan100="vlan 100 vlandev em0 inet 192.168.100.1 netmask 255.255.255.0"
Hálózati bridge (híd) konfigurálása
A bridge modul betöltése:
kldload if_bridge
Bridge konfiguráció az /etc/rc.conf
fájlban:
# /etc/rc.conf
# Bridge létrehozása két interfész között
cloned_interfaces="bridge0"
ifconfig_bridge0="addm em0 addm em1 up"
ifconfig_em0="up"
ifconfig_em1="up"
# Opcionálisan IP-cím a bridge-nek
ifconfig_bridge0="inet 192.168.1.100 netmask 255.255.255.0 addm em0 addm em1 up"
Hálózati aggregáció (bonding/LACP)
A LACP (Link Aggregation Control Protocol) vagy más néven bonding/teaming lehetővé teszi több fizikai interfész összevonását egy logikai interfészbe a sávszélesség növelése vagy redundancia céljából.
# /etc/rc.conf
# LACP konfigurálása
ifconfig_em0="up"
ifconfig_em1="up"
cloned_interfaces="lagg0"
ifconfig_lagg0="laggproto lacp laggport em0 laggport em1 192.168.1.100 netmask 255.255.255.0"
WiFi konfigurálása
Vezeték nélküli hálózat konfigurálása kliens módban:
# /etc/rc.conf
# WiFi interfész konfigurálása
wlans_iwn0="wlan0"
ifconfig_wlan0="WPA DHCP"
A WiFi hálózat részleteit a /etc/wpa_supplicant.conf
fájlban kell megadni:
# /etc/wpa_supplicant.conf
network={
ssid="MyWiFiNetwork"
psk="MySecretPassword"
}
Vezeték nélküli hozzáférési pont (AP) létrehozása:
# /etc/rc.conf
wlans_iwn0="wlan0"
create_args_wlan0="wlanmode hostap"
ifconfig_wlan0="inet 192.168.2.1 netmask 255.255.255.0 ssid MyAccessPoint mode 11g channel 6"
A hostapd konfigurálása biztonságos AP-hoz:
# /etc/rc.conf
hostapd_enable="YES"
# /etc/hostapd.conf
interface=wlan0
ssid=MyAccessPoint
wpa=2
wpa_passphrase=MySuperSecretPassword
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
Útválasztás (Routing) és csomagtovábbítás
IP-továbbítás engedélyezése
Az IP-továbbítás (packet forwarding) engedélyezése az /etc/rc.conf
fájlban:
# /etc/rc.conf
gateway_enable="YES" # IPv4 forwarding
ipv6_gateway_enable="YES" # IPv6 forwarding
Statikus útvonalak hozzáadása
# /etc/rc.conf
# Statikus útvonalak
static_routes="net1 net2"
route_net1="-net 10.0.0.0/8 192.168.1.254"
route_net2="-net 172.16.0.0/16 192.168.1.253"
Útvonalak manuális hozzáadása:
# Útvonal hozzáadása
route add -net 10.0.0.0/8 192.168.1.254
# Alapértelmezett útvonal beállítása
route add default 192.168.1.1
# Útvonaltábla megjelenítése
netstat -rn
Dinamikus útválasztó protokollok
FreeBSD-n használható a FRRouting (FRR) csomag az OSPF, BGP és más útválasztó protokollok használatához:
# FRRouting telepítése
pkg install frr
# Engedélyezése rc.conf-ban
echo 'frr_enable="YES"' >> /etc/rc.conf
Hálózati szolgáltatások és eszközök
DHCP szerver konfigurálása
A ISC DHCP szerver telepítése és konfigurálása:
# DHCP szerver telepítése
pkg install isc-dhcp44-server
# Engedélyezése
echo 'dhcpd_enable="YES"' >> /etc/rc.conf
echo 'dhcpd_ifaces="em0"' >> /etc/rc.conf
Konfiguráljuk a DHCP szervert a /usr/local/etc/dhcpd.conf
fájlban:
# /usr/local/etc/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.50 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
option domain-name "myhome.local";
default-lease-time 3600;
max-lease-time 7200;
}
# Statikus címkiosztás
host myworkstation {
hardware ethernet 00:11:22:33:44:55;
fixed-address 192.168.1.10;
}
NTP kliens és szerver
A NTP (Network Time Protocol) kliens konfigurálása:
# /etc/rc.conf
ntpd_enable="YES"
ntpd_sync_on_start="YES"
Az NTP szerverek konfigurálása /etc/ntp.conf
fájlban:
# /etc/ntp.conf
server 0.freebsd.pool.ntp.org iburst
server 1.freebsd.pool.ntp.org iburst
server 2.freebsd.pool.ntp.org iburst
Network Address Translation (NAT)
A NAT beállítása PF tűzfallal:
# /etc/pf.conf
# NAT definiálása
ext_if="em0" # Külső interfész
int_if="em1" # Belső interfész
# NAT beállítása
nat on $ext_if from $int_if:network to any -> ($ext_if)
Hálózati diagnosztika és hibaelhárítás
Ping és Traceroute
A kapcsolat ellenőrzése:
# IPv4 ping
ping -c 4 192.168.1.1
# IPv6 ping
ping6 -c 4 2001:db8::1
# Útvonal követése
traceroute google.com
traceroute6 google.com
Portok és szolgáltatások vizsgálata
# Nyitott TCP portok és kapcsolatok
netstat -an -p tcp
sockstat -4l # Aktív TCP/IPv4 kapcsolatok és figyelő portok
# Szolgáltatások monitorozása
pkg install lsof
lsof -i -P # Hálózati kapcsolatok listázása
Hálózati forgalom analízise
# Csomagmonitorozás
pkg install tcpdump
tcpdump -i em0 -n
# Specifikus forgalom monitorozása
tcpdump -i em0 -n 'host 192.168.1.10 and port 80'
# Hálózati statisztikák vizsgálata
netstat -i # Interfész statisztikák
systat -ifstat # Valós idejű interfész statisztikák
Hálózati teljesítmény tesztelése
# Iperf3 telepítése
pkg install iperf3
# Szerver indítása
iperf3 -s
# Kliens teszt futtatása
iperf3 -c server_ip
IPv6 konfigurálás részletesen
IPv6 engedélyezése
# /etc/rc.conf
ipv6_activate_all_interfaces="YES"
IPv6 cím típusok
-
Statikus IPv6 cím:
# /etc/rc.conf ifconfig_em0_ipv6="inet6 2001:db8::100 prefixlen 64" ipv6_defaultrouter="2001:db8::1"
-
SLAAC (Stateless Address Autoconfiguration):
# /etc/rc.conf ifconfig_em0_ipv6="inet6 accept_rtadv" rtsold_enable="YES"
-
DHCPv6:
# /etc/rc.conf ifconfig_em0_ipv6="inet6 accept_rtadv" rtsold_flags="-a"
Router Advertisement Daemon (rtadvd)
IPv6 router advertisements küldése:
# /etc/rc.conf
rtadvd_enable="YES"
rtadvd_interfaces="em1" # Belső interfész, amin hirdetünk
Az rtadvd konfigurálása a /etc/rtadvd.conf
fájlban:
# /etc/rtadvd.conf
em1:\
:addrs#1:addr="2001:db8::":prefixlen#64:tc=ether:
Speciális hálózati beállítások
Jumpstart implementálása PPP over Ethernet (PPPoE) kapcsolatokhoz
# /etc/rc.conf
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="YES"
ppp_profile="isp"
A PPP konfiguráció a /etc/ppp/ppp.conf
fájlban:
# /etc/ppp/ppp.conf
isp:
set device PPPoE:em0
set authname username
set authkey password
set dial
set login
add default HISADDR
enable dns
MPLS konfiguráció
A Multi-Protocol Label Switching (MPLS) engedélyezése:
# /boot/loader.conf
mpls_load="YES"
# /etc/sysctl.conf
net.mpls.iflist=em0
net.mpls.forwarding=1
VXLAN konfigurálása
VXLAN (Virtual Extensible LAN) konfigurálása:
# Modul betöltése
kldload if_vxlan
# /etc/rc.conf
cloned_interfaces="vxlan0"
ifconfig_vxlan0="vxlanid 100 vxlanlocal 192.168.1.10 vxlanremote 192.168.1.20 inet 10.0.0.1 netmask 255.255.255.0"
Hálózati biztonsági beállítások
TCP/IP stack hardening
A hálózati protokoll-stack megerősítése a következő sysctl beállításokkal:
# /etc/sysctl.conf
# SYN flood védelem
net.inet.tcp.syncookies=1
# ICMP redirect letiltása
net.inet.ip.redirect=0
net.inet6.ip6.redirect=0
# Source routing letiltása
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
# ICMP broadcast echo kérések figyelmen kívül hagyása
net.inet.icmp.bmcastecho=0
Reverse path filtering
A hamis forrás IP-címek kiszűrése:
# /etc/sysctl.conf
net.inet.ip.forwarding=1
net.inet.ip.check_interface=1
Automatizálási technikák
VNET jail hálózatkezelés
VNET jails használata az izolált hálózati környezetekhez:
# /etc/jail.conf
myjail {
host.hostname = "myjail.local";
path = "/usr/jail/myjail";
vnet;
vnet.interface = "epair0b";
exec.prestart = "ifconfig epair0 create";
exec.prestart += "ifconfig epair0a up";
exec.prestart += "ifconfig bridge0 addm epair0a";
exec.prestart += "ifconfig epair0b vnet myjail";
exec.start = "/bin/sh /etc/rc";
exec.stop = "/bin/sh /etc/rc.shutdown";
exec.poststop = "ifconfig bridge0 deletem epair0a 2>/dev/null || true";
exec.poststop += "ifconfig epair0a destroy";
}
Hálózati beállítások szkriptekkel
Példa szkript hálózati interfészek beállítására:
#!/bin/sh
# network_setup.sh - Hálózati interfészek beállítása
# Paraméterek
INTERFACE=$1
IP_ADDRESS=$2
NETMASK=$3
GATEWAY=$4
# Konfiguráció
ifconfig $INTERFACE inet $IP_ADDRESS netmask $NETMASK
route add default $GATEWAY
# DNS beállítások
cat > /etc/resolv.conf << EOF
nameserver 8.8.8.8
nameserver 8.8.4.4
EOF
echo "Hálózati beállítások alkalmazva:"
ifconfig $INTERFACE
netstat -rn
Bevált gyakorlatok és ajánlások
-
Dokumentáljuk a hálózati konfigurációkat: Minden fontosabb konfigurációs fájlt kommentezzünk és dokumentáljunk.
-
Rendszeres mentés: Mentsük rendszeresen a hálózati konfigurációs fájlokat, például:
cp /etc/rc.conf /root/backup/rc.conf.$(date +%Y%m%d)
-
Különítsük el a hálózati beállításokat: Használjuk az
/etc/rc.conf.d/
könyvtárat a különböző konfigurációkhoz:# /etc/rc.conf.d/network ifconfig_em0="inet 192.168.1.100 netmask 255.255.255.0" defaultrouter="192.168.1.1"
-
Automatizáljuk a hálózati monitorozást: Állítsunk fel rendszeres ellenőrzéseket, például:
# /usr/local/bin/check_network.sh #!/bin/sh ping -c 3 192.168.1.1 > /dev/null || mail -s "Nem elérhető a gateway" admin@example.com
-
Tartsunk fenn fallback konfigurációt: Tároljunk egy egyszerű, működő konfigurációt vészhelyzet esetére.
Összefoglalás
A FreeBSD robusztus és rugalmas hálózati alrendszere számos lehetőséget kínál az egyszerű asztali gépektől a bonyolult hálózati infrastruktúrákig. Ebben a cikkben áttekintettük a hálózati interfészek konfigurálásának alapvető és haladó módszereit, az útválasztás beállítását, a különböző hálózati szolgáltatások konfigurálását, valamint a hibaelhárítási technikákat.
A FreeBSD hálózati képességeinek alapos ismerete lehetővé teszi a rendszergazdák számára, hogy hatékonyan és biztonságosan üzemeltessenek bármilyen hálózati infrastruktúrát. A megfelelő dokumentáció, automatizálás és monitorozás segít fenntartani a hálózat stabilitását és biztonságát.