Blog (22)
Komentarze (997)
Recenzje (0)
@parranoyaBezprzewodowy router na Debianie - wersja kompletna cz. III

Bezprzewodowy router na Debianie - wersja kompletna cz. III

23.04.2013 23:23, aktualizacja: 10.05.2013 18:38

W poprzednich wpisach cz. 1 i cz. 2 opisałem jak własnymi siłami uruchomić bezprzewodowy router oparty na Debianie. Wpisy były dosyć szczegółowe - uruchomiony w ten sposób router działa bardzo dobrze ale zawsze można jeszcze coś poprawić ;‑)

Monitorowanie połączeń

Standardowe jądro Debiana skompilowane jest bez obsługi NAT (ip_masquerade). Działający w naszym przypadku NAT jest zasługą iptables, który obsługuje maskaradę (ipt_masquerade).

No dobra, po co to piszę skoro wszystko działa jak należy? Okazuje się, że jednak nie wszystko działa. Skoro mamy router to niezbędną sprawą jest możliwość sprawdzenia nawiązanych połączeń przez komputery z naszej sieci LAN. No to sprawdźmy:

[code=]# netstat -M[/code]

i otrzymujemy brzydki komunikat:

netstat: no support for `ip_masquerade' on this system

Krótkie rozeznanie w temacie i okazuje się, że aby włączyć ten "ficzer" konieczne jest łatanie i kompilacja kernela. Ci, co czytali moje wcześniejsze wpisy wiedzą jaki jest mój stosunek do samodzielnej kompilacji czegokolwiek. Skoro tak, to szukamy innego sposobu i okazuje się, że jest! Wystarczy doinstalować odpowiedni pakiet:

[code=]# aptitude update && aptitude install netstat-nat[/code]

Od tego momentu funkcję polecenia netstat -M przejmuje netstat-nat -n.

Inną ważną cechą routera jest monitorowanie pasma (jeśli z naszego routera korzysta więcej osób niż tylko my). W tym celu warto zainstalować program iftop:

[code=]# aptitude install iftop[/code]

Od teraz pięknie widać kto zapycha nam sieć:

Okno iftop
Okno iftop

Krótki opis większej ilości programów tego typu znajdziesz tutaj.

Logi

Przeglądając logi można zauważyć, że hostapd strasznie "spamuje" plik z logami /var/log/daemon.log

Dopóki wifi działa bez problemu, nie potrzebne mi są informacje od niego. Niestety nie da się w hostapd całkowicie wyłączyć logowania ale można zmniejszyć jego częstotliwość. Do pliku /etc/hostapd/hostapd.conf dopisujemy:

[code=]logger_syslog=4[/code]

[code=]logger_syslog_level=4[/code]

[code=]logger_stdout=4[/code]

[code=]logger_stdout_level=4[/code]

Od tego momentu hostapd będzie zapisywał do pliku wyłącznie ostrzeżenia, co czyni bardzo rzadko.

Kształtowanie pasma - QoS

Uwaga: korzystanie z QoS w Linuksie z linii poleceń daje +10 do haxiorstwa :‑))

Jeśli z naszego routera korzysta kilka osób, warto sprawiedliwie podzielić pasmo tak żeby i namiętny gracz online i pijawka P2P żyli dalej w zgodzie. Na początek tworzymy plik z regułkami QoS:

[code=]# nano /usr/local/bin/tc-qos[/code]

i wklejamy zawartość tego pliku. Nadajemy prawa do wykonywania:

[code=]# chmod u+x /usr/local/bin/tc-qos[/code]

Wczytujemy reguły poleceniem:

[code=]# tc-qos[/code]

Używamy trochę internetu i upewniamy się czy kształtowanie pasma działa jak należy. Można to sprawdzić korzystając z testerów prędkości dostępnych w sieci oraz wydając polecenia:

[code=]# tc -s -d qdisc show dev eth0[/code]

[code=]# tc -s -d class show dev eth0[/code]

i dla karty wifi:

[code=]# tc -s -d qdisc show dev wlan0[/code]

[code=]# tc -s -d class show dev wlan0[/code]

Wyświetlone statystyki powinny pokazać czy wszystko OK. Jeśli jesteśmy zadowoleni z rezultatów, plik z regułami QoS kopiujemy do folderu:

[code=]# cp /usr/local/bin/tc-qos /etc/network/if-up.d/tc-qos[/code]

Skrypty z tego folderu będą się uruchamiały wraz ze startem systemu, po uruchomieniu sieci.

Dla ruchu wychodzącego, pakiety przyporządkowywane do poszczególnych klas są za pomocą znakowania pakietów w iptables (tak dla odmiany ;‑) ) Wówczas, konieczne jest dopisanie do pliku naszego firewalla kilka regułek identyfikujących komputery:

[code=]echo "[+] Wczytywanie łańcucha MANGLE..."[/code]

[code=]# znakowanie pakietów do QoS dla ruchu wychodzącego[/code]

[code=]# komputer nr 1[/code]

[code=]$IPTABLES -t mangle -A PREROUTING -s 192.168.20.2 -i $WIFI -j MARK -‑set-mark 1[/code]

[code=]# komputer nr 2[/code]

[code=]$IPTABLES -t mangle -A PREROUTING -s 192.168.20.2 -i $WIFI -j MARK -‑set-mark 2[/code]

[code=]# komputer nr 3[/code]

[code=]$IPTABLES -t mangle -A PREROUTING -s 192.168.20.2 -i $WIFI -j MARK -‑set-mark 3[/code]

(plik firewalla z części 2 został uaktualniony) Ponieważ te wpisy są raczej poradnikiem na zasadzie "kopiuj-wklej", nie omawiam zasad działania i szczegółowej konfiguracji kształtowania ruchu. Po szczegóły odsyłam do dokumentacji: Kolejkowanie HTB. Kształtowanie ruchu.

Wybrane dla Ciebie
Komentarze (3)