Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Bezprzewodowy router na Debianie — wersja kompletna cz. I

Ale po co?

Ostatnio wpadł mi w ręce komputer w formacie Mini-ITX. Małe wymiary i minimalne zużycie prądu (18 W podczas obciążenia) skłoniły mnie do wykorzystania go jako domowy router bezprzewodowy. No ale po co się w to bawić skoro niezły router WI-FI można kupić za niewielkie pieniądze? Bo tak ;-)
W sieci można znaleźć masę poradników jak wykonać tytułowe zadanie ale moim zdaniem żaden nie jest kompletny i dlatego postanowiłem opisać cały proces od początku do końca.

Czy jest kierownik?

Kierownikiem tego interesu mianowałem Debiana. Kto zajmuje się siecią ten wie, że routery są kluczowym elementem każdej infrastruktury sieciowej bo jak nie działa router to nie działa cała sieć. Na co dzień w roli routerów stosuję OpenBSD ale niestety karta WI-FI jaką wykorzystałem (TP-LINK TL-WN722N USB) jest słabo wspierana przez ten system.
No więc jak Linux to tylko Debian. Jak Debian to wersja stabilna. Do repozytorium stabilnego Debiana wprowadzane są tylko poprawki bezpieczeństwa co zmniejsza prawdopodobieństwo, że po jakiejś aktualizacji coś przestanie działać.
Takie podejście jest bardzo praktyczne lecz w tym przypadku sprawiło mi mały kłopot, bowiem obsługa kart TP-LINK TL-WN722N pojawiła się w jądrze Debiana Wheezy, czyli testing co jak dla mnie wyklucza zastosowanie w roli routera.

I co teraz?

Wyjścia z sytuacji są dwa:
1. Kompilacja własnego kernela. Jako zagorzały fan (ale nie fanatyk) OpenBSD uważam, że jeśli nie jesteś developerem systemu, nie powinieneś brać się za kompilację jądra lub programów bo prędzej czy później okaże się to celnym strzałem w stopę ;-)
2. Wykorzystanie backportów.
Jak dla mnie kompilacja odpada, więc wybieram backporty.

Wymówka pierwsza

Chociaż opis miał być kompletny, to jednak proces instalacji systemu pominąłem, ponieważ wyszedłem z założenia, że jest to na tyle proste, że nie warto tego opisywać.

No to zaczynamy!

W pliku /etc/apt/sources.list dopisujemy repozytorium backportów:deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-freeI instalujemy jądro i niezbędne oprogramowanie:aptitude updateaptitude -t squeeze-backports install linux-image-3.2.0-0.bpo.4-486 firmware-atherosOczywiście jeśli Twoja karta nie bazuje na chipsecie Atherosa, zamiast firmware-atheros wpisz właściwą nazwę producenta.
Więcej nie będziemy korzystać z backportów, więc możemy skasować wcześniejszy dopisek i kolejny razodświeżamy repozytoria:aptitude updateHostapd jest programem kontrolującym pracę karty WI-FI w trybie punktu dostępu.aptitude install hostapdTworzymy jego plik konfiguracyjnynano /etc/hostapd/hostapd.confi wklejamy zawartość tego pliku.
W pliku /etc/default/hostapd dopisujemy:DAEMON_CONF="/etc/hostapd/hostapd.conf"Ponieważ obsługa karty pojawiła się już w systemie, czas na jej konfigurację. W pliku /etc/network/interfaces dopisujemy sekcję:auto wlan0iface wlan0 inet static address 192.168.20.1 netmask 255.255.255.0 network 192.168.20.0 broadcast 192.168.20.255Adresy ip musisz wpisać właściwe Twojej sieci.

Żeby nie bawić się w ręczne wpisywanie adresów ip w komputerach w sieci lokalnej, warto zainstalować serwer DHCP:aptitude install isc-dhcp-serverEdytujemy jago plik konfiguracyjny /etc/dhcp/dhcpd.conf i wklejamy zawartość pliku.
Jeszcze tylko dopisujemy do pliku /etc/default/isc-dhcp-server:INTERFACES="wlan0"i konfiguracja DHCP zakończona.
Żeby nasz router mógł przekazywać pakiety do sieci, należy w jądrze włączyć tę opcję. Najprościej w pliku /etc/sysctl.conf odszukać linijkę:#net.ipv4.ip_forward=1i skasować #.
Tak radzi większość internetowych tutoriali, jednak poprawny (zgodny z dokumentacją) sposób modyfikacji ustawień jądra polega na utworzeniu pliku z rozszerzeniem .conf w folderze /etc/sysctl.d/nano /etc/sysctl.d/local.confnet.ipv4.ip_forward=1Takie podejście znacznie ułatwia cofnięcie się do ustawień "fabrycznych" jeśli za bardzo namieszamy.
Teraz już tylko reboot i włączenie funkcji NAT przez wpisanie w konsoli po restarcie:iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o eth0 -j MASQUERADE

Wymówka druga

Tekst pisałem "z palca" więc gdyby okazało się, że jednak czegoś brakuje, proszę o informację a postaram się uzupełnić.

A w kolejnej części opiszę jak nieco zabezpieczyć nasz router i napisać dobry skrypt firewalla. 

linux

Komentarze

0 nowych
alucosoftware   7 #1 16.03.2013 15:41

Ok :)

Popraw to zdanie (dla potomnych i Google): "Stabilny Debian wprowadza do repozytorium pakietów tylko poprawki bezpieczeństwa co daje nam większą pewność, że po jakiejś aktualizacji coś przestanie działać."

Autor edytował komentarz.
parranoya   8 #2 16.03.2013 16:56

@alucosoftware
Może być? Czy chodziło Ci o coś innego?

alucosoftware   7 #3 16.03.2013 17:22

Dokładnie tak. Podoba mi się wpis (oraz poprzednie). Bardzo treściwe i przydatne.

okokok   12 #4 16.03.2013 18:12

Fajnie i treściwie napisane. Mógłbyś coś więcej o tej płytce napisać? Ile za nią dałeś? Co z obudową i zasilaczem?

okokok   12 #5 16.03.2013 18:14

Mógłbyś jeszcze coś dodać nt. konfiguracji samej karty do pracy w trybie AP.

parranoya   8 #6 16.03.2013 19:07

@okokok
Dodałem w komentarzach (w zewnętrznym pliku) szczegóły konfiguracji karty w trybie AP.
Komputer kupiłem kompletny w obudowie z zasilaczem zewnętrznym za 100 zł. Raczej leciwa konstrukcja z procesorem VIA 800 MHz ale do tego celu wystarcza aż nadto. Zastanawiam się czy nie zejść jeszcze niżej z poborem energii zastępując go Raspberry Pi. Ale przedtem musiałbym go kupić albo pożyczyć go skądś do testów :-) żeby sprawdzić czy sobie poradzi.

okokok   12 #7 16.03.2013 19:10

parranoya, z tym RPi to byłby fajny opis :) Już od jakiegoś czasu się przymierzam do zakupu i przerobienia na router.

okokok   12 #9 16.03.2013 19:12

sposób uwierzytelnienia?

  #10 16.03.2013 22:27

Z pliku:
# sposób autoryzacji
# 0 autryzacja otwarta
# 1 za pomocą współdzielonego klucza
auth_algs=1
[...]
wpa_passphrase=hasło-dostępu-do-sieci


Po edycji /etc/sysctl.conf każesz zrestartować system.
Po co?
sysctl -p

  #11 16.03.2013 22:41

18 W podczas obciążenia to mało?
Tyle pobiera jeden z moich laptopów (większość w okolicach 30 W). Mój netbook jest znacznie mniej prądożerny.
Nie lepiej zainwestować w prawdziwy router za 100 zł, który nie pobiera nawet 5 W?
W tej cenie można już kupić coś na czym pójdzie DD-WRT, chociażby D-Link DIR-615.
Konfiguracja i zarządzanie tym jest o niebo lepsze niż gołym Debianem.
Plusem Debiana jest natomiast większa możliwość konfiguracji - np. kilka kluczy PSK dla wybranych adresów MAC - zainteresowanych odsyłam do: /usr/share/doc/hostapd/examples/hostapd.wpa_psk
Na starych komputerach ITX można zapomnieć o Gigabitowym Ethernecie a nowe kosztują wielokrotnie więcej od routera. Poza tym zazwyczaj trzeba dokupić switch czy adapter WiFi (ale nie byle jaki - najlepiej na PCI/PCIe/PCMCIA/CardBus/Express Card, bo te na USB zazwyczaj nie obsługują trybu AP nie mówiąc już o bardziej zaawansowanych rzeczach - adapter autora jest tutaj wyjątkiem).
Oczywiście można całość potraktować jako pewne doświadczenie w posługiwaniu się Linuksem, ale tak naprawdę na niewiele się to nam przyda. Taka sztuka dla sztuki.

  #12 17.03.2013 00:44

@okokok | 16.03.2013 19:12
"sposób uwierzytelnienia?"

Czego nie rozumiesz w?:
"wpa=2
wpa_passphrase=hasło-dostępu-do-sieci"

okokok   12 #13 17.03.2013 02:43

Anonim, w pliku było sposób autentyfikacji(?), więc odpisałem że to raczej sposób uwierzytelnienia.

parranoya   8 #14 17.03.2013 10:21

@Anonim
"Tyle pobiera jeden z moich laptopów (większość w okolicach 30 W)"
No tak tylko 65% różnicy. Rzeczywiście niewiele.
"Nie lepiej zainwestować w prawdziwy router za 100 zł, który nie pobiera nawet 5 W?"
Przecież na samym początku napisałem dlaczego nie.
"Na starych komputerach ITX można zapomnieć o Gigabitowym Ethernecie a nowe kosztują wielokrotnie więcej od routera."
A po co w routerze wifi gigabitowy ethernet? Poza tym ten komputer ma dwa złącza ethernet w tym jedno gigabitowe.

Zresztą dobra, jesteś taki mądry, że przekonałeś mnie. Idę do sklepu kupić nowego laptopa i zainstaluję na nim DD-WRT :-))

okokok   12 #15 17.03.2013 13:47

Faktycznie, laptop z DD-WRT sprawdzi się dużo lepiej :)

  #16 17.03.2013 15:22

@parranoya | 17.03.2013 10:21
"No tak tylko 65% różnicy. Rzeczywiście niewiele."
Chodzi o to, że laptop/netbook, który ma włączony Bluetooth, ekran LCD z podświetlaniem matrycy, układ graficzny, dźwiękowy, ma uruchomiony system ze środowiskiem graficznym może być mniej (lub równie) prądożerny od tego komputera cechującego się "minimalnym zużyciem prądu".
18 W (VIA EPIA) vs 2-3 W (DIR-615) to dla mnie kolosalna różnica.

"Przecież na samym początku napisałem dlaczego nie."
"Bo tak ;-)" to bardzo kiepski powód. Oczywiście wybór należy do Ciebie, ale ja sugeruję, żebyś go przemyślał.

"Zresztą dobra, jesteś taki mądry, że przekonałeś mnie. Idę do sklepu kupić nowego laptopa i zainstaluję na nim DD-WRT :-))"
Ale ja nie polecam laptopa (chociaż spotkałem się z sytuacją gdy ktoś wykorzystał tak starego iBooka - plus to darmowy "zasilacz UPS" w postaci baterii) tylko normalny router pobierający około 2-3 W. VIA EPIA to naprawdę kiepskie rozwiązanie na router w dzisiejszych czasach.

Kiedyś również bawiłem się w konfigurację podobną do twojej (Debian, hostapd, isc-dhcp-server, madwifi - ath5k/ath9k jeszcze nie było, bridge, również VIA EPIA ale VIA MII 12000G z adapterem Cardbus), może nieco bardziej złożoną (radius), ale dałem sobie z tym spokój.

parranoya   8 #17 17.03.2013 22:12

@anonim
W części trzeciej opiszę filtrowanie www a na to nie pozwala żaden domowy router. I tak naprawdę to jest prawdziwy powód całej zabawy.
Napisałem 'bo tak' bo przypuszczałem, że ktoś będzie się czepiał i nie pomyliłem się. Zawsze się ktoś czepia :-)

  #18 18.03.2013 03:57

@parranoya | 17.03.2013 22:12
Istnieje możliwość zainstalowana Squid/DansGuardian na Tomato.
http://tomatousb.org/forum/t-305093/snort-and-dansguardian-on-tomatousb

Dystrybucja PacketProtector działająca na ASUS WL-500g, Linksys WRTSL54GS czy WRT350N również umożliwiała instalację DansGuardian.
http://packetprotector.org/compare.html

Gorąco polecam router Asus RT-N16 ze względu na bardzo dobre wyposażenie: Broadcom BCM4716/BCM4718A 480-533 MHz, 32 MB Flash, 128 MB RAM, 3 x RP-SMA, 2 x USB. Można na nim zainstalować m. in. DD-WRT, Tomato oraz DebWrt.

4Tmx   2 #19 18.03.2013 09:53

Ja polecam pfSense na w/w hardware.

mati75   6 #20 18.03.2013 16:21

Myślę, że lepszym rozwiązaniem byłaby instalacji Debiana 7.0 niż zabawa w 6.0.

parranoya   8 #21 18.03.2013 18:30

@mati75
Debian 7.0? Pierwsze słyszę. A skąd go wziąć? :-))

  #22 18.03.2013 19:13

@parranoya | 18.03.2013 18:30#21
"Debian 7.0? Pierwsze słyszę. A skąd go wziąć? :-))"
O ile generalnie nie polecałbym testowej/niestabilnej wersji Debiana na routeroserwer to w przypadku gdy doszło już do zamrożenia gałęzi 7.0 Wheezy w połowie zeszłego roku tak naprawdę niewiele może się już wydarzyć. Chodzi mi o to, że instalacja obecnego testowego "Wheezy" niewiele by się różniła od instalacji stabilnego "Wheezy", który pewnie zostanie wydany jeszcze w tym roku. To co innego niż jechanie na wersji testowej przez cały czas.
Moją aktualną opinię o Debianie na router znasz z moich powyższych komentarzy, więc nie będę się tutaj powtarzał.

alucosoftware   7 #23 18.03.2013 23:36

@Anonim
Jeśli mogę, lepiej jest wykorzystać to co...

"wpadnie w ręce"

niż szukać, zamawiać, kupować, wydawać. Tym też, zapewne, kierował się autor wpisu. Chęcią niekonwencjonalnego wykorzystania płytki ITX, która "zmaterializowała się" pewnego dnia na stole kuchennym (lub innym...) ;)

  #24 05.04.2013 12:19

Podoba mi się ten artykuł! Sam niedawno zacząłem zabawę z Debianem. Linux jako router sieci bezprzewodowej - ekstraklasa! Przepraszam, ale jednej rzeczy się "czepię" ;) Wpis:
iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o eth0 -j MASQUERADE
świadczy o tym, że Internet do komputera jest dostarczany z podsieci o wiadomym adresie, masce 16-bitowej, przez interfejs eth0. Dla laika może to nie być jasne. Przydało by się kilka słów wyjaśnienia. Jeśli ktoś ma Internet z innego źródła (z innej podsieci, przez dhcp, PPPoA, itd) to udostępnianie Internetu może nie zadziałać. W sumie to wystarczy trochę prostszy zapis:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
bez podawania jakichkolwiek adresów, z zaznaczeniem, że w miejsce eth0 należy wstawić interfejs odpowiedni dla konfiguracji użytkownika.
Poza tym regułka ta nie będzie działać po restarcie systemu, dlatego można ją wstawić do pliku rc.local (wiem, że jest w pliku firewall, ale to w drugiej częśći ;) )
Serdecznie pozdrawiam!!!

  #25 28.04.2013 12:55

@parranoya
Ta strona jest dla takich osób jak ja, czyli zaczynający przygode z linxem. Testuje wszystko po kolei:)
i myśle, że wkradł się mały błąd w pliku dhcpd.conf jest za dużo o jedną " } "
pozdr

parranoya   8 #26 29.04.2013 20:36

@p74
Masz rację. Poprawione.

  #27 26.05.2013 13:03

hmm, no dobra.... to teraz router na Debianie 7.0 Zwykły, "standardowy" na kabelku. To co mi działało na 6.0 na 7.0 nie chce :/

  #28 28.04.2014 14:40

Cześć mam problem ze zrobieniem ap na debianie. Mam wszystko postawione, widzi mi sieć wifi łącze się z nią ale nie mam neta. eth0 daje neta na eth1 i po kabelku net jest ale nie chce dać na wlan0. Gdzie mogłem popełnić błąd? Pozdrawiam

parranoya   8 #29 28.04.2014 21:45

@Anonimus
A zrobiłeś "dziurę" w firewallu dla połączeń przychodzących z wifi? A może w laptopie masz adresy ip przypisane na stałe?

  #30 29.04.2014 09:21

Tzn. Nie mam na stałe bo sprawdzałem na kilku i na kilku nie ma neta przy wi-fi. Męczę się z tym przez tydzień i nie mam już pomysłu. W jaki sposób zrobić tą "dziurę" ?

parranoya   8 #31 29.04.2014 17:02

Wyłącz firewall i wtedy sprawdź. Nie pomogę Ci na odległość bo za dużo niewiadomych. Logi sprawdzałeś? Najczęściej tam można znaleźć rozwiązanie.

  #32 28.08.2014 10:25

@Anonim (niezalogowany): 128MB RAM? Na pewno wystarczy do poważnych zastosowań, szczególnie jak uruchomisz na tym DansGuardian+ClamAV+Snorta. [sarkazm off]

pocolog   11 #33 13.10.2014 15:33

@parranoya: literowka w tekscie:

aptitude install ho"p"stapd

Autor edytował komentarz.
parranoya   8 #34 13.10.2014 17:34

@pocolog: Dzięki, poprawione.

  #35 14.10.2014 21:10

@parranoya: Rowniez dzieki bo naprowadziles mnie na kilka tematow przy moim domowym serwerku ;) niestety utknalem na probie polaczenia win7 do ap z debianem i chyba bede musial zalozyc jakis temat na forum jesli sam tego nie rozgryze

parranoya   8 #36 14.10.2014 22:23

@Anonim (niezalogowany): a proszę bardzo :-)