Thursday, May 21, 2015

Wireshark — приручение акулы

Wireshark — приручение акулы tutorial



Wireshark — это достаточно известный инструмент для захвата и анализа сетевого трафика, фактически стандарт как для образования, так и для траблшутинга.
Wireshark работает с подавляющим большинством известных протоколов, имеет понятный и логичный графический интерфейс на основе GTK+ и мощнейшую систему фильтров.
Кроссплатформенный, работает в таких ОС как Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS X, и, естественно, Windows. Распространяется под лицензией GNU GPL v2. Доступен бесплатно на сайте wireshark.org.
Установка в системе Windows тривиальна — next, next, next.
Самая свежая на момент написания статьи версия – 1.10.3, она и будет участвовать в обзоре.

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

Начинаем плаванье


Для начала захвата достаточно выбрать свой сетевой интерфейс и нажать Start.



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



А следующая за ними кнопка позволяет сделать быстрый переход к пакету, указав его номер.
В случае если колонки перекрываются и наползают друг на друга, можно кликнуть по такой колонке правой кнопкой мыши и выбрать“Resize Column”.
Произойдет автоматическая подгонка размеров под текущую ситуацию.
И кроме того, есть кнопка “Resize all Columns”, которая приведет в порядок все колонки.
Используя меню View – Time Display Format, можно, например, настроить, чтобы отсчет времени шел не с начала захвата, а с момента получения предыдущего пакета (Since Previous Captured Packet).
Самое важное в каждой программе (Help – About Wireshark) покажет не только версию и список авторов, но и содержит закладкуFolders, которая покажет пути размещения каталогов с конфигурациями.
Изучая интерфейс, можно выбрать, например, пакет http, и увидеть, что HTTP инкапсулируется в TCP (транспортный уровень), TCP инкапсулируется в IP (сетевой уровень), а IP в свою очередь инкапсулируется в Ethernet (перед этим даже мелькает 802.1Q).



И на самом верху идет нечто вроде небольшого обзора собранной информации о кадре.



Про фильтры мы поговорим дальше, а на данном этапе, если нужно быстро отфильтровать лишние пакеты, достаточно сделать правый клик на пакете, выбрать меню Apply as Filter – Not selected и изменения сразу же вступят в силу.
Если нужно еще что-то убрать, то в следующий раз выбирать “and not Selected”, и новое правило просто добавится к фильтру.

Убираем заусенцы


Довольно часто при работе с Wireshark возникает ошибка IP checksum offload – ошибка контрольной суммы заголовка IP пакета.



Современные сетевые карты насколько умные, что сами считают контрольную сумму, зачем это делать на уровне стека TCP/IP программно, если можно делать хардварно.
А Wireshark натурально перехватывает пакеты, до того как они попадают в сеть.
И до того как эта сумма была просчитана и была добавлена в заголовок пакета.
Соответственно есть два пути решения этой проблемы — выключать функцию offload в настройках сетевой карты или в настройках сниффера указать, чтобы он не обращал внимание на это значение.
Хардваные функции зачастую лучше софтварных, в основном из-за скорости обработки (в железе обычно выше) поэтому лучше изменить настройки самого сниффера.
Для этого нужно зайти в настройки (Edit — Preferences), затем Protocols – IPv4 – и снять флаг с “Validate IPv4 checksum if possible”.



Перед тем как захватывать трафик нужно определиться с тем, что, собственно, нужно захватывать.
Разместить анализатор трафика можно в нескольких местах:
  • Локально на своем хосте;
  • Организовать зеркалирование трафика на коммутаторе;
  • Подключаться непосредственно в интересующие места;
  • или же отравление протокола ARP (еще более незаконно, чем пассивное прослушивание трафика)


Фильтруем поток


Wireshark содержит два вида фильтров – захвата (Capture Filters) и отображения (Display Filters).
Вначале рассмотрим Capture Filters.
Как можно догадаться по названию, они служат для фильтрации еще на этапе захвата трафика.
Но в таком случае, безусловно, можно безвозвратно потерять часть нужного трафика.
Фильтр представляет собой выражение, состоящее из встроенных значений, которые при необходимости могут объединяться логическими функциями (and, or, not).
Для того, чтобы его задействовать, нужно зайти в меню Сapture, затем Options, и в поле Capture Filter набрать, например, host 8.8.8.8(или, например, net 192.168.0.0./24)



Так же, конечно, можно выбрать и заранее созданный фильтр (за это отвечает кнопка Capture Filter).
В любом из вариантов фильтр появится возле интерфейса, можно жать Start.

Теперь перейдем к Display Filters.
Они фильтруют исключительно уже захваченный трафик.
Что можно фильтровать?
— Практически все — протоколы, адреса, специфические поля в протоколах.
Операции, которые можно использовать при построении фильтров:

КомандаЗначениеПример использования
==равенствоip.dst == 193.168.3.10
!=Не равноudp.dst != 53
<меньше чемip.ttl < 24
>больше чемframe.len > 10
<=меньше или равноframe.len <= 0x20
>=больше или равноtcp.analysis.bytes_in_flight >= 1000
matchesрегулярные выраженияframe matches "[Pp][Aa][Ss][Ss]"
containsсодержитdns.resp.name contains google


Как вы, наверное, заметили, в таблице в качестве примеров были разнообразные выражения, достаточно понятные и зачастую говорящие сами за себя.
Например, ip.dst – это поле протокола IP.
Чтобы увидеть это поле, можно просто посмотреть на пакет, и в нижней части окна можно увидеть его значение, которое потом можно применять в любом фильтре.
Например, нас интересует, как создать фильтр, где будет проверяться значение TTL.
Для этого раскрываем L3 часть и становимся на соответствующее поле:



И видим, что для построения фильтра, нужно использовать выражение ip.ttl.
Если начать набирать фильтр, то после точки автоматически появится список возможных значений:



Чтобы применить фильтр, достаточно нажать enter или кнопку Apply.
Само поле для ввода фильтра может менять цвет в зависимости от того, что было набрано.
Зеленый цвет означает, что все в порядке. Красный — допущена ошибка, желтый — получен неожиданный результат, потому что существуют другие варианты написания фильтра (например можно написать ip.dst != 8.8.8.8 или же !ip.dst == 8.8.8.8, именно второй вариант более предпочтительный).
Фильтры можно сохранять для дальнейшего использования, нажав кнопку Save, затем ввести произвольное название



и после нажатия на кнопку ОК фильтр появится как кнопка на панели.



А если кликнуть на расположенную неподалеку кнопку «Expression…», то откроется достаточно мощный конструктор выражений, по которому можно чуть ли не изучать сетевые протоколы. Количество поддерживаемых протоколов постоянно увеличивается.



Как уже упоминалось ранее, можно выделить любой пакет и в контекстном меню выбрать Apply as Filter и в подменю выбрать режим — selected или not selected и соответственно сразу же появится фильтр, который будет показывать только выбранное или наоборот уберет выбранное с экрана.
Таким образом можно гибко выбирать, что видеть на экране, а что — нет.
Это может быть определенный ip-адрес, ttl, порт, dns ответ и многое другое.
Кроме того, есть два варианта для таких быстрых фильтров — Prepare as Filter и Apply as Filter.
Как можно догадаться по названию — разница заключается в том, что в первом случае только появится в поле для ввода Display Filter, но не применится (удобно, если например, добавлять таким способом несколько фильтров, а затем сразу применить готовый результат), а во втором — сразу же и применится.

Фильтры можно объединять, используя знакомые по булевой алгебре логические операции:
(dns) && (http) логическое и

(dns) || (http) это логическое или

Таким образом можно строить большие и сложные фильтры вроде:
(tcp.flags.syn==1) && (ip.src == 172.16.10.2) && (ip.dst == 172.16.10.1)
Здесь видим, что выбираются только TCP SYN сегменты, только с определенным адресом отправителя и получателя. При составлении больших фильтров нужно помнить, что фильтр по сути — логическое выражение, и если оно истинно, то пакет отобразится на экране, если ложно — нет.

Ныряем глубже


Достаточно частая ситуация, когда возникают жалобы на медленную работу сети, причин этого может быть множество.
Попробуем разобраться, в чем может быть причина, и рассмотрим два способа.
Первый состоит в добавлении колонки TCP delta.
Открываем пакет, находим поле Time since previous frame in this TCP frame, правый клик и выбираем Apply as Column. Появится новая колонка.
На ней можно кликнуть правой кнопкой мыши и выбрать режим сортировки, например, Sort Descending.



И сразу же рассмотрим второй способ.
Относительно недавно (в версии 1.10.0) появился фильтр tcp.time_delta, который, собственно, учитывает время с момента последнего запроса.



Если клиент делает запрос и получает ответ через 10 миллисекунд, и клиент говорит, что у него все медленно работает, то, возможно, проблема у самого клиента.
Если же клиент делает запрос и получает ответ через 2-3 секунды, тут уже, возможно, проблема кроется в сети.

Еще глубже


Если посмотреть в TCP пакет (или сегмент если быть точным), то можно увидеть там Stream index, который начинается обычно с нуля.
Само поле будет называться tcp.stream.



По нему можно сделать правый клик и создать фильтр.



Таким образом можно фильтровать нужные соединения.

Еще один способ – сделать правый клик на самом пакете, выбрать Conversation Filter и создать фильтр для l2 l3 l4 уровня соответственно.



В итоге мы опять увидим взаимодействие двух хостов.

И третий вариант — это одна из самых интересных фич — Follow TCP Stream.
Для того чтобы его задействовать, нужно опять таки кликнуть правой кнопкой мыши на пакете и выбрать “Follow TCP Stream”. Появится окно, где будет наглядно продемонстрирован весь обмен между двумя узлами.



Если же зайти в меню Statistics – Conversations, то, выбирая закладки, можно увидеть статистику по таким “разговорам” и различные сессии, при этом можно отсортировать их по различным колонкам, например, по количеству переданных данных.



И прямо в этом окне можно правой кнопкой взывать контекстное меню и опять же применить как фильтр.

Со временем приходит опыт


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



Нажатие на эту кнопку приведет к открытию окна Expert Infos.
Того же результата можно добиться, пройдя в меню Analyze – Expert Info.



В этом окне будет содержаться информация по найденным пакетам, разбитая на группы Errors, Warnings, Notes и Chats.
Цветовая раскраска для этих групп выглядит следующим образом:
Ошибки — красный цвет
Предупреждения — желтый
Примечания — сине-зелёный (cyan)
Чат — серый

Wireshark содержит в себе мощный анализатор и умеет автоматически обнаруживать большое количество проблем, возникающих в сети.
Как вы уже могли заметить, буквально везде можно использовать фильтры и Expert Info не является исключением.
Для того чтобы создать такой фильтр, нужно использовать конструкцию expert.severity.
Например, expert.severity==error.

Грабим трафик!


Можно ли с помощью Wireshark узнать, что было скачано?
Да, можно. И сейчас это увидим.
Вначале возьмем HTTP трафик.
Сделаем правый клик по HTTP пакету — Protocol Preferences – и видим тут массу опций, которые непосредственно влияют на извлечение файлов из веб трафика.
Для того чтобы увидеть, что можно извлечь из текущего дампа нужно перейти в меню File – Export Objects – HTTP.
Появится окно, которое покажет все захваченные http объекты — текстовые файлы, картинки и т.д. Для того чтобы вытащить любой файл из этого списка, достаточно просто выделить его и нажать Save As.



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



Таким же способом, можно извлекать и потоковое видео/аудио.



Но на этом возможности Wireshark не заканчиваются!
Он умеет вытаскивать файлы и с протокола FTP.
Для этого можно использовать знакомый уже Follow TCP Stream.
В итоге отобразится только обмен по протоколу FTP, в котором нужно будет найти строку RETR, что собственно и будет означать передачу файла.



Затем опускаемся дальше, находим пакеты уже непосредственно с файлом (FTP-DATA) и опять выбираем Follow TCP Stream, видим содержимое файла, жмем Save As и сохраняем.



VoIP


Wireshark имеет несколько встроенных функций для работы с этой технологией.
Он поддерживает массу голосовых протоколов — SIP, SDP, RTSP, H.323, RTCP, SRTP и другие.
И, конечно же, умеет перехватывать и сохранять голосовой трафик для дальнейшего прослушивания.
Этот функционал как нельзя лучше подойдет для траблшутинга в сетях Voice over IP.
Меню Statistics — Flow Graph покажет наглядную картину, как происходил весь обмен пакетами.



А вообще целое меню Telephony отведено для работы с голосовым трафиком.
Например, Telephony – RTP – Show All Streams покажет подробно, что происходило с RTP, в частности jitter (параметр, который, вероятно, самый важный в голосе), что иногда сразу скажет о наличии проблем.



Нажав на кнопку “Analyze”, можно открыть окно RTP stream Analysis – и, выбрав там поток, можно его даже проиграть, используя кнопку player.
Сначала отроется окно проигрывателя, в котором вначале нужно установить подходящее значение jitter и использовать кнопку decode.



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



Так же существует еще один способ прослушивания голосовых звонков — можно зайти в меню Telephony – VoIP Calls.



Откроется окно со списком совершенных звонков, где опять же можно нажать кнопку player, отменить нужные разговоры флажками и нажать play.
Для того чтобы добиться приемлемого качества звучания, потребуется проиграться со значением поля jitter buffer, меняя его значение.

Небольшое отступление


Некоторое время назад появился сайт CloudShark.org.



Это тот самый сниффер Wireshark, но реализованный в виде онлайн-сервиса. Очевидно, что с его помощью не удастся захватывать сетевой трафик, но выполнять анализ дампа трафика – вполне. Загрузив туда через форму PCAP-файл на анализ, можно будет получить четкую последовательность пакетов, в которой всё данные будут разбиты на понятные поля в зависимости от протокола. В общем, тот же Wireshark, но немного облегченный и доступный из любого браузера.

Финальная битва


Напоследок рассмотрим как выглядит сканирование портов.
Смотрим на дамп и видим, что вначале происходит ARP запрос и затем непосредственно начинается сканирование. Адрес нашего маршрутизатора 192.168.10.11, сканирование идет с адреса 192.168.10.101



Это, так называемое, SYN сканирование, когда идут SYN-пакеты на указанный диапазон портов. Так как большинство портов закрыто, маршрутизатор отвечает пакетами RST, ACK.
Пролистав чуть ниже видим, что открыт telnet (tcp 23).



На это указывает то, что маршрутизатор ответил пакетом SYN, ACK.
К слову, для фильтрации портов в сниффере можно использовать конструкции вида: tcp.srcport, tcp.dstport и tcp.port. Для протокола UDP всё аналогично — udp.srcport, udp.dstport, udp.port.

Итоги


Мы пробежались по самым основным частям функционала лучшего анализатора пакетов.
Получилось несколько сумбурно, вероятно, потому что хотелось затронуть как можно больше его возможностей и не упустить ничего важного.
Оказалось, что анализатор пакетов, как отладчик и дизассемблер, демонстрирует мельчайшие подробности работы сети и сетевых протоколов.
Используя Wireshark и обладая необходимыми знаниями (которые можно почерпнуть изучив серию Сетей для Самых Маленьких на сайте linkmeup.ru) можно достаточно эффективно находить и диагностировать разнообразные проблемы, возникающие в сети.

В процессе написания использовались материалы сайта wiki.wireshark.org/
Дампы с трафиком брались из разных источников, больше всего с сайта packetlife.net

Monday, May 4, 2015

Получаем информацию о программе и загружаем ее через CMD (man и apt-get для Windows?)

Получаем информацию о программе и загружаем ее через CMD (man и apt-get для Windows?) из песочницы

image

В данной статье речь пойдет об очень простом и удобном способе для получения данных (информации) о программным обеспечении и загрузки/установки через CMD. Для реализации было использовано открытый API Xetcom.Export и Wget1. К сожалению, API толком не документирован, но, с другой стороны, достаточно простой — можно понять суть после нескольких тестовых запросов. Сама сборка состоит из трех не зависящих друг от друга .BAT файлов и пакета Wget. Вооружитесь правами администратора и вперед.

Start

Для начало советую немного поиграть с настройками интерпретатора, а если по конкретнее — настроить вид окна (Свойства > Расположение). Ширину и высоту размера буфера обмена часто путают с размером окна. Если вкратце, то это фактический максимальный размер прокрутки. Если текст не совмещается в ней, то автоматический переносится на следующую строку. Именно по этой причине кнопка Maximize в командной строке «не работает». Оптимальные параметры на мой взгляд — 150x300. Высота 300 означает 300 строк, после которого ранее записи исчезают. О настройках более-менее описано тут. А еще, в качестве альтернативы советую попробовать Console.

image
Шрифт Lucida Console вместо точечных.

Состав SFX архива:

Все файлы архива распаковываются в папке %windir%. Это позволяет вызывать их напрямую — без указания пути и без регистрации пути в реестре. Последний вариант позволяет запускать программу независимо от расположения, но нужно о ее местонахождения сообщить реестру (ветка SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths). Точно так же работают системные утилиты calc, mspaint, ping и т. д. Здесь подробно описано.

А теперь обо всём по-порядку.

man.bat
@ECHO OFF
CHCP 1251
%1
%2
CLS
SET title=%1
SET param=%2

IF "%title%" == "" (
ECHO Значение не указано
EXIT /B
)

IF "%param%" ==  ""  GOTO none
IF "%param%" == "-c" GOTO c
IF "%param%" == "-m" GOTO m
IF "%param%" == "-l" GOTO l
IF "%param%" == "-f" GOTO f
GOTO error

:none
wget --quiet "http://api.xetcom.com/export/index.php?format=dos&title=%1&description=1&info=1&features=1" -O "%title%.txt"
TYPE  "%title%.txt"
DEL "%title%.txt"
EXIT /B

:c
wget --quiet "http://api.xetcom.com/export/index.php?format=dos&title=%1&description=1&info=1&features=1&requirements=1" -O "%title%.txt"
TYPE  "%title%.txt"
DEL "%title%.txt"
EXIT /B

:m
wget --quiet "http://api.xetcom.com/export/index.php?format=dos&title=%1&description=1&info=1&features=1&requirements=1&xetindex=1" -O "%title%.txt"
TYPE  "%title%.txt"
DEL "%title%.txt"
EXIT /B

:l
wget --quiet "http://api.xetcom.com/export/index.php?format=dos&title=%1&description=1&info=1&features=1&requirements=1&xetindex=1&fileinfo=1" -O "%title%.txt"
TYPE  "%title%.txt"
DEL "%title%.txt"
EXIT /B

:f
wget --quiet "http://api.xetcom.com/export/index.php?format=dos&title=%1&description=1&info=1&features=1&requirements=1&xetindex=1&fileinfo=1&competitors=tranformed" -O "%title%.txt"
TYPE  "%title%.txt"
DEL "%title%.txt"
EXIT /B

:error
ECHO Указан неправильный параметр

Демонстрация / вывод информации aimpimage

Как вы заметили, у этого батника имеются параметры -c, -m, -l, -f (compact, medium, long, full соответственно). Если ввести команду без параметра, то вводится минимальная информация (описание программы + карточка + особенности). Каждый последующий параметр добавляет больше информации. Для наглядности см. примеры.

Примеры

Краткая информация Google Chrome
man google-chrome

Полная информация Google Chrome
man google-chrome -f



get.bat
@echo off
chcp 1251
%1
%2
cls
set title=%1
set param=%2

IF "%param%" == "x64" GOTO x64

:x86
cd "%TMP%"
wget --quiet "http://api.xetcom.com/export/index.php?title=%title%&link=x86&format=dos" -O "%title%-x86.txt"
wget -i "%title%-x86.txt" -P %USERPROFILE%\Desktop
del "%title%-x86.txt"
Exit /B

:x64
cd "%TMP%"
wget --quiet "http://api.xetcom.com/export/index.php?title=%title%&link=x64&format=dos" -O "%title%-x64.txt"
wget -i "%title%-x64.txt" -P %USERPROFILE%\Desktop
del "%title%-x64.txt"
Exit /B

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

Демонстрация / загрузка aimp
image

Загруженный файл сохраняется на рабочем столе (проверено на Windows 7/8). Не смог найти переменную рабочего стола XP. Хотяздесь есть изощренное решение, но оно тоже почему-то не работает. Проблема в том, что в зависимости от языка путь меняется. Например в русской версии %HOMEPATH%\Рабочий стол, в английской %HOMEPATH%\Desktop и т. д. Чтобы не спамить batch файл многострочными IF-ами, решил отказаться от этой затеи. Пользователям XP придется немного поправить команды. %HOMEPATH% или папка пользователя, оттуда всего один шаг к рабочему столу. Замените %USERPROFILE%\Desktop на %HOMEPATH%\change_me и готово.

Автоматизированная поэтапная загрузка через другой bat файл:
cmd /c get 7-zip
cmd /c get opera
cmd /c get firefox



Установка «самоустанавливаемых» программ
Этот трюк требует еще один запрос к API — для получения ключа тихой установки (Unattended/Silent installation switch). Еще стоит обратить внимание, что не все программы поддерживают «тихий режим» установки или вообще изначально портативные (таких тоже очень много). В этом случае после загрузки скрипт просто запустит файл и будет ждать ваших действии.

install.bat
@echo off
chcp 1251
%1
%2
cls
set title=%1
set param=%2

IF "%param%" == "x64" GOTO x64

:x86

:: Получение данных
cd "%TMP%"
wget --quiet "http://api.xetcom.com/export/index.php?title=%title%&link=x86&format=dos" -O "%title%-x86.txt"
wget -i "%title%-x86.txt" -P %TMP%
wget --quiet "http://api.xetcom.com/export/index.php?title=%title%&format=dos&silent_install=1" -O "%title%-x86-silent.txt"

:: Получение названии и расширении файла
set /p x86=<"%title%-x86.txt"
for /F %%i in ("%x86%") do set x86=%%~nxi

:: Запуск инсталлятора
set /p silent=<"%title%-x86-silent.txt"
cmd /c "%TMP%\%x86% %silent%"

:: Удаление оставшихся файлов
del "%TMP%\%x86%"
del "%title%-x86.txt"
del "%title%-x86-silent.txt"
Exit /B


:x64

:: Получение данных
cd "%TMP%"
wget --quiet "http://api.xetcom.com/export/index.php?title=%title%&link=x64&format=dos" -O "%title%-x64.txt"
wget -i "%title%-x64.txt" -P %TMP%
wget --quiet "http://api.xetcom.com/export/index.php?title=%title%&format=dos&silent_install=1" -O "%title%-x64-silent.txt"

:: Получение названии и расширении файла
set /p x64=<"%title%-x64.txt"
for /F %%i in ("%x64%") do set x64=%%~nxi

:: Запуск инсталлятора
set /p silent=<"%title%-x64-silent.txt"
cmd /c "%TMP%\%x64% %silent%"

:: Удаление оставшихся файлов
del "%TMP%\%x86%"
del "%title%-x64.txt"
del "%title%-x64-silent.txt"
Exit /B

Демонстрация / автоматическая установка burnawareimage

Немножко автоматизации или пакетная установка, или Windows WPI размером 1кб
::==========================::
::=========settings=========::
::==========================::

:: Браузеры
cmd /c install firefox
cmd /c install google-chrome

:: Архиваторы
cmd /c install 7-zip

:: Аудио
cmd /c install foobar200

:: Конвертеры
cmd /c install format-factory

:: Видео
cmd /c install k-lite-codec-pack
cmd /c install audacity

:: Графика
cmd /c install faststone-image-viewer
cmd /c install picpick

:: Система
cmd /c install ultradefrag
cmd /c install hashtab

:: Нужные вещи
cmd /c install adobe-flash-player
cmd /c install microsoft-silverlight
cmd /c install java x64
cmd /c install unlocker

:: Офис
cmd /c install notepad-plus-plus
cmd /c install libreoffice

SFX архив

Win10 - linux ???

Компания Microsoft выпустила тестовую версию Windows 10 (Technical Preview).
На сайте Microsoft уже можно скачать ознакомительную версию и посмотреть на Windows 10 до ее официального выхода, который состоится в 2015 году.
Те, кто уже успел ознакомиться с Windows 10, утверждают, что несмотря на то, что это всего лишь ознакомительная версия, работает она вполне стабильно.
Читатели этой статьи, которые тоже хотят попробовать установить Windows 10, должны знать несколько фактов о ней.


1. Windows 10 TP - бесплатная
Изображение

Фото: hsto.org

Установить Windows 10 Technical Preview можно абсолютно бесплатно с официального сайта Microsoft. На выбор доступно три языка: Английский, Китайский и Португальский.
Вам будет доступен образ в ISO, который можно записать на флешку или DVD-диск и затем установить, как любой другой Windows "с нуля".
Но пользоваться ею, как бесплатной версией, можно будет до 15 апреля 2015 года.

2. Надежность не на 100%
Изображение

Фото: wikimedia.org

Так как Windows 10 Technical Preview не полноценная, а ознакомительная версия, то при ее работе Microsoft не исключает возможность появления непредвиденных ошибок.
Поэтому пользователям нужно быть готовым к экстренному восстановлению данных в случае серьезного сбоя.
Могут не устанавливаться некоторые драйвера, приложения для принтеров. Также вероятны сбои с сетью.
Но пользователи, которые пользуются Windows 10 Technical Preview более месяца, утверждают, что операционная система вполне стабильна: игры запускаются, интернет и офисные приложения работают.

3. Системные требования
Изображение

Фото: staticworld.net

Те пользователи, у кого без проблем работает Windows 8.1, могут быть уверены, что Windows 10 Technical Preview тоже установится и запустится без особых проблем.
Разве что в отдельных случаях нужно будет скачать дополнительные пакеты с драйверами для того или иного оборудования.
Объявляем минимальные системные требования:
  • Процессор с тактовой частотой 1 ГГц или выше;
  • 1 ГБ оперативной памяти для 32-битных систем и 2 ГБ - для 64-битных;
  • 16 ГБ свободной внутренней памяти на жестком диске или SSD накопителе;
  • видеокарта со встроенной поддержкой DirectX 9;
4. Сохранность настроек
При обновлении с Windows 7 и Windows 8.1 все настройки системы и личные файлы сохранятся.
В случае же с Vista настройки системы не сохраняются.
5. Сенсорные экраны
Изображение

Фото: windowscentral.com

Если вы собираетесь использовать компьютер с сенсорным экраном, то Microsoft не гарантирует корректную работу операционной системы.
На сенсорных экранах могут встречаться быть мелкие технические недоработки и "шероховатости" при работе с Windows 10 Technical Preview.
6. Рабочие столы
Изображение

Фото: podrobnosti.ua

Как и у Linux и Mac OS X, у Windows 10 тоже появилась возможность создавать виртуальные рабочие столы.
Пока их количество ограничено шириной экрана.

7. Меню "Пуск"
Изображение

Фото: itpro.co.uk

В Windows 10 Technical Preview вернулось привычное меню "Пуск", но немного видоизмененное.
К примеру, плитки от Windows 8.1 были компактно упакованы в одно из подменю "Пуска". Те, кто приобретал "плиточные" приложения, могут ими воспользоваться и в Windows 10.

8. "Плиточные" окна
Изображение

Фото: podrobnosti.ua

Все приложения из Windows Store теперь могут работать в оконном режиме.

9. Панель Charms
Бесполезная для десктопов и ноутбуков панель Charms была полностью убрана и автоматически появляется лишь на устройствах с сенсорным экраном.

10. Намек на Linux
Изображение

Пример работы OneGet в PowerShell на Windows 10. Фото: howtogeek.com

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

Windows 10 ворует разработки Linux?


Microsoft в свой последний продукт Windows 10 добавила ряд новшеств, которые были содраны с ОС Linux. Так, в «окна» была включена система управления пакетами OneGet, которая очень напоминает такую же возможность в Linux.
win-10-linux
Операционная система Linux уже давно использует систему управления пакетами, которая позволяет устанавливать приложения из командной строки. Это удобно тем, что сокращает время на поиск и установку нужной программы.
В PowerShell от Microsoft работать с пакетами тоже стало возможно при помощи опенсорсной надстройки OneGet.
OneGet позволяет искать, устанавливать, удалять программы, а также добавлять или удалять репозитории, то есть веб-ресурсы со списком доступных приложений.
Также в Windows 10 внедрены несколько виртуальных рабочих столов. В мире Linux они известны также как рабочие столы или пространства и были в первые задействованы ещё в 1998 году, с выходом KDE 1.0. Теперь в ОС от Microsoft Вы можете запускать различные приложения на разных рабочих пространствах, что позволяет переключаться между приложениями в выбранном столе.
Следующая «гордость» в разрабатываемой Windows 10 — это если задействован только один рабочий стол, то при при нажатии на кнопке Рабочий стол в панели задач открываются превью всех открытых окон для выбора нужного. В Linux эта же функция реализована в окружениях Unity и GNOME и существует уже очень давно.
Также Microsoft пообещала реализовать улучшенную совместимость (конвергенцию) мобильных и настольных устройств с Windows 10. Примечательно, что впервые о конвергенции заговорили в Canonical (Ubuntu) и пока у оконщиков конвергенция ещё в проекте, Ubuntu с производителем мобильных устройств Meizu выпустят первый конвергентный Ubuntu phone в этом году.
Также незначительное изменение, которое предлагает Windows 10, это окна с минимальными рамками и плоские значки в Windows Explorer. Окна без рамок и плоские значки были одними из новшеств, среди представленных в Ubuntu 14.04.
И последний «ремейк» Linux-a от Microsoft — Windows 10 будет иметь функцию прогрессивного поиска «Desktop plus»: введите искомое слово в поле поиска системного меню, которое приведет вас либо к файлу на локальном компьютере, установленного приложения или приложения, доступного в Windows Store, либо из интернета (откроется в Internet Explorer). Впервые подобная функция была реализована в Ubuntu: на локальном диске; в Центре приложений Ubuntu; в Amazon; в социальных сетях: Википедии и You Tube задействован с выходом Ubuntu 12.04, т.е. с 2012 года.

Напомним, что Windows 10 можно сжать для экономии места.

Магия Chocolatey: apt-get и yum для Windows

tutorial


Сегодня я расскажу Вам о волшебстве. И это волшебство способно изменить жизнь системного администратора Windows раз и навсегда.

В наше время становится все меньше и меньше людей, которые хоть раз не устанавливали софт в среде Linux. Это невероятно просто: для установки midnight commander (mc), в среде RH (RedHat Enterprise, CentOS, Fedora, и т.д) нам всего лишь нужна пара «волшебных» команд:

# yum install mc

Менеджер пакетов yum позаботится о том, чтобы установилась самая свежая версияmc, а также о зависимостях пакета, если таковые имеются. Но что же делать, если в нашем распоряжении находится Windows, а мы хотим что-то подобное? Правильно, перейти на Linux или читать дальше!

Под моей «опекой» находится гетерогенная сеть из Windows и Linux машин (проще сказать — зоопарк), и вот уже около двух лет для установки софта под Win* я пользуюсь, где это возможно, Chocolatey. Chocolatey (chocolatey.org,github.com/chocolatey) — система управления пакетами, во многом схожая с apt-get или yum, но только для Windows.

На хабре уже касались темы Chocolatey в контексте разработчика, сегодня я хочу взглянуть на этот замечательный инструмент с точки зрения системного администратора. Chocolatey работает на основе технологии NuGet (активно используется разработчиками софта под Windows), и основная черта Chocolatey — пакеты чаще всего не содержат установочных файлов (setup.msi, setup.exe, и т.д...). Работает это следующим образом: в пакете находится скрипт-установщик на powershell, который скачивает и устанавливает нужную версию установочного файла из нужного места в интернете, а Вам остается только наслаждаться легкостью установки.

Установка Chocolatey


Прежде чем получить возможность использовать магию Chocolatey нам нужно установить ее ядро. Для этого запускаем в командной строке:

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%systemdrive%\chocolatey\bin

Эта команда скачает и запустит основной скрипт установки chocolatey.org/install.ps1, а также настроит требуемые переменные окружения. Теперь, когда у нас есть все необходимое давайте испытаем систему управления пакетами и установим Nodepad++. Достаточно выполнить следующую команду:

cinst notepadplusplus

Какие еще есть пакеты и откуда они берутся?


Как и NuGet, Chocolatey обладает внушительным списком пакетов, который располагается в репозитории, он же библиотека пакетов. Вот только некоторые из них:

Топ 10 самых популярных пакетов на chocolatey.org

Пакеты добавляются каждый день, ведь любой желающий может добавить свой пакет на chocolatey.org, главное чтобы он отвечал требованиям.

Требования к публикации пакетов

Как это работает?

Я хотел бы подробнее разобрать содержание пакетов Chocolatey на примере logstash, который я создавал специально для развертывания агента logstash на сервере Windows:

\logstash
  \tools
    chocolateyInstall.ps1
  logstash.nuspec

Здесь видно, что в пакете всего 2 файла: logstash.nuspec и chocolateyInstall.ps1.

logstash.nuspec - файл, в котором описывается мета-информация пакета

В этом файле будет интересно разобрать секцию dependencies, в которой мы указываем что нашему пакету необходимо наличие 3х других пакетов определенных версий, а именно javaruntimeNSSM (позволяет установить наш .jar файл в качестве службы Windows), а также Chocolatey определенной версии. Если какой-либо из необходимых пакетов отсутствует, либо его версия не соответствует требуемой — система зависимостей разрешит ситуацию и приведет все к требуемому виду. Стоит отметить, что для указания версий используется нотация nuget.

Powershell скрипт chocolateyInstall.ps1

Применение:


Многие админы, вероятно, побежали тестировать функционал — оно и правильно, ведь ничего сложного в использовании Chocolatey нет — в этом-то и есть сладость Chocolatey. Тем не менее, хотелось бы предложить несколько сценариев использования этого менеджера пакетов для Windows.

Cmd и Powershell скрипты


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

cinst flashplayerplugin
cinst flashplayeractivex
cinst notepadplusplus
cinst sublimetext2
cinst 7zip
cinst GoogleChrome
cinst javaruntime
cinst Firefox
cinst flashplayerplugin
cinst adobereader
cinst ccleaner
cinst sysinternals
cinst putty
cinst filezilla
cinst dropbox
cinst skype
cinst paint.net
cinst virtualbox
cinst DotNet4.5
cinst Wget
cinst ConEmu
cinst libreoffice
cinst PDFCreator
cinst teamviewer
cinst wuinstall.run

Представьте сколько времени это экономит Вам?

Puppet


Я использую Puppet для управления конфигурацией своей инфраструктуры, что экономит мне массу времени и нервов. В Puppet есть замечательная концепция ресурсов, а также декларативный стиль, которые в купе помогают мыслить абстрактно, на уровне «Какая программа должна стоять на том или ином сервере», а не на уровне «Какие комманды я должен запустить на Windows, а какие на Linux». Для Puppet существует провайдер Chocolatey, который позволяет нам сделать следующее:

package { "7zip" :
    ensure => installed,    
}

или

package { "notepadplusplus" :
    ensure => 1.0,    
}

Обо всем остальном позаботятся Puppet и Chocolatey. Поверьте, это намного удобнее чем производить установку из msi файла, который нужно еще где-то захостить, а также удостовериться что при обновлении версии (которое еще нужно сделать) старые версии тоже сохраняться и ничего при этом не сломается.

Chocolatey и Desktop


Предлагаю рассмотреть два способа использования Chocolatey для администрировании рабочих станций.

Chocolatey GUI

Windows Post Install (WPI)

Если кому интересно, могу рассказать в подробностях (в форме отдельного поста) как создать свой пакет и как загрузить его в репозиторий chocolatey.org, и о том, как я научил Windows устанавливать все обновления без моего участия (с перезагрузками и лицензиями), как я обновляю базу maxmind.dat в автоматическом режиме, как я использую logstash и многом другом, и все это не без помощи chocolatey и puppet!

В заключение скажу, что на мой взгляд, идея децентрализованной системы управления пакетам для Windows и ее реализация — очередной способ убедиться что в наши дни opensource и открытие технологии становится не менее качественными и применимыми к реалиям системного администрирования. Закрытый код все реже становится рыночным преимуществом того или иного сообщества / компании, в то время как реализация и поддержка играют огромную роль. Представить что десять лет назад открытый проект, созданный одним человеком сможет создать такой резонанс в широких кругах, да еще и Windows кругах — нереально, а сегодня Chocolatey — это еще один шанс окунуться в opensource сообщество и убедиться в открытой возможности внести свой вклад в общую идею.

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

И под конец, небольшой опрос:
При установке софта на клиентскую машину в качестве источника Вы обычно используете: