Я пытаюсь настроить Squid на моем компьютере, чтобы контролировать исходящий трафик только с того же компьютера. Если я правильно понимаю, squid работает как пользователь "squid" в большинстве дистрибутивов Linux (мой - это Fedora, если это имеет значение?).

Я настроил iptables, чтобы отбрасывать все исходящие пакеты, кроме тех, что из uid 0 и uid 23 (root & squid).

: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 в браузер для каждой учетной записи локального пользователя (так что я не думаю, что я настроен прозрачно). Если возможно, я бы хотел, чтобы пользователь / пароль имел возможность подключаться к squid, чтобы пользователи не имели доступа к Интернету, кроме как через прокси-сервер squid?

Мой текущий 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 ответ1

0

Скорее всего, вам потребуется открыть доступ хотя бы к DNS для других программ.

У Squid есть модуль аутентификации, но он не нужен в вашем случае. Поскольку только squid может получить доступ к Интернету, все пользователи будут вынуждены его использовать.

Проверьте переменные среды, используемые для настройки прокси-серверов, и настройте их глобально. Вы должны установить http_proxy по крайней мере.

Существует механизм wpad.dat для настройки прокси, но я не использовал его, как вы и предполагали.

Я думаю, что вы обнаружите, что многие службы используют порты, которых нет в списке, и работа в Интернете будет не очень хорошей.

Поскольку вы, кажется, не блокируете какие-либо сайты, может быть проще ограничить порты с помощью iptables .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .