Gauss gun в домашних условиях
Здравствуйте, люди.
Будем делать Гаусс. Как обойтись без светодиодов, сделать схему распределения энергии на соленоиды. Как зарядить конденсатор на 400 воль с 4,5 вольт. Кто делает на светодиодах, делайте, а мы сделаем схему куда проще. Схема подобна схеме Сургал Мориус дКарна,(Надеюсь, он не будет материться =), но работает на магнитной энергии:

Буквами S1,S2,S3 – обозначены соленоиды (катушки)
С1,С2,С3 – Конденсаторы
G1 – Источник питания, в нашем случае батарейка
R1 – Спец реле, такое вряд ли продается в магазине.
Так что придется мутить самому, это самое важное в механизме распределения энергии. Когда на реле поступает энергия, стержень с контактами опускается вниз, замыкая контакты сначала первый, потом второй, и третий. Так энергия распределяется по всем трем соленоидам. Обратно стержень поднимает пружинка внутри реле. В этом случае конденсаторы подобраны так, что они садятся, когда пуля доходит до середины соленоида. Так что отрицательное поле нам не грозит.
Еще один способ: металлический снаряд, проходящий через определенные участки ствола, замыкает контакты, тем самым, включая питание на предыдущие соленоиды, и отключая оставшиеся позади снаряда соленоиды. Далее »
RFID-хакинг или надерем задницу большому брату
Ты, конечно, уже не раз слышал о такой новомодной технологии, как RFID. Все чаще можно слышать в прессе и в интернете упоминания о ней, споры, возникающие между сторонниками и противниками повсеместного распространения этой технологии, а также сводки на сайтах по информационной безопасности об угрозах, которые таит в себе слабая защищенность систем, использующих RFID. Эта статья расскажет тебе о новом направлении хакинга — об RFID-хаке.
Технология RFID
Начать повествование я решил с краткого описания технологии RFID. Вообще, RFID или Radio Frequency IDentification (радиочастотная идентификация) — это метод удаленного хранения и получения информации путем передачи радиосигналов с помощью устройств, называемых RFID-метками. История появления данной технологии восходит к первой половине XX столетия. Британские ВВС еще в начале Второй мировой использовали подобную технологию, устанавливая на самолеты устройства радиочастотной идентификации, позволяющие эффективно отличать свои авиационные юниты от самолетов противника. Есть также сведения, что в СССР в 50-х годах похожая технология использовалась для шпионажа. С 60-х годов начинаются исследования о возможности применения RFID в гражданских целях, а первая радиометка, аналогичная применяемым сегодня, была создана в научной лаборатории Лос Аламос в 1973 году.
Принцип работы RFID-систем весьма прост. Данные системы включают в себя два основных компонента: считыватель (ридер) и идентификатор (метка, чип, тэг). Ридер излучает электромагнитную энергию. Метка улавливает этот сигнал и передает ответный, который уже принимается антенной ридера.
По своему типу системы RFID подразделяются на пассивные и интерактивные. В пассивной системе излучение считывателя находится постоянно во времени (то есть не модулировано) и служит только источником питания для радиометки, которая собственного источника энергии не имеет. Получив энергию от ридера, метка включается и передает сигнал, который принимается считывателем. Вышеописанным способом работает большинство систем управления доступом, где необходимо только получить серийный номер идентификатора.
Более продвинутые RFID-системы используют интерактивный режим работы. Ридер в таких системах излучает модулированные колебания, то есть формирует запрос. RFID-метка дешифрирует запрос, обрабатывает его, и, если это необходимо, формирует соответствующий ответ. Подобные системы необходимы, например, для работы с товарами, маркированными радиометками. Дело в том, что если система пассивная, то при попадании одновременно нескольких меток под излучение ридера их сигналы накладываются друг на друга, и возникает коллизия. Интерактивные же системы снабжены механизмом антиколлизии. Интерактивные RFID-тэги часто имеют встроенную батарею, заряда которой может хватить на несколько лет. Интерактивные метки с собственным источником питания называют активными, а те, что без него, — полупассивными.
RFID-метки можно подразделить на несколько категорий. Во-первых, по используемому диапазону радиочастот на:
- низкочастотные (125 или 134,2 КГц);
- высокочастотные (13,56 МГц);
- UHF, то есть ультравысокочастотные (868-956 МГц);
- микроволновые (2,45 ГГц).
Во-вторых, по размерам встроенной памяти, которая может быть от 4 байт до 4 Кб. Кроме того, метка может иметь память только для чтения или же с возможностью дозаписи и перезаписи информации. Существует несколько стандартов RFID-меток, сформировавшихся на сегодняшний день. Важным свойством радиометки является и ее размер, который может составлять всего 0.4х0.4 мм для пассивных меток, в то время как активные метки имеют размер с монету.
Применение: за и против
Применяться RFID может в самых разных областях. Во-первых, СКУД, то есть системы контроля и управлением доступом. Исторически это было первым применением технологии RFID. Сегодня доступ в офис или дом с помощью proximity-карты со встроенным радиочипом — уже вполне обычное дело. Большинство подобных систем используют пассивные метки и работают в низкочастотном диапазоне, хотя в последнее время все чаще встречаются интерактивные системы на частотах 13,56 МГц. Реально новое направление в этой области – создание RFID-имплантатов для людей. Первый эксперимент такого рода был проведен еще в 1988, а сегодня компания Applied Digital Solution предлагает любому желающему имплантировать себе в руку свою разработку – VeriChip.
Во-вторых, это контроль над перевозкой грузов и конкретных товаров, их складской учет. Представь только, как просто будет проходить ревизия на складах или в супермаркетах: достаточно пройтись с ридером вдоль полок с товарами — и все автоматически будет переучтено в БД товаров. Существует стандарт RFID называемый EPC (electronic product code), являющийся аналогом штрихкодов. Специалисты считают, что в ближайшее десятилетиеRFID-метка на каждом отдельном товаре станет таким же обычным явлением, как сегодня штрихкод.
Еще одна очень важная область применения RFID – это электронные документы. Государства многих стран, в том числе и России, планируют уже в самое ближайшее время начать встраивать RFID-метки в паспорта своих граждан. При этом в память имплантированной в паспорт метки будут заноситься не только обычные данные владельца (ФИО, год рождения и т.д.), но и биометрические признаки, а также цветное фото.
Как это всегда бывает, у технологии, подобной RFID, появляется множество сторонников и противников. Несмотря на все удобства, привносимые применением RFID, у многих людей ее внедрение вызывает большие опасения. И не зря. Во-первых, радиометки по своей сути являются радиомаяками – ведь именно в этом качестве их использовала советская разведка в 50-х. И незаконное слежение еще не единственное, что вызывает опасения. Большие опасения вызывает безопасность самой технологии. Сам Брюс Шнайер на планы оснащения паспортовRFID-метками, заявил, что «это чистая угроза национальной безопасности».
Конечно, такую важную технологию, как RFID, не могли оставить без внимания хакеры и различные исследователи информационной безопасности. Первое, на чем хотелось бы заострить внимание, — это проблема, связанная с вмешательством в личную жизнь человека, которая возможно будет иметь место в самом обозримом будущем. Только представь, что государство или же крупные корпорации будут иметь под контролем тысячи считывателей радиометок, расположенных на входе в метро, супермаркет или просто посреди улиц. Такие считыватели способны накапливать информацию о нашем перемещении, о том, какие товары мы только что приобрели в магазине. Конечно, сегодня это звучит несколько бредово, но пройдет, возможно, менее десятка лет, и наступит время, когда каждый из нас добровольно или же принудительно будет всегда носить с собой имплантированный под кожу идентификационный чип. Напоминает кино в жанре киберпанк? Как бы то ни было, все идет именно к этому.
Австралийские исследователи компьютерной безопасности в апреле этого года опубликовали работу, в которой описывается возможность препятствования считыванию информации RFID-ридером с метки. В их планах — создание устройства, которое не позволит считывать информацию с RFID-меток без ведома их владельца. Они использовали метод, напоминающий DoS-атаку: радиоэфир захламляется огромным множеством сигналов, имитирующих сигналы меток. RFID-ридеры первого поколения, то есть пассивные, не имеют возможности считать данные с карты из-за вышеупомянутого явления – коллизии. Интересно, что более продвинутые интерактивные ридеры, как показали опыты, также напрочь уходят в даун.
Но с созданием первого анти-RFID гаджета австралийцев опередили голландцы. В начале апреля на околокомпьютерных сайтах запестрила новость о разработанном сотрудниками Свободного университета Амстердама устройства, которое препятствует чтению RFID-меток и информирует владельца о подобных попытках. Данный девайс разрабатывался в рамках проекта RFID Guardian (http://www.rfidguardian.org) группой исследователей под руководством профессора Эндрю Таненбаума (Andrew Tanenbaum), который, кроме этого, занимается еще рядом проектов, посвященных безопасности RFID-систем. Разработанное голландцами устройство представляет собой КПК с 550Mhz процессором и 64 Мб памяти, оборудованный RFID-ридером и необходимым ПО.
Настоящие хакеры смотрели на проблему несколько иначе. Двое немецких компьютерщиков MiniMe и Mahajivana, состоящие в рядах «Хаоса», решили, что лучший способ обезопасить себя от угроз, которые может принести технология RFID, — это простое уничтожение RFID-меток. Наиболее действенным способом убийства радиометок, обнаруженными хакерами, оказалось помещение их на короткое время в микроволновку. Но далеко не любой предмет со встроенным RFID-чипом засунешь в микроволновую печь, поэтому был разработан девайс, названный RFID-Zapper. Создатели устройства решили, что стоимость его должна быть минимальна, поэтому использовали в качестве основы одноразовый фотоаппарат-мыльницу, который сможет раздобыть любой желающий. После некоторых усовершенствований вспышка такого фотоаппарата научилась создавать сильное электромагнитное поле, наповал убивающее пассивные радиометки. Правда, пока только 13,56-мегагерцовые, но создатели Zapper‘а обещают дальнейшее развитие проекта. RFID-Zapper вызвал у всех большой интерес на состоявшемся некоторое время назад европейском 22-м слете хакеров CCC.
Клонирование
Кстати, пресса, сама того не подозревая, привлекает все больше хакеров к изучению RFID. Наибольшую шумиху среди техногиков вызвала недавняя статья американской журналистки Эннели Ньютц (Annalee Newitz) под названием The RFID Hacking Underground, опубликованная в майском выпуске Wired (http://www.wired.com/wired/archive/14.05/rfid.html). Впервые о RFID-хаке говорилось как о новом направлении хакерства. Одним из «героев» этой статьи стал 23-летний студент Джонатан Вестхьюз (Jonathan Westhues) — возможно, первый из хакеров, сконструировавший устройство, способное клонировать RFID-метки. Это устройство, прозванное им proxmark, впервые было собрано Джонатаном еще в 2003 году. С помощью proxmark’а, который легко умещался в кармане, Вестхьюз мог, приблизившись на достаточно близкое к человеку расстояние, незаметно клонировать, имеющуюся у того proximity-карту. И получить, таким образом, доступ туда, где его явно быть не должно.
На протяжении всего этого времени Джонатан совершенствовал proxmark, и устройство уже получило третье рождение в виде proxmark3. Теперь оно обрело множество новых функций и умеет работать уже с большинством 125KHz и некоторыми 13,56MHz RFID-метками. Не так давно хакеру удалось клонировать даже VeriChip, который его производители преподносят как наиболее надежный способ уберечь данные, касающиеся идентификации пользователя. На состоявшейся этим летом конференции HOPE (Hackers On Planet Earth) Number Six Вестхьюз продемонстрировал, чего на самом деле стоит разрекламированный VeriChip. Не обошлось там и без участия Эннели, которая, вероятно, чтобы привлечь большее внимание к данному мероприятию, ассистировала Джонатану с имплантированным в руку VeriChip’ом. Судя по тому, сколько сообщений об этом «взломе» появилось в инете, представление им удалось
.
Если тебя заинтересовал девайс Вестхьюза, то тебе необходимо посетить его сайт: http://cq.cx. Там ты найдешь все наработки Джонатана по конструированию RFID-клонеров и даже сможешь скачать архивчик со всеми схемами, описаниями и ПО, необходимыми для конструирования proxmark3.
Конечно, клонировать интерактивную RFID-метку — задача сложная, поэтому, думаю, в скором времени системы идентификации с пассивными метками уйдут в прошлое. Преимущество интерактивных систем, помимо всего прочего, — это возможность использования шифрования для защиты информации. На самом деле такие системы уже давно не редкость — к примеру, автомобильные иммобилайзеры, набирающие все большую популярность, или те карты, что используются в московском метрополитене еще с 1998 года. Подобную же систему использовала компания ExxonMobil с 1997 года.
Как стать ssh’астливым. Full-guide по использованию Secure Shell
Стой! Не листай дальше. Если ты до сих пор воспринимаешь SSH исключительно, как безопасную альтернативу устаревшему Telnet, не рискуй вызывать гнев богов, тьфу, разработчиков протокола. Ниже мы собрали самый полный мануал по правильному использованию Secure Shell на полную катушку.
Трик 1: прокачиваем SSH-клиент
Несмотря на большое разнообразие SSH-клиентов, особой проблемы с выбором не возникает. Общепризнанных всего два - PuTTY (www.chiark.greenend.org.uk) и SecureCRT (www.vandyke.com), и оба действительно хороши. Но если за «цитрамон» разработчики просят денежки, то PuTTY распространяется прямо в открытых исходниках. По этой причине выбор зачастую остается именно за ним. Более того, несмотря на то, что многие воспринимают путти как виндовый клиент, у него есть версии и для UNIX.
Саму прогу ты видел в действии, когда смотрел ролики Visualhack++. С помощью него ты можешь коннектиться к своим сервакам через: Raw, Telnet, Rlogin, FTP (SFTP), SSH1, SSH2. В общем смысле, PuTTY – это комплект утилит, куда помимо непосредственно клиента (putty.exe) входят тулзы:
- puttygen – генератор rsa/dsa ключей, используемых для авторизации;
- pagent – агент аутентификации, который хранит ключи в памяти, благодаря чему ты освобождаешься от ввода паролей ручками;
- plink – интерфейс командной строки для putty;
- pscp – утилита, обеспечивающая безопасное копирование файлов;
- psftp – безопасный ftp-клиент для копирования, просмотра, переименования файлов и т.д.
С некоторыми из этих утилит мы еще познакомимся далее.
Невзирая на личную симпатию к PuTTY, долгое время я отдавал предпочтение SecureCRT. Почему? По большому счету – за одну маленькую, но очень полезную опцию, не реализованную в патти – поддержку табов для разных сессий. Если у тебя когда-нибудь было открыто пять, а то и больше окошек PuTTY для разных серверов, ты знаешь, насколько тяжело ориентироваться среди них. Разработчики не спешат добавлять поддержку табов в утилиту, но зато с этим справилась группа французских энтузиастов, выпустив замечательную тулзу PuTTY Connection Manager (puttycm.free.fr). Что важно, это не какая-то там переделка исходников оригинального PuTTY, которая могла повлечь за собой новые баги, в том числе и безопасности. Напротив, за SSH-сесии по-прежнему отвечает исходный бинарник (putty.exe), а PuTTY Connection Manager лишь объединяет открытые окна в удобный интерфейс с табами, а также предоставляет продвинутый интерфейс для настроек подключения.
PowerShell и администрирование будущего
Долгое время визитной карточкой Windows служил графический интерфейс, а желающим поработать в консоли приходилось довольствоваться весьма урезанным функционально cmd.exe. Появление PowerShell с гибким языком сценариев изменило ситуацию к лучшему. Используя его возможности, можно легко выполнить практически любую задачу, возникающую перед администратором.
Зачем админу PowerShell?
Если настройку при помощи графических утилит можно назвать наглядной, то консоль вырывается вперед, когда говорят об автоматизации задач и обработке большого количества данных. Ранее админу, чтобы упростить себе работу, необходимо было использовать командные BAT-файлы, VBScript, JavaScript, Windows Script Host, Perl и прочие инструменты, позволяющие управлять системной информацией. Но одни ограничены по возможностям, другие сложны и неудобны, применение третьих (VBScript/JavaScript) может снизить общий уровень безопасности системы. PowerShell (ранее – Monad), вышедший в 2006 году, лишен этих недостатков. Он изначально объектно-ориентирован, вобрал в себя лучшие элементы из Perl, PHP, C# и использует все современные наработки Microsoft (в первую очередь, .NET Framework, объектами которой оперирует совершенно свободно). Результат работы не нужно парсить, чтобы понять, что получилось; его опять можно обработать без какой-либо дополнительной подготовки. Именно поэтому принцип использования PowerShell несколько отличается от привычных юниксовых интерпретаторов. В оболочку встроено свыше 130 команд, позволяющих получить доступ к любому объекту файловой системы, реестра, сети, Active Directory, а, используя предпочитаемый .NET-язык, можно создавать дополнительные команды. Именно наличие большого количества командлетов (cmdlets – командных модулей, своего рода готовых мини-программ, реализующих отдельные операции) заметно упрощает выполнение часто используемых задач.
Сейчас PowerShell встроен в Win2k8/R2/Se7en и доступен как опциональный компонент для WinXPSP2/2k3/Vista. Скачать его можно с сайта Microsoft. Для установки потребуется .NET Framework 2.0 (нужен для всех версий PowerShell) и .NET Framework 3.5.1 (для работы ISE – Integrated Scripting Environment). Для удаленного управления понадобится WinRM 2.0 CTP3.
Начинаем исследование
На первый взгляд синтаксис командной оболочки кажется немного запутанным, но в действительности все понятно и логично. Названия командлетов стандартизированы, имена выглядят как «действие-объект». Так, чтобы получить данные объекта, используем действие «Get-*», установить «Set-*», остановить – «Stop-*», вывод – «Out-*» и т.д. Список всех доступных команд можно просмотреть, выполнив «Get-Command». Для получения помощи набираем «Get-Help». К примеру, просмотрим список процессов, рассортируем их по использованию процессорного времени в убывающем порядке и выберем 10 самых прожорливых:
PS> Get-Process | Sort CPU -Descending | Select -First 10
Все просто! Попробуем потушить самый жадный до CPU процесс:
PS> Get-Process | Sort CPU -Descending | Select -First 1 | stop-process
Чтобы узнать, какие диски доступны, вводим:
PS> Get-PSDrive
Обрати внимание, что в списке будут присутствовать и ветки реестра HKCU и HKLM, к которым можно обратиться как к обычному диску:
PS> cd HKLM:
PS HKLM>
Теперь можно перемещаться по выбранной ветке, просматривать, создавать и удалять объекты. Для PowerShell разработано большое количество командлетов, и если ты не хочешь повторно изобретать колесо, вполне естественно посмотреть на результаты работы других администраторов. Сообществом PowerShell создан репозитарий командлетов PoshCode Cmdlets, который является неким аналогом Perl CPAN. Здесь можно найти решения практически на все случаи. Например, нужен снифер на PowerShell? Нет ничего проще! Качаем с сайта файл Get-Packet.ps1 и запускаем:
PS> Get-Packet.ps1 -Statistics
Все параметры описаны внутри файла. Другой командлет Analyze-Packet позволит получить детальную статистику по пакетам.
По умолчанию выполнение сценариев в PowerShell запрещено, поэтому не все команды удастся запустить. Просмотреть текущий статус политики выполнения можно командой:
PS> Get-ExecutionPolicy
AllSigned
Существует четыре типа политики:
- Restricted – возможно выполнение отдельных команд, сценарии запрещены;
- AllSigned – разрешено выполнение подписанных сценариев, перед запуском запрашивается подтверждение;
- RemoteSigned – похож на предыдущий, не запрашивается выполнение сценариев, подписанных надежным издателем, не требуется подпись для локальных сценариев;
- Unrestricted – можно запускать неподписанные сценарии.
PS> Set-ExecutionPolicy RemoteSigned
Работаем с WMI-объектами
Доступ в скриптах PowerShell к инструментарию управления Windows (WMI, Windows Management Instrumentation) дает почти безграничные возможности: можно получать, устанавливать, контролировать практически любые системные параметры. Для работы с WMI в PowerShell используется командлет Get-WmiObject. Чтобы узнать все допустимые параметры, запускаем его со знаком вопроса. Команда «Get-WmiObject -List» выведет список всех доступных WMI-объектов (приготовься, он будет большим). Аналогично, добавив «-List» при вызове определенного класса, увидим все возможные методы и свойства. Например, просмотрим список всех классов, связанных с сетевыми настройками:
PS> Get-WmiObject -List | where {$_.name -match "net"}
И запросим настройки сетевых адаптеров:
PS> Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE
В результате получим таблицу с полной конфигурацией. Чтобы сохранить ее в файл, достаточно использовать стандартную функцию перенаправления, то есть просто добавить в конец команды «> network.txt». Кроме того, есть возможность сразу отформатировать вывод (Get-Help Export). При вызове директиву «-Class» можно опустить. Также надо помнить о клавише <Tab>; если ее нажать при вводе параметров, станет доступен список возможных вариантов. Иначе показываются все файлы текущего каталога.
В скриптах часто нужен только один параметр из вызова, поэтому сократим вывод, выбрав при помощи Select-Object один пункт, например IP-адрес:
PS> Get-WmiObject Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE | Select-Object -Property IPAddress
IPAddress
---------
{192.168.1.58}
{192.168.159.1}
По умолчанию идет опрос локальной системы, но командлет Get-WmiObject принимает параметр «-ComputerName», который используется, чтобы создать запрос к WMI другой системы, находящейся в локальной сети. Точка после параметра (-ComputerName .) указывает на текущую машину. Например, произведем опрос свободного места на дисках в двух системах, и результат сохраним в файл формата CSV:
PS> $machines = @("comp1", "comp1")
PS> $(foreach ($machine in $machines)
>>{
>>Get-WmiObject Win32_LogicalDisk -ComputerName $machine | Select-Object -Property FreeSpace | Export-CSV c:\disks.csv
>>})
После ввода последней директивы нажимаем <Enter> дважды. Данные будут выведены в байтах, что не очень наглядно, но их легко перевести, например, в гигабайты:
PS> Get-WmiObject win32_logicaldisk | Select-Object -Property FreeSpace | % {$_.freespace/1GB }
Теперь запросим список расшаренных сетевых папок:
PS> Get-WmiObject Win32_Share
Name Path Description
---- ---- -----------
С$ С:\ Стандартный общий ресурс
IPC$ Удаленный IPC
Сегодня проблемой в организациях является несанкционированное использование USB-устройств. И здесь нам может помочь PowerShell:
PS> Get-WmiObject Win32_USBControllerDevice | Format-List Antecedent, Dependent
Используя Where/Where-Object, StatusCode, IF и другие операторы, можно отобрать только те параметры, которые удовлетворяют определенным условиям. Проверяем, жив ли компьютер в сети, если да – получаем список процессов; иначе выводим сообщение:
PS> $computer = 192.168.1.1
PS> $ping = Get-WmiObject Win32_PingStatus -filter "Address='$computer'"
// статус "0" означает нормальное завершение
PS> if ($ping.StatusCode -eq 0)
>>{
>>Get-Service
>>}
>>else
>>{
>> Add-Content "$computer is not available"
>>}
>>}
Работаем с Active Directory
Используя командлеты, можно выполнять все операции с Active Directory – создавать, удалять, изменять, просматривать свойства объектов, перемещать, переименовывать и восстанавливать объекты, управлять группами, ролями FSMO, доменами и лесами, настраивать политики и многое другое. Обращение к AD происходит через ADSI путем опроса пространства имен «System.DirectoryServices» .NET Framework. Но при использовании ADSI даже простые команды выглядят довольно пугающе для новичков (я уже не говорю о сложных конструкциях). Для примера зададим путь к контейнеру и просмотрим его свойства:
PS> $path = [ADSI]"LDAP://OU=testOU,DC=testdomain,DC=local"
PS> $path | Format-List *
Чтобы создать новый объект, набираем:
PS> $user = $path.Create('user', 'cn= demo')
В состав Win2k8 входит утилита ADSI Edit, которая упрощает поиск параметров для написания сценариев, а в Win2k8R2 и Win7 (и только в них) доступен набор командлетов AD PowerShell (Active Directory Module for Windows PowerShell), с помощью которого можно:
- создавать, удалять, изменять и читать объекты пользователей, групп, компьютеров, управляемых аккаунтов служб и организационных подразделений;
- управлять свойствами аккаунтов: дата истечения, пароль и т.д.;
- управлять членством в группах, получать список групп, в которые включен аккаунт;
- управлять политикой паролей домена;
- перемещать контроллеры домена между сайтами и получать информацию о КД;
- управлять политикой репликации пароля контроллера домена только для чтения;
- управлять доменами и лесами, устанавливать функциональный уровень домена и леса.
Чтобы установить AD PowerShell в Win7, надо инсталлировать RSAT (Microsoft Remote Server Administration Tools). После чего AD PowerShell можно загрузить прямо из меню «Программы и компоненты» (Turn Windows Features on or off – Remote Server Administration Tools – Role Administration Tools – AD DS and LDS Tools – Active Directory PowerShell snap-in). На сервере Win2k8R2 нужный компонент ставится еще проще:
PS> Add-WindowsFeature -Name "RSAT-AD-PowerShell" –IncludeAllSubFeature
Для загрузки модуля AD PowerShell набираем:
PS> import-module activedirectory
К примеру, получим все КД текущего домена:
PS> Get-ADDomainController -Filter { name -like "*" }
Также появились командлеты для работы с AD от сторонних разработчиков. Очень популярны свободно распространяемые AD PowerShell cmdlets (их еще называют QAD cmdlets), разработанные Quest Software. В этом наборе имена командлетов составлены из стандартной пары «действие-объект». На первой позиции стоят все те же английские глаголы Get-, Set-, New-, Move-, Remove-, Rename- и так далее. На второй – описание объекта с префиксом QAD (-QADUser, -QADComputer, -QADGroup, -QADObject). Получить список доступных QAD командлетов очень просто:
PS> Get-QCommand
Если работаем под обычной учетной записью, подключимся к контроллеру домена в качестве администратора:
PS> $pw = read-host "Enter password" -AsSecureString
PS> Сonnect-QADService -service 'localhost' -proxy -ConnectionAccount 'testdomain\administrator' -ConnectionPassword $pw
Для начала получим список пользователей и затем компьютеров:
PS> Get-QADUser | Get-Member
PS> Get-QADComputer
Чтобы узнать информацию по отдельному пользователю и параметру, просто подставляем его в вызов:
PS> Get-QADUser Vasja -Properties ManagedObjects
Теперь просмотрим список пользователей, которые не регистрировались 2 месяца и сохраним вывод в HTML-файл:
PS> $last2months = (Get-Date).AddMonths(-2)
PS> Get-QADUser -IncludedProperties LastLogon | where { $_.lastLogon -le $last2months} | Select DisplayName, LastLogon, AccountIsDisabled | ?{-not $_.AccountIsDisabled} | ConvertTo-Html | Out-File c:\report.html
Чтобы в отчет не попали отключенные учетные записи, в команде проконтролировали значение AccountIsDisabled. Знак «?» является алиасом «Where-Object»; специальная переменная «$_», которая часто используется в скриптах PowerShell, указывает на текущий объект.
Стоит отметить, атрибут LastLogon не реплицируется между контроллерами домена, поэтому если в сети их несколько, то это значение следует получить с каждого КД. Получим список КД и затем опросим каждый на предмет LastLogon:
PS> Get-QADComputer -ComputerRole DomainController | foreach {
(Get-QADUser -Service $_.Name -SamAccountName username).LastLogon.Value
}
А теперь выберем всех пользователей из отдела Sales, проживающих в Москве, и укажем для них новый номер телефона:
PS> Get-QADUser -City Moscow -Department Sales | Set-QADUser -PhoneNumber ‘495-1111111’
Создадим новую доменную учетную запись:
PS> New-QADUser -name 'user' -ParentContainer 'OU=testOU,DC=testdomain,DC=local' -UserPassword 'P@ssword'
Чтобы отключить, включить или разблокировать учетную запись, следует использовать командлеты Disable-QADUser, Enable-QADUser и Unlock-QADUser, соответственно. Также просто создавать новые объекты:
PS> New-QADObject -type OrganizationUnit -ParentContainer teststomain.local -Name NewOU
Теперь переместим в созданный контейнер ряд учетных записей:
PS> Get-QADUser -Department Sales | Move-QADObject -To testsdomain.local/Sales
Управление группами выглядит аналогично:
PS> Get-QADGroupMember Scorpio\Managers | where { $_.City -eq ‘Ekaterinburg’} | Add-QADGroupMember Scorpio\Ekaterinburg_Managers
Экспериментируя с PowerShell, можно легко ошибиться, поэтому при изменении объектов AD лучше запустить выполнение с ключом «-whatif» (что если). В этом случае вместо действительного изменения параметров скрипт выведет в консоль все, что он должен сделать.
Заключение
Учитывая возможности, предоставляемые оболочкой PowerShell, и наличие огромного числа готовых командлетов, стоит потратить время на ее изучение. Это с лихвой окупится за счет автоматизации рутинных операций.
Новое в PowerShell 2.0
PowerShell v2 используется по умолчанию в Win2k8R2 и Win7. По сравнению с версией 1.0, оболочка получила 24 новых командлета и имеет ряд усовершенствований, о которых хотелось бы сказать отдельно (все они доступны в CTP3):
- Удаленное выполнение команд (PowerShell Remoting) – используя технологию WinRM, PowerShell может выполнять команды сразу на нескольких системах и отслеживать результат (Get-Help About_Remoting);
- Выполнение в фоне (Background Jobs) – возможность выполнять команды и скрипты в фоне (Get-Help About_PSJob);
- Новый API, который позволяет встраивать PowerShell в другие продукты;
- Новые переменные – пополнился набор переменных. Например, $commandLineParameters позволит получить аргументы командной строки;
- Отладчик в консоли – теперь в скриптах, кроме Set-PSDebug, можно использовать еще ряд командлетов, устанавливать точки останова и продолжать отладку в пошаговом режиме (Get-Help about_debugger);
- Многочисленные улучшения в работе с WMI;
- Script Internationalization – новая функция, позволяющая создать скрипт, который затем можно легко перевести на другой язык (Get-Help about_Script_Internationalization);
- Новые операторы (@), -Join, -Split, упрощающие работы с текстовыми строками;
- ScriptCmdlets – возможность создания командлетов только с использованием кода PowerShell, без применения C# или Visual Basic .Net;
- Командлет Out-GridView позволяет выводить данные в виде таблицы (Get-Help Out-GridView);
- PowerShell Integrated Scripting Environment – графическая оболочка.
Полезные мелочи
Если приходится часто вводить одинаковые команды, воспользуйся алиасами. Для начала взглянем на список предустановленных псевдонимов:
PS> get-alias
Например, вместо «Get-Process» можно ввести просто «gps». Задать свой алиас очень просто:
PS> Set-Alias d Get-Date
Теперь чтобы вывести дату, достаточно набрать «d». Если в скриптах некоторый код повторяется несколько раз, имеет смысл использовать функции:
function <имя> {<код>}
Очень удобно, что все функции, объявленные во время текущего сеанса консоли, запоминаются, и к ним можно обращаться по мере необходимости.
В чем работать с PowerShell?
Командная строка (хост) PowerShell.exe имеет простой интерфейс, и несколько неудобна при повседневном использовании и тестировании скриптов. При постоянной работе лучше подыскать альтернативные решения, благо их сегодня предостаточно. Например, бесплатный для некоммерческого использования PowerShell Plus или PowerShell Analyzer. Хост PoshConsole, основанный на графической подсистеме WPF (Windows Presentation Foundation), обладает интересным режимом QuakeMode (Get-QuakeMode), эмулирующим вид консоли популярной игры. Очень удобен редактор PowerGUI, созданный нашими соотечественниками, с автоматическим дополнением команд, хорошим отладчиком, возможностью поиска командлетов в репозитарии PoshCode Cmdlets и многими другими функциями. Поклонники FAR наверняка оценят наличие плагина для этого файлового менеджера – FarNet.
INFO
PowerShell — это расширяемая оболочка с интерфейсом командной строки и сопутствующий язык сценариев. Упрощает выполнение часто используемых задач, позволяет сократить время администрирования рабочих станций и серверов, а также обеспечивает возможность тонкой настройки компонентов ОС Windows.
Сегодня PowerShell является частью ОС Win2k8R2 и Win7 и встроен в графические консоли администрирования последних продуктов Microsoft (например, Exchange 2007 и System Center 2007).
Интерфейс программирования приложений ADSI предназначен для доступа к службе Active Directory и позволяет создавать, изменять и удалять объекты в каталогах, выполнять поиск и множество других операций.
При использовании QAD команды для работы с AD выглядят на порядок проще, а скрипты читабельнее.
QAD командлеты понадобятся в случае использования некоторых GUI к PowerShell, в которых имеется функция для работы с Active Directory (например, PowerGUI).
Производители программного обеспечения не остаются в стороне и разрабатывают большое количество командлетов.
Непотопляемый сервер: настраиваем кластер на основе Windows 2003 Server
Сегодня бизнес-процессы многих компаний полностью завязаны на информационных технологиях. С ростом такой зависимости организаций от работы вычислительных сетей доступность сервисов в любое время и под любой нагрузкой играет большую роль. Один компьютер может обеспечить лишь начальный уровень надежности и масштабируемости, максимального же уровня можно добиться за счет объединения в единую систему двух или нескольких компьютеров – кластер.
Для чего нужен кластер
Кластеры применяют в организациях, которым нужна круглосуточная и бесперебойная доступность сервисов и где любые перерывы в работе нежелательны и недопустимы. Или в тех случаях, когда возможен всплеск нагрузки, с которым может не справиться основной сервер, тогда ее помогут компенсировать дополнительные хосты, выполняющие обычно другие задачи. Для почтового сервера, обрабатывающего десятки и сотни тысяч писем в день, или веб-сервера, обслуживающего онлайн-магазины, использование кластеров очень желательно. Для пользователя подобная система остается полностью прозрачной – вся группа компьютеров будет выглядеть как один сервер. Использование нескольких, пусть даже более дешевых, компьютеров позволяет получить весьма существенные преимущества перед одиночным и шустрым сервером. Это равномерное распределение поступающих запросов, повышенная отказоустойчивость, так как при выходе одного элемента его нагрузку подхватывают другие системы, масштабируемость, удобное обслуживание и замена узлов кластера, а также многое другое. Выход из строя одного узла автоматически обнаруживается, и нагрузка перераспределяется, для клиента все это останется незамеченным.
Возможности Win2k3
Вообще говоря, одни кластеры предназначены для повышения доступности данных, другие – для обеспечения максимальной производительности. В контексте статьи нас будут интересовать MPP (Massive Parallel Processing) - кластеры, в которых однотипные приложения выполняются на нескольких компьютерах, обеспечивая масштабируемость сервисов. Существует несколько технологий, позволяющих распределять нагрузку между несколькими серверами: перенаправление трафика, трансляция адресов, DNS Round Robin, использование специальных программ, работающих на прикладном уровне, вроде веб-акселераторов. В Win2k3, в отличие от Win2k, поддержка кластеризации заложена изначально и поддерживается два типа кластеров, отличающихся приложениями и спецификой данных:
1. Кластеры NLB (Network Load Balancing) – обеспечивают масштабируемость и высокую доступность служб и приложений на базе протоколов TCP и UDP, объединяя в один кластер до 32 серверов с одинаковым набором данных, на которых выполняются одни и те же приложения. Каждый запрос выполняется как отдельная транзакция. Применяются для работы с наборами редко изменяющихся данных, вроде WWW, ISA, службами терминалов и другими подобными сервисами.
2. Кластеры серверов – могут объединять до восьми узлов, их главная задача – обеспечение доступности приложений при сбое. Состоят из активных и пассивных узлов. Пассивный узел большую часть времени простаивает, играя роль резерва основного узла. Для отдельных приложений есть возможность настроить несколько активных серверов, распределяя нагрузку между ними. Оба узла подключены к единому хранилищу данных. Кластер серверов используется для работы с большими объемами часто изменяющихся данных (почтовые, файловые и SQL-серверы). Причем такой кластер не может состоять из узлов, работающих под управлением различных вариантов Win2k3: Enterprise или Datacenter (версии Web и Standart кластеры серверов не поддерживают).
В Microsoft Application Center 2000 (и только) имелся еще один вид кластера – CLB (Component Load Balancing), предоставляющий возможность распределения приложений COM+ между несколькими серверами.
NLB-кластеры
При использовании балансировки нагрузки на каждом из хостов создается виртуальный сетевой адаптер со своим независимым от реального IP и МАС-адресом. Этот виртуальный интерфейс представляет кластер как единый узел, клиенты обращаются к нему именно по виртуальному адресу. Все запросы получаются каждым узлом кластера, но обрабатываются только одним. На всех узлах запускается служба балансировки сетевой нагрузки (Network Load Balancing Service), которая, используя специальный алгоритм, не требующий обмена данными между узлами, принимает решение, нужно ли тому или иному узлу обрабатывать запрос или нет. Узлы обмениваются heartbeat-сообщениями, показывающими их доступность. Если хост прекращает выдачу heartbeat или появляется новый узел, остальные узлы начинают процесс схождения (convergence), заново перераспределяя нагрузку. Балансировка может быть реализована в одном из двух режимов:
1) unicast – одноадресная рассылка, когда вместо физического МАС используется МАС виртуального адаптера кластера. В этом случае узлы кластера не могут обмениваться между собой данными, используя МАС-адреса, только через IP (или второй адаптер, не связанный с кластером);
2) multicast – многоадресная рассылка, МАС-адрес кластера назначается физическому адресу, но не затирая его. Для реализации этого метода маршрутизаторы должны поддерживать групповые МАС-адреса.
В пределах одного кластера следует использовать только один из этих режимов.
Можно настроить несколько NLB-кластеров на одном сетевом адаптере, указав конкретные правила для портов. Такие кластеры называют виртуальными. Их применение дает возможность задать для каждого приложения, узла или IP-адреса конкретные компьютеры в составе первичного кластера, или блокировать трафик для некоторого приложения, не затрагивая трафик для других программ, выполняющихся на этом узле. Или, наоборот, NLB-компонент может быть привязан к нескольким сетевым адаптерам, что позволит настроить ряд независимых кластеров на каждом узле. Также следует знать, что настройка кластеров серверов и NLB на одном узле невозможна, поскольку они по-разному работают с сетевыми устройствами.
Администратор может сделать некую гибридную конфигурацию, обладающую достоинствами обоих методов, например, создав NLB-кластер и настроив репликацию данных между узлами. Но репликация выполняется не постоянно, а время от времени, поэтому информация на разных узлах некоторое время будет отличаться.
С теорией на этом закончим, хотя о построении кластеров можно рассказывать еще долго, перечисляя возможности и пути наращивания, давая различные рекомендации и варианты конкретной реализации. Все эти тонкости и нюансы оставим для самостоятельного изучения и перейдем к практической части.
Настройка NLB-кластера
Для организации NLB-кластеров дополнительное ПО не требуется, все производится имеющимися средствами Win2k3. Для создания, поддержки и мониторинга NLB-кластеров используют компонент «Диспетчер балансировки сетевой нагрузки» (Network Load Balancing Manager), который находится во вкладке «Администрирование» «Панели управления» (команда NLBMgr). Так как компонент «Балансировка нагрузки сети» ставится как стандартный сетевой драйвер Windows, установку NLB можно выполнять и при помощи компонента «Сетевые подключения», в котором доступен соответствующий пункт. Но лучше использовать только первый вариант, одновременное задействование диспетчера NLB и «Сетевых подключений» может привести к непредсказуемым результатам.
Диспетчер NLB позволяет настраивать и управлять из одного места работой сразу нескольких кластеров и узлов.
Возможна также установка NLB-кластера на компьютере с одним сетевым адаптером, связанным с компонентом «Балансировка нагрузки сети», но в этом случае при режиме unicast диспетчер NLB на этом компьютере не может быть использован для управления другими узлами, а сами узлы не могут обмениваться друг с другом информацией.
Для упрощения будем считать, что операционные системы установлены, сетевые подключения настроены (как обычно), узлы будущего кластера подключены к Active Directory и у тебя есть соответствующие права.
Теперь вызываем диспетчер NLB. Кластеров у нас пока нет, поэтому появившееся окно не содержит никакой информации. Выбираем в меню «Кластер» пункт «Новый» и начинаем заполнять поля в окне «Параметры кластера». В поле «Настройка IP-параметров кластера» вводим значение виртуального IP-адреса кластера, маску подсети и полное имя. Значение виртуального МАС-адреса устанавливается автоматически. Чуть ниже выбираем режим работы кластера: одноадресный или многоадресный. Обрати внимание на флажок «Разрешить удаленное управление» – во всех документах Microsoft настоятельно рекомендует его не использовать во избежание проблем, связанных с безопасностью. Вместо этого следует применять диспетчер или другие средства удаленного управления, например инструментарий управления Windows (WMI). Если же решение об его использовании принято, следует выполнить все надлежащие мероприятия по защите сети, прикрыв дополнительно брандмауэром UDP-порты 1717 и 2504.
После заполнения всех полей нажимаем «Далее». В окне «IP-адреса кластера» при необходимости добавляем дополнительные виртуальные IP-адреса, которые будут использоваться этим кластером. В следующем окне «Правила для портов» можно задать балансировку нагрузки для одного или для группы портов всех или выбранного IP по протоколам UDP или TCP, а также блокировать доступ к кластеру определенным портам (что межсетевой экран не заменяет). По умолчанию кластер обрабатывает запросы для всех портов (0–65365); лучше этот список ограничить, внеся в него только действительно необходимые. Хотя, если нет желания возиться, можно оставить все, как есть. Кстати, в Win2k по умолчанию весь трафик, направленный к кластеру, обрабатывал только узел, имевший наивысший приоритет, остальные узлы подключались только при выходе из строя основного.
Например, для IIS потребуется включить только порты 80 (http) и 443 (https). Причем можно сделать так, чтобы, например, защищенные соединения обрабатывали только определенные серверы, на которых установлен сертификат. Для добавления нового правила нажимаем «Добавить», в появившемся диалоговом окне вводим IP-адрес узла, или если правило распространяется на всех, то оставляем флажок «Все». В полях «С» и «По» диапазона портов устанавливаем одно и то же значение – 80. Ключевым полем является «Режим фильтрации» (Filtering Mode) – здесь задается, кем будет обработан этот запрос. Доступно три поля, определяющие режим фильтрации: «Несколько узлов», «Один узел» и «Отключить этот диапазон портов». Выбор «Один узел» означает, что трафик, направленный на выбранный IP (компьютера или кластера) с указанным номером порта, будет обрабатываться активным узлом, имеющим наименьший показатель приоритета (о нем чуть ниже). Выбор «Отключить…» значит, что такой трафик будет отбрасываться всеми участниками кластера.
В режиме фильтрации «Несколько узлов» можно дополнительно указать вариант определения сходства клиентов, чтобы направлять трафик от заданного клиента к одному и тому же узлу кластера. Возможны три варианта: «Нет», «Одно» или «Класс C». Выбор первого означает, что на любой запрос будет отвечать произвольный узел. Но не следует его использовать, если в правиле выбран протокол UDP или «Оба». При избрании остальных пунктов сходство клиентов будет определяться по конкретному IP или диапазону сети класса С.
Итак, для нашего правила с 80-м портом остановим свой выбор на варианте «Несколько узлов – класс C». Правило для 443 заполняем аналогично, но используем «Один узел», чтобы клиенту всегда отвечал основной узел с наименьшим приоритетом. Если диспетчер обнаружит несовместимое правило, будет выведено предупреждающее сообщение, дополнительно в журнал событий Windows будет внесена соответствующая запись.
Далее подключаемся к узлу будущего кластера, введя его имя или реальный IP, и определяем интерфейс, который будет подключен к сети кластера. В окне «Параметры узла» выбираем из списка приоритет, уточняем сетевые настройки, задаем начальное состояние узла (работает, остановлен, приостановлен). Приоритет одновременно является уникальным идентификатором узла; чем меньше номер, тем выше приоритет. Узел с приоритетом 1 является мастер-сервером, в первую очередь получающим пакеты и действующим как менеджер маршрутизации.
Флажок «Сохранить состояние после перезагрузки компьютера» позволяет в случае сбоя или перезагрузки этого узла автоматически ввести его в строй. После нажатия на «Готово» в окне Диспетчера появится запись о новом кластере, в котором пока присутствует один узел.
Следующий узел добавить также просто. Выбираем в меню «Добавить узел» либо «Подключить к существующему», в зависимости от того, с какого компьютера производится подключение (он уже входит в кластер или нет). Затем в окне указываем имя или адрес компьютера, если прав для подключения достаточно, новый узел будет подключен к кластеру. Первое время значок напротив его имени будет отличаться, но когда завершится процесс схождения, он будет такой же, как и у первого компьютера.
Так как диспетчер отображает свойства узлов на момент своего подключения, для уточнения текущего состояния следует выбрать кластер и в контекстном меню пункт «Обновить». Диспетчер подключится к кластеру и покажет обновленные данные.
После установки NLB-кластера не забудь изменить DNS-запись, чтобы разрешение имени теперь показывало на IP-кластера.
Изменение загрузки сервера
В такой конфигурации все серверы будут загружены равномерно (за исключением варианта «Один узел»). В некоторых случаях необходимо перераспределить нагрузку, большую часть работы возложив на один из узлов (например, самый мощный). Применительно к кластеру правила после их создания можно изменить, выбрав в контекстном меню, появляющемся при щелчке на имени, пункт «Свойства кластера». Здесь доступны все те настройки, о которых мы говорили выше. Пункт меню «Свойства узла» предоставляет несколько больше возможностей. В «Параметрах узла» можно изменить значение приоритета для конкретно выбранного узла. В «Правилах для портов» добавить или удалить правило нельзя, это доступно только на уровне кластера. Но, выбрав редактирование конкретного правила, мы получаем возможность скорректировать некоторые настройки. Так, при установленном режиме фильтрации «Несколько узлов» становится доступным пункт «Оценка нагрузки», позволяющий перераспределить нагрузку на конкретный узел. По умолчанию установлен флажок «Равная», но в «Оценке нагрузки» можно указать другое значение нагрузки на конкретный узел, в процентах от общей загрузки кластера. Если активирован режим фильтрации «Один узел», в этом окне появляется новый параметр «Приоритет обработки». Используя его, можно сделать так, что трафик к определенному порту будет в первую очередь обрабатываться одним узлом кластера, а к другому – другим узлом.
Журналирование событий
Как уже говорилось, компонент «Балансировка нагрузки сети» записывает все действия и изменения кластера в журнал событий Windows. Чтобы их увидеть, выбираем «Просмотр событий – Система», к NLB относятся сообщения WLBS (от Windows Load Balancing Service, как эта служба называлась в NT). Кроме того, в окне диспетчера выводятся последние сообщения, содержащие информацию об ошибках и обо всех изменениях в конфигурации. По умолчанию эта информация не сохраняется. Чтобы она записывалась в файл, следует выбрать «Параметры –> Параметры журнала», установить флажок «Включить ведение журнала» и указать имя файла. Новый файл будет создан в подкаталоге твоей учетной записи в Documents and Settings.
Настраиваем IIS с репликацией
Кластер кластером, но без службы он смысла не имеет. Поэтому добавим IIS (Internet Information Services). Сервер IIS входит в состав Win2k3, но, чтобы свести к минимуму возможность атак на сервер, он по умолчанию не устанавливается.
Инсталлировать IIS можно двумя способами: посредством «Панели управления» или мастером управления ролями данного сервера. Рассмотрим первый. Переходим в «Панель управления – Установка и удаление программ» (Control Panel – Add or Remove Programs), выбираем «Установку компонентов Windows» (Add/Remove Windows Components). Теперь переходим в пункт «Сервер приложений» и отмечаем в «Службах IIS» все, что необходимо. По умолчанию рабочим каталогом сервера является \Inetpub\wwwroot. После установки IIS может выводить статические документы.
Вот, собственно, и все. Если в файл hosts, который находится в C:\Windows\System32\Drivers\Etc, добавить запись для разрешения имени веб-сервера и IP-адрес кластера, то, обратившись с локального узла, можно получить документ с веб-сервера. Для репликации данных между узлами кластера используй службу DFS.


