Архив рубрики: Linux

Бункер-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

Бункер-03, 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

***

Установка HAVP — HTTP Antivirus Proxy и ClamAV в связке с Privoxy:

Минимальное вступление, ClamAV много поливают грязью, заказанные статьи от ИТ специалистов о «белом» тестировании ClamAV, можно считать простым черным пиаром в виду конкуренции рынка, для Privoxy и прочих прокси серверов его хватает с «головой».

***

$ sudo apt-get install clamav

Настройки по усмотрению.

$ sudo apt-get install havp

HAVP по умолчанию настроен на работу с ClamAV и практически не требует настройки.
Ограничим только локальными соединениями, это необходимо для того, чтобы клиенты не могли подключаться напрямую к HAVP. Для этого в /etc/havp/havp.config найдите и раскомментируйте следующую опцию:

BIND_ADDRESS 127.0.0.1
PORT 5555

Также раскомментируйте и измените указанным образом опцию для русского языка страниц (измените страницы):

TEMPLATEPATH /etc/havp/templates/ru

$ /etc/init.d/havp restart

***

В privoxy устанавливаем перенаправление локально:

# HAVP
forward / 127.0.0.1:5555

***

Тестируем:

http://www.eicar.org/85-0-Download.html

Появится страница с предупреждением о вирусе.

Автор: AugustuS Karro
Дата публикации: 2015-07-10T03:32:00.000+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

Перепроверим…

https://dnsleaktest.com/

Подключим VPN, проверим…

http://dnsleak.com/

Подключим OS на KVM, проверим…

http://whoer.net/

***

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

NetAssist IPv6 Tunnel Broker / openSUSE 13.x GNU-Linux

Настройка IPv6 через NetAssist Tunnel Broker

***

Регистрация и получение данных не описывается.

***

Настройка туннеля:

$ modprobe ipv6
$ ip tunnel add netassist mode sit remote xx.xx.xx.xx local xx.xx.xx.xx ttl 200
$ ip link set netassist up
$ ip addr add 2a01:d1:ffff:3we6::2/64 dev netassist
$ ip route add ::/0 dev netassist
$ ip -f inet6 addr

Если ошибка...

ip addr add 2a01:d1:ffff:3we6::2/64 dev netassist
RTNETLINK answers: Permission denied

Проверить настройки IPv6 в системе, проверить...

$ cat /proc/sys/net/ipv6/conf/default/disable_ipv6
$ cat /proc/sys/net/ipv6/conf/all/disable_ipv6

Если равно 1, то делаем правку на 0...

$ echo 0 > /proc/sys/net/ipv6/conf/default/disable_ipv6
$ echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6

Настройте роутер для туннеля (protocol 41), на личном примере NetGear N300...

Тип интернет-соединения > Туннель 6-4
Удаленный маршрутизатор пересылки 6-4 > Статический IP-адрес > xx.xx.xx.xx
Параметры локальной сети > Автоматическая настройка

$ ping6 ipv6.google.com


Если используем openVPN, добавим DNS google(a) ipv6...

$ nano /etc/resolv.conf

nameserver 2001:4860:4860::8888
nameserver 2001:4860:4860::8844

$ ping6 ipv6.google.com

64 bytes from la-in-x8b.1e100.net: icmp_seq=1 ttl=54 time=89.5 ms
64 bytes from la-in-x8b.1e100.net: icmp_seq=2 ttl=54 time=88.0 ms
64 bytes from la-in-x8b.1e100.net: icmp_seq=3 ttl=54 time=88.2 ms
64 bytes from la-in-x8b.1e100.net: icmp_seq=4 ttl=54 time=88.1 ms


Автор: AugustuS Karro
Дата публикации: 2015-07-07T14:56:00.000+07:00

openVPN / Set Firewall (ufw) / Ubuntu GNU-Linux

Настройка Firewall (ufw), при использовании openVPN…
Симптомы, медленное подключение, задержки при обращении к DNS серверам.

***

Для начала разрешим SSH:

$ ufw allow ssh

Разрешим UDP:

$ ufw allow 1194/udp

Правим правила перенаправления:

$ nano /etc/default/ufw

DEFAULT_FORWARD_POLICY=»ACCEPT»

Правим правила трансляции IP:

$ nano /etc/ufw/before.rules

# rules.before
#
# Rules that should be run before the ufw command line added rules. Custom
# rules should be added to one of these chains:
#   ufw-before-input
#   ufw-before-output
#   ufw-before-forward
#

# START OPENVPN RULES
# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0] 
# Allow traffic from OpenVPN client to eth0
-A POSTROUTING -s 10.8.0.0/8 -o eth0 -j MASQUERADE
COMMIT
# END OPENVPN RULES

Проверка статуса Firewall (ufw):

$ ufw status

Автор: AugustuS Karro
Дата публикации: 2015-07-06T09:34:00.000+07:00