
동일한 컴퓨터에서 나가는 트래픽만 제어하기 위해 내 컴퓨터에 squid를 설정하려고 합니다. 내 이해가 정확하다면 squid는 대부분의 Linux 배포판에서 사용자 "squid"로 실행됩니다(중요하다면 내 것은 Fedora입니까?).
uid 0과 uid 23(root & squid)의 패킷을 제외한 모든 나가는 패킷을 삭제하도록 iptables를 설정했습니다.
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -j DROP
-A FORWARD -j DROP
-A OUTPUT -m owner --uid-owner 0 -j ACCEPT
-A OUTPUT -m owner --uid-owner 23 -j ACCEPT
-A OUTPUT -j DROP
COMMIT
그런 다음 각 로컬 사용자 계정의 브라우저에 오징어 프록시 정보를 수동으로 입력해야 합니다(따라서 투명한 설정을 수행하고 있다고 생각하지 않습니다). 가능하다면 오징어에 연결하는 데 필요한 사용자/패스를 원하므로 사용자가 오징어 프록시를 통하지 않고 인터넷에 액세스하는 것을 방지할 수 있습니까?
내 현재 squid.conf는 다음과 같지만 전혀 작동하지 않으며 분명히 사용자/패스 요구 사항을 통합하지 않습니다.
acl ssl_ports port 443
acl safe_ports port 80 # http
acl safe_ports port 21 # ftp
acl safe_ports port 443 # https
acl safe_ports port 70 # gopher
acl safe_ports port 210 # wais
acl safe_ports port 1025-65535 # unregistered ports
acl safe_ports port 280 # http-mgmt
acl safe_ports port 488 # gss-http
acl safe_ports port 591 # filemaker
acl safe_ports port 777 # multiling http
acl CONNECT method CONNECT
http_access deny !safe_ports
http_access deny CONNECT !ssl_ports
http_access allow localhost manager
http_access deny manager
http_access allow localhost
http_access deny all
http_port 3128
coredump_dir /var/spool/squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern .
내가 하려는 일이 달성 가능한가, 그리고 올바른 방향으로 나아가고 있는가?
iptables로 내가 한 일이 효과가 있을까요?
이것이 제가 10분 안에 올바르게 설정하는 방법을 배우게 될 내용이 아니라는 것을 알고 있으므로 이를 달성하는 방법에 대한 가이드 또는 대체 솔루션에 대한 도움말/포인터를 모두 환영합니다.
답변1
다른 프로그램에 대해 최소한 DNS에 대한 액세스를 열어야 할 수도 있습니다.
Squid에는 인증 모듈이 있지만 귀하의 경우에는 필요하지 않습니다. 오직 오징어만이 웹에 접근할 수 있기 때문에 모든 사용자는 그것을 사용해야 할 것입니다.
프록시를 설정하고 전역적으로 구성하는 데 사용되는 환경 변수를 확인하세요. http_proxy
최소한으로 설정해야 합니다 .
프록시를 구성하는 메커니즘이 있지만 wpad.dat
의도한 대로 사용하지 않았습니다.
많은 서비스가 목록에 없는 포트를 사용하고 탐색 경험이 그리 좋지 않을 것이라고 생각합니다.
어떤 사이트도 차단하지 않는 것 같으니 iptables
.