среда, 16 декабря 2015 г.

Учим apt качать с наиболее доступного зеркала.

Исходные данные: 
Xubuntu 14.04 (64 разряда).

Вдруг стал недоступен ru.archive.ubuntu.com... А надо, срочно. Когда-то давно в Дебианах была система зеркал. Она никуда не делась Смотрим ответ №85. И подгоняем его под свои реалии. Эти строки вставляем в самое начало /etc/apt/sources.list

deb mirror://mirrors.ubuntu.com/mirrors.txt trusty main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt trusty-updates main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt trusty-backports main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt trusty-security main restricted universe multiverse
и закомментариваем всякое упоминание ru.archive.ubuntu.com
Делаем apt-get update и продолжаем прерванное ранее.

пятница, 11 декабря 2015 г.

Блокировка url, squid, firefox и chromium


Сначала было слово

    Поступило распоряжение верховного руководства заблокировать ряд забугорных сервисов. Блокировать по ip как-то коряво, никто не несет никаких обязательств в части смены оных ip-шников, так же, в случае попадания в список каких-либо не крупных сервисов, можно нарваться на ip, расшаренный между несколькими, а то и многими сайтами. Стало быть по url. Тут кроме родного и близкого дедушки squid-а и ухватить-то некого... Его и ухватим. В сети примерно 160 ltsp-шных бездисковых станций, штук 40 Xubuntu, штук 50 Win... разномастных, пара Маков, штук 30 Андроидов. Попробуем максимально принудительно прописать им путь до прокси, потом закроем прямую дорогу.

Полезные ссылки в части принудительного насаждения прокси
http://en.wikipedia.org/wiki/Proxy_auto-config
http://wiki.squid-cache.org/SquidFaq/ConfiguringBrowsers
http://tdkare.ru/sysadmin/index.php/Chromium-browser
http://technet.microsoft.com/ru-ru/library/cc985352.aspx
и самое ценное
http://askubuntu.com/questions/263567/set-web-proxy-using-pac-file-url-in-lubuntu

Делаем

Сначала анонсируем прокси обоими возможными способами. dnsmasq обзавелся в своем конфиге вот такой строкой.
# wpad option
dhcp-option=252,http://wpad/wpad.pac

Местный apache был дообозван именем wpad и в корень ему был записан скрипт с именем wpad.dat И его же обозвали (прилинковали) как wpad.pac
В /etc/apache2/mods-available/mime.conf добавлена строчка
AddType application/x-ns-proxy-autoconfig .pac

Содержимое скрипта тривиально.

// Some ideas by Oskar Pearson and the Internet Solution (http://www.is.co.za)

function FindProxyForURL(url, host)
{
    //If they have only specified a hostname, go directly.
    if (isPlainHostName(host))
            return "DIRECT";

    //Connect directly to our domains (for Important News www)
    if (dnsDomainIs( host,"okgvv.loc"))
        return "DIRECT";
    // See next!
    if (dnsDomainIs( host,"www.monitor.kuzdrav.ru"))
        return "PROXY proxy:3128";
    // Parus use 81 port
    if (dnsDomainIs( host,"monitor.kuzdrav.ru"))

        return "DIRECT";

    //Vipnet client's direct path
    if (isInNet(host, "11.0.0.174", "255.255.255.255"))
        return "DIRECT";

    //Local IPs
    if (isInNet(host, "10.0.0.0", "255.255.254.0"))
        return "DIRECT";
    else
            return "PROXY proxy:3128";
}

Это было авто, для всех кто готов слушать и внимать. Всем "своим" еще более принудительно... 

На клиентах

На всех linux-ах, включая и ltsp пропишем для всех простых клиентов (midori например) в /etc/evironment

http_proxy=http://proxy:3128/
https_proxy=http://proxy:3128/
ftp_proxy=http://proxy:3128/
no_proxy="localhost,127.0.0.1,10.0.0.0/23"
HTTP_PROXY=http://proxy:3128/
HTTPS_PROXY=http://proxy:3128/
FTP_PROXY=http://proxy:3128/
NO_PROXY="localhost,127.0.0.1,10.0.0.0/23"

Для Хромиума в файле /etc/chromium-browser/default пропишем
CHROMIUM_FLAGS="--proxy-pac-url=http://wpad/wpad.dat --enable-plugins"



Для Ф-фокса в /etc/firefox/syspref.js в хвост
lockPref("network.proxy.autoconfig_url", "http://wpad/wpad.dat");
lockPref("network.proxy.type", 2);



если почитать about:config в Мозилле, много чего захочется добавить следом, например для бездисковых клиентов.

lockPref("browser.cache.disk.filesystem_reported", 1);
lockPref("browser.cache.disk.capacity", 35840);
lockPref("browser.cache.disk.smart_size.enabled", false);
lockPref("browser.startup.homepage", "http://yandex.ru");
pref("browser.search.defaultenginename","Яндекс");
pref("browser.search.order.2","Яндекс");


и в /etc/apt/apt.conf (сам файл скорее всего нужно создать).
Acquire::http::proxy "http://proxy:3128/";
Acquire::https::proxy "http://proxy:3128/";
Acquire::ftp::proxy "http://proxy:3128/";
Acquire::::Proxy "true";



В Windows достаточно прописать "автоматическое определение настроек". С ними сильно церемониться не будем (в этом лесу законы не писаны) а просто перекроем прямой роутинг (http+https) на пограничном шлюзе... Сами приползут :-)


Множественные черные списки в squid

    Родное государство постоянно заботится о безопасности госслужащих и госучреждений, но не путем создания отечественного ПО с дырками в сторону структур бывшего КГБ, а путем запретов использования всего иного прочего, с дырками в госдеп. Стало быть задачи ограничения всякого рода свобод все разнообразнее... При выполнении очередной указивки возникла потребность сделать несколько черных списков, так чтоб делить сотрудников по сортам, рангам и степени приближенности... Предыдущий вариант содержал только 1 черный список. Вот его модификация. Новое содержимое выделено голубым.

acl localnet src 10.0.0.0/23
acl onlywhite src "/etc/squid3/onlywhite.ip"
acl onlyblack src "/etc/squid3/onlyblack.ip"
acl black2 src "/etc/squid3/black2.ip"
acl black3 src "/etc/squid3/black3.ip"
.
.
acl blackn src "/etc/squid3/blackn.ip"
acl whitelist url_regex -i "/etc/squid3/whitelist.url"
acl blacklist url_regex -i "/etc/squid3/blacklist.url"
acl blacklist2 url_regex -i "/etc/squid3/blacklist2.url"
acl blacklist3 url_regex -i "/etc/squid3/blacklist3.url"
.
.
acl blacklistn url_regex -i "/etc/squid3/blacklistn.url"


Любой ip-адрес может быть встречен в каждом из списков

И ограничительная часть будет выглядеть так
http_access deny onlyblack blacklist
http_access deny black2 blacklist2
http_access deny black3 blacklist3
.
.
http_access deny blackn blacklistn
http_access deny onlywhite !whitelist
http_access allow localnet

Получается в первом списке у нас соц. сети, во втором Google и Whatsapp, в третьем youtube, ну и так далее. Попавшие во все списки вынуждены заниматься на работе только работой...