-
Créer une borne Wifi avec un serveur FreeBSD
On veut transformer un serveur FreeBSD en borne Wifi (point d'accès) sécurisée, simplement.
Le serveur possède 2 interfaces réseaux (a minima)
- une ethernet (re0 pour l'exemple), configurée et connectée à internet.
- une wifi (wlan0 - l'interface logique, rtwn0 étant la carte wifi physique (realtek))Je ne vais pas détailler tout le processus, (demandez à n'importe quel modèle d'IA, il vous expliquera le pourquoi du comment), simplement vous donner des fichiers de configurations fonctionnels, avec une configuration pf un minimum sécurisée (pour éviter le bruteforce etc..).
1) Installer les programmes nécessaires:
pkg info -e hostapd >/dev/null 2>&1 || pkg ins -y hostapd
pkg info -e isc-dhcp44-server >/dev/null 2>&1 || pkg ins -y isc-dhcp44-server2) Ce qui concerne le schmilblick dans /etc/rc.conf : (ce n'est pas le fichier entier !! juste la partie point d'accès). Veillez à ne pas avoir d'instructions redondantes ou concurrentes.
ifconfig_re0="DHCP"
wlans_rtwn0="wlan0"
create_args_wlan0="wlanmode hostap"
ifconfig_wlan0="inet 172.18.19.1 netmask 255.255.255.0 ssid MonSuperWifi mode 11g channel 6"
gateway_enable="YES"
hostapd_enable="YES"
dhcpd_delay="10"
dhcpd_conf="/usr/local/etc/dhcpd.conf"
dhcpd_enable="YES"
dhcpd_ifaces="wlan0"
dhcpd_flags="-q"
pf_enable="YES
pf_rules="/etc/pf.conf"3) Le contenu du fichier /etc/hostapd.conf (le point d'accès wifi)
interface=wlan0
ssid=MonSuperWifi
hw_mode=g
channel=6
wpa=2
wpa_passphrase=SuperMotDePasse
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP4) Le fichier de configuration pour /etc/pf.conf (pour le NAT et la protection du réseau wifi)
# Définition des interfaces
ext_if = "re0" # Interface ethernet reliée à Internet
int_if = "wlan0" # Interface wifi du hotspot
# Tables pour les adresses bloquées et les limites de connexion
table <bruteforce> persist
table <conn_limit> persist
# Options de normalisation
scrub in all
# NAT pour le trafic sortant
nat on $ext_if from $int_if:network to any -> ($ext_if)
# Règles par défaut
block all
pass out quick keep state
# Autoriser le trafic entrant sur l'interface WiFi
pass in on $int_if keep state
# Protection contre les attaques par force brute
block quick from <bruteforce>
# Limiter les nouvelles connexions
pass in on $int_if proto tcp to port { 22 80 443 } flags S/SA \
keep state (max-src-conn 100, max-src-conn-rate 15/5, \
overload <conn_limit> flush global)
# Bloquer les adresses qui dépassent la limite de connexion
block quick from <conn_limit>
# Autoriser le trafic DNS
pass out proto udp to port 53 keep state
# Journalisation
pass log (all)5) Le contenu du fichier /usr/local/etc/dhcpd.conf (pour le serveur DHCP qui fournira les configurations IP des clients connectés au wifi)
authoritative;
default-lease-time 600;
max-lease-time 7200;
lease-file-name "/var/db/dhcpd/dhcpd.leases";
subnet 172.18.19.0 netmask 255.255.255.0 {
interface wlan0;
range 172.18.19.100 192.168.1.200;
option routers 172.18.19.1;
option domain-name-servers 8.8.8.8, 8.8.4.4;
}6) Activer le routage des paquets :
sysctl net.inet.ip.forwarding
sysctl net.inet.ip.forwarding=1
echo "net.inet.ip.forwarding=1" >> /etc/sysctl.conf7) Lancer les services
service netif restart ; sleep 2
service routing restart ; sleep 2
service hostapd restart ; sleep 2
service isc-dhcpd restart
service pf restart
Tags : wifi, borne, freebsd
-
Commentaires