среда, 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.

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

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

четверг, 14 февраля 2013 г.

Все-таки шапито

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


Жесть, ребята! Жесткая жесть! Шоу металлургов! Синдром Мубарака с клиническим проявлением "Дайте мне большую Красную Кнопку для cut-off! И побольше, побольше!" - причем в гнойной форме.

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

Стоп! - сам себе я думаю. А не принимают ли меня, часом, за дурака? Но я-то хотя бы не стою у руля большой - и, пока еще, относительно дееспособной страны (не сомневайтесь, это не затянется. Глупость топила еще и не такие корабли). Цена моей глупости неизмеримо меньше.

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

PS. Вы знаете, мне вообще страшно нравится, когда многие жупел-based темы вызывают клиническое (чуть не сказал - хтоническое) отключение головного мозга у окучиваемой аудитории. Точно так же, как половые железы отключают мозги в период размножения у животных. В том числе вида homo. И, самое главное, эти темы оправдывают любую глупость и ересь, потому что они животрепещущие и касаются ну просто каждого. Как в формальной логике - "За неверным утверждением может следовать любое утверждение", так и в политике за фразой "терроризм-экстремизм", "педофилы", "больные дети", "чувства верующих" может следовать абсолютно любой поток сознания. Третье Правило Волшебника вкупе с Первым же Правилом. И трындец. Дети, оно, конечно хорошо - но при чем здесь мыслящие (хочется верить) взрослые? И - да, немного здорового цинизма и здравого смысла взрослым ну никак не повредит в их реальной жизни. Той, которая вокруг монитора находится. А также слегка здорового прагматизма, который позволяет в ряде случаев избежать получения премии Дарвина. Посмертно. Я к тому, что в комнату с мягкими стенами все же стоит заточать предлагающего сие, а не тех, кто его окружает. Для вящей безопасности и дабы чего не вышло.

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

Squid: DNSCrypt в связке с прокси

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

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

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

Качаем - собираем.

Собирается без единого писка, ./configure && make && make install.

Запускаем демон (опция -d), проверяем, что слушается порт 53 на локалхосте.

Правим /etc/resolv.conf, рестартуем dns/client:

root @ ktulhu /patch # cat /etc/resolv.conf
domain ktulhu.kz
nameserver 127.0.0.1

root @ ktulhu /patch # svcadm restart dns/client

Перезапускаем сквида, убеждаемся, что DNS-запросы ресолвятся и 127.0.0.1 в качестве DNS-сервера подхвачен.

Надо бы написать SMF. Мы же на Солярисе. Для автостарта сервисика.

Пишем. Скачать здесь.

Запускаем сервис. Пробуем.

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

PS. Да, я знаю, "Ты еще винограду сверху положи!" (С). Но привинчивать туда Tor или еще что-то кажется не очень хорошей идеей. А вот DNS прикрыть.... (Не надо мне плести, что DNSSEC решит все проблемы. Слышали про волшебную пулю и неоднократно).