Bezprzewodowy router na Debianie - wersja kompletna cz. III
23.04.2013 | aktual.: 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ć:
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.