Konfiguracja serwera proxy

Jedną z ważniejszych rzeczy jest pamięć o konieczności dodania serwera proxy do /etc/inetd.conf. Aby móc odpowiedzieć na żądania należy dopisać następującą linię:

socks stream tcp nowait nobody /usr/local/etc/sockd sockd

Konfiguracja serwera proxy

Program SOCKS potrzebuje dwóch oddzielnych plików konfiguracyjnych. Jeden z nich mówi o tym komu udzielić dostępu a drugi w jaki sposób przekazywać żądania do właściwego serwera proxy. Plik decydujący o dostępie powinien znajdować się na serwerze. Plik dotyczący przekazywania dostępu (routingu) powinien znajdować się na każdej z maszyn Unixowych. W wypadku DOSa i częściowo MaCów komputery powinny mieć swój własny routing.

Plik dostępu (Access File)

W wersji 4.2 Beta SOCSKsów plik dostępu nazywa się ” sockd.conf ” . powinien zawierać dwie linie: zezwolenia i zakazu. Każda z linii posiada trzy pozycje:

identyfikator (permit/deny)

adres IP

modyfikator adresu

Identyfikator to permit lub deny Generalnie powinno się użyć obu: każdy we właściwej linii. Adres IP powinien zawierać czterobajtowy adres w typowej dal IP notacji. np. 192.168.2.0. Modyfikator adresu także jest normalnym IP i pracuje jak maska. Rozwinięcie tego adresu da 32 bity (1 albo zero).

Na przykład, w tej linii:

permit 192.168.2.23 255.255.255.255

administrator zezwala na dostęp maszynom w których adres pasuje co do bitu z zadanym: pasuje tu tylko 192.168.2.23

permit 192.168.2.0 255.255.255.0

administrator zezwala na dostęp maszynom z gdyby od 192.168.2.0 do 192.168.2.255, w formie całej klasy C.

Nie powinno się zamieszczać następującej linii:

permit 192.168.2.0 0.0.0.0

dającej dostęp dla wszystkich adresów.

Tak więc pierwsza linia daje zezwolenie dla tych adresów którym chcemy go dać, a druga zakazuje reszcie. Aby zezwolić na dostęp wszystkim z klasy 192.168.2.xxx potrzeba linii:

permit 192.168.2.0 255.255.255.0

deny 0.0.0.0 0.0.0.0

Należy zwrócić uwagę na pierwsze ” 0.0.0.0 ” w linii zakazu. Z maską 0.0.0.0 taki adres nie istnieje. Wszystkie zera zostały tam wprowadzone bo są łatwe do zapisu.

Dopuszczalne jest umieszczenie większej ilości jeden zapisów w każdej z linii. Konkretni użytkownicy mogą ponadto otrzymać lub tracić prawo dostępu. jest to wykonywane przy pomocy autentyfikacji przy pomocy ident.

Tablica trasowania

Tablica routingu w SOCS jest nazywana socks.conf.

Tablica routingu mówi klientom SOCKS kiedy używać socks a kiedy nie. Na przykład, w naszej sieci 192.168.2.3 nie potrzebuje używania socks do połączenia z 192.168.2.1. Po prostu łączy się bezpośrednio, za pomocą Ethernetu, definiuje się automatycznie 127.0.0.1 jako loopback. Oczywiste jest, że nie potrzebujemy rozmawiać przez ścianę ogniową z samym sobą.

Występują trzy typy rekordów:

  • deny
  • direct
  • sockd

Denymówi SOCKS kiedy ma odmówić żądaniu. Rekord ten ma takie same trzy pola jak sockd.conf: identyfikator, adres i maska. Ogólnie, dopóki jest to modyfikowane przez sockd.conf, maska w pliku dostępu jest ustawiona na 0.0.0.0. Jeśli chcemy pozwolić na dzwonienie do siebie możemy to zrobić tutaj.Rekord directmówi które do których adresów nie używać SOCKS. Te adresy będą doręczone bez serwera proxy.

Podsumowując: mamy trzy pola: identyfikator, adres i maska.

direct 192.168.2.0 255.255.255.0

W ten sposób kierujemy bezpośrednio cały ruch w chronionej sieci.

Rekord z sockdmówi komputerowi które z hostów są serwerem SOCKS

Składnia jest następująca:

sockd @=<serverlist> <IP address> <modifier>

Należy uwagę na fragment: @= . Pozwala on na wprowadzenie listy serwerów proxy. W naszym przykładzie używamy tylko jednego. Ale możemy mieć wiele w celu zwiększenia przepustowości i obniżenia możliwości awarii.

Pola adresu IP i maski działają jak w innych przykładach. Specyfikujemy adres i zakres jego obowiązywania DNS zza firewalla. Do ustawienie usługi DNS zza firewalla potrzeba jedynie ustawienia DNS na maszynie z firewallem i inne maszyny za firewallem będą go używały.
Współpraca z serwerami proxy

Aby nasze aplikacje działały z serwerami proxy potrzebujemy dwóch różnych telnetów (jeden do komunikacji bezpośredniej drugi przez serwer proxy). SOCKS przychodzą z instrukcją jak obsługiwać (sockified) program, i z kilkoma programami przygotowanymi według odpowiednich zasad. Jeśli używamy sockified (nieprzetłumaczalne) wersji gdziekolwiek bezpośrednio, SOCKS automatycznie przełączy nas na właściwą wersję. Z tego powodu trzeba zmienić nazwy wszystkich programów w naszej chronionej sieci i zstąpić je wersjami sockified. Finger stanie się finger.orig, telnet stanie się telnet.origi tak dalej. Musimy powinformować SOCKS o każdym w pliku include/socks.h.

Dobre programy są w stanie dostarczać tablic trasowania i same przełączyć się do pracy w trybie sockified. Jednym z nich jest Netscape Navigator. Możemy używać serwerów proxy przez wprowadzenie adresu serwera (192.168.2.1 w naszym wypadku) w polu SOCKs w Menu Proxies. Każda aplikacja potrzebuje przynajmniej minimalnej informacji o tym co jest serwerem proxy.