Один белый ip и несколько веб-ресурсов на разных виртуалках внутри гипервизора приводят к необходимости разруливать входящие запросы с использованием обратного прокси. Рассмотрим установку и настройку NGINX на поверх Proxmox Virtual Environment. Схема стенда отображена на картинке:
Читать
Архив метки: proxy
Настройка proxy в Linux через терминал
В этой статье поговорим о том, как можно задать настройки прокси в системе Linux через терминал. Проще всего для использования прокси в командной строке, определить переменные окружения http_proxy, https_proxy, socks_proxy или ftp_proxy.
Практически все утилиты командной строки, такие как curl, ssh, ftp и прочие, используют данные переменные окружения. Читать
Сам себе прокси-сервер
Бывает так, что мессенджер Телеграмм или сайты «В контакте» и facebook.com заблокированы на работе или даже в стране. Чтобы блокировку обойти, можно воспользоваться прокси-сервером. Способ фантастически прост, не потребуется даже установка каких-либо программ. Всё, что нам нужно — удалённая машина, у которой интересующей нас блокировки нет. Поведал мне об этом hombit. Читать
Бункер-03-1, Privoxy на VDS / Ubuntu Server
http://crimea-karro.blogspot.ru/2015/07/01-privoxy-vds-ubuntu-server.html
http://crimea-karro.blogspot.ru/2015/07/02-privoxy-vds-ubuntu-server.html
http://crimea-karro.blogspot.ru/2015/07/03-privoxy-vds-ubuntu-server.html
***
Varnish – это HTTP-ускоритель, очень полезный инструмент для ускорения работы сервера,
является бесплатным решением для кэширования как статического, так и динамического контента.
Работает он как фронт-энд к любому веб-серверу или серверу приложений и изначально ориентирован на высокую производительность, многопоточность и максимально эффективное использование возможностей ОС семейства Linux.
Детальная настройка не описывается автором.
https://www.varnish-cache.org/
* The only supported architecture is amd64.
***
Общие заметки с Privoxy:
Обратите внимание на смену синтаксиса конфигурационных файлов, между версиями varnish.
$ apt-get install apt-transport-https
$ curl https://repo.varnish-cache.org/GPG-key.txt | apt-key add —
$ echo «deb https://repo.varnish-cache.org/ubuntu/ precise varnish-4.0» >> /etc/apt/sources.list.d/varnish-cache.list
$ apt-get update
$ apt-get install varnish
$ apt-get install varnish
$ nano /etc/default/varnish
DAEMON_OPTS=»-a :6081
-T localhost:6082
-f /etc/varnish/default.vcl
-S /etc/varnish/secret
-s malloc,128m»
VARNISH_LISTEN_PORT=8118
$ nano /etc/varnish/default.vcl
backend default {
.host = «127.0.0.1»;
.port = «8118»;
.first_byte_timeout = 300s;
}
sub vcl_recv {
# Normalize Content-Encoding
if (req.http.Accept-Encoding) {
if (req.url ~ «.(jpg|png|gif|gz|tgz|bz2|lzma|tbz)(?.*|)$») {
remove req.http.Accept-Encoding;
} elsif (req.http.Accept-Encoding ~ «gzip») {
set req.http.Accept-Encoding = «gzip»;
} elsif (req.http.Accept-Encoding ~ «deflate») {
set req.http.Accept-Encoding = «deflate»;
} else {
remove req.http.Accept-Encoding;
}
}
# Remove cookies and query string for real static files
if (req.url ~ «^/[^?]+.(jpeg|jpg|png|gif|ico|js|css|txt|gz|zip|lzma|bz2|tgz|tbz|html|htm)(?.*|)$») {
unset req.http.cookie;
set req.url = regsub(req.url, «?.*$», «»);
}
}
Перезапуск:
$ service varnish restart
Статистика:
$ varnishstat
Автор: AugustuS Karro
Дата публикации: 2015-07-11T19:46:00.001+07:00
Бункер-02, Privoxy на VDS / Ubuntu Server
http://crimea-karro.blogspot.ru/2015/07/01-privoxy-vds-ubuntu-server.html
***
Кеширующий Web Proxy polipo…
$ nano /etc/polipo/config
### Basic configuration
### *******************
logSyslog = true
logFile = /var/log/polipo/polipo.log
# Uncomment one of these if you want to allow remote clients to
# connect:
#proxyAddress = «::99» # both IPv4 and IPv6
# proxyAddress = «0.0.0.0» # IPv4 only
proxyAddress = «127.0.0.1»
proxyPort = 8123
# If you do that, you'll want to restrict the set of hosts allowed to
# connect:
# allowedClients = «127.0.0.1, 134.157.168.57»
# allowedClients = «127.0.0.1, 134.157.168.0/24»
allowedClients = 127.0.0.1
allowedPorts = 1-65535
# Uncomment this if you want your Polipo to identify itself by
# something else than the host name:
proxyName = «localhost»
# Uncomment this if there's only one user using this instance of Polipo:
cacheIsShared = false
# Uncomment this if you want to use a parent proxy:
#parentProxy = «127.0.0.1:8118»
# Uncomment this if you want to use a parent SOCKS proxy:
#socksParentProxy = «localhost:9050»
#socksProxyType = socks5
### Memory
### ******
# Uncomment this if you want Polipo to use a ridiculously small amount
# of memory (a hundred C-64 worth or so):
# chunkHighMark = 819200
# objectHighMark = 128
# Uncomment this if you've got plenty of memory:
# chunkHighMark = 50331648
# objectHighMark = 16384
chunkHighMark = 67108864
### On-disk data
### ************
# Uncomment this if you want to disable the on-disk cache:
#diskCacheRoot = «/var/cache/polipo»
diskCacheRoot = «»
diskCacheTruncateTime = 7d
diskCacheUnlinkTime =15d
diskCacheTruncateSize = 128 MB
# Uncomment this if you want to put the on-disk cache in a
# non-standard location:
#diskCacheRoot = «»
# Uncomment this if you want to disable the local web server:
localDocumentRoot = «»
# Uncomment this if you want to enable the pages under /polipo/index?
# and /polipo/servers?. This is a serious privacy leak if your proxy
# is shared.
# disableIndexing = false
# disableServersList = false
disableLocalInterface = true
disableConfiguration = true
### Domain Name System
### ******************
# Uncomment this if you want to contact IPv4 hosts only (and make DNS
# queries somewhat faster):
#
#dnsQueryIPv6 = no
# Uncomment this if you want Polipo to prefer IPv4 to IPv6 for
# double-stack hosts:
#
dnsQueryIPv6 = reluctantly
# Uncomment this to disable Polipo's DNS resolver and use the system's
# default resolver instead. If you do that, Polipo will freeze during
# every DNS query:
dnsUseGethostbyname = yes
### HTTP
### ****
# Uncomment this if you want to enable detection of proxy loops.
# This will cause your hostname (or whatever you put into proxyName
# above) to be included in every request:
disableVia = true
# Uncomment this if you want to slightly reduce the amount of
# information that you leak about yourself:
# censoredHeaders = from, accept-language
# censorReferer = maybe
censoredHeaders = from,accept-language,x-pad,link
censorReferer = maybe
# Uncomment this if you're paranoid. This will break a lot of sites,
# though:
# censoredHeaders = set-cookie, cookie, cookie2, from, accept-language
# censorReferer = true
# Uncomment this if you want to use Poor Man's Multiplexing; increase
# the sizes if you're on a fast line. They should each amount to a few
# seconds' worth of transfer; if pmmSize is small, you'll want
# pmmFirstSize to be larger.
# Note that PMM is somewhat unreliable.
# pmmFirstSize = 16384
# pmmSize = 8192
# Uncomment this if your user-agent does something reasonable with
# Warning headers (most don't):
# relaxTransparency = maybe
# Uncomment this if you never want to revalidate instances for which
# data is available (this is not a good idea):
# relaxTransparency = yes
# Uncomment this if you have no network:
# proxyOffline = yes
# Uncomment this if you want to avoid revalidating instances with a
# Vary header (this is not a good idea):
# mindlesslyCacheVary = true
# Suggestions from Incognito configuration
maxConnectionAge = 3m
maxConnectionRequests = 100
serverMaxSlots = 16
serverSlots = 2
tunnelAllowedPorts = 1-65535
dnsMaxTimeout=30
dontCacheCookies = true
***
В privoxy устанавливаем перенаправление локально:
# Polipo
forward / 127.0.0.1:8123
$ /usr/local/etc/rc.d/privoxy restart
$ /usr/local/etc/rc.d/polipo restart
Если используем socks:
$ sockstat -4 | grep polipo
Автор: AugustuS Karro
Дата публикации: 2015-07-09T16:27:00.001+07:00
Бункер-01, Privoxy на VDS / Ubuntu Server
$ apt-get install Privoxy
$ ssh -X user@ip_vds
$ gedit /etc/privoxy/config
# Допуск IP адресов на сервер Proxy / VDS
permit-access xxx.xxx.xxx.xxx
# Внешний IP VDS
listen-address localhost:8118
listen-address xxx.xxx.xxx.xxx:8118
listen-address [5a01:230:3:1::92]:8118
# Свой Socks (прозрачный proxy)
#forward-socks5 / 127.0.0.1:1080 .
#forward-socks4a / 127.0.0.1:1080 .
#forward-socks4 / 127.0.0.1:1080 .
# TOR
#forward-socks5 / 127.0.0.1:9050 .
#forward-socks4a / 127.0.0.1:9050 .
#forward-socks4 / 127.0.0.1:9050 .
#forward-socks4a .onion 127.0.0.1:9050 .
# I2P
#forward / 127.0.0.1:4001
#forward .i2p 127.0.0.1:4444
DNS сервера…
Рекомендуем OpenDNS
$ nano /etc/resolv.conf
nameserver 2620:0:ccc::2
nameserver 2620:0:ccd::2
nameserver 208.67.222.222
nameserver 208.67.220.220
Проверим ipv6 (если есть на VDS)…
http://www.test-ipv6.com/
Должно быть 10 из 10 балов, стабильность и готовность IPv6 соединения, когда сайт использует только IPv6.
***
Установка DNSCrypt (dnscrypt-proxy)…
$ add-apt-repository ppa:anton+/dnscrypt
$ apt-get update
$ apt-get install dnscrypt-proxy
Установить основной сервер DNS…
$ nano /etc/resolv.conf
nameserver 127.0.0.2
OR: /etc/network/interfaces
dns-nameservers 127.0.0.2
OR: /etc/dnsmasq.conf
no-resolv
server=127.0.0.2#2053
listen-address=127.0.0.1
Анализируем трафик…
$ tcpdump -i eth0 dst host 176.56.237.171
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
15:43:15.972239 IP it2.fvds.ru.33875 > resolver1.dnscrypt.eu.https: UDP, length 512
15:43:15.972340 IP it2.fvds.ru.33875 > resolver1.dnscrypt.eu.https: UDP, length 512
15:43:16.682532 IP it2.fvds.ru.33875 > resolver1.dnscrypt.eu.https: UDP, length 512
Перепроверим…
Подключим VPN, проверим…
Подключим OS на KVM, проверим…
***
Privoxy в режиме прозрачного прокси
$ nano /etc/privoxy/config
accept-intercepted-requests 1
Включить прозрачное проксирование можно с помощью команд:
$ iptables -t nat -A OUTPUT -p tcp -m owner —uid-owner privoxy -j ACCEPT;
$ iptables -t nat -A OUTPUT -p tcp —dport 80 -j REDIRECT —to-ports 8118;
Отключить прозрачное проксирование можно командами:
$ iptables -t nat -D OUTPUT -p tcp -m owner —uid-owner privoxy -j ACCEPT;
$ iptables -t nat -D OUTPUT -p tcp —dport 80 -j REDIRECT —to-ports 8118;
***
Перезапуск сервера…
/etc/init.d/privoxy restart
Проверить доступ через VPN к серверу Privoxy…
permit-access xxx.xxx.xxx.xxx (возможно использовать ip тунеля).
***
Шлифуем Privoxy через AdblockPlus…
Скрипт добавит фильтры от AdblockPlus в config Privoxy:
filterfile default.filter
filterfile easylistgermany.script.filter
filterfile easylist.script.filter
filterfile user.filter
http://andrwe.org/scripting/bash/privoxy-blocklist
***
Для чего нужны *.action и *.filter файлы?
*.filter — содержат в себе внешние фильтры Privoxy.
Внутренние фильтры Privoxy, в отличие от внешних, вшиты непосредственно в код программы.
*.action — содержат в себе действия, т.е.
В нем будут определены внешние (*.filter) или внутренние фильтры,
и маски адресов, контент которых этими фильтрами должны быть обработан.
Как установить дополнительные *.action и *.filter файлы?
1. Открываете файл конфигурации Privoxy
а) В секции «2.3. actionsfile» вставляете следующее:
actionsfile my-actions-file.actions
— желательно вставлять свои *.actions до объявления user.action
б) В секции «2.4. filterfile» вставляете следующее:
filterfile my-filter-file.filter
Страница после Privoxy теряет свою функциональность или сильно искажается. Что делать?
1. Зайдите на http://config.privoxy.org/show-url-info, введите в поле адрес страницы и нажмите на кнопку «Go».
2. Определите какие фильтры отработали на данной странице.
3. Чтобы отключить фильтры на данной странице необходимо (одно из нижеследующего)
а) Определить какой фильтр нужно отключить, в веб-интерфейсе Privoxy, в user.action создать секцию с отключенным фильтром и адресом данной страницы.
б) Найти в веб-интерфейсе Privoxy, в user.action секцию -filter (или создать ее) и добавить к ней адрес данной страницы.
Автор: AugustuS Karro
Дата публикации: 2015-07-08T20:56:00.000+07:00