суббота, 7 декабря 2013 г.

Squid: Работаем с HTTP-headers

Вообще говоря, модификации заголовков HTTP - нарушение стандарта. Мы все это знаем :) и продолжаем в корыстных целях с ними ковыряться.

Как обычно, интернет переполнен дезой, не содержащей корректных конфигов, и к тому же они обычно не проверяются авторами на правильность. Лишь бы спереть и высказаться (еще и по-русски пишут безграмотно, причем списывают с одинаковыми ошибками, как в начальной школе).

Поскольку мы люди правильные, мы ничего непроверенного не болтаем. :)

Итак, "вот ваш друг, Билли!"

# Hide internal networks details outside
forwarded_for off

# Replace useragent
header_access User-Agent deny all
header_replace User-Agent Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko

# Header control
header_access X-Cache deny all
header_access X-Cache-Lookup deny all
header_access X-Forwarded-For deny all
header_access Forwarded-For deny all
header_access Via deny all


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

В принципе, комментарии исчерпывающе объясняют суть манипуляций. Как видно, мы минимальным образом вмешиваемся в заголовки и преследуем лишь три цели:

1. Скрыть детали внутренней сети от веб-сайтов.
2. Скрыть существование прокси по  дороге от клиента до сайта.
3. Заменить заголовок User-Agent на IE 11 :) Дабы вызвать брожение среди красноглазых пингвиноёпингвинофилов.

Обратите внимание на следующее.

Первое. Не надо много заголовков ковырять - это все же нарушение стандарта. :) Того, что у меня написано - хватамбо для того, чтобы все обнаружители прокси обломались. Проверил на всех, до которых дотянулся.

И второе - для замены User-Agent надо сперва вырубить все внутренние заголовки, а уже потом делать их замену. Иначе не работает.

PS. Господа копипастеры, выдающие себя за айтишников! Вы на внешних тестах свои конфигурации хоть раз проверяйте. А то кажущееся вам поведение здорово расходится с истинным.

пятница, 6 декабря 2013 г.

Solaris 10 u11 установка с USB

В 2013м году внезапно обнаружилось, что купить DVD-R (болванку) вовсе не так просто. :)))))) Напоминает старый советский анекдот: 

- Почему у вас в магазине нет черной икры?
- А ее никто не спрашивает!

Шутки шутками, однако, когда мне не удалось при помощи LiveUpgrade обновить Solaris u10 до u11 (сюрприз! Если вы скрупулезно не ставили патчи по подписке Оракла за конскую цену - вы попали!), пришлось тряхнуть стариной.

А старина - хоп! - и отвалилась! Не помогает это теперь. ИндиИдиотыИндопрограммисты (я воздержусь от нецензурщины) из Оракла внезапно решили (это даже на сайте написано, чистейшим английским), что еще и сейчас, в 2013м году, повсюду и во всех ларьках, валяются десятками DVD-болванки в упаковках, и стоят они смешные деньги.... Ха. Как бы не так. Нету их, золотые мои.

Короче, суть в следующем. DVD-болванок не купишь ни за какие деньги - их физически нету. А с USB, по вышеописанное по ссылке методике, Солярис вставать отказывается. 

В двух словах. Под занавес процедуры установки стартует бинарь, в котором захардкодена ссылка на /cdrom. Вот так. Опачки. И править скрипты теперь толку нету.

Однако - устанавливаться надо. Хрен с ним, с апгрейдом - надо просто установиться.

В общем, так. Установочную флешку надо все-равно говтовить, как я и писал ранее.

И в момент, когда установщик заявит, что-де не вижу установочного диска, надо тупо выйти из процедуры установки в шелл по кнопочке F5. 

И набрать там (флешка должна быть воткнута!) следующее:


# mount -o ro -F ufs /dev/dsk/c0t0d0s0 /cdrom



(при загрузке с USB-флешки, если больше UFS нигде нет - подразумевается, что наш u10 был установлен полностью на zfs - флешка будет устройством c0t0d0)

Затем:

# cd /cdrom

# install-solaris


ну и далее обычная процедура установки. Кстати, с приличной флешки установка идет весьма быстро.

PS. Если вы озаботились предыдущую установку сделать правильно, помните разбивку диска и сохранили большинство конфигов - переустановка много времени не занимает. Кстати, новый релиз весьма быстр.

Иудино семя

Словосочетание "ситуационная этика" - оксюморон. Я нахожу меняющих убеждения особенно отвратительными.

В свое время я зарекся лезть в политику и подходить к ней ближе, чем на расстояние ракетного залпа. Однако вот это и вот это меня, откровенно говоря, взбесило.

Нет, я знаю, конечно, что в семье не без урода. И что "этика", "профессиональная этика" и "совесть Эдварда Сноудена" ближе, чем на парсек, никогда не приближались к этой планете. Но уроды в промышленных количествах меня угнетают.

Эдвард Сноуден, кстати, отдельная песня. Это Иуда Искариот в чистейшем виде. Наивный юноша, преисполненный светлых идеалов и прибывший в нашу планетную систему не иначе, как из соседней вселенной, нанимается в АНБ, полный святых убеждений в том, что это - корпорация Добра и Света. Получает зарплату. Светильники зажигает..... упс, это у Булгакова. Но не важно. Потому что Эдвард Сноуден - Иуда. 

Либо всю жизнь ходи босой, как RMS, питаясь грязью с подошв и проповедуй, будучи святее папы Римского, идеалы Добра и Света. Либо не ходи - но тогда и не предавай своего нанимателя, кто бы он ни был. Мало того, что это позорно. Это еще и слишком напоминает крокодиловы слезы гитлеровских палачей в Нюрнберге, говорит все об интеллектуальном уровне раскаявшегося, а заодно и о его ну очень гибкой морали.

Это относится, кстати, к очень многим коллегам из отрасли. Взгляните в зеркало и задайте сами себе вопрос - где в последний раз ночевала ваша профессиональная этика.

Однако я отвлекся. Профессиональная этика это предмет абстрактный и носящий, скорее, репутационный характер.

А вот приведенные в начале статьи поступки меня, честно говоря, ставят в тупик. Я затрудняюсь это даже как-то классифицировать.

Собственно, почему мне на ум Сноуден и пришел. 

Это те же самые сноудены - только наоборот.

С шести до девяти они святее папы римского, разглагольствуют на уютненьком опеннете, какое нехорошее государство, как оно пытается - нам! - запрещать и управлять.

А с девяти до шести, смазав соответствующее отверстие бизнес-гелем и раздвинув булки пошире, они, преисполненные служебного рвения, спешат исполнять высочайший указ этого самого государства в меру своих хилых силенок и квалификации.

Только не надо распинаться, что "Мы всего лишь выполняем закон". Чуть измененную фразу "Я всего лишь выполнял приказ" часто слышали потом в городе Нюрнберге.

Как я и сказал - ни этикой, ни совестью здесь и не пахнет. Иудино семя.

Слушайте, вы! Либо крестик снимите, либо трусы наденьте!

PS. Не надо мне петь, что государство из самых лучших побуждений закрывает доступ к святым местам якобы вредной информации. Информация, сама по себе, не бывает вредной - как и кухонный нож. Убивает не оружие. Убивает человек. Куда такими побуждениями вымощена дорога - мне известно. Равно как и эффективность подобных мер, а также реалии этой жизни - для чего и почему это делается - и так своевременно. А впрочем, капитан Очевидность и сам прекрасно объяснит.

понедельник, 25 ноября 2013 г.

Cisco DNS proxy + BIND cache + dnscrypt

Как-то раз однажды мне понадобилось соорудить приличную и быстро работающую связку из описанных в заголовке компонентов. Нет, ну это было, конечно, сделано в рамках приведения инфраструктуры сети из состояния "лоскутное одеяло" в божеский вид.

Как обычно, поверхностное гугление накопало массу унылого говна с ошибками - создается впечатление, что народ, копипастя друг у друга, даже не чешется эти так называемые решения проверить и убедиться, что все так и работает, как написано.

Пришлось убить около десяти дней времени, чтобы все, во-первых, проделать лично - поэтапно и все вкупе, а во-вторых, найти все грабли и подводные камни, разложенные разработчиками компонентов и писаками поганых статеек.

Представляю вашему вниманию готовое и работоспособное решение.

Cisco DNS proxy


Правило 1: Cisco не слишком хороша в роли DNS-сервера. Максимум в качестве DNS-прокси, переадресующего запросы далее.

Исходя из этого принципа конфигурируем главный роутер инфраструктуры:

ip dns server

ip domain name localdomain
ip name-server 192.168.200.3
ip name-server 8.8.4.4
ip name-server 8.8.8.8


Первым указываем адрес нашего будущего кэширующего сервера (у меня на нем же расположен прокси), и - на случай, если этот сервер будет вдруг лежать - чтобы пользователи не остались без инета, укажем два публичных DNS Гугла.

Так как наша циска главная и по совместительству является DHCP-сервером, изменим во всех пулах адреса DNS на шлюз сети:

!
ip dhcp pool 100
network 192.168.100.0 255.255.255.0
default-router 192.168.100.1
dns-server 192.168.100.1
option 252 ascii "http://192.168.200.3:8080/wpad.dat "
!



Прошу заметить, что наш кэширующий DNS располагается как раз на прокси-сервере, к чему есть определенные предпосылки (Squid тоже использует кэширующий DNS для ускорения).

Проделанная операция сильно сократит прямой DNS-трафик из сетей наружу и снизит нагрузку на инфраструктуру. Наша циска будет по умолчанию форвардить DNS-запросы на первый ответивший сервер, а, поскольку в одном хопе будет располагаться наш кэш, он и будет отвечать быстрее всех.

BIND как рекурсор


Настройка кэширующего DNS (рекурсора) это отдельная голубая печаль. 

Почему печаль? Потому что интернет переполнен перепостами пары-тройки мудацких статеек на тему того, как поднять этот самый рекурсор.

Прежде всего, ребятишки: вы сами пробовали поднять кэширующий BIND? Ах, вы думали, что он кэширует.... А посмотреть потом в кэш бинда - что он, собственно говоря, кэширует - вы пробовали? Ах, нет, это вон тот ваня написал, а он уж знает толк..... 

Золотые мои. Рекурсору не нужны корневые DNS. Вообще. Вот не нужны и все тут. Он без них заведется.

Нужно, по существу, только два файла. named.conf и localhost.rev. Ну и rndc поднять - для удобства, контроля и мониторинга. И это все.

Простенький примерчик. Используем в качестве рута гугловые паблик DNS (хотя это плохая идея. Гугл прогибается под правительства. Выберите другие источники.) и кэшируем их ответы.

Пишем /etc/named.conf:


acl "myfolks" { 192.168.0.0/16; 127.0.0.1; };

key "rndc-key" {
algorithm hmac-md5;
secret "9d1KdGZr5W2xTdGsqsWtag==";
};

controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};

options {
directory "/var/named";
pid-file "/var/run/named/named.pid";
allow-query { "myfolks"; };
version "unknown";
};
// Forward zone:
zone "." {
type forward;
forwarders { 8.8.4.4; 8.8.8.8; };
};
// Reverse resolve for 127.0.0.1:
zone "0.0.127.in-addr.arpa" {
type master;
file "localhost.rev";
notify no; };


Разумеется, надо положить в /var/named файл localhost.rev.

Обратите внимание на следующие моменты. В опциях НЕ НАДО писать директивы о рекурсии. Если вы это сделаете - вы в кэше не увидите ничего, кроме рутовых DNS (желающие могут лично убедиться с помощью команды rndc dumpdb). Вы именно их желаете кэшировать? Ну-ну, вперед. 2 секунды латентности кэширующего DNS убедят даже анацефала вас. 

Корневая зона ссылается на форвардеры, а не на файл с рутовыми DNS. Еще раз - рутовые DNS ни на фиг кэшу не упёрлись. Ни во что. (Они тем более не уперлись, что в одно действие подменяются контролируемым провайдером источником. Проблемы с цензурой поимеете).

Тип форвардинга менять не надо. Forward only. Начнете экспериментировать - обнаружите в кэше все те же корневые DNS и ничего более.

Ах, да - localhost.rev сами сумеете сгенерировать? ;) И rndc.conf создать? :)

Ну и напоследок надо просто выполнить команду svcadm enable dns/server.

Форвардер мы чуть позже поменяем на сервис dnscrypt, но об этом в следующей части. Те, кто считает, что скрывать им нечего и DNS-фуфло, могут на этом и закончить конфигурирование. :)

DNSCrypt как форвардер


По зрелом размышлении я оставил сервис dnscrypt (давно функционирующий на прокси) в качестве форвардера для наполнения нашего кэша.

Собственно, сам dnscrypt без каких бы то ни было проблем преспокойно собирается на Солярисе. И единственное, что потребуется - это SMF-сервис для него.

Такой сервис готов, написан и лежит здесь.

Последние штрихи. Конфигурационный файл сервиса лежит в /etc и настраивается так, как в архиве. На нестандартный порт. Ну и, соответственно, после запуска сервиса (по умолчанию dnscrypt использует сервисы OpenDNS) следует изменить строчку forwarders в /etc/named.conf:

forwarders { 127.0.0.1 port 5355; };


и перезапустить BIND: svcadm restart dns/server.

Дать всей этой связке немного поработать, затем дать команду rndc dumpdb и убедиться, что в кэше (дамп будет находиться в /var/named/named_dump.db) находятся именно запрашиваемые клиентами DNS:

;
; Start view _default
;
;
; Cache dump of view '_default'
;
$DATE 20131125121626
; additional
235.92.163.95.in-addr.arpa. 1152 IN \-ANY ;-$NXDOMAIN
; answer
cloudns.com.au. 3095 A 198.98.104.71
; answer
www.yahoo.co. 52462 CNAME rc.yahoo.com.
; answer
www.aaronvanderzwan.com. 5830 A 69.163.223.130
; answer
get.adobe.com. 3149 CNAME get.wip4.adobe.com.
; answer
www.adobe.com. 4845 CNAME www.wip4.adobe.com.
; answer
ec2-54-247-27-195.eu-west-1.compute.amazonaws.com. 581328 A 54.247.27.195
; answer
www.arsenal.com. 67536 CNAME cs19.wpc.edgecastcdn.net.
; answer
img1.blogblog.com. 75530 CNAME blogger.l.google.com.
; answer
www.blogblog.com. 2983 CNAME blogger.l.google.com.
; answer
www1.blogblog.com. 75526 CNAME blogger.l.google.com.
; answer
www2.blogblog.com. 75526 CNAME blogger.l.google.com.
; answer
www.blogratedirectory.com. 2383 CNAME blogratedirectory.com.
; answer
1.bp.blogspot.com. 593928 CNAME photos-ugc.l.googleusercontent.com.
; answer
2.bp.blogspot.com. 593925 CNAME photos-ugc.l.googleusercontent.com.
; answer
4.bp.blogspot.com. 593925 CNAME photos-ugc.l.googleusercontent.com.
; answer
yvoinov.blogspot.com. 2981 CNAME blogspot.l.googleusercontent.com.
; answer
static.chartbeat.com. 13870 CNAME chartbeat.edgekey.net.
; answer
ajax.cloudflare.com. 61532 CNAME ajax.cloudflare.com.cdn.cloudflare.net.
; answer
www.clubvulcan.com. 22533 CNAME clubvulcan.com.
; answer
facebook.conduitapps.com. 687 CNAME www.conduitapps.com.edgesuite.net.
; answer
youtube.conduitapps.com. 3089 CNAME www.conduitapps.com.edgesuite.net.
; answer
hosted.daportfolio.com. 2836 A 199.15.160.103
; answer
wilkowski.daportfolio.com. 575691 CNAME hosted.daportfolio.com.
; answer
ocsp.digicert.com. 64643 CNAME cs9.wac.edgecastcdn.net.
; answer
ideaskz.disqus.com. 18135 CNAME disqus.map.fastly.net.
; answer
static.ak.facebook.com. 747 CNAME static.ak.facebook.com.edgesuite.net.
; answer
api.facebook.com. 484 CNAME star.c10r.facebook.com.
; additional
c10r.facebook.com. 109386 NS a.ns.c10r.facebook.com.
109386 NS b.ns.c10r.facebook.com.
; additional
a.ns.c10r.facebook.com. 125370 A 69.171.239.11
; additional
b.ns.c10r.facebook.com. 109386 A 69.171.255.11
; answer
graph.facebook.com. 481 CNAME api.facebook.com.
; answer
api.farmanager.com. 2065 A 93.174.73.204
; answer
www.freedrweb.com. 3505 A 87.242.75.212
; answer
geiminator.com. 27434 A 178.73.241.138
; answer
www.geiminator.com. 27434 CNAME geiminator.com.
; answer
accounts.google.com. 280489 CNAME accounts.l.google.com.
; answer
apis.google.com. 333645 CNAME plus.l.google.com.
; answer
clients2.google.com. 65 CNAME clients.l.google.com.
; answer
code.google.com. 604200 CNAME code.l.google.com.
; answer
0.docs.google.com. 575959 CNAME browserchannel-docs.l.google.com.
; answer
drive.google.com. 223 A 173.194.113.169
223 A 173.194.113.168
223 A 173.194.113.167
223 A 173.194.113.174
223 A 173.194.113.163
223 A 173.194.113.166
223 A 173.194.113.164
223 A 173.194.113.165
223 A 173.194.113.160
223 A 173.194.113.161
223 A 173.194.113.162
; answer
upload.drive.google.com. 585205 CNAME large-uploads.l.google.com.
; answer
feedburner.google.com. 598265 CNAME www3.l.google.com.
; answer
feedproxy.google.com. 287779 CNAME www4.l.google.com.
; answer
ghs.google.com. 318253 CNAME ghs.l.google.com.
; answer
tools.l.google.com. 71 A 173.194.113.132
71 A 173.194.113.134
71 A 173.194.113.133
71 A 173.194.113.131
71 A 173.194.113.142
71 A 173.194.113.137
71 A 173.194.113.135
71 A 173.194.113.129
71 A 173.194.113.128
71 A 173.194.113.136
71 A 173.194.113.130
; answer
www3.l.google.com. 49 A 173.194.113.130
49 A 173.194.113.134
49 A 173.194.113.133
49 A 173.194.113.135
49 A 173.194.113.142
49 A 173.194.113.137
49 A 173.194.113.131
49 A 173.194.113.128
49 A 173.194.113.136
49 A 173.194.113.129
49 A 173.194.113.132
; answer
mail.google.com. 319036 CNAME googlemail.l.google.com.
; answer
safebrowsing.google.com. 333009 CNAME sb.l.google.com.
; answer
safebrowsing-cache.google.com. 322426 CNAME safebrowsing.cache.l.google.com.
; answer
sb-ssl.google.com. 578693 CNAME sb-ssl.l.google.com.
; answer
support.google.com. 15566 CNAME www3.l.google.com.
; answer
talk.google.com. 557982 CNAME talk.l.google.com.
; answer
toolbarqueries.google.com. 575699 CNAME toolbarqueries.l.google.com.
; answer
tools.google.com. 287997 CNAME tools.l.google.com.
; answer
translate.google.com. 292464 CNAME www3.l.google.com.
; answer
www.google.com. 23 A 173.194.113.178
23 A 173.194.113.176
23 A 173.194.113.177
23 A 173.194.113.180
23 A 173.194.113.179
; answer
ssl.google-analytics.com. 18980 CNAME ssl-google-analytics.l.google.com.
; answer
www.google-analytics.com. 34436 CNAME www-google-analytics.l.google.com.
; answer
ajax.googleapis.com. 1018 CNAME googleapis.l.google.com.
; answer
fonts.googleapis.com. 1675 CNAME googleapis.l.google.com.
; answer
farmanager.googlecode.com. 66871 CNAME googlecode.l.googleusercontent.com.
; answer
www.googletagmanager.com. 5160 CNAME www-googletagmanager.l.google.com.
; answer
doc-0o-ag-docs.googleusercontent.com. 57619 CNAME googlehosted.l.googleusercontent.com.
; answer
blogspot.l.googleusercontent.com. 40 A 173.194.113.138
40 A 173.194.113.140
40 A 173.194.113.139
; answer
lh3.googleusercontent.com. 83734 CNAME googlehosted.l.googleusercontent.com.
; answer
oauth.googleusercontent.com. 9697 CNAME googlehosted.l.googleusercontent.com.
; answer
themes.googleusercontent.com. 17425 CNAME googlehosted.l.googleusercontent.com.
; answer
adv.gpm-digital.com. 61709 A 77.95.133.6
; answer
1.gravatar.com. 3050 CNAME cs91.wac.edgecastcdn.net.
; answer
track.hubrus.com. 5571 CNAME pool.retargeter.iponweb.net.
; answer
invisionboard.com. 7719 A 50.28.75.102
; answer
www.invisionboard.com. 7719 CNAME invisionboard.com.
; answer
juick.com. 41908 A 178.63.67.74
; answer
lastpass.com. 2069 A 38.127.167.7
2069 A 128.121.22.133
; answer
lp-push-server-164.lastpass.com. 2025 A 192.241.185.248
; additional
livejournal.com. 78711 NS ns2.cdnetdns.net.
78711 NS ns1.cdnetdns.net.
; answer
l-stat.livejournal.com. 63110 CNAME l-stat.livejournal.com.cdngc.net.
; answer
cdn-images.mailchimp.com. 34702 CNAME dbhkt46el5ri0.cloudfront.net.
; answer
marketgid.com. 63516 A 87.242.88.80
; answer
rtbproxy.marketgid.com. 68517 CNAME proxy.rtbsystem.com.
; answer
ieonline.microsoft.com. 178 CNAME any.edge.bing.com.
; answer
teredo.ipv6.microsoft.com. 115 CNAME teredo.ipv6.microsoft.com.nsatc.net.
; answer
redir.opera.com. 81877 A 91.203.99.52
; answer
support.plarium.com. 54741 A 209.190.121.242
; answer
td.plarium.com. 65370 A 209.190.121.242
; answer
doc.powerdns.com. 1811 CNAME xs.powerdns.com.
; answer
xs.powerdns.com. 1811 A 82.94.213.34
; answer
pixel.quantserve.com. 2686 CNAME map-pb.quantserve.com.akadns.net.
; answer
www.rarsoft.com. 7830 CNAME rarsoft.com.
; answer
reklamaster.com. 2724 A 5.9.85.7
; answer
rulesofwargame.com. 4801 A 173.45.106.130
; answer
b.scorecardresearch.com. 62206 CNAME b.scorecardresearch.com.edgesuite.net.
; answer
w.sharethis.com. 49947 CNAME w.sharethis.com.edgesuite.net.
; answer
singerco.com. 74989 A 174.143.15.114
; answer
www.singerco.com. 74989 CNAME singerco.com.
; answer
cluster-3.skillclub.com. 66555 A 209.190.121.202
; answer
cluster-5.skillclub.com. 67016 CNAME plarium.vo.llnwd.net.
; answer
www.slate.com. 26532 CNAME www.slate.com.edgesuite.net.
; answer
www.socialgrowthtechnologies.com. 27015 CNAME socialgrowthtechnologies.com.
; answer
dc1.soltysiak.com. 77139 A 178.216.201.222
; answer
u1136.39.spylog.com. 25946 CNAME ru03-hits.spylog.com.
; answer
u5928.82.spylog.com. 156220 CNAME ru09-hits.spylog.com.
; answer
crl.startssl.com. 61553 CNAME www.startssl.com.edgesuite.net.
; answer
www.startssl.com. 64096 A 192.116.242.20
; answer
www.sugarsync.com. 67790 A 74.201.86.21
; answer
liveupdate.symantecliveupdate.com. 370 CNAME liveupdate.symantec.d4p.net.
; answer
scm-l3.technorati.com. 600 CNAME wac.1DDE.edgecastcdn.net.
; answer
static.technorati.com. 558428 A 208.66.65.196
; answer
widgets.technorati.com. 988 CNAME www.technorati.com.
; answer
www.technorati.com. 1956 A 208.66.65.239
; additional
twitter.com. 78711 NS ns3.p34.dynect.net.
78711 NS ns2.p34.dynect.net.
78711 NS ns4.p34.dynect.net.
78711 NS ns1.p34.dynect.net.
; answer
search.vuze.com. 42757 CNAME web-www-1660276444.us-east-1.elb.amazonaws.com.
; answer
time.windows.com. 754 CNAME time.microsoft.akadns.net.
; answer
igurublog.wordpress.com. 3177 CNAME lb.wordpress.com.
; answer
l3.yimg.com. 252 CNAME fd-geoycs-l.gy1.b.yahoodns.net.
; answer
accounts.youtube.com. 2991 CNAME www3.l.google.com.
; answer
www.youtube.com. 28796 CNAME youtube-ui.l.google.com.
; answer
www.apoelfc.com.cy. 80556 A 195.14.149.64
; answer
www.fcbayern.telekom.de. 27456 CNAME www.fcbayern.de.
; answer
monstrum.dk. 8924 A 91.221.206.60
; answer
www.monstrum.dk. 8924 CNAME monstrum.dk.
; answer
dnscrypt.eu. 33939 A 192.71.151.13
; answer
www.olweb.fr. 1408 CNAME olweb.tf1.fr.
; answer
soro.in. 5058 A 78.46.246.125
; answer
ad.mydiesel.kg. 82261 A 212.42.102.204
; answer
www.alb.kz. 253335 A 212.154.249.43
; answer
www.alb24.kz. 248040 A 92.46.47.151
; answer
alfa.kz. 73674 A 195.93.153.94
; answer
aktau.alfa.kz. 79840 CNAME new-alfa.neolabs.net.
; answer
aktobe.alfa.kz. 79839 CNAME new-alfa.neolabs.net.
; answer
astana.alfa.kz. 79840 CNAME new-alfa.neolabs.net.
; answer
atyrau.alfa.kz. 74841 CNAME new-alfa.neolabs.net.
; answer
balhash.alfa.kz. 79840 CNAME new-alfa.neolabs.net.
; answer
ekibastuz.alfa.kz. 67223 CNAME new-alfa.neolabs.net.
; answer
img2.alfa.kz. 67214 A 195.93.153.98
; answer
karaganda.alfa.kz. 82026 CNAME new-alfa.neolabs.net.
; answer
kokshetau.alfa.kz. 82026 CNAME new-alfa.neolabs.net.
; answer
kostanay.alfa.kz. 77516 CNAME new-alfa.neolabs.net.
; answer
kyzylorda.alfa.kz. 79842 CNAME new-alfa.neolabs.net.
; answer
pavlodar.alfa.kz. 79841 CNAME new-alfa.neolabs.net.
; answer
petropavlovsk.alfa.kz. 67224 CNAME new-alfa.neolabs.net.
; answer
rudniy.alfa.kz. 82027 CNAME new-alfa.neolabs.net.
; answer
bf.kz. 51850 A 195.210.46.200
; answer
bin.kz. 51846 NS ns.zakon.kz.
51846 NS mx.zakon.kz.
; answer
www.gcvp.kz. 12144 A 212.154.192.85
; answer
clients1.google.kz. 2773 CNAME clients-cctld.l.google.com.
; answer
id.google.kz. 63116 CNAME id.l.google.com.
; answer
akimzyrian.gov.kz. 9815 A 89.28.129.117
; answer
forum.ideas.kz. 10043 A 69.163.137.160
; answer
cabinet.idport.kz. 48856 A 89.218.23.182
; answer
www.inform.kz. 5090 A 212.154.160.250
; answer
deposit.kaspibank.kz. 4215 A 82.200.138.67
; answer
static.br.kcdn.kz. 25457 A 185.22.67.254
; answer
static.kl.kcdn.kz. 6949 A 185.22.67.234
; answer
base.kiwi.kz. 7410 A 195.210.46.44
; answer
adilet.minjust.kz. 47193 A 89.218.67.50
; answer
i2.mynur.kz. 3562 A 195.210.46.168
; answer
i4.mynur.kz. 475 A 195.210.46.168
; answer
nationalbank.kz. 55827 A 212.154.131.69
; answer
www.nationalbank.kz. 2 A 212.154.131.69
; answer
php5.neolabs.kz. 55791 A 195.93.153.26
; answer
www.web.neolabs.kz. 16689 CNAME php5.neolabs.kz.
; answer
zero-data.neolabs.kz. 66348 A 195.93.153.23
; answer
olimp.kz. 533 A 91.216.220.4
; answer
prosportkz.kz. 1145 A 95.56.230.203
; answer
quorum.kz. 1991 A 91.219.194.34
; answer
www.quorum.kz. 1991 CNAME quorum.kz.
; answer
cabinet.salyk.kz. 45962 A 212.154.165.148
; answer
www.salyk.kz. 45773 A 89.218.84.157
; answer
sia.kz. 10027 A 195.93.153.3
; answer
pro.sia.kz. 10030 A 195.93.153.3
; answer
www.sia.kz. 10028 CNAME sia.kz.
; answer
www.stat.kz. 136783 A 92.46.127.4
; answer
tengrinews.kz. 1674 A 92.46.32.205
; answer
www.today.kz. 54368 A 92.46.53.224
; answer
vesti.kz. 54567 A 195.210.47.168
; answer
voxpopuli.kz. 230 A 195.210.46.120
; answer
www.voxpopuli.kz. 230 CNAME voxpopuli.kz.
; answer
www.zakon.kz. 1321 A 212.154.141.146
; answer
www.zdrav.kz. 534 A 89.218.2.186
; answer
zero.kz. 56787 A 195.93.153.23
; answer
c.zero.kz. 65314 CNAME zero-data.neolabs.kz.
; answer
www.behance.net. 18877 CNAME behance.net.
; answer
liveupdate.symantec.d4p.net. 743 CNAME symantec.georedirector.akadns.net.
; answer
ad.doubleclick.net. 64615 CNAME dart.l.doubleclick.net.
; answer
fls.doubleclick.net. 78714 CNAME dart.l.doubleclick.net.
; answer
stats.g.doubleclick.net. 63372 CNAME stats.l.doubleclick.net.
; answer
imgg.dt00.net. 3777 CNAME imgg.dt01.net.
; answer
wac.1DDE.edgecastcdn.net. 2983 CNAME gs1.wac.edgecastcdn.net.
; answer
cs107.wac.edgecastcdn.net. 478 A 68.232.35.139
; answer
cs9.wac.edgecastcdn.net. 5375 A 93.184.220.29
; answer
gs1.wac.edgecastcdn.net. 2983 A 93.184.220.20
; answer
chartbeat.edgekey.net. 13870 CNAME e6059.g.akamaiedge.net.
; answer
wildcard.mam.conduit.com.edgekey.net. 6635 CNAME e8089.g.akamaiedge.net.
; answer
www.conduit.com.edgekey.net. 1881 CNAME e6321.g.akamaiedge.net.
; answer
wildcard.mythings.com.edgekey.net. 1265 CNAME e6082.b.akamaiedge.net.
; answer
javadl-esd-secure.oracle.com.edgekey.net. 6209 CNAME e5486.g.akamaiedge.net.
; answer
crl.ws.symantec.com.edgekey.net. 5521 CNAME e6845.ce.akamaiedge.net.
; answer
wildcard.krxd.net.edgekey.net. 13869 CNAME e5180.g.akamaiedge.net.
; answer
wwwimages.adobe.com.edgesuite.net. 10437 CNAME wwwimages.adobe.com.edgesuite.net.globalredir.akadns.net.
; answer
cdn.afterdownload.com.edgesuite.net. 4541 CNAME a1834.g1.akamai.net.
; answer
af.avg.com.edgesuite.net. 12045 CNAME a702.g2.akamai.net.
; answer
alerts.conduit-services.com.edgesuite.net. 5443 CNAME a1726.g1.akamai.net.
; answer
clientservice.mam.conduit-services.com.edgesuite.net. 6293 CNAME a743.g1.akamai.net.
; answer
www.conduitapps.com.edgesuite.net. 6620 CNAME a122.g1.akamai.net.
; answer
www.msftncsi.com.edgesuite.net. 11939 CNAME a1961.g.akamai.net.
; answer
www.outbrain.com.edgesuite.net. 4471 CNAME a267.b.akamai.net.
; answer
w.sharethis.com.edgesuite.net. 11455 CNAME a335.b.akamai.net.
; answer
www.slate.com.edgesuite.net. 16051 CNAME a1503.g.akamai.net.
; answer
z.cdn.turner.com.edgesuite.net. 5641 CNAME a1755.g.akamai.net.
; answer
urls.api.twitter.com.edgesuite.net. 6678 CNAME a1697.g.akamai.net.
; answer
tf1.fr.edgesuite.net. 15356 CNAME a1272.g.akamai.net.
; answer
ws.bbc.co.uk.edgesuite.net. 9996 CNAME a476.ga.akamai.net.
; answer
static.bbci.co.uk.edgesuite.net. 2838 CNAME a1638.g.akamai.net.
; answer
node1.bbcimg.co.uk.edgesuite.net. 14134 CNAME a1092.g.akamai.net.
; additional
c.footprint.net. 42708 NS hk-1.ns.c.footprint.net.
42708 NS jp-2.ns.c.footprint.net.
42708 NS b.ns.c.footprint.net.
; additional
b.ns.c.footprint.net. 129108 A 209.84.2.47
; additional
hk-1.ns.c.footprint.net. 129108 A 192.221.77.23
; additional
jp-2.ns.c.footprint.net. 129108 A 61.120.158.14
; answer
cdn.krxd.net. 62331 CNAME wildcard.krxd.net.edgekey.net.
; answer
new-alfa.neolabs.net. 55164 A 195.93.153.94
; additional
nsatc.net. 117035 NS e.ns.nsatc.net.
117035 NS l.ns.nsatc.net.
117035 NS us-ca-6.ns.nsatc.net.
; answer
teredo.ipv6.microsoft.com.nsatc.net. 88 A 94.245.121.253
; additional
e.ns.nsatc.net. 117035 A 8.12.199.51
; additional
l.ns.nsatc.net. 121118 A 8.255.48.47
; additional
us-ca-6.ns.nsatc.net. 121118 A 199.93.58.47
; answer
www.om.net. 17612 CNAME tf1.fr.edgesuite.net.
; answer
openstat.net. 1023 A 193.169.234.231
1023 A 193.169.234.232
1023 A 193.169.234.233
1023 A 193.169.234.234
; answer
api28.thetrafficstat.net. 64318 CNAME t.thetrafficstat.net.
; answer
api30.thetrafficstat.net. 63270 CNAME t.thetrafficstat.net.
; answer
api31.thetrafficstat.net. 66555 CNAME t.thetrafficstat.net.
; answer
fm.thetrafficstat.net. 66761 CNAME lb.thetrafficstat.net.
; answer
lb.thetrafficstat.net. 72603 A 64.79.93.226
72603 A 64.79.93.210
; answer
t.thetrafficstat.net. 66555 A 64.79.93.146
66555 A 64.79.93.194
66555 A 64.79.93.178
66555 A 64.79.93.162
66555 A 64.79.93.130
66555 A 64.79.92.194
; additional
gslb.vgtf.net. 70440 NS ns4.p42.dynect.net.
70440 NS ns5.timewarner.net.
70440 NS ns3.timewarner.net.
70440 NS ns3.p42.dynect.net.
70440 NS ns1.timewarner.net.
70440 NS ns2.p42.dynect.net.
70440 NS ns1.p42.dynect.net.
; answer
favicon.yandex.net. 4473 A 87.250.251.36
4473 A 213.180.204.36
4473 A 77.88.21.36
; answer
vec02.maps.yandex.net. 254 CNAME vec.maps.yandex.net.
; answer
pitts.co.nz. 12481 A 205.134.250.2
; answer
www.pitts.co.nz. 12481 CNAME pitts.co.nz.
; additional
bandito.org. 28660 NS ns1.1ns2ns.org.
28660 NS ns2.1ns2ns.org.
; answer
i.bandito.org. 28660 A 188.190.120.74
; answer
ca-news.org. 31397 A 212.42.122.2
; answer
dailybitcoins.org. 3091 A 78.46.152.177
; answer
dnscrypt.org. 59765 A 204.232.175.78
; answer
download.dnscrypt.org. 821 A 91.121.49.42
; answer
dnscurve.org. 96 A 131.193.32.147
96 A 131.193.32.142
; answer
internetdefenseleague.org. 266 A 174.129.212.2
266 A 75.101.163.44
; answer
kdenlive.org. 70049 A 93.88.246.67
; answer
www.kdenlive.org. 70049 CNAME kdenlive.org.
; answer
mininova.org. 25772 A 80.94.76.5
; answer
www.opennicproject.org. 77202 A 75.127.96.89
; answer
profi-forex.org. 56414 A 173.192.197.187
; answer
100bretelek.ru. 1867 A 46.182.31.89
; answer
advombat.ru. 61762 A 176.9.109.220
; answer
baltpp.ru. 19635 A 5.178.80.218
; answer
www.baltpp.ru. 19635 CNAME baltpp.ru.
; answer
mail.banklife.ru. 26068 A 212.92.99.38
; answer
demiart.ru. 9009 A 188.127.247.193
; answer
3d.demiart.ru. 6047 A 188.127.248.66
; answer
cards.demiart.ru. 4923 A 188.127.248.66
; answer
corel.demiart.ru. 2710 A 188.127.248.66
; answer
shop.demiart.ru. 7305 A 176.9.35.175
; answer
free.hosting.design.ru. 16161 A 195.91.160.34
; answer
ludwig.design.ru. 16162 CNAME free.hosting.design.ru.
; answer
dn-rostov.ru. 74793 A 216.224.174.69
; answer
www.dn-rostov.ru. 74793 CNAME dn-rostov.ru.
; answer
target.net.finam.ru. 51536 A 5.9.144.204
; answer
www.finmarket.ru. 13511 A 213.134.198.5
; answer
clients1.google.ru. 402 CNAME clients-cctld.l.google.com.
; answer
maps.google.ru. 72248 CNAME maps-cctld.l.google.com.
; answer
news.google.ru. 72249 CNAME news-cctld.l.google.com.
; answer
translate.google.ru. 72248 CNAME translate.google.com.
; answer
gostats.ru. 552224 A 208.43.215.131
; answer
www.ibresource.ru. 8270 A 188.40.51.15
; answer
mail.radar.imgsmail.ru. 55 A 217.69.141.141
; answer
ivd.ru. 75101 A 194.58.41.198
; answer
www.ivd.ru. 11183 CNAME ivd.ru.
; answer
www.lanbilling.ru. 41625 A 62.117.107.106
; answer
weather.agent.mail.ru. 200 A 94.100.185.52
; answer
www.membrana.ru. 78832 CNAME membrana.ru.
; answer
www.murman-trans.ru. 9101 A 74.119.193.127
; answer
narisoval.ru. 957 A 195.91.160.34
; answer
www.narisoval.ru. 956 CNAME narisoval.ru.
; answer
www.propheta.ru. 348661 CNAME ghs.google.com.
; answer
counter.rambler.ru. 159 A 81.19.88.102
159 A 81.19.88.103
159 A 81.19.88.106
159 A 81.19.88.108
159 A 81.19.88.80
159 A 81.19.88.81
159 A 81.19.88.95
159 A 81.19.88.96
; answer
www.rax.ru. 3912 A 88.212.196.111
; answer
www.rbkmoney.ru. 68407 A 46.38.182.209
; answer
reformal.ru. 6404 A 176.34.107.4
; answer
media.reformal.ru. 1599 CNAME reformal.ru.
; answer
www.runnet.ru. 15994 A 194.85.41.195
; answer
www.salon.ru. 76450 A 194.58.41.198
; answer
selcdn.ru. 65737 A 188.93.16.237
65737 A 188.93.16.238
65737 A 188.93.16.236
; answer
storage.selectel.ru. 37509 CNAME 423.selcdn.ru.
; answer
shop-script.ru. 2656 A 174.142.184.182
; answer
www.shop-script.ru. 2656 CNAME shop-script.ru.
; answer
sostav.ru. 1377 A 217.199.212.114
; answer
www.sports.ru. 531602 A 37.209.240.1
; answer
studio38.ru. 9050 A 178.63.32.120
; answer
tema.ru. 8975 A 69.4.231.184
; answer
www.tema.ru. 8975 CNAME tema.ru.
; answer
a.tfile.ru. 8392 A 89.188.109.206
; answer
s.tfile.ru. 13037 A 89.188.115.202
; answer
www.tns-counter.ru. 1095 A 217.73.200.220
1095 A 217.73.200.219
1095 A 217.73.200.221
1095 A 217.73.200.218
1095 A 217.73.200.222
; answer
trunkmobile.ru. 585266 A 93.174.72.3
; answer
www.trunkmobile.ru. 585266 CNAME trunkmobile.ru.
; answer
vninform.ru. 282301 A 92.243.64.186
; answer
www.webfm.ru. 6638 A 213.134.198.79
; answer
xdes.ru. 3973 A 109.70.27.4
; additional
yandex.ru. 71307 NS ns1.yandex.ru.
71307 NS ns2.yandex.ru.
; answer
an.yandex.ru. 197 A 87.250.250.90
197 A 93.158.134.90
197 A 213.180.204.90
; answer
api-maps.yandex.ru. 931 A 93.158.134.106
931 A 213.180.193.106
931 A 213.180.204.106
931 A 77.88.21.106
931 A 87.250.250.106
; answer
fotki.yandex.ru. 407 A 87.250.250.178
407 A 87.250.251.178
407 A 93.158.134.178
407 A 213.180.193.178
407 A 213.180.204.178
407 A 77.88.21.178
; answer
mail.yandex.ru. 1113 A 93.158.134.25
1113 A 213.180.193.25
1113 A 213.180.204.25
1113 A 87.250.250.25
; additional
ns1.yandex.ru. 330508 A 213.180.193.1
; additional
ns2.yandex.ru. 330508 A 93.158.134.1
; answer
yandex.st. 33959 A 178.154.131.216
33959 A 178.154.131.217
33959 A 178.154.131.215
; answer
mail.rambler.su. 2006 A 81.19.67.75
2006 A 81.19.67.74
; answer
alternathistory.org.ua. 68941 A 195.16.90.15
; answer
www.tavernetta.ua. 1715 A 89.184.73.57
; answer
style.uz. 56113 A 195.158.27.58
; answer
www.style.uz. 56113 CNAME style.uz.
;
; Address database dump
;
;
; Unassociated entries
;
; 127.0.0.1 [srtt 127923] [flags 00002000] [ttl 1798]
;
; Bad cache
;
;
; Start view _bind
;
;
; Cache dump of view '_bind'
;
$DATE 20131125121626
;
; Address database dump
;
;
; Unassociated entries
;
;
; Bad cache
;
; Dump complete


Обратите внимание еще раз - не корневые DNS. А именно то, что запрашивают клиенты. То есть наш кэш кэширует - что от него и требуется. Ну и при помощи команды dig можно посмотреть, как это работает.

понедельник, 11 ноября 2013 г.

Cisco: DHCP static bindings

Поиск по ключевым словам, вынесенным в заголовок, дает массу результатов. Каждый суслик-агрономиндус и каждый новоиспеченный CCNA считает своим долгом родить в своем блоге  полуграмотную статью о том, как сделать статический биндинг на Cisco. Более-менее внятная информация есть только на англоязычных форумах Cisco, и то там один-два толковых советчика. Остальные просто создают шум.

Результаты удручающие. Помимо очевидных разночтений, эти писульки либо не отличаются точностью и полнотой, либо представляют собой откровенный копипаст другого такого же неграмотного суслика э-э-э-э..... "специалиста".

Позорно, джентльмены. Беретесь объяснять - так будьте так добры, объясняйте внятно.

Я хочу попытаться исправить кривизну всей этой писанины, из которой полезное пришлось извлекать как золотоискателю.

Часть 1. Делаем статическую привязку одиночных хостов.


Это один из самых простых и наиболее очевидных методов привязки. К сожалению, имеет существенный недостаток -  в каждый пул можно поместить не более одного хоста/устройства, и сопровождать сеть, в которой нужно привязать достаточно много устройств - проблематично. Ну и, кроме того, это сильно раздувает конфигурацию Cisco.

Порядок действий следующий.

1. Надо определить MAC-адрес целевого устройства командой show ip dhcp binding IP-адрес
2. Зачистить существующую привязку командой clear ip dhcp binding IP-адрес
3. Выполнить последовательность команд:

conf


ip dhcp pool host_pool1
host 192.168.100.44 255.255.255.0
client-identifier 0100.1d09.3f28.a3
end


write


Данный адрес не требуется исключать из пула DHCP, поскольку статический биндинг автоматически исключает явно привязанные адреса из пула соответствующей сети. Идентификатор клиента представляет собой не что иное, как его мак-адрес, определенный на шаге 1. IP-адрес привязки можно задать совершенно иной (по существу, любой из пула) и, после обновления адреса на устройстве будет выдан заданный вами адрес (и впредь будет выдаваться, lease time для адресов, заданных подобным образом - Infinite).

Часть 2. Статическая привязка любого количества хостов из файла.


Привязка большего количества хостов из файла немного более сложная процедура. Прежде всего вам понадобится TFTP-сервер на клиенте и навыки загрузки файлов на Cisco. Во-вторых, потребуется некоторое представление о файловой системе самого устройства.

В остальном процедура не сложнее описанной в первой части, важно лишь соблюдение некоторых принципов, которые я приведу чуть позже.

1. Следует идентифицировать все устройства, которые вы желаете статически привязать к определенным адресам способом, описанным в 1 части. Сохраните mac-адреса.
2. Определите, какие именно адреса вы хотите зарезервировать за данными устройствами и тоже запишите их.
3. Проверьте, чтобы данные адреса не были исключены из выдачи DHCP-сервером командами ip dhcp excluded-address
4. Создайте файл static-bindings следующей структуры:

*time* Nov 4 2013 06:29 PM
*version* 2
!IP address Type Hardware address Lease expiration
192.168.100.44 /24 id 0100.1d09.3f28.a3 Infinite
192.168.100.119 /24 id 0100.19d1.3f50.22 Infinite
192.168.100.120 /24 id 0100.e04d.9708.19 Infinite
*end*


Строки, выделенные * - ключевые поля. Время - это время, когда вы создали файл. Версия - номер версии базы привязки. В принципе, можно задавать любое, главное, что при повторных загрузках файла она не уменьшалась. Строка с ! - комментарий, описывающий структуру файла.
Важно - маска сети, в которой находятся адреса, должна быть отделена от адреса пробелом.  И это должна быть именно маска сети, а не хоста (т.е. /32 не задавайте - адреса не будут выдаваться). Формат окончания строк (DOS/UNIX) не принципиален.
5. Загрузите файл на циску по TFTP. Для этого запустите на своем клиенте TFTP-сервер, положите созданный файл привязок в его корень и выполните команду на Cisco:

copy tftp://ip-address-вашего-клиента/static-bindings flash0:/


Файл будет загружен в корневой раздел файловой системы (у меня на 2911 это flash0:/). Чисто технически вы можете предварительно создать там поддиректорию и затолкать файл в нее. Но у меня там не навалено файлов и я положил файл привязки прямо в корень.
6. Сбросьте все ранее созданные биндинги командой clear ip dhcp binding *.
7. Выполните последовательность команд:

conf

ip dhcp pool static-pool
origin file flash0://static-bindings
default-router 192.168.100.1
dns-server 208.67.220.220 208.67.222.222

end

write


В принципе, default-router и dns-сервер можно и не указывать - они будут взяты из данных пула сети, в котором находились данные адреса. Но так более правильно с точки зрения логики.

Собственно говоря, это все. Теперь можно обновить IP-адреса на устройствах и они получат адреса, которые вы им задали в файле. Адреса, включенные в пул статических привязок, автоматически исключаются из выдачи самого динамического пула.

Некоторые тонкости. В файл можно затолкать привязки из нескольких пулов (если они у вас определены). В этом случае команда создания пула должна включать в себя только origin file. Но, опять же, с точки зрения удобства, привязки разных пулов лучше сгруппировать в разные пулы и, соответственно, разные файлы.

суббота, 6 июля 2013 г.

Удаление большого количества файлов в директории

Вроде бы - такая мелочь, правда? Удалить миллион-другой мелких файлов в директории.

На самом деле, кто сталкивался, тот знает - не совсем мелочь.

На некоторых UNIX-подобных системах есть грязный хак с unlink - правда, работает не везде и только, как правило, на более-менее канонических реализациях UFS. На ZFS, например, уже не прокатит.

Не прокатывает и на JFS2 IBM AIX:

user oracle /oracle/admin/onyma >  id
uid=0(root) gid=0(system) groups=2(bin),3(sys),7(security),8(cron),10(audit),11(lp) user oracle /oracle/admin/onyma > unlink udump
unlink: Not owner

Причем попытка любых вариантов удаления - не прокатывает по причине системных ограничений юниксовых шеллов и утилит:

user oracle /oracle/admin/onyma/bdump > find . -name *.trc -exec rm {} \;
-bash: /usr/bin/find: Arg list too long

Простой rm *.trc тоже не работает, кстати.

А удалить, тем не менее, надо. Причем, желательно, не трогая систему серьезно.

Сдаетесь?

Все просто:

user oracle /oracle/admin/onyma/bdump > find . |xargs rm
rm: cannot remove '.' or '..'
user oracle /oracle/admin/onyma/bdump > ls -al
total 0
drwxr-xr-x    2 oracle   dba             256 Jul  6 17:05 .
drwxr-xr-x    9 oracle   dba             256 Apr 13 19:15 ..

Решение выделено жирным.

Проверено на кошечках.

вторник, 25 июня 2013 г.

Дорвались до рубильника

Я вообще в последнее время частенько пролистываю новости и нахожу нечто подобное. Вот я не знаю, то ли эти 140 миллионов укурков кроме своего пузыря с водярой нихрена не видят и не помнят, то ли это у меня память хорошая. Однако я почему-то помню - по странному капризу памяти - как не то пару лет назад, не то три года - не то Ме, не то Пу, бия себя копытом в грудь, кричали на весь Интернет, что они его прессовать не будут.

Объясните мне, недоумку - как сие согласуется сперва с мудацким реестром для защиты бедных деток от суровой окружающей действительности, а потом вот с регулярным появлением подобного?

Я, наверное, тупой мудак. Однако на языке дворовой гопоты, на коем разговаривает оный през бывшей великой державы, сие называется "Не отвечать за базар".

Пацан проотвечался.

Отвечаю.

среда, 20 марта 2013 г.

Заставь дурака богу молиться

Вот серьезно, мохнатые друзья - у меня другого слова просто нет. Взгляните-ка. Эти люди как, по-вашему, нормальны?

На мой неискушенный взгляд, это есть не что иное, как гнойный синдром вахтера в неоперабельной форме. При которой спасает уже лишь живительная эвтаназия. Ну и русская же поговорка про дурака, который лоб расшибает, тут, по-моему, подходит идеально.

Кроме шуток. Это уже всякие границы переходит, по-моему. Ребята, вы не слишком ли много на себя берете - решать за взрослых людей, что им делать, куда ходить и как себя вести?

Как это было на заре интернета - для входа на порносайт ребенок должен был доказывать, что он - взрослый на самом деле. Взрослый человек - кроме тех случаев, когда он очевидно выглядит несовершеннолетним - ничего доказывать НЕ ДОЛЖЕН.

Желаете оберегать детей? А почему, собственно, вы берете на себя функцию их родителей? Это, собственно, право и обязанность родителей следить, куда ходит его чадо, чем оно занято и чем, вообще говоря, дышит. Это, дорогие мои - не ваше собачье дело.

Все просто. Если меня лично беспокоит, чем занимается мой ребенок в интернете - дома стоит прокси-сервер. Настроенный лично мной и следящий за тем, чтобы его не миновали и не ходили куда попало. И его запреты тупо не обсуждаются. Для тех, кто недостаточно квалифицирован - есть Norton Family. И масса других столь же продвинутых программ для потребителей разных степеней кретинизма.

Все. Остальное, дорогие мои - проблема лично моя, куда я хожу, что смотрю и чем дышу. До тех пор, пока я не нарушил Уголовный Кодекс - причем доказать это придется в суде - вы все идете в сад семимильными шагами.

При этом - обратите внимание - мне лично глубоко плевать, что вы не охватили ВСЕ поголовно молодое поколение контролем и ошейниками с допуском. СВОЕ молодое поколение я как-нибудь воспитаю без вашего участия.

Если собираетесь лечить причину - выясните, почему ваши дети ищут в интернете способы изощренных самоубийств и боритесь с ней. Если желаете побороться со следствием - только попробуйте ущемить МОИ права как взрослого видеть все КАК ЕСТЬ.

Во-первых, я класть хотел на ваши запреты. Кишка тонка мне указывать, как мне жить и что делать. Во-вторых - не пойти бы всем вахтерам в пешее эротическое путешествие?

Усекли? Свободны!

четверг, 14 марта 2013 г.

Козлы в огороде

Вот оно и свершилось, мои маленькие мохнатые дружки - теперь уже официально. Скайп больше не место для конфиденциальных разговоров. Майкрософт слилась - а кто бы сомневался? - теперь и российским силовикам. Ловите пруф.

Пока вы щелкали клювами, чирикая в твиттерах и уютненьких социалочках, тихо-мирно шло массовое наступление на приватность и гражданские права - повсеместно.

Пардон, вы серьезно думали, что тормоза из правительства, увлеченные распилом, не заметят растущей медийной среды связи, им неподконтрольной и такое положение продлится вечно? Они, конечно, не Спинозы и Сократы - но и не полные идиоты.

Я больше не советую вам трындеть языком лишнего. Нигде. Ни в социалках - а вы все еще из них не удалились? тогда ФСБ идет к вам! - ни в агентах - а вы сомневаетесь, что мэйл, храня всю переписку агентиков на сервере, ничего там не видит и никому не показывает? В России? Вы это серьезно? - ни в асечках - асечка давно принадлежит мэйлру и работает ТОЧНО ТАК ЖЕ, КАК И АГЕНТ.

Ах, вы еще и твитанутый? Ну, тогда подельники Болотной вам расскажут, как она, социальная жизнь под стеколком.

Что, допрыгались? Ах, вам нечего скрывать, вы люди честные.... Ню-ню.

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

Надеюсь, вы люди взрослые и отдаете себе отчет в аксиоме волка и ягненка: Если правила игры устаналиваются многократно более сильным участником, они никогда не будут соблюдаться. Собственно, тогда это вообще не игра.

Для нормальных вменяемых людей, кому слово "прайвиси" не пустой звук - изучайте вопрос, ищите нормальные открытые альтернативы, которые - пока - хоть что-то гарантируют, а лучше общайтесь в оффлайне - как общались до исторического материализма. И зарубите на своем носу - НИКОГДА СИСТЕМЫ ПУБЛИЧНОЙ СВЯЗИ НЕ ОСТАНУТСЯ БЕЗ ТОТАЛЬНОГО КОНТРОЛЯ ГОСУДАРСТВА - НИКАКОГО, ДАЖЕ САМОГО СУПЕР-ПУПЕР-ДУПЕР-ДЕМОКРАТИЧЕСКОГО. Права не дают - их берут силой. В том числе гражданские.

Посмотрите, какое милое заявление:

Исполнительный директор France Telecom Стефан Ричард называет условия работы Skype «несправедливым преимуществом». "Мы считаем, что это является первым позитивным шагом к формированию более сбалансированной нормативно-правовой базы, которая будет охватывать деятельность не только основных участников рынка", — цитирует The New York Times его заявление.

Это по поводу аналогичного требования Франции.

В переводе с иезуитского на русский:


"Все участники рынка сливаются, и вы должны сливаться - а то что это получается, пользователи бегут к вам от нас!"

Врубаетесь? Прослушка - это нормально. Живите под стеклом, в Доме-2, вам это нравится, дорогие мохнатые друзья. Вы ж люди честные. Скрывать вам нечего - даже своих трусов. Это позитивный шаг, ни больше, ни меньше. Сбалансированная нормативно-правовая база. Вам - заметьте! - прослушивать силовиков и контролировать их никак, интересы государства. А им вас - сколько угодно. Сбалансированно, правда?

А теперь вернитесь выше, где я писал о равенстве участников игры. Вы все еще сомневаетесь, кто в этой паре именно вы?

Ау, Фил Циммерман! Ты нам снова нужен!

Я не говорю, что все так печально. Просто всегда помните - системы связи, не принадлежащие лично вам на 100%, вами не контролируются. Они железно будут использованы против вас, дайте лишь повод. Никто не отменял архаичных способов и средств - приватных бесед в оффлайне, кодов и шифроблокнотов - которые - вот ирония! - были и остаются наиболее криптостойким средством на этой планете.

Знаете, что самое забавное? Если бы с самого начала все до единой системообразующие интернет-компании показали силовикам то, что Линус показал нВидии, то - чисто теоретически - возможно, эти упыри и не оказались бы козлами в огороде и были бы вынуждены относительно честно соблюдать баланс между добром и злом и конкурировать в относительно равных условиях.

А теперь поздняк метадзе. Когда уже лежишь под кем-то, остается лишь раздвинуть ноги, расслабиться, и постараться получить хоть какое-то удовольствие.

Осталось лишь всюду ввести презумпцию виновности при любом использовании криптосредств с последующим уголовным преследованием. Тогда безопасность будет всеобщей.

Чисто с технической точки зрения

Чисто с технической точки зрения - не является безопасной ни в малейшей степени - система связи, имеющая элементы, не контролируемые физически или прозрачные с точки зрения потоков данных по дороге от абонента к абоненту. Или, говоря нашим птичьим языком, от точки до точки.

Любая система - даже с открытым кодом и невероятными сертификатами - подвержена MITM (Man In The Middle) в случае, если имеется центральный сервер (сервера).

И, на вашем месте, я бы не сильно полагался на всякие там шифрования. Технология SSL имеет один лютый недостаток - она базируется на порочной концепции доверия вышележащим сертификатам. 

Взгляните, пожалуй, вот на это. Я даже на прокси-сервере могу распотрошить ваши данные и далеко не всякий клиент вас об этом предупредит.

Собственно, сказано достаточно. Системы связи с централизованным сервером (и плевать, открытый у них код или нет) не являются не просто абсолютно безопасными - они даже сколько-нибудь безопасными не являются. Распределенные пиринговые системы без центральных узлов и шифрование по пути точка-точка - вот единственная сколько-нибудь защищенная от прослушивания и MITM система. Каковым был Скайп до его гм.... проституции.

среда, 27 февраля 2013 г.

Автостарт сервисов Oracle на *NIX


Oracle Autostart  Версия 2.2
                   
Данный   пакет  позволяет  активизировать  и  деактивировать автоматический  запуск  и  останов  сервисов  Oracle  в одно действие на следующих системах:

- Solaris 8,9
- Solaris 10 и выше
- Linux (RHEL3, RHEL4, RHEL5, SuSE, Fedora,
         Oracle Enterprise Linux/Oracle Unbreakable Linux)

Поддерживается автоматический запуск следующих служб:
- Oracle RDBMS
- Oracle ASM
- Oracle TNS Listener
- Oracle DB Console (OEM)
- Oracle iSQL*Plus
- Oracle HTTP Server (OHS/Apache)

Поддерживается  запуск OHS как из Database Companion CD, так и из iAS Companion CD.

Поддерживается автоматический запуск и останов множественных инстансов RDBMS/ASM, описанных в едином файле oratab.

Замечание:  Запуск и останов сервисов ASM+RDBMS производится в корректной последовательности.

Для   выполнения  автостарта  сервисов  Oracle  используется скрипт   init.oracle. В  зависимости   от  платформы (Solaris  8-10  или    выше),   создаются     либо    ссылки в       каталоге    /etc/rc3.d,       либо      производится регистрация    сервиса   и    создание    ссылок    командой chkconfig   (Linux)   либо производится  регистрация сервиса в службе SMF.

Распознавание     платформы    производится   автоматически.

Замечание: Онанирующим на upstart/systemd рекомендую обратить внимание на год написания и на тот факт, что, в первую очередь, это писалось под Solaris 10. Желающие могут своими собственными ручонками удовлетворить свои противоестественные потребности.

Конфигурация скриптов установки/удаления сервиса

Для   установки   скрипта   (-ов)   и/или   создания  ссылок и  регистрации  дескриптора сервисов,  используются  скрипт install.sh, для удаления, соответственно, remove.sh.

Скрипты    установки    и    удаления    имеют   собственные конфигурационные  файлы,  позволяющие  задать  нестандартное расположение   файла   oratab   (по   умолчанию   это   /etc
и  /var/opt/oracle соответственно) и имя владельца ПО Oracle (по  умолчанию oracle) и основную группу Oracle (по уолчанию dba).

Данные  настройки  необходимы  в случае, если ваши настройки отличаются от сложившихся исторически умолчаний.

Если    используются    стандартные    настройки,   оставьте конфигурационные   параметры  утилит  установки  и  удаления сервиса без изменений.

Конфигурирование сервиса

Конфигурационные  параметры  сервиса автоматического запуска находятся   в конфигурационном  файле  oracle.conf  (шаблон по умолчанию копируется при установке службы в /etc).

Редактируются следующие переменные:

#
# oratab location.
# Leave variable blank to use /var/opt/oracle/oratab
#
ORATAB=""
^^^^^^^^^  На некоторых платформах необходимо задавать явно, если  oratab  отсутствует  в  стандартных месторасположениях (/var/opt/oracle/oratab  либо  /etc/oratab). Задается полный
абсолютный  путь  и имя файла oratab (не обязательно oratab, но  стандартной  структуры).  

ВАЖНО    -  Флаг  автоматического  запуска  в  файле  oratab меняется  явно при установке и удаления сервиса - ставится Y, если   сервис   автоматического   запуска  активизируется  и ставится N при деинсталляции автоматического запуска. 

#
# ORACLE_SID and ORACLE_HOME variables.
# Leave variables blank to use oratab
#
ORACLE_SID=""
ORACLE_HOME=""
^^^^^^^^^^^^^   Если  параметры  заданы  явно,  для  запуска RDBMS/Listener  будут  использованы  они,  а  не  содержимое oratab  (взятое  в  стандартных  местах  или  явно  заданное в предыдущем параметре).

#
#  Startup/shutdown  privilege  for  "connect  as"  to RDBMS
#  instance(s).
# By default is "sysdba".
#
#ORACLE_DB_PRIV="sysoper"
ORACLE_DB_PRIV="sysdba"
^^^^^^^^^^^^^^^^^^^^^^   Системная  привилегия,  позволяющая выполнять   запуск/останов   Oracle.  По  умолчанию  sysdba. В  вашей  системе может отличаться (задается при инсталляции
Oracle).
#
#   Startup/shutdown  privilege  for  "connect  as"  to  ASM
#   instance(s).
# By default is "sysdba" (Oracle 10),
# set to "sysasm" for Oracle 11 and above.
#
#ORACLE_ASM_PRIV="sysasm"
ORACLE_ASM_PRIV="sysdba"
^^^^^^^^^^^^^^^^^^^^^^^^     Привилегия     запуска/останова инстансов  ASM.  В  Oracle  10 - sysdba, начиная с Oracle 11 - sysasm. По умолчанию sysdba.

#
# ASM shutdown mode. In some cases (not patched DB etc.) ASM
# instance cannot shutdown in immediate mode after correctly
# shutdown main DB  and  must be stopped # in shutdown abort
# mode.
#
# Beware, that this stop mode can damage your ASM diskgroups!
#
#ASM_SHUTDOWN_MODE="abort"
ASM_SHUTDOWN_MODE="immediate"
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  Режим  останова сервисов ASM. В  некоторых  случаях  после  корректного  останова основных сервисов  баз  данных  сервисы ASM не могут быть остановлены в  режиме  immediate  (не  установленные  патчи  итп.).  Для подобных   ситуаций   предусмотрен   останов  инстансов  ASM в  режиме  abort.  Учтите, что подобное завершение ASM может привести к повреждению дисковых групп и не рекомендуется без крайней необходимости.

#
# Standalone Apache home (OHS Home). Set if OHS installed
# and must be started/stopped, leave blank of not.
# Note: Supported both OHS - from Database Companion CD and
#       from iAS Companion CD.
#
#OHSHOME="/export/home/OraHome2/app/oracle/product/10.2.0"
OHSHOME=""
^^^^^^^ Домашний каталог Standalone Apache (OHS) с Companion CD.  Используется  в  явном  виде  при  запуске сервиса OHS. Оставьте пустым если не используете OHS.

#
# If OHS use ports <1024 443="" 80="" and="" i.e="" nbsp="" or="" p=""># set OHSPORT to 80.
# Otherwise leave it blank
#
OHSPORT=""

^^^^^^^^^^^^^^^^^  Данный  параметр _не задает_ порт запуска OHS,   он   лишь   используется   в  запускном  скрипте  для управления.  Конфигурирование  OHS  на  запуск  на  80 порту должно выполняться посредством httpd.conf. Параметр  определяет,  будет  ли  запуск  OHS осуществляться от  аккаунта  root  (если задан), что необходимо при запуске
для  портов  ниже  1024,  либо  от аккаунта владельца oracle -  если OHS слушает исключительно порты выше 1024 (например, 7777  или  7778).  При  этом  запуск  для любых портов может осуществляться   от   аккаунта  root  (в  этом  случае  лишь потребуется  изменение  владельца  (owner)  файла apachectl, однако  для  портов  ниже  1024 запуск должен осуществляться исключительно от аккаунта root. Либо можно использовать RBAC для ограничения привилегий на биндинг портов, избегая задействования суперпользователя. Что, в общем и целом, более предпочтительно с точки зрения безопасности.

#
# If SSL configured, this variable must be set
# (Apache SSL command option is "-D SSL")
#
#OSSL="-D SSL"
OSSL=""
^^^^^^^^^^^^^^^^^^^^^^^ Параметр определяет включение режима SSL  OHS  при  запуске  посредством  apachectl.  Если запуск производится  посредством opmn (включен следующий параметр), для   включения   SSL   режима   OHS  используется  параметр ssl_enabled  файла  opmn  и  параметр будет проигнорирован.

#
# If using OPMN for start OHS, set USEOPMN to 1.
# For use apachectl, leave it blank.
#
USEOPMN=""
^^^^^^^  Если  задан,  запуск  OHS  производится посредством OPMN, в противном случае используется apachectl. Если OHS не установлен  или не должен запускаться автоматически, следует задать пустой параметр OHSHOME (выше).

#
# If configured OEM dbconsole, set USEOEM to 1.
# Leave blank if not.
#
USEOEM=""
^^^^^^^^^^   Если  сконфигурирована  dbconsole  (Oracle  10g и  выше)  и  необходимо  запускать  ее  в  рамках  процедуры автозапуска,   параметр   необходимо   задать.  При  доступе
к  системе из Интернет, dbconsole должна быть предварительно сконфигурирована  для  работы  под  SSL  (например, командой emctl  secure  dbconsole).  В некоторых очень редких случаях
автоматический  запуск  консоль  управления  не  может  быть выполнен и запускать ее следует вручную.

#
# If configured iSQL*Plus, set USEISQLPLUS to 1.
# Leave blank if not.
#
USEISQLPLUS=""
^^^^^^^^  Параметр  задается,  если необходимо автоматически стартовать    также    iSQL*Plus    (нельзя   активизировать на  системах  с  высокой  степенью  защиты  или  с  доступом
из Интернет).

#
# Log file. Default /var/log/oracle.log
#
LOG="/var/log/oracle.log"
^^^^^^^^^^^^^^^^^  Путь  и  имя лог-файла по умолчанию. Если файл   не   существует   (скажем,   регулярно  обслуживается процессом   cron)   то   он   будет  создан  при  выполнении init.oracle  .

Установка сервиса

Для   установки   сервисов   необходимо  распаковать архив в необходимый   каталог   и   выполнить   с  правами  аккаунта root    скрипт   install.sh.   После   его   завершения  все
необходимые   файловые  структуры   будут  созданы  и  можно выполнить   активацию   сервиса   либо   перезапустив   хост (Solaris  8,9,  Linux) либо выполнив команду (Solaris 10 или
выше):

# svcadm enable oracle

контролируя запуск сервисов в отдельной сессии:

#  tail  -f /var/log/oracle.log  (путь и имя лога могут быть другими и настраиваются в файле oracle.conf параметром LOG)

Управляющий  скрипт  может  запускаться  также  интерактивно (например, для отладки):

root @ server /lib/svc/method # init.oracle start
init.oracle will execute start for services:
Listener:started.
+ASM:started.
SUN11:started.

При  выполнении  данных     операций    на    Solaris  10  и выше    необходимо   предварительно    отключить      сервис Oracle    при    помощи  интерфейса    SMF,   в    противном случае   рестартер  SMF будет    перезапускать остановленные вручную  сервисы  без предупреждения).

Удаление сервиса

Для  остановки  и  удаления  автостарта  необходимо  сделать следующее:

- Для Solaris 8,9, Linux:
1. Остановить сервисы Oracle вручную;
2. Выполнить  с  правами  root  скрипт remove.sh  из данного
архива

- Для Solaris 10 и выше:
1. Выполнить команду:
   # svcadm disable oracle
2. Выполнить с правами root скрипт remove.sh из данного
   архива.

Для    Солярис  10 или выше запуск/останов/перезапуск  служб oracle  выполняется   через  административный  интерфейс SMF (командами  svcadm/svcs).  ДЛя  контроля  состояния сервисов и  процессов  запуска    используется   как   основной   лог запуска/останова (/var/log/oracle.log  по  умолчанию), так и собственные  логи  сервисов   Oracle.

Замечания:

1.Для    запуска   OHS   от   аккаунта  root  (при  биндинге портов<1024 apachectl:="" nbsp="" p=""># chown root:dba apachectl

2.Скрипты установки/удаления автостарта используют несколько допущений и подчиняются определенным правилам, а именно:

-  Предполагается (либо проверяется),  что  они  выполняются в    режиме   выполнения  (run  level)  multi-user  (3).   В противном    случае  доступ  ко  многим  системным  командам
и  сервисам невозможен  и выполнение скриптов будет прервано с ошибкой.
-  Уровень  выполнения скрипта (-ов) автоматического запуска не  ниже  3  (то есть в signle user попыток запуска сервисов Oracle НЕ ПРОИЗВОДИТСЯ).
-  Предполагается,  что  администратор,  выполняющий  данные скрипты  установки/удаления,  запускает их с правами бюджета root.  Если  это  не так, выполнение прерывается с ошибкой и
кодом возврата 1.
-    Предполагается,    что   перед   выполнением   скриптов установки/удаления   системный   администратор/администратор базы  данных  выполнил  остановку  сервисов  Oracle вручную.
Для    запущенных    сервисов   Oracle   служба   автостарта не  выполняет  никаких действий, однако на Solaris 10 и выше (SMF)  сервис  автоматического  старта создается в состоянии
disbaled,   И  при  активации  будет  произведен  перезапуск сервисов Oracle, активных на момент установки службы. Также   не       производится     никаких     автоматических
операций  запуска/останова  (Solaris 8,9,Linux) или  активизации/деактивации сервисов Oracle (для Solaris 10 или выше).
- Для   Linux  RHEL 3/4  при останове хоста командой init 0/init 5 остановка системных сервисов выполняется командой kill. Это  приводит  к  аварийному  прекращению  работы экземпляра
Oracle   и  последующий  запуск  сервисов  может потребовать существенно  более длительного времени вследствие выполнения автоматического  восстановления  базы  данных и/или сервисов OHS/iAS.

3. В некоторых случаях на Solaris x86 при использовании OPMN может наблюдаться значительная задержка старта  Веб-сервисов или  невозможность  автоматического  запуска контролирующего процесса  OPMN.  Для  корректировки  данной ситуации следует
вручную  выполнить  команду  opmnctl  stopall, затем opmnctl startall     для     старта     процессов. Если сервисы OPMN по-прежнему  не  запускаются,  используйте логи OPMN/OHS для
выяснения причины невозможности запуска.

4.   При   зонной  установке  сервисов  Oracle на Solaris 10 и     выше,    необходимо   скопировать   запускной   скрипт init.oracle  в  каталог   /lib/svc/method  глобальной зоны с
правами root:sys ПЕРЕД ЗАПУСКОМ сервисов (для sparse-root инсталляций).

В    неглобальных    зонах    данный   каталог   монтируется из  глобальной  зоны  с  правами  read  only  и  необходимые действия   по   установке   управляющего   метода   в   него из неглобальной зоны не могут быть корректно выполнены.

PS. Пользуйтесь на здоровье. Этот пакет много лет использовался в продуктивных системах. Желающие продолжить - могут самостоятельно написать любой необходимый функционал.

пятница, 22 февраля 2013 г.

Твиттер как триппер, только течет с другого конца

То, что мир совершенно выжил из ума, я уже говорил. Причем, на мой взгляд, "спятил" - это слишком мягкое определение.

То, что социализированные обезьянки жаждут всемирного Гайд-парка, где можно самовыразиться (коль скоро на приличное самовыражение физически не хватает серого вещества в черепе), это еще куда бы ни шло.

Стремно то, что им дали этот Гайд-парк. И мало того, что обезьянки сами по себе генерируют мусор и шум, так еще и вот это:


Почитайте, почитайте. И вдумайтесь. То, что вы гадили в твиттер при жизни, сообщая по секрету всему свету, что вы ели на завтрак и какого состояния ваш стул, теперь будет мусорно генерироваться и после того, как обезьянка сдохла.

Дорогие социализированные обезьянки!

Вам не кажется, что ваше самовыражение зашло слишком далеко?

Усеките одну простую вещь. За исключением двух-трех ближайших человек вашего круга, ВЫ НИКОМУ В ПРИНЦИПЕ НЕ ИНТЕРЕСНЫ. А оных двух-трех вы способны оповестить о вашем жидком стуле без привлечения всего интернета.

Смекаете?

понедельник, 18 февраля 2013 г.

"Да ты не выпендривайся, ты рукой покажи!"

Хочу для начала напомнить один древний анекдот.

Всплывает рядом с американском сторожевиком советская подводная лодка. Открывается люк, вылазит капитан:
- Эй, где здесь Фолклэнд?
- Nord-West, sir!
- Эй, да ты не выпендривайся, ты рукой покажи!

К чему это я?

А вот к чему. Некоторое время назад (небольшое) довелось мне искать гуглом одну небольшую инструкцию. Ну, знаете, это текст такой, в котором по шагам написано, как делать. Такие еще в коробочки с лекарствами кладут. Или с телевизорами. 

Так вот. Результат поиска был ошеломляющим. Я не нашел текста. Одни видеоуроки на ютубе.

Спустя некоторое время еще что-то понадобилось найти. Снова инструкцию ищу. Опять сплошные видеоуроки. 

Я уже не на шутку взъелся - поскольку, тащемта, обладаю и абстрактным мышлением, и воображением, и, в общем-то, даже интеллектом. Как ни странно. И книги я читать люблю бумажные. И предложения пишу длиннее, чем из одного слова. И, имея инструкцию, и сам способен сообразить, как исполнить то-то и то-то, даже весьма сложное. И видеоуроки в стиле вышеприведенного анекдота меня, в общем-то, скорее вначале веселят и забавляют (потом они вызывают бешенство и крайнее нежелание тратить 5 минут на просмотр, когда инструкцию прочесть и ухватить суть можно за минуту - работой собственного мозга), нежели просвещают.

Потом я немного помедитировал, и внезапно до меня дошла одна милая аналогия.

Помните, практически все время существования компьютерных технологий, начиная с момента изобретения персоналок, с целью удешевления и увеличения безопасности и всякое такое, пытались изобрести "тонкий клиент-ультратонкий клиент-NetPC-etc"? 

Этакий предельно простой, тупой девайс, не оборудованний ни единым байтом собственной памяти и центральным процессором. Так, пяток микросхем, пара-тройка разъемов, корпусок.

Причем история показала, что, несмотря на все титанические усилия, оные девайсы не заняли сколько-нибудь значимой ниши нигде, кроме тех сфер, куда они, тащемта, изначально и были предназначены - оконечные устройства для морлоков неквалифицированных пролетариев умственного труда. Где пределом интеллектуальных усилий является выбор между кнопками "Да" и "Нет".

Так вот. Возвращаясь к нашим баранам современным людям (желающие оскорбиться - можете начинать).

Нынешнее Generation Ы - есть не что иное, как ультратонкие клиенты. 

Говоря простым языком, стоит вас лишит интернета, доступа к гуглу и социалочкам с ютубом - и кирдык, мальчики и девочки. Интеллектуальный ручеек в ваши головы немедленно иссяк - и вы максимум способны газ на кухне зажечь и воду за собой в туалете смыть.

Я утрирую - но лишь слегка.

Покажите мне среди нынешней молодежи хотя бы одного, способного написать сколько-нибудь сложное сочинение на произвольную тему без гугла.

Покажите мне человека, способного самостоятельно допереть, как разобрать ноутбук без видеоурока на ютубе.

Наконец, покажите мне человека, способного прочитать бумажную книгу, переварить ее и извлечь из нее информацию. Хотя бы в виде запомненных цитат.

Маленькое лирическое отступление: Я неоднократно слышал в последние годы собственными ушами от самок вида Хомо фразу - "Какой ты сложный!" - и отнюдь не в позитивной коннотации. Вы поняли? Сложность мозгов - это, оказывается, недостаток! Причем фатальный!

(далее следует непереводимая игра слов)

Ребята, вы знаете, куда мы прикатились? Технологии не сделали вас умнее на порядок, как предполагали в начале 80х японцы, пытавшиеся (злая ирония) изобрести национальную компьютерную сеть с целью всеобщего повышения производительности их интеллектов. Они, напротив, приводят и привели к всеобщей дебилизации и все большему опрощению конечных устройств - вас, дорогие мои. Больше не надо быть оборудованным центральным процессором и памятью - гугл подскажет, ютуб научит. Достаточно иметь совершенно пустой череп и гаджет в руке. И уметь нажимать кнопочки и помнить две ссылочки - и даже этого уже не нужно, потому что оные ссылочки заботливо встроены в эти самые пресловутые гаджеты заботливыми производителями.

Смекаете? Технологии, вместо того, чтобы поднять своих потребителей на уровень выше, опустились на уровень морлоков. Ничего личного - это лишь бизнес. Без лоха и жизнь плоха.

Больше не нужно иметь абстрактного мышления, сколько-нибудь живого воображения - да его вообще не нужно иметь, ютуб научит! - способности к пониманию и усвоению текстов.

Вообще ничего не нужно, понимаете? "Даже с маленьим IQ можно сделать барбекю". Ютуб - он научит.

(снова следует непереводимая игра слов)

Бросается в глаза тот факт, что человека, оборудованного головным мозгом с мощностью хотя бы 125 единиц уже днем с огнем не найти. Люди с IQ 140 уже редки, как черный жемчуг.

Вы понимаете, что это значит?

Совершенно верно.

Стоит такого, с позволения сказать, индивидуума засунуть в место, где нет гаджетов и интернета - и он превращается в мясо. Которое можно использовать лишь по прямому назначению. Стоит на одну минуту лишить его гаджета - и он тупеет сразу единиц на 50.

Верхом креативности считается проявление самого начального и туповатого чувства юмора. Кто способен изобрести более-менее нетрививальную шутку - тот уже Гуру, Отец, Аффтар.

Выводы можете сделать сами. Если вы, конечно, не ультратонкий клиент гугла.