Как настроить Squid Proxy (для служб localhost и Tor и I2P)

Итак, вот моя дилемма. У меня была эта яркая идея, что я могу использовать DNS для создания своего собственного TLD для своего компьютера. Я хотел, чтобы все службы запускались на локальном хосте, поскольку я буду создавать сайты, которые могут модифицировать мой компьютер. Все эти сайты будут работать под доменом .senor. В настоящее время я получил этот TLD для работы с моим сервером jekyll на http: //nic.senor/ .

Проблема заключается в попытке получить домены, такие как .onion.senor и .i2p.senor, для работы со своими соответствующими прокси. Очевидно, что у меня был надзор при планировании проксирования данных с моего прокси-сервера на прокси-сервер Tors или I2Ps, поскольку это не было в моем первоначальном плане при создании TLD .enor. Моя текущая настройка – dnsmasq на 127.0.0.1:53, которая перенаправляет любой домен, не указанный в файле /etc/dnsmasq.hosts, на dnscrypt, который размещен на 127.0.0.1:52.

  • Активные доступные серверы DNS
  • Snow Leopard не любит dnsmasq?
  • OpenDNS не работает с 1 машиной Ubuntu
  • Прямой домен для IP и порта?
  • DD-WRT: головные боли dnsmasq со статическими хостами
  • Windows 7 и VirtualBox (centos 7) DNS не работает
  • Я попытался найти ответы на вопрос о том, как настроить squid, как эта конфигурация смущает меня (я буду продолжать поиск) и даже нашел такие вопросы, как Squid over i2p, tor и ресурсы localhost, которые хотят сделать то же самое, что и я, Но никто не ответил на него, так как он был спрошен 2 года назад, поэтому я все еще застрял. Любая помощь или указание в правильном направлении будут очень благодарны!

  • Каковы плюсы и минусы использования альтернативного DNS вместо DNS-сервера ISP?
  • Как правильно получить доступ к Google через IPV6?
  • Как я могу настроить «локальный» домен, чтобы каждый из моих локальных сетей мог просматривать локально размещенный сайт?
  • Объяснить вывод ipconfig / displaydns
  • Есть ли способ получить полный файл зоны для домена, не связавшись с его хостом?
  • Что делает промывка DNS?
  • One Solution collect form web for “Как настроить Squid Proxy (для служб localhost и Tor и I2P)”

    Изменить 3: Итак, я все еще работаю над полным ответом, но, по крайней мере, у меня есть прокси-сервер с Squid. Мне просто нужно выяснить, как заставить Tor и I2P работать с Squid. (У меня также есть проблемы с получением прокси-сервера для работы за пределами браузера при тестировании на моем Android, но это выходит за рамки этого вопроса, плюс я должен отключить мое подключение к данным, чтобы заставить серверные соединения работать на моем андроиде, не бросая Ошибка DNS не найдена, для таких вещей, как nic.senor и mailpile.senor).

    Редактировать 3 (продолжение): я изменил конфигурацию, поэтому я могу подключиться к Tor on .onion и I2P на .i2p. Я тестировал I2P, но поскольку Tor в настоящее время заблокирован в моем соединении, мне придется обойти это, чтобы проверить, работает ли Tor позже, однако, в настоящее время это достаточно хорошо для меня, и, возможно, в будущем, если я получу Tor Unblocked, я добавлю в свой собственный прокси-сервер для Tor (с целью адресной книги Tor) (поскольку dnsmasq не поддерживает CNAME, к сожалению :()). (Я получил помощь от https //serverfault.com/questions / 198806 / squid-selects-parent-depends-on-request-url? Newreg = 6cd1dcadf97e4794bfcf4f1dcf977426). Это достаточно хорошо для меня, чтобы принять этот ответ, так что все, что осталось – это настройки и тестирование! 🙂

    В принципе, для моей реализации моей частной сети у меня сначала есть мой браузер, который затем проходит через мой прокси-сервер, который затем решает DNS-запросы внутри (как при использовании моего dns-сервера моего ноутбука), который затем подключит меня к любому сайту I Хочу, чтобы это было доступно для моего ноутбука.

    Что касается DNS-резольвера, я использую dnsmasq с файлом hosts, расположенным в /etc/dnsmasq.hosts, который затем маршрутизирует все, что не кэшируется или находится в файле hosts, в dnscrypt-proxy. DNSMasq находится на 127.0.0.1:53, а DNSCrypt – на 127.0.0.1:52.

    Веб-сайты, найденные в dnsmasq.hosts, расположены на обоих портах 80 и 443 и используют nginx для маршрутизации любых подключений, которые он имеет к различным другим серверам, например, маршруты blog.senor к серверу Jekyll, расположенному по адресу 127.0.0.2:4000 (я, вероятно, должен блокировать Прямой доступ к этим URL-адресам с помощью Squid), ну и в любом случае nic.senor просто указывает на https: //mailpile.senor/, поскольку в настоящее время у него нет надлежащего сайта, а mailpile.senor отправляется на mailpile на 127.0.0.1:33411. Этот TLS работает, потому что у меня есть собственный корневой ЦС, который я импортировал как на свой телефон, так и на ноутбук (я сгенерировал его с помощью Open SSL, используя инструкции из https://datacenteroverlords.com/2012/03/01/creating-your-own-ssl- Сертификационный орган / ).

    Пример файла конфигурации nginx, который я использую для своих сайтов (с небольшими изменениями):

    /etc/nginx/conf.d/mailpile.conf

    ## our http server at port 80 server { listen 127.0.0.3:80 default; server_name mailpile.senor; ## redirect http to https ## rewrite ^ https://$server_name$request_uri? permanent; } ## our https server at port 443 server { # IP Address, Port, and Protocol to use listen 127.0.0.3:443 ssl; # Server URL server_name mailpile.senor; # Certs ssl_certificate certs/public/mailpile.senor.pub.pem; ssl_certificate_key certs/private/mailpile.senor.priv.pem; # Only use "Safe" TLS protocols, not SSL or TLS 3.0 (POODLE Attack) ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Use ciphers the server supports ssl_prefer_server_ciphers on; ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; # Don't know how secure this elliptic curve algorith is, so needs more research! #ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0 # Basically reuses ssl sessions to speed up page load ssl_session_cache shared:SSL:10m; ssl_session_tickets off; # Requires nginx >= 1.5.9 # Stapling is sending OSCP info (may require resolver too) #ssl_stapling on; # Requires nginx >= 1.3.7 #ssl_stapling_verify on; # Requires nginx => 1.3.7 #resolver $DNS-IP-1 $DNS-IP-2 valid=300s; #resolver_timeout 5s; # Remember HSTS? Well, have FUN! add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"; # Prevents this site from being loaded in an iframe add_header X-Frame-Options DENY; # Prevents browser from changing MIME-Types from what the server says (supposedly more secure) add_header X-Content-Type-Options nosniff; # File with revoked certificates used to determine if client-side cert is valid or not! #ssl_dhparam /etc/nginx/ssl/dhparam.pem; location / { access_log /var/log/nginx/mailpile_access.log; error_log /var/log/nginx/mailpile_error.log info; proxy_pass http://127.0.0.1:33411; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 

    /etc/dnsmasq.hosts

     127.0.0.1 nic.senor 127.0.0.2 blog.senor 127.0.0.3 mailpile.senor 

    Редактирование 1: Я просто Wiresharked мой прокси-сервер и понял, что основной auth не шифрует мои данные вообще, поэтому я теперь также работаю над исправлением этого!

    Редактировать 2: я нашел http //patchlog.com/security/squid-digest-authentication/ (вынул: из-за необходимости отправить 10 сообщений для отправки более 2 сообщений), которые помогли мне узнать, как создать систему проверки дайджеста и Как создать новый файл паролей, который просто создает md5sum от $ user: $ realm: $ pass. Я также узнал, что digest_pw_auth переименован в digest_file_auth из https //bbs.archlinux.org/viewtopic.php?id=152346.

    /etc/squid/squid.conf

     auth_param digest program /usr/lib/squid/digest_file_auth -c /etc/squid/passwords auth_param digest realm Proxy auth_param digest child 5 auth_param digest nonce_garbage_interval 5 minutes auth_param digest nonce_max_duration 30 minutes auth_param digest nonce_max_count 50 acl authenticated proxy_auth REQUIRED http_access allow authenticated http_port 3128 # External Proxies # Format is: hostname type http_port udp_port cache_peer 127.0.0.1 parent 4444 0 cache_peer 127.0.0.2 parent 9050 0 # Determines When to Use External Proxies cache_peer_domain 127.0.0.1 .i2p cache_peer_domain 127.0.0.2 .onion acl localnet src 10.0.0.0/8 # RFC1918 possible internal network acl localnet src 172.16.0.0/12 # RFC1918 possible internal network acl localnet src 192.168.0.0/16 # RFC1918 possible internal network acl localnet src fc00::/7 # RFC 4193 local private network range acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines 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 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl Safe_ports port 1025-65535 # unregistered ports 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 localnet #http_access allow localhost http_access deny all 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 vrefresh_pattern . 0 20% 4320 
    Давайте будем гением компьютера.