OpenWrt Własny firewall Wymiana firwalla w OpenWrt na własny Ostatnia zmiana: 20131126 18:43 Firewall w ostatnich wersjach OpenWrt Kamikaze jest d...
5 downloads
14 Views
135KB Size
OpenWrt Własny firewall Wymiana firwalla w OpenWrt na własny Ostatnia zmiana: 20131126 18:43 Firewall w ostatnich wersjach OpenWrt Kamikaze jest dość skomplikowany. Wymuszenie składni w pliku /etc/config/firewall zgodnej z LuCI spowodowało wymuszenie stosowania określonych zapisów bez możliwości wykonania bardziej skompilowanych składni. Prezentowane poniżej rozwiązanie ma na celu zastąpienie wbudowanego firewalla standardowymi regułkami iptables. UWAGA: jeżeli nie wiesz co to jest iptables, jak działa kształtowanie ruchu i co można zrobić za pomocą iptables w linuksie ten poradnik nie jest dla Ciebie. Poniższe rozwiązanie z pewnymi modyfikacjami działa od jakiegoś czasu u mnie co nie oznacza że będzie działać dobrze wszędzie i u każdego. Traktuj to jako wskazówki a nie ścisłe wytyczne których masz się trzymać. Początkową lekturą może być Lartc (http://bromirski.net/docs/translations/lartcpl.html) (PL).
Skrypt Jeżeli ktoś jest obeznany z iptables może podobny skrypt napisać samodzielnie. Poniższy jest chyba najprostszy z możliwych. Wychodzimy z założenia, że dopuszczamy cały ruch wychodzący (przechodzący) a wszystko na wejściu jest odrzucane (przez polityki domyślne).
#!/bin/sh /etc/rc.common WAN=$(uci get network.wan.ifname) IPT=/usr/sbin/iptables START=44 start() { $IPT ‐F $IPT ‐F ‐t nat $IPT ‐F ‐t mangle $IPT ‐P OUTPUT ACCEPT $IPT ‐P FORWARD ACCEPT $IPT ‐P INPUT DROP $IPT ‐A INPUT ‐i ! ${WAN} ‐j ACCEPT $IPT ‐A INPUT ‐m state ‐‐state ESTABLISHED,RELATED ‐j ACCEPT $IPT ‐t nat ‐A POSTROUTING ‐o ${WAN} ‐j MASQUERADE } stop() { $IPT ‐P INPUT ACCEPT $IPT ‐P OUTPUT ACCEPT $IPT ‐P FORWARD ACCEPT $IPT ‐F $IPT ‐F ‐t nat $IPT ‐F ‐t mangle }
Plik trzeba zapisać w katalogu /etc/init.d pod nazwą firewall_custom.
Konfiguracja Należy "wyłączyć" plik /etc/hotplug.d/iface/20firewall który w tym przypadku nie spełnia swojej roli. Należy dodać jako pierwszą linię polecenie wyjścia, żeby wyglądało to w taki sposób
exit 0 . /lib/firewall/uci_firewall.sh unset ZONE ...
Następnie należy wyłączyć wbudowany firewall, włączyć nasz nowy i zrobić restart rutera
/etc/init.d/firewall disable chmod 755 /etc/init.d/firewall_custom /etc/init.d/firewall_custom enable reboot
Modyfikacje
Oczywiście skrypt można dowolnie zmodyfikować od zmian w stosie tcpip, poprzez ustawienie priorytetów czy znaczników QoS a na logowaniu skończywszy. Oto jedne z przydanych poleceń, najczęściej oczekiwanych (do dopisania na końcu w sekcji start
Otworzenie portu Np. portu 22 ssh
$IPT ‐A INPUT ‐i ${WAN} ‐p tcp ‐‐dport 22 ‐j ACCEPT
Przekierowanie portu Np. dla torrentów port 12345 będzie przekierowany do komputera 192.168.1.100
$IPT ‐t nat ‐A PREROUTING ‐i ${WAN} ‐p tcp ‐‐dport 12345 ‐j DNAT ‐‐to‐destination 192.168.1.100:123
Oczywiście w OpenWrt mamy szereg rozszerzeń iptables, wiec będą działały opcje multiport/mac/limit itd. Można tu już robić dowolnie stosownie to potrzeb.
Zakończenie Tak zbudowany firewall robi dokładnie to samo co standardowy, ale wszystko jest w jednym pliku, więc można się posiłkować gotowymi skryptami znalezionymi w internecie. Wadą tego firewalla jest to, że nie może być konfigurowany przez www/LuCI. Ten firewall to tylko zbiór reguł iptables więc można odpowiedni firewall wygenerować sobie wieloma programami dostępnymi na linuksa. Czy taka modyfikacja ma sens? Im mniej regułek tym szybsze przesyłanie pakietów. Jeżeli oczekujemy bardziej skompilowanych rzeczy od firewalla to i tak musimy zakładać osoby plik, bo ten od LuCI składniowo nie wspiera żadnych innych zapisów. Więc wszystko zależy od konkretnego przeznaczenia. 1. Skrypt 2. Konfiguracja 3. Modyfikacje 3.1. Otworzenie portu 3.2. Przekierowanie portu 4. Zakończenie
Skomentuj na forum (http://eko.one.pl/forum/viewforum.php?id=18)