Łączenie myportname i src w Squidzie za pomocą osobnych ACL
Połącz nazwany listener Squida z dozwoloną siecią klientów bez umieszczania dwóch typów ACL w tej samej definicji.
Konfiguracja na pierwszy rzut oka wygląda wiarygodnie:
acl team_a myportname 3128 src 198.51.100.0/24
Aber definicja ACL ma tylko jeden typ. Tutaj myportname jest typem; dodanie słowa src nie rozpoczyna drugiego testu. Pozostałe słowa należą do listy wartości pierwszego typu. Ten wiersz nie wyraża „ten listener i ta sieć klientów”.
Nadaj każdej regule nazwę
Użyj nazwy dla gniazda nasłuchującego i osobnego ACL źródła. Ten fragment używa adresów dokumentacyjnych, które trzeba zastąpić adresami odpowiednimi dla wdrożenia:
http_port 192.0.2.10:3128 name=team_a_port
acl team_a_port myportname team_a_port
acl team_a_clients src 198.51.100.0/24
http_access allow team_a_port team_a_clients
http_access deny all
Umieść regułę zezwolenia po istniejących zabezpieczeniach dla niebezpiecznych portów docelowych, ograniczonych celów CONNECT i dostępu administracyjnego. Fragment ilustruje warunek klient/listener; nie zastępuje tych zabezpieczeń.
Warunki w jednym wierszu http_access są łączone operatorem AND. Dwa osobne wiersze zezwolenia przepuszczałyby każdy warunek niezależnie, co znacznie zmieniłoby politykę. Wiele wartości w jednym ACL zwykle daje alternatywy dla tego jednego testu.
Wybierz wyjście osobno
Pasujący listener może też być użyty przez tcp_outgoing_address do wyboru lokalnego adresu źródłowego. To wybór trasowania, a nie zgoda na korzystanie z proxy. Reguła adresu wyjściowego nie może przepuścić odrzuconego żądania przez http_access.
Jeśli konfiguracja z wieloma adresami przestaje działać po aktualizacji, rozdziel dowody: błąd analizy wskazuje na składnię konfiguracji; odmowa dostępu na dopasowanie reguł; dozwolone żądanie z niewłaściwym wyjściem na wybór wyjścia lub późniejszy NAT. Zmiana wszystkich trzech naraz sprawia, że drobny błąd ACL jest znacznie trudniejszy do znalezienia.