tips & tricks
Data: 11 czerwiec 2008
Rinetd to narzędzie nieocenione w przypadku
zmiany adresów IP serwerów
WWW lub fizycznym przenoszeniu maszyn
do innej lokalizacji z przydzielonymi przez
operatora innymi adresami IP.
Program ten wystarczy uruchomić na jednej
maszynie w starej lokalizacji, a kiedy rozpropagują
się zmiany w DNS, po prostu wyłączyć.
Do operowania na pakietach IP używasz zapewne
iptables (patrz też: NEXT 3/2007 str. 134),
czyli standardowego pakietu do konfiguracji firewalla,
dostępnego w nowszych systemach Linux.
Ma on ogromne możliwości, ale też pewne
ograniczenia. Jeśli chciałbyś na przykład przekierować
komunikację TCP z danego portu na
inny komputer, wówczas musisz się ograniczyć
tylko do hostów pracujących w twojej sieci.
Natomiast za pomocą omawianego przez nas
niewielkiego i szybkiego programu rinetd możesz
przekazywać ruch TCP na dowolny adres
w internecie. Rinetd działa w warstwie aplikacji,
jest wydajny i znakomicie radzi sobie z tym
problemem.
Program ten z reguły nie jest instalowany
wraz z systemem, ale bez trudu znajdziesz
w sieci pakiet dla swojej dystrybucji, ewentualnie
możesz pobrać go ze strony www.boutell.
com/rinetd i sam skompilować.
Plik konfiguracyjny jest bardzo prosty i zazwyczaj
instaluje się go w katalogu /etc/ pod
nazwą rinetd.conf.
Format pliku rinetd.conf:
[adres źródłowy] [port źródłowy]
[adres docelowy] [port docelowy]
Każdy przekazywany port podaje się w oddzielnym
wierszu. Adresy źródłowe i docelowe
mogą być zapisane jako nazwy komputerów
lub adresów IP, zaś adres źródłowy 0.0.0.0
oznacza, że rinetd będzie przekazywał połączenia
ze wszystkich adresów IP powiązanych
z naszym komputerem. Przykładowy plik konfiguracyjny:
0.0.0.0 80 192.168.2.1 80
81.123.12.34 22 213.20.129.129 22
Powyższe wiersze oznaczają, że ruch przychodzący
na port 80 będzie przekazywany do
komputera o adresie 192.168.2.1. Pamiętaj, że
tego typu rozwiązanie jest dopuszczalne tylko
wtedy, gdy w systemie nie ma innego procesu
związanego z portem 80. Kolejna linia w pliku
konfiguracyjnym przekierowuje połączenia
SSH przychodzące na port 22 do komputera o adresie 213.20.129.129. Wszystko działa bez
konieczności ustawienia translacji adresów
(NAT) czy rekonfiguracji jądra. Wystarczy uruchomić
rinetd, a on w trybie demona zacznie
nasłuchiwać na określonych portach.
W pliku konfiguracyjnym można ponadto
ustawiać reguły typu allow i deny. Mogą one zawierać
znaki wieloznaczne typu „ . ? *”, np.
allow 206.125.69.*
Wpis ten oznacza zezwolenie na komunikację
z całej klasy C sieci 206.125.69.
Rinetd nie obsługuje komunikacji UDP.
Dobrą praktyką jest podawanie nazw w postaci
adresów IP, ponieważ rinetd podczas oczekiwania
na odpowiedź serwera DNS zatrzymuje
przetwarzanie innych połączeń. Pamiętaj też,
że nie zadziała poprawnie przekierowanie połączeń
takich protokołów, jak FTP, RTSP (Real
Video), gdyż protokoły te korzystają często
z wielu dynamicznie ustalanych portów.
Jeśli nie używasz Linuksa, możesz skorzystać
także z windowsowej wersji tego narzędzia.
Pamiętaj, że domyślnym katalogiem dla pliku
konfiguracyjnego jest katalog /etc/, więc pod
Windows uruchamiaj rinetd z opcją –c, po której
podaj lokalizację pliku konfiguracyjnego
Ocena: 



(aby ocenić, musisz się zalogować w serwisie)
Podobne artykuły: