Cum de a ridica un punct plin de acces Wi-Fi la 7 - instrucțiuni debian și tutoriale - server de pe forum

Ridicați de grad înalt punct de acces Wi-Fi pe Debian 7
Un pic de fond.
Am participat la organizarea punctului de acces (denumit în continuare pur și simplu TD) pentru o lungă perioadă de timp, iar la router acasă nu a fost Wi-Fi. Nu a fost, desigur, ideea de a cumpăra dispozitiv „fantezie“, ca să spunem așa, „în minte“ și să uitați. călătorie de cumpărături și etc Nu am fost de succes - Pozar I kitayschinu, și pe modele de top nu arata chiar. Toad nu este permisă.
Apoi am venit cu o altă idee. La urma urmei, am o WiFi PCI-card și, în cazul în care pot lua WiFi, atunci trebuie să-l distribuie. Fără ezitare, Poshukayte fundul butoiului, și am dovedit a fi la dispoziția 2 carduri:

Nu voi descrie toate etapele din întruchiparea vieții conceput. de căutare pe Internet pentru fraza „Crearea unui punct de acces„, a dat o mulțime de informații de la care am încercat aproape totul.
Primul apel a fost o încercare de a crea un TD pe Windows 7 (XP este depășit deja, după cum se pare, nu poate acest lucru).
Rezultatul în final lamentabil. semnal slab, trei metri de conexiunea TD a fost pierdut. De multe ori fără nici un motiv am renunțat la rețea.

A doua abordare, mai mult succes, a fost o încercare de a crea un TD pe Debian 7.
Linia de fund: Semnalul nu este pierdut în întreaga apartament. Rețeaua a fost stabilă. Internetul a fost disponibil. Ce altceva ar trebui să fie ceva?
Dar eu nu ma lovit această metodă. Internetul este, iar resursele rețelei locale nu sunt direct accesibile, deoarece TD a avut propria sa rețea a fost în spatele NAT. tulburare.

Un pic de teorie.
compatibilitatea hardware
După cum sa dovedit, nu fiecare carte Wi-Fi este capabil să lucreze în modul de master, și anume ca un TD. noname chineză imediat a fost repartizat pentru a testa placa de rețea din cauza aspectului greu de definit și antennki papirus. Dar DWL-G550 și privi solide în aparență, și, de fapt, a avut proprietățile necesare - a fost în măsură să distribuie Wi-Fi.

Și cum pentru a determina echipamentele deja instalate pentru lucru în AP (Acsses punct English -. Access Point)? Este simplu.
Du-te la consola (la noi Debian, întâmplător, de asemenea, pentru Ubuntu) și introduceți comanda:

$ Lspci -vnn | grep Ethernet
sau #
$ Lspci -vnn | grep fără fir
# Sau USB adaptor
$ Lsusb -vnn | grep fără fir

carte I este definită după cum urmează:

lspci -vnn | grep fără fir
Controler Ethernet 0a.0: 00 # 91, 0200 # 93;: Atheros Communications Inc. AR5212 / AR5213 adaptor de rețea fără fir # 91; 168c: 0,013 # 93; (Rev 01)
Subsistemul: D-Link System Inc D-Link DWL-G550 AirPremier adaptor wireless PCI # 91; 1186: 3a18 # 93;

Aparatul știu dacă există un driver pentru a viziona:

dmesg | grep Atheros

Am driver-ul, după cum urmează:

dmesg | grep Atheros
# 91; 6.671101 # 93; phy0 ath5k: cip Atheros AR2414 găsit (MAC: 0x79, PHY: 0x45)


ath5k este șoferul nostru. Apoi vom merge la wireless.kernel.org de resurse (dispozitivele utilizatorilor → Dispozitive → PCI ... în lista de lista de dispozitive localizați și selectați ath5k.) Și afla ce funcționează pentru dispozitivul nostru și ceea ce nu este. Apoi, trebuie să se refere la tabelul «listă ID PCI acceptată în prezent cu raportul de stare respectiv pe bază-testare, astfel cum sunt definite mai sus» care, în ID-ul de semnificație PCI (ceea ce este scris între paranteze în producția de lspci -vnn | grep wireless, T. și anume în acest exemplu - 168c :. 0,013) știu că adaptorul poate fi, și ceea ce nu este. Dacă observați că pentru un motiv oarecare driver-ul nu acceptă modul AP - nu dispera. În unele cazuri, cum ar fi în cazul adaptorului Atheros, puteți utiliza un alt conducător auto, astfel madwifi, care este probabil să fie funcțional în modul AP, dar are un număr de caracteristici în ton cu hostapd.

Instalarea și configurarea software-ului.
Vom avea nevoie de un minim de pachete:

apt-get install wireless-tools pod-utils hostapd IW

Acum trebuie să configurați interfețele de rețea:

# Acest fișier descrie interfețele de rețea disponibile pe sistemul dumneavoastră
# Și cum să le activeze. Pentru mai multe informații, consultați interfețele (5).

# Interfața de rețea loopback
auto lo
iface lo inet loopback

eth0 auto
de utilizare inet IFACE eth0

# Interfață fără fir
IFACE manuală wlan0 INET
pre-up IW dev wlan0 del
pre-up IW interfață PHY phy0 adăuga tip __ap wlan0

# Bridge.
IFACE br0 inet statică
adresa 192.168.1.122
192.168.1.0 rețea
netmask 255.255.255.0
difuzat 192.168.1.255
gateway-ul 192.168.1.1
-nameserverele 192.168.1.1 dns
bridge_ports eth0 wlan0


Dacă setați această afacere la distanță, fii atent, pentru că dacă greșelile trebuie să se agațe de monitor de server, tastatura și corecte după repornirea serverului.

Acum setați hostapd, care „tăurași“ harta Wi-Fi.
Specificați calea către config

# valori prestabilite pentru hostapd scriptul de inițializare
#
# A se vedea /usr/share/doc/hostapd/README.Debian pentru informații despre alternative
# Metode de gestionare a hostapd.
#
# Decomentați și setați DAEMON_CONF la calea absolută a unei configurații hostapd
# Fișiere și hostapd va fi pornit în timpul pornirii sistemului. O configurație exemplu
# Fișiere pot fi găsite la /usr/share/doc/hostapd/examples/hostapd.conf.gz
#
DAEMON_CONF = "/ etc / hostapd / hostapd.conf"

# Opțiuni suplimentare Daemon care se anexează la hostapd comanda: -
# -D arată mai multe mesaje de depanare (-dD pentru chiar mai mult)
# -K includ date cheie în mesaje de depanare
# -t includ marcaje temporale în unele mesaje de depanare
#
# Rețineți că -B (modul daemon) și -P (pid) opțiuni sunt în mod automat
# Configurata de script-ul init.d și nu trebuie să fie adăugate la DAEMON_OPTS.
#
# DAEMON_OPTS = ""

# Interfață de carduri noastre
interfață = wlan0
# Numele podului
pod = br0
# Numele driver
conducător auto = nl80211
# Codul de țară
COUNTRY_CODE = RU
# Porniți internaționale
# extensii de roaming
ieee80211d = 1
ore de lucru #
hw_mode = g
# Numărul canalului
canal = 11
# Jurnale de toate modulele
logger_syslog = -1
numai # Informații
logger_syslog_level = 2
# Jurnale de toate modulele
logger_stdout = -1
numai # Informații
logger_stdout_level = 2
#
dump_file = / tmp / hostapd.dump
#
ctrl_interface = / var / run / hostapd
#
ctrl_interface_group = 0
# Numele TD nostru
ssid = Wlan meu
# Dacă aveți nevoie pentru a ascunde definiția
# Numele TD, set 1
ignore_broadcast_ssid = 0
#
auth_algs = 3
#
eapol_key_index_workaround = 0
#
eap_server = 0
#
wpa = 3
#
rsn_pairwise = CCMP
# Parola între 8 și 63 de caractere
wpa_passphrase = My_Big_Secret
wpa_key_mgmt = WPA-PSK
# Parte opțională
# Permite filtrarea de MAC, este o opțiune opțională
macaddr_acl = 1
# Specificați fișierul cu o listă de MAC permise
# Conectați-vă la AP nostru
# poate doar clienții din listă
accept_mac_file = / etc / hostapd / accepta
#

De fapt, fișier de setări hostapd.conf poate fi mult mai mult și în moduri diferite.
În ceea ce am putut, am adus parametrii de bază și setările din tabel.
Uită-te sub spoiler.
jefuitor

valoarea prestabilită

numărul canalului (IEEE 802.11). Trebuie remarcat faptul că unii șoferi (de exemplu, madwifi) nu utilizează valoarea hostapd în cazul în care canalul trebuie să fie setat în mod individual prin iwconfig de utilitate.

macaddr_acl = 0
accept_mac_file = / etc / hostapd.accept
deny_mac_file = / etc / hostapd.deny

IEEE 802.11 descrie doi algoritmi de autentificare. hostapd poate lucra cu ambele. „Open System» (Open sistem de autentificare) ar trebui să fie utilizat cu IEEE 802.1x. valori:
0 = Sistem Deschis de autentificare
1 = Shared Key Authentication (WEP necesar)

Trimite un câmp gol în mesajele de difuzare SSID-ul și pentru a ignora solicitări din partea clienților care solicită numele AP. Ie faptul că routere Wi-Fi este numit un „punct de acces ascuns“ - clientul trebuie să cunoască SSID-ul pentru a se conecta.
1 = trimite o (lungime = 0) SSID gol și ignorați cererile de sondă pentru numele APs.
2 = clar SSID-ul (ASCII 0), dar păstrează lungimea inițială a câmpului (necesare pentru unii clienți care nu acceptă un SSID gol) și să ignore cererile de sondă.

Limita stație client inactivitate. În cazul în care clientul nu transmite în timpul specificat în ap_max_inactivity (secunde), este trimis la un cadru de date gol la client pentru a verifica „E încă? Disponibil“ (de exemplu, clientul poate părăsi aria de acoperire AP). În cazul în care cererea a fost pentru un răspuns (ACK), stația de client este deconectat (prima deassotsiiruetsya apoi deautentifitsiruetsya). Această funcție este utilizată pentru a șterge tabelul stațiilor active de pe înregistrările vechi ( „mort“).

Opțiuni WPA. De notat că această opțiune este necesară pentru a forța AP să solicite clienților de autentificare WPA. (WPA-PSK și WPA-RADIUS / EAP). Pentru WPA-PSK, trebuie să specificați wpa_psk sau wpa_passphrase și activați WPA-PSK în wpa_key_mgmt. Pentru WPA-RADIUS / EAP, dozhen fi configurat ieee8021x (fără chei WEP dinamice) trebuie să fie configurat server RADIUS și este inclus în wpa_key_mgmt WPA-EAP. Valorile posibile sunt:
0 = fără WPA / WPA2 (nu este recomandat)
1 = WPA (nu este recomandat)
2 = IEEE 802.11i / RSN (WPA2) - Astăzi este cel mai sigur.
3 = ambele activate WPA, WPA2 și

n / a
n / a
/etc/hostapd.wpa_psk

Listă de algoritmi de gestionare a cheilor acceptate. (WPA-PSK, WPA-EAP, sau ambele). Probleme razdelyutsya intrări. Puteți utiliza WPA-PSK-SHA256 și WPA-EAP-SHA256 pentru # algoritmi mai persistente bazate pe SHA256.

Setare acceptat algoritmi de criptare. Lista separată cu spațiu de algoritmi:
CCMP = AES în modul Contor cu CBC-MAC [RFC 3610, IEEE 802.11i / D7.0]
TKIP = Temporal Key Integrity Protocol [IEEE 802.11i / D7.0]

criptare Împerecheat pentru WPA (v1) (implicit: TKIP) wpa_pairwise = TKIP CCMP
algoritmi de criptare pentru Paired RSN / WPA2 (valoarea implicită este wpa_pairwise) rsn_pairwise = CCMP

Serviciul hostapd repornire
# 91; bine # 93; Oprirea avansată IEEE 802.11 de management: hostapd.
# 91; fail # 93; Pornind de avansate de management IEEE 802.11: hostapd nu a reușit!


tasta Run

hostapd -d /etc/hostapd/hostapd.conf
aleatoriu: Încercarea de a citi entropie de la / dev / aleatoare
fișier de configurare: /etc/hostapd/hostapd.conf
WPA-PSK activat, dar PSK sau nu este configurată expresie de acces.
1 erori găsite în fișierul de configurare „/etc/hostapd/hostapd.conf“


Sa dovedit, linia de sosire wpa_passphrase uitat parola.

Configurarea iptables și redirecționarea ip
În continuare, avem nevoie pentru a configura mersul pe jos toate pachetele de rețea între interfețe în direcția cea bună. Pentru a face acest lucru, creați un fișier de reguli:

# Internet (schimba interfata Internet)
Inet_Interface = "eth0"

# Lan (schimba interfața de rețea a podului)
Lan_Interface = "br0"

# Lo (intefeys locale - loop)
Lo_Interface = "lo"

# Descrie calea către iptables
IPT = "/ sbin / iptables"

# Clar regulile actuale (dacă aveți brusc unele reguli)

$ IPT -F
$ IPT -t nat -F
$ IPT -t mangle -F

$ IPT -X
$ IPT -t nat -X
$ IPT -t mangle -X

# Politica implicită

$ IPT -P INPUT DROP
$ IPT -P FORWARD DROP
$ IPT -P IEȘIRE DROP

# Creați un lanț pentru procesarea pachetului greșit.
# bad_packets

bad_packets $ IPT -N

$ IPT -A bad_packets -p tcp --tcp-steaguri SYN, ACK SYN, ACK \
-m de stat --state -j REJECT NOU --reject-cu-tcp resetare
$ IPT -A bad_packets tcp -p. --syn -m state --state NOU \
-j LOG --log-prefix "Nou nu syn:"
$ IPT -A bad_packets tcp -p. --syn -m state --state NEW -j DROP

# Creați lanț de intrare (de pe Internet), conexiunile TCP.
# tcp_p
$ IPT N tcp_p

# De exemplu, pentru a permite altora să se conecteze la gateway-ul nostru de pe Internet pentru ssh:
## ssh = "22"
## ssh_ip_allowed = "0/0"
## $ IPT -A tcp_p -p tcp -s $ ssh_ip_allowed --dport $ ssh -j ACCEPT

$ IPT -A tcp_p -p tcp -s 0/0 -j DROP

# Creați lanț de intrare conexiuni UDP (de pe Internet).
# udp_p
$ IPT N udp_p

$ IPT -A udp_p -p udp -s 0/0 -j DROP

# Creați lanț de intrare (de pe Internet) ICMP conexiuni.
# icmp_p
$ IPT N icmp_p

# Permiteți „ping“ este gateway-ul nostru de pe Internet:

$ IPT -A icmp_p -p icmp -s 0/0 --icmp-tip 8 -j ACCEPT
$ IPT -A icmp_p -p icmp -s 0/0 --icmp de tip 11 -j ACCEPT

$ IPT -A icmp_p -p icmp -s 0/0 -j DROP

$ IPT -A INPUT -p tcp -J bad_packets

$ IPT -A INPUT -p toate $ Lan_Interface -j -i ACCEPT
$ IPT -A INPUT -p toate $ Lo_Interface -j -i ACCEPT

$ IPT -A INPUT -p stare toate $ Inet_Interface -m -I --state \
ESTABLISHED, RELATED -j ACCEPT
$ IPT -A INPUT -p tcp $ Inet_Interface -j -I tcp_p
$ IPT -A INPUT -p udp $ Inet_Interface -j -I udp_p
$ IPT -A INPUT -p icmp $ Inet_Interface -j -I icmp_p

$ IPT -A FORWARD -p bad_packets tcp -J

$ IPT -A FORWARD -p toate $ Lan_Interface -j -i ACCEPT
$ IPT -A FORWARD -p toate $ Lo_Interface -j -i ACCEPT
$ IPT -A FORWARD -p toate $ Inet_Interface -m -i de stat \
--starea ESTABLISHED, RELATED -j ACCEPT

$ IPT -A OUTPUT -p tcp -j bad_packets

$ IPT -A OUTPUT -p toate o- $ Inet_Interface -j ACCEPT
$ IPT -A OUTPUT -p toate o- $ Lan_Interface -j ACCEPT
$ IPT -A OUTPUT -p toate o- $ Lo_Interface -j ACCEPT

POSTROUTING # lanț (tabelul nat)

$ IPT -t nat -A POSTROUTING o- $ Inet_Interface -j MASQUERADE

# Turn de redirecționare IPv4.

echo "1"> / proc / sys / net / ipv4 / ip_forward

echo "Firewall a început"


Păstrați și faceți fișierul executabil:

chmod + x /etc/network/if-up.d/firewall