Архив автора: admin

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

Установка Gimp в Ubuntu

GIMP — это растровый графический редактор для Linux. Программа предназначена для создания и обработки растровой графики и частичной поддержкой работы с векторной графикой. GIMP является почти полноценной альтернативой такой известной программы, как Adobe Photoshop.

В этой статье будет рассмотрена установка Gimp в Ubuntu 20.04 при помощи официального репозитория, с помощью менеджера приложений Ubuntu, а также с помощью менеджеров пакетов Snap и Flatpak.

Читать

Раздуло кэш SQL? Лечимся народными средствами.

Если при разработке приложений не пользоваться хранимыми процедурами и параметризованными запросами, чем грешат большинство разработчиков, посылая произвольные (Adhoc) запросы серверу
То рано или поздно можно столкнуться с проблемой раздутого процедурного кэша.
Подробнее о механизмах кэширования тут
1.Проверяем есть ли проблемы с процедурным кэшем.
Чтобы понять есть ли проблема с Adhoc запросами, достаточно запустить следующий запрос
SELECT T.*, cast(T.[Total Plans — USE Count 1]*1.0/nullif(t.[Total Plans],0) *100  AS decimal(5,2)) Percentage
FROM
(
       SELECT objtype AS [CacheType]
                    , count_big(*) AS [Total Plans]
                    , sum(cast(size_in_bytes as decimal(18,2)))/1024/1024 AS [Total MBs]
                    , sum(cast((CASE WHEN usecounts = 1 THEN size_in_bytes ELSE 0 END) as decimal(18,2)))/1024/1024 AS [Total MBs — USE Count 1]
                    , sum(CASE WHEN usecounts = 1 THEN 1 ELSE 0 END) AS [Total Plans — USE Count 1]
       FROM sys.dm_exec_cached_plans cp
       WHERE cp.cacheobjtype = N'Compiled Plan'
       AND cp.objtype IN (N'Adhoc', N'Prepared') — adhoc (произвольный запрос), prepared (параметризованный)
       GROUP BY objtype
) T
ORDER BY [Total MBs — USE Count 1] DESC
OPTION (RECOMPILE);  —план не будет сохраняться, эту опцию желательно использовать для adhoc запросов
Из результатов запроса понятно что процент  Adhoc  запросов  которые выполнялись только 1 раз очень высокий 82%

Ниже разница  в планах  adhoc и prepared планах
— выдать 100 первых запросов раздувающих кэш по размеру
SELECT top 100 *
FROM sys.dm_exec_cached_plans AS cp WITH (NOLOCK)
CROSS APPLY sys.dm_exec_sql_text(plan_handle)
WHERE cp.cacheobjtype = N'Compiled Plan'
AND cp.objtype = N'Adhoc'
AND cp.usecounts = 1
ORDER BY cp.size_in_bytes DESC OPTION (RECOMPILE);
Как-же это лечится если повлиять на разработчиков никак не возможно, есть как говорится одно народное средство …..

USE master
EXEC master.dbo.sp_configure 'show advanced options', 1
RECONFIGURE
EXEC master.dbo.sp_configure 'optimize for ad hoc workloads', 1
RECONFIGURE WITH OVERRIDE
GO
Использование этого параметра не очищает процедурный кэш, его очистку необходимо выполнить вручную, есть несколько вариантов:
1.
— очистить весь процедурный кэш для экземпляра
DBCC FREEPROCCACHE;

2. очистить для базы
—Идентификатор базы
DECLARE @intDBID INTEGER
SET @intDBID = (SELECT dbid FROM master.dbo.sysdatabases WHERE name = 'IntegrationDB')

—select @intDBID
—очищаем процедурный кэш для базы
DBCC FLUSHPROCINDB (@intDBID)

3. удалить конкретные планы вручную
— получаем указатель на план
SELECT cp.plan_handle, st.[text]
FROM sys.dm_exec_cached_plans AS cp
CROSS APPLY sys.dm_exec_sql_text(plan_handle) AS st
WHERE [text] LIKE N'%/* GetOnlineSearchResultsMonday %';

— удаляем план из кэша
DBCC FREEPROCCACHE (0x05000800F7BA926C40C15055070000000000000000000000);

Параметр optimize for ad hoc workloads используется для повышения эффективности кэширования планов рабочих нагрузок, содержащих много отдельных нерегламентированных пакетов. Если этот параметр имеет значение 1, компонент Database Engine при первой компиляции пакета, сохраняет в кэше планов небольшую скомпилированную заглушку плана Compiled Plan Stub, а не полный откомпилированный план. Это несколько снижает требования к памяти, так как кэш планов не заполняется скомпилированными, не используемыми повторно планами.
Скомпилированная заглушка плана принадлежит к объектам cacheobjtypes, которые можно просмотреть в представлении каталога sys.dm_exec_cached_plans. У каждой заглушки есть уникальный дескриптор SQL и дескриптор плана. Со скомпилированной заглушкой плана не связан план выполнения. Запрос по дескриптору плана не вернет XML-код Showplan
Для чего это надо ?
Каждая инструкция (T-SQL, SP и другие) сохраняет свой план выполнения в кэше, для дальнейшего использования. По этой причине, большое число планов хранится в системе и множество из них могут использоваться только 1 раз. Это в пустую тратит ресурсы сервера.
Чтобы не сохранялись в кэше планы запросов которые выолняются 1 раз придумали этот параметр сервера.
В загруженной системе легко может быть более миллиона разных инструкций, представьте сколько ресурсов вы тратите в пустую. Благодаря параметру optimize for ad hoc workloads  можно избежать хранения ненужных планов.
Если посмотреть на результаты  внизу после включения опции optimize for ad hoc workloads можно у

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

​Паста с оливками и анчоусами Термомикс.

на 4 порции

Ингредиенты:

  • пучок петрушки
  • 50 г лука (кусочками)
  • 1/2 зубчика чеснока
  • 1 ч. л. орегано
  • 4 анчоуса в масле
  • 15 оливок без косточек
  • 40 г оливкового масла
  • 600 г помидоров в собственном соку (кусочками)
  • 320 г короткой пасты
  • свежий базилик
  • 120 г воды
  • 1/2 ч. л. соли
  • 30 г твердого тертого сыра Читать