Как в Google Chrome включить PDF-Reader?

chrome pdf viewer Как в Google Chrome включить PDF Reader?

Приложение Adobe Reader сейчас считается одним из самых уязвимых, при этом именно в нем «хакеры» любят искать дыры и проникать через него в вашу систему. Решил из-за этого удалить Adobe Reader и пользоваться альтернативными просмотрщиками. Как выход — PDF-файлы можно просматривать через браузер Google Chrome. Что даже удобней, как по мне.

Как включить PDF-Reader в Google Chrome? Все очень просто — введите в адресной строке браузера вот это: chrome://plugins . Найдите там модуль «Chrome PDF Viewer» и нажмите возле него кнопку «включить».  Для того, чтоб посмотреть PDF-файл — просто перетащите его в браузер.

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

Тестирование RAID с помощью программы IOmeter

9812494 1eb Тестирование RAID с помощью программы IOmeter
Программа IOmeter — это популярное средство для тестирования производительности дисковой подсистемы и локальной сети. Тест является «100% синтетикой».
К сожалению, некоторая неочевидность процесса тестирования в нем, устаревший внешний вид, отсутствие полноценного онлайн-хелпа, и документации, а также русскоязычного описания, часто вызывают затруднения при попытках его использовать. Также в интернете практически отсутствует подробное описание методики работы с ним, и описание используемых терминов и фич.
Особую благодарность автор хочет выразить владельцу блога aboutnetapp, пост которого о практическом тестировании систем хранения с помощью IOmeter пнула подвинула автора на написание этой статьи.

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

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

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

Популярный тест IOmeter относится ко второй категории, «синтетических» тестов.

Эта программа изначально была разработана в компании Intel, и впоследствии, когда ее развитие в Intel остановилось, была передана в «опенсорс», сообщество которого и продолжает ее постепенное развитие.

Несмотря на то, что у программы есть свой вебсайт, я рекомендую скачивать ее со странички проекта на Sourceforge.
Дело в том, что по ссылке Download с офсайта отдается последний Stable, который давно (2006.07.27) застыл, тогда как на Sourceforge последний — Devel 2008.06.22 rc2, котором сделано довольно много существенных изменений и улучшений, поэтому рекомендую пользоваться именно им.

Для этой версии на Sourceforge собраны следующие бинарники:
X86_64, IA64 (native Itanium), Win32 и Linux x86_64. Из сорцов можно (попробовать) собрать Dynamo под нужную платформу, так, после небольшой рихтовки и шаманства он собрался под нужный мне Solaris 10/SPARC.

Интересное начнется с самого начала. После установки вы обнаружите в папке программы два исполняемых файла: iometer.exe и Dynamo.exe. Дело в том, что IOmeter построен по «двухкомпонентной» схеме, позволяющей не только отделить тестируемую систему от управляющей, но и управлять сразу множеством тестируемых компьютеров. Iometer.exe это управляющая программа с GUI, аDynamo.exe — командлайновая утилита под соответствующую платформу.

Такое разделение очень удобно, например, для меня, когда моя тестируемая система находится в датацентре в соседнем здании, где находиться, прямо скажем, не слишком комфортно (шумно, холодно, дует, да и тривиально даже сесть не на что). С помощью такой двухкомпонентной системы тестирования я могу запустить Load Generator (Dynamo.exe) на тестируемых серверах в датацентре, уйти в офис, и уже оттуда подключиться к ним по локальной сети и управлять всеми ими удаленно, получая результаты на свой ноут.

Однако, если у вас не стоит задача делать «распределенное» тестирование, то можно всем этим не заморачиваться, и просто запустить iometer.exe. При этом вы увидите экран GUI-менеджера, и следом запустится локально Dynamo.

И Dynamo, и IOmeter можно запустить с ключом /? При этом, ожидаемо, вы получите список некоторых полезных ключей запуска.

IOmeter:
Iometer config_file [result_file [timeout_value]]
Iometer [/c config_file][/r result_file][/t timeout_vaue][/p port][/m 1]

Config_file — файл конфига. Должен существовать и быть валидным icf.
Result_file — файл результатов (в формате CSV), дополняется, если не существует — создается.
Timeout_value — число секунд, которые ждем участников для логина.
Port_number — порт, который слушаем для логина.
/m — показать большой gauge при тестировании.

Если заданы и config_file и results_file, то Iometer пытается запуститься в пакетном режиме, без участия человека, запустить и остановить тесты, если запуск определен в Test Setup tab загруженного config_file, записать результаты в result_file, и по окончании работы закрыть iometer.

Возможность пакетного запуска очень удобна и полезна, так как тесты могут в совокупности занимать по многу часов.

Dynamo:
dynamo [/i iometer_computer_name /m manager_computer_name] [/n manager_name] [/c cpu_affinity] [/p login_port_number]

iometer_computer_name — это имя или IP-адрес компьютера с запущенным Iometer, к которому мы будем из Dynamo логиниться. Без этого параметра Dynamo будет искать его на localhost.
manager_name — это имя компьютера с Dynamo, в терминах IOmeter он называется «manager». По умолчанию это имя хоста. Важно если вы используете его в конфиге IOmeter, например назначаете конкретно ему какую-то задачу в предварительно записанном конфиге.
manager_computer_name — это имя или IP компьютера с Dynamo, с помощью которого будет коммуницировать GUI с этим Dynamo. По умолчанию используется IP-адрес первой сетевой карты
login_port_number — это порт, на котором будет происходить login между Dynamo и GUI. По умолчанию — 1066. Не забудьте его открыть, в случае файрволлов.
cpu_affinity — это номер конкретного CPU, на котором будет исполняться Dynamo в случае многопроцессорной системы. Если не определен, то на первом же CPU.

Таким образом, строка для запуска может быть
track@unixbox> ./dynamo /i 192.168.1.100 /m 192.168.1.10 /n LG1

При этом мы запустим экземпляр Dynamo на машине с IP 192.168.1.10, которая появится в GUI, расположенном по адресу 192.168.1.100 и будет в нем называться LG1

Еще один ключ, не указанный в выводе /? это ключ /force_raw. Этот ключ говорит игнорировать обнаруженные на диске файловые системы, и тестировать его как raw-устройство. БУДЬТЕ ОСТОРОЖНЫ с его использованием, так как с ним сформатированный файловой системой диск будет испорчен при тестировании.

При запуске по сети, процесс логина от удаленных Dynamo занимает несколько секунд, в случае локального запуска все происходит моментально.
9802518 315 Тестирование RAID с помощью программы IOmeter

Одно из ключевых понятий в IOmeter это «worker».
Worker это объект, выполняющий задачу тестирования. Именно ему назначается то или иное действие.
По умолчанию Dynamo (в терминах IOmeter — «manager», что немного неожиданно, логичнее называть в этой паре менеджером именно GUI, IOmeter.exe) создает Worker-ов в количестве, равном обнаруженным на системе процессорным ядрам. Имейте ввиду, что в случае наличия Hyperthreading они будут распознаны как два ядра, что может быть не вполне хорошо для запуска на каждом из них интенсивного нагрузочного приложения.
Использовать можно любое количество воркеров из имеющихся, можно, конечно, назначить тест и только на одного.

Итак, запустили IOmeter.
9802521 b43 Тестирование RAID с помощью программы IOmeter

Слева в колонку Topology у нас залогинятся наши Dynamo, на локальной или удаленных машинах.
На моем ноуте Asus 901Go на процессоре Atom N270 нашлось, как вы видите, два ядра и создалось два worker.

Первая закладка называется Disk Targets.
При первом запуске вы увидите в колонке Targets для выбранного слева manager и его worker все те диски, которые он у себя видит (в случае, если вы запускаете Dynamo на удаленной машине, это будут диски, которые он видит там, у себя, на удаленной машине). Желтым цветом будут окрашены диски, имеющие на себе распознанную файловую систему, голубым — raw-партиции, неотформатированные или имеющие нераспознанную данной OS файловую систему.

Сначала все диски будут перечеркнуты красной линией. Это означает, что на них не найден тестовый файл, необходимый для тестирования на файловой системе (в случае raw-partition это не нужно, и «голубые» диски сразу готовы к тестированию).
Выбрать диск для тестирования можно поставив в чекбоксе крестик.
Тестовый файл iobw.tst создается в корне соответствущего диска при первом запуске, и, ВНИМАНИЕ, по умолчанию занимает весь свободный объем диска! Это может быть и долго, и… э-э… неожиданно icon wink Тестирование RAID с помощью программы IOmeter для приложений или OS, если вы, например, экспериментируете на рабочем компьютере.
Для того, чтобы ограничить его размер, можно задать его размер в поле Maximum disk size, размер указывается в СЕКТОРАХ, размером 512 байт!
Например, 65535 секторов — 32MB.
Starting disk sector может задать стартовый сектор в случае raw-partition.
# of Outstanding IOs это важный параметр, стоящий подробного описания.

Каждая задача, каждая программа, исполняемая на компьютере обычно осуществляет ввод/вывод на диск. Как правило, они делают это не одним потоком, а одновременно записывают и считывают с диска несколько параллельных процессов.
Принято считать, что 4-8 потоков ввода/вывода порождают совсем простые приложения, типа notepad.exe и calc.exe. Крупные программы, уровня MS Word — 32-64 параллельны потока, максимумом можно считать 256, соответствующего крупной enterprise-базе данных типа Oracle, под хорошей нагрузкой.
Количество одновременных потоков ввода/вывода это и есть «# of Outstanding IOs».
Для того, чтобы протестировать систему на нагрузке, приближенной к боевой, этот параметр нужно активно использовать.
Но сейчас, тут, на этом месте, мы этот параметр трогать не станем, мы зададим работу с ним отдельно позже.

Перейдем на вкладку Network Targets.
9802523 115 Тестирование RAID с помощью программы IOmeter

С помощью IOmeter можно также тестировать и производительность локальной сети, но я этим никогда не занимался, поэтому тут могу только сказать, что добавить Network Worker-а можно нажав на кнопку на тулбаре, выделив нужного «менеджера» слева.

Следующая вкладка, Access Specification — важная. Именно на ней создается и задается «тестовый паттерн», тот профиль тестовой нагрузки который будет нагружать нашу систему.
9802532 4e6 Тестирование RAID с помощью программы IOmeter

Выбрав Worker слева, выбираем один из имеющихся у нас профилей нагрузки, и добавляем его кнопкой<<Add в левую панель. Таким образом мы назначаем тестировочную задачу имеющемуся worker-у. Если у нас планируется запустить параллельно (или последовательно) несколько worker-ов, также добавляем им паттерн нагрузки.
Если слева мы выберем не один конкретный worker, а элемент, включающий их в себя, то назначенный паттерн назначится всем worker-ам ниже по иерархии.
Добавить можно и не один паттерн на воркер.

Паттерны можно создавать самому, а можно воспользоваться уже заданным набором. Когда-то, когда IOmeter еще производился компанией Intel, с ним в комплекте шло несколько разработанных Intel тестировочных паттернов.
Вот тут: iometer2.icf можно скачать конфигурационный файл для IOmeter, с видимым на скриншоте набором тестировочных паттернов нагрузки, с большим или меньшим успехом имитирующих те или иные типовые нагрузки.
Также можно поправить, или даже нарисовать свой собственный. Нажмите New или выберите паттерн и нажмите Edit (или Edit Copy), и откроется окно задания параметров.
9802522 ef1 Тестирование RAID с помощью программы IOmeter

Рисуя паттерн мы задаем блоки, которыми будет обращаться тест к системе хранения (или сети, если мы тестируем сетевой интерфейс).
Размер блоков это левая верхняя панель: Transfer Request Size.
Относительное количество таких блоков: Percent of Access Specification. Если вы задаете сложный паттерн, то суммарное количество всех должно равняться 100%.
Крайняя левая — Percent Read/Write Distribution — определяет каково будет соотношение записей и чтений по данному паттерну. Так, например, для File Server задано 80% read и 20% write, а для вебсервера, с которого, обычно, только читают, задано 100% read.
Четвертый важный параметр Percent Random/Sequental Distribution — характер доступа, выбирается между Random и Sequental, случайным и последовательным доступом к тестовому файлу.
Остальные параметры используются редко.

Предпоследняя вкладка — Result Display.
На ней мы будем видеть то, как идет наше тестирование, его результаты по выбранным параметрам.
9802535 fa2 Тестирование RAID с помощью программы IOmeter

Два важных контрола на этой вкладке — переключатель Result Since и движок Update Frequency.
Первый определяет то, какие будут выводиться результаты на «градусники» ниже — суммарный с начала теста (Start of Test) или мгновенный, текущий (Last Update).
Регулятор определяет частоту смены показаний на экране.
Обратите внимание, что все это влияет только на отображение в программе, в файл результатов будет записано максимальное достигнутое за время тестов значение.

Для отображения по умолчанию выбрано 6 показателей. Их можно сменить, нажав на «кнопку» с параметром и выбрав в меню нужный для отображения параметр. Это также влияет только на отображение в программе, в результирующий файл будут записаны они все.
9802536 905 Тестирование RAID с помощью программы IOmeter

И, наконец, перейдем к настройке процесса тестирования, закладке Test Setup
9802539 b8d Тестирование RAID с помощью программы IOmeter

Для выбранного worker, напоминаю снова, что все действия производятся и назначаются на конкретный объект worker, запишем Test Description, чтобы потом разобраться что за результаты у нас в общем CSV-файле результатов.
Зададим время выполнения теста: Run Time
И установим «время разгона», предварительного периода для «прогрева»: Ramp Up Time.

Этим можно было бы и ограничиться, если мы хотели провести один тест. Но, как правило, интересно сделать сразу несколькоd в прием, а не тыкать в кнопочки, дожидаясь окончания каждого. Для этого IOmeter оснащен богатыми возможностями.
В выпадающем списке Cycling Options можно задать условия последовательного выполнения тестов соответствии с определенными условиями и изменениями параметров.
9802540 6ab Тестирование RAID с помощью программы IOmeter

Например, как я уже говорил выше, я предлагаю не устанавливать параметр # of Outstanding IOs, а запустить тесты последовательно, с постепенным увеличением его, с тем, чтобы увидеть в результате, динамику реакции системы хранения на нагрузку ввода/вывода.

Впрочем вариантов выполнения Cycling Options 8 штук, попробуйте разобраться по образцу.
9802541 5ec Тестирование RAID с помощью программы IOmeter

Выбрав указанный на скриншоте вариант, можно установить поля от скольки (1) и до скольки (256) увеличивать количество потоков. В качестве характера прироста рекомендую Exponential Sepping и Power: 2. При этом прирост будет удвоением: 1 — 2 — 4 — 8 — 16…Такой шаг прироста достаточен для оценки нагрузочной способности подсистемы ввода/вывода.

Итак, мы добрались до момента старта.
Нажимаем на тулбаре кнопку с зеленым флажком.
Нам предлагается сохранить результаты в файл CSV (Comma Separated Value) с именем по умолчанию results.CSV. Если этот файл уже существует, то он будет ДОПИСАН, в начале новых данных будет указано имя теста, заданное нами в Test Setup.
В дальнейшем можно будет этот CSV импортировать в Excel и настроить по его данным красивых графиков.

В первый запуск долгое время ничего видимого не происходит так как для первого запуска создается тестовый файл. Об этом говорит сообщение внизу: Preparing Drives. Когда файл создан, то в Disk Targetsисчезает красная зачеркивающая линия. В дальнейших запусках файл не пересоздается, и тест запускается сразу.
9802534 dfc Тестирование RAID с помощью программы IOmeter

В левом нижнем углу отображается название идущего теста.
В правом, сообщение Ramp remaining говорит, что идет процесс «прогрева» перед тестом, а Run 1 of 6, что запущен первый из 6 назначенных в Cycling options тестов.
9802542 234 Тестирование RAID с помощью программы IOmeter

Для того, чтобы остановить текущий тест (и перейти к следующему) можно нажать кнопку Stop на тулбаре, а чтобы прервать всю последовательность тестов — Stop All.

Теперь перейдем на закладку Test Results.
9802537 4ec Тестирование RAID с помощью программы IOmeter
«Градусники» показывают текущее значение тестов, а цифра посередине него — текущее значение выбранного параметра.
Run remainings: оставшееся время текущего теста.
Суммарное время будет составлять (при ранее указанных параметрах): (30 секунд ramp + 10 минут теста) * 6 тестов.

Во время теста ход его отображается в окне утилиты Dynamo.
9802520 c77 Тестирование RAID с помощью программы IOmeter

По окончании тестов, в файле CSV с именем, который вы выбрали (по умолчанию results.CSV) собираются результаты, которые можно импортировать в Excel и настроить в нем необходимой аналитики.

Копипаст отсюда: http://habrahabr.ru/blogs/hardware/78632/

NAT на Cisco. Часть 1-2

Добрый день, коллеги!

судя по многочисленным вопросам на форуме (ссылка в конце поста), от слушателей и коллег, работа NAT на маршрутизаторах Cisco (firewall’ы я опущу, Fedia достаточно подробно его работу расписал в своей серии статей про Cisco ASA) плохо описана, поэтому я попробую описать свой опыт и свое понимание данной технологии в большинстве ее ипостасей. Не претендую на всеобъемлющее описание и 100% точность, но кому интересно — велкам под кат.

Итак, для структурности описания разберемся с определением, что такое NAT.

ОпределениеNAT (Network Address Translation) — технология трансляции сетевых адресов, т.е. подмены адресов в заголовке IP-пакета (иногда может еще и порт менять в заголовках TCP/UDP, но об этом позже).

Другими словами, пакет, проходя через маршрутизатор, может поменять свой адрес источника и/или назначения.

Зачем это нужно?
1. Для обеспечения доступа из LAN, где чаще всего используются частные IP-адреса, в Internet, где маршрутизируются только глобальные IP-адреса.
2. (в меньшей степени) для сокрытия топологии сети и создания некоторого защитного барьера для проникновения внутрь сети (обсудим это позже на примере).

NAT бывает разным icon smile NAT на Cisco. Часть 1 2 И хотя много по этому поводу уже написано, есть желание отправлять новичков с вопросами о NAT по конкретному адресу, поэтому я все же приведу некоторую классификацию.
1. Static NAT — статический NAT задает однозначное соответствие одного адреса другому. Иными словами, при прохождении через маршрутизатор, адрес(а) меняются на строго заданный адрес, один-к-одному. (к примеру 10.1.1.1 всегда заменяется на 11.1.1.1 и обратно, но никогда на 12.1.1.1). Запись о такой трансляции хранится неограниченно долго, пока есть строчка в конфиге.
2. Dynamic NAT — при прохождении через маршрутизатор, новый адрес выбирается динамически из некоторого куска адресов, называемого пулом (англ. pool). Запись о трансляции хранится некоторое время, чтобы ответные пакеты могли быть доставлены адресату. Если в течение некоторого времени трафик по этой трансляции отсутствует, трансляция удаляется и адрес возвращается в пул. Если требуется создать трансляцию, а свободных адресов в пуле нет, то пакет отбрасывается. Иными словами, хорошо бы, чтобы число внутренних адресов было ненамного больше числа адресов в пуле, иначе высока вероятность проблем с доступом наружу.
3. Dynamic NAT with overload или PAT. Работает почти также, как dynamic NAT, но при этом происходит трансляция много-в-один, задействуя при этом возможности транспортного уровня. Об этом подробнее на примере дальше.

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

1. inside source NAT

Самый распространенный и достаточно простой вариант. Допустим у нас есть такая топология:
9dddd549 NAT на Cisco. Часть 1 2

Другими словами,
а) подсеть внутренних адресов — 10.0.0.0/8
б) подсеть внешних адресов — 11.0.0.0/8

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

Что для этого нужно?

1. Мы явно указываем, что мы хотим транслировать. Т.е. какой трафик и от каких хостов.
2. Мы явно указываем, во что мы хотим траслировать, т.е. пул внешних адресов (или единственный адрес для статической трансляции).
3. Помечаем внутренний и внешний интерфейс.
4. Включаем трансляцию.

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

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

Итак, допустим мы решили, что будем транслировать всю 10ю сеть целиком в 11ю. Задали их соответствующим образом (настройки потом, сначала теория). И пометили наши интерфейсы как внутренний (inside) и внешний (outside).
Теперь, давайте разберемся, что делает именно inside source NAT. На самом деле, в названии зашита половина действия icon smile NAT на Cisco. Часть 1 2 а именно: у пакета, пришедшего на inside интерфейс меняется source icon smile NAT на Cisco. Часть 1 2 . Но помните, мы говорили о том, что ответные пакеты должны доходить до нашего внутреннего хоста? Отсюда вторая половина действия: у пакета, пришедшего на outside интерфейс меняется destination.

Рассмотрим прямую трансляцию.
1. Трафик, приходя на интерфейс, помеченный как inside, если он соответствует тому, что мы хотим транслировать, маркируется как возможно_транслируемый. Часто полагают, что в этот момент происходит трансляция, но это не так.
2. Следующим этапом, трафик подвеграется маршрутизации (PBR и обычной). И если при этом трафик направляется на интерфейс, помеченный как outside — только тогда происходит трансляция. Если трансляция динамическая, маршрутизатор проверяет ее наличие в таблице трансляций. Если ее там нет — создает, если уже есть — обнуляет счетчик неактивности. Если же пакет попадает на выход на интерфейс, не помеченный как outside — трансляция НЕ происходит.

Теперь обратная трансляция.
1. Трафик, попадая на outside интерфейс, в противовес прямой трансляции, сначала подвергается NAT. Если трансляция существует (неважно, динамическая или статическая), в случае с inside source NAT, у него меняется destination. И только после этого трафик подвергается маршрутизации и перенаправляется по назначению.

Поэтому маркировать интерфейсы как inside или outside нужно именно принимая во внимание механизм работы.

Замечания и следствия.
1. Для обратной трансляции не обязательно наличие метки inside на каком-либо интерфейсе. Все равно, если прямая трансляция существует, обратная трансляция сработает до маршрутизации. Но когда будет существовать такая трансляция, ведь мы обсуждали, что трафик должен пройти через inside интерфейс для создания прямой трансляции? Отсюда
2. Трафик самого роутера подвергается трансляции, если он попадает на интерфейс, помеченный как outside и удовлетворяет правилу NAT. И это сколь полезно, столь и опасно. С одной стороны, мы можем транслировать трафик роутера как и любой другой. С другой стороны, многие хотят описать трафик, подлежащий трансляции как permit any, но тогда и, например, пакеты протоколов маршрутизации будут транслироваться, что приведет к сбою.
3. Интерфейсы типа loopback маршрутизатора трактуются как и любые другие, мы можем метить их как inside или outside, заворачивать на них трафик и получать от этого профит icon smile NAT на Cisco. Часть 1 2

Теперь посмотрим общую конфигурацию, а потом еще несколько частных случаев.

Конфигурация inside source NAT
inside source dynamic NAT

1. Указываем, что транслировать. Для этого создаем access-list, перечисляющий трафик. Например, в нашем случае достаточно одной строчки:
(config)# access-list 100 permit ip 10.0.0.0 0.255.255.255 any
Замечание. В ACL могут встречаться строчки deny. Вопреки распространенному заблуждению, трафик удовлетворяющей данной строчке не дропается, а просто не подвеграется трансляции. Так же, ACL может быть стандартным и расширенным, нумерованным и именованным.
2. Создаем пул из адресов, указывая стартовый и конечный адрес. Например так:
(config)# ip nat pool NAME_OF_POOL 11.1.1.10 11.1.1.20 netmask 255.255.255.0
Замечания.
1. Стартовый и конечный адрес в пуле могут совпадать, тогда трансляция будет в 1 адрес.
2. Опция netmask, хотя и является обязательной, по моему мнению — рудимент. Она позволяет вырезать из диапазона адресов в пуле те адреса, которые являются адресами подсети или бродкастными при данной маске.
3. Маркируем интерфейсы. В нашем случае достаточно
(config)# interface fa 0/0
(config-if)# ip nat inside

и
(config)# interface fa 0/1
(config-if)# ip nat outside

4. создаем собственно трансляцию:
ip nat inside source list 100 pool NAME_OF_POOL

вуаля icon smile NAT на Cisco. Часть 1 2 Если мы теперь обратимся например с хоста 10.1.1.1 к хосту 11.1.1.2, то получим такую трансляцию:
Router#sh ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 11.1.1.10:55209 10.0.1.1:55209 11.1.1.2:23 11.1.1.2:23

Интересно, что хотя в таблице явно записаны source port и destination port, трансляция создается целиком для адреса. И на время ее жизни в таблице трансляция, пакеты снаружи могут проходить на внешний адрес (inside global)
Например, пинг с некоторого адреса во внешней сети на наш inside global будет успешным (на время жизни трансляции):
R4#ping 11.1.1.10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 11.1.1.10, timeout is 2 seconds:
!!!!!

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

inside source dynamic NAT with overload

П. 1,2 и 3 — как в предыдущем разделе.
4. Создаем собственно трансляцию:
ip nat inside source list 100 pool NAME_OF_POOL overload
Видим, что добавилось всего одно слово: overload. Но оно существенно изменило схему работы трансляции.
Как было сказано, PAT — это трансляция много-в-мало или даже много-в-один. Но чтобы можно было отличить трафик одного соединения от другого, маршрутизатор будет менять не только IP-адреса, но еще и TCP/UDP порты.
Замечание. Схема работы с портами (когда меняется source, когда destination) — такая же, как и схема работы с IP-адресами.
Другими словами, при обращении изнутри наружу меняется source IP и source port, запись об этом вносится в таблицу трансляций. При обратной трансляции — все меняется наоборот.

Посмотрим, что изменилось:
R3#sh ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 11.1.1.11:21545 10.0.1.1:21545 11.1.1.2:23 11.1.1.2:23
tcp 11.1.1.11:49000 10.0.2.1:49000 11.1.1.2:23 11.1.1.2:23

Видим, что разные внутренние адреса (10.0.1.1 и 10.0.2.1) странслировались в один внешний (11.1.1.11).

Замечания.
1. Кажется, что source-port не был изменен, как обещали, непорядок icon smile NAT на Cisco. Часть 1 2 . На деле, маршрутизатор пытается сохранить source port всеми доступными средствами. В частности, если порт inside global адреса уже был занят, он возьмет следующий адрес в пуле и проверит его порт на занятость. И только не найдя адреса со свободным портом возьмет следующий свободный.
2. Поведение такой трансляции отличается от поведения обычного dynamic NAT еще и тем, что доступ снаружи на inside global адрес невозможен. Именно это я имел ввиду, когда говорил о некоторой повышенной безопасности при использовании PAT, т.к. фактически все соединения инициируются изнутри нашей сети, а снаружи нам могут приходить только ответы на них.
3. Если мы получили у провайдера не целый блок адресов, а один несчастный адрес, который тут же и назначили внешнему интерфейсу маршрутизатора, можно не городить огород с пулом в один адрес, а сразу писать например так:
(config)# ip nat inside source list 100 interface fa0/1 overload

inside source static NAT and PAT

Много упоминалось о статических трансляциях, давайте наконец их обсудим.

Зачем это нужно?
Мы обсудили, что если в случае dynamic NAT трансляция не создана и в случае PAT, доступ извне невозможен. Если даже в случае dynamic NAT трансляция создана, то inside global адрес может меняться. И обращаться к нашему внутреннему хосту по какому-то внешнему адресу невозможно.
Тем не менее, нередки ситуации, когда внутри корпоративной сети есть сервер, доступ которому извне по статическому внешнему адресу жизненно необходим. В таком случае, можно выставить его прямиком в Интернет, назначив глобальный адрес. Но часто это не очень удобно, например по соображениям безопасности. И в таких случаях нам на помощь приходит static NAT.

Он создает двустороннюю и постоянную трансляцию. Так что наш хост всегда будет доступен по одному внешнему адресу и эта трансляция никогда не вылетит из таблицы трансляций по таймауту.
собственно настройка.
Сразу создаем трансляцию:
(config)# ip nat inside source static 10.0.1.1 11.1.1.21
Маркируем интерфейсы и вуаля!
R3#sh ip nat translations
Pro Inside global Inside local Outside local Outside global
icmp 11.1.1.21:14 10.0.1.1:14 11.1.1.2:14 11.1.1.2:14
--- 11.1.1.21 10.0.1.1 --- ---

Как видим, появилось две записи — одна постоянная, другая (чисто информативная) — временная, вызванная трафиком изнутри наружу.
Замечание. Появление таких информативных записей можно отключить командой
(config)# no ip nat create flow-entries

Идем дальше. Часто бывает, что нужно выставить наружу не целый адрес, а только один порт (например 80й для www-сервера). Никаких проблем, можно создать и статическую PAT-трансляцию для некоторых портов:
(config)# ip nat inside source static tcp 10.0.1.1 80 11.1.1.21 80
(config)# ip nat inside source static udp 10.0.1.1 5060 11.1.1.21 7877

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

В заключение добавлю, что изменять различные таймауты для NAT можно командой
Router(config)#ip nat translation ?
arp-ping-timeout Specify timeout for WLAN-NAT ARP-Ping
dns-timeout Specify timeout for NAT DNS flows
finrst-timeout Specify timeout for NAT TCP flows after a FIN or RST
icmp-timeout Specify timeout for NAT ICMP flows
max-entries Specify maximum number of NAT entries
port-timeout Specify timeout for NAT TCP/UDP port specific flows
pptp-timeout Specify timeout for NAT PPTP flows
routemap-entry-timeout Specify timeout for routemap created half entry
syn-timeout Specify timeout for NAT TCP flows after a SYN and no
further data
tcp-timeout Specify timeout for NAT TCP flows
timeout Specify timeout for dynamic NAT translations
udp-timeout Specify timeout for NAT UDP flows

Объемистая статейка получилась, придется разбить на несколько частей. Конечно inside source NAT многократно обсужден и расписан, но надеюсь, что даже не совсем новичкам удастся найти в статье что-то полезное. Надо было начать с некоторой базы, пусть и общеизвестной.

В следующей статье мы обсудим inside destination NAT, если конечно статья найдет отклик и поддержку.

С уважением,
Подкопаев Илья

P.S. Я открыт для пожеланий по улучшению статьи и исправлению неточностей/ошибок.
P.P.S. Ссылки:
1. форум сайта anticisco.ru
2. Cisco NAT order of operations

Копипаст отсюда: http://habrahabr.ru/blogs/cisconetworks/108931/

Продолжаю серию статей про NAT на Cisco, т.к. предыдущая статья все нашла некоторое количество положительных отзывов.

В этой статье мы рассмотрим, как и было обещано, inside destination NAT. Кому интересно — велкам под кат.

Прежде чем читать дальше — дисклаймер: коллеги, я понимаю, что не все ровно относятся к Cisco вообще, CLI в частности и цискарям в особенности. Но давайте все же не разводить холиваров и делать обсуждение более конструктивным, а именно обсуждать конкретно эту статью и описываемую технологию. Поскольку блог-то тематический, то и статья в его тематику. И еще просьба, давайте при несхождении мнений не выходить за рамки корректности. icon smile NAT на Cisco. Часть 1 2 все, извините за лирическое отступление.

Итак,

inside destination NAT

На самом деле весьма и весьма экзотический вид NATа, созданный специально для балансировки нагрузки между серверами, работающими по TCP протоколу. В реальной жизни встречается не чаще солнечного затмения icon smile NAT на Cisco. Часть 1 2

Давайте углубимся.
1. Итак, данная трансляция срабатывает ТОЛЬКО когда соединение инициируется (простите за такое слово) со стороны outside интерфейса в сторону inside интерфейса и для ответного трафика. Но если трафик инициируется со стороны inside — трансляция не произойдет.
2. Такой NAT работает только для протокола TCP.

Зачем нам такая радость?

Допустим, у нас есть десяток web-серверов, имеющих адреса с 10.0.0.1 по 10.0.0.10. На всех серверах крутится один и тот же сайт (вернее это могут быть просто frontend-сервера) и порт у них тоже один, для простоты — 80 (HTTP).
02afa58f NAT на Cisco. Часть 1 2

Клиенты снаружи достукиваются до нашего «размазанного» сайта по адресу 11.1.1.1:80.

И мы хотим балансировать нагрузку между ними по принципу RR (Round Robin), т.е. чтобы каждый следующий клиент, обращающийся снаружи к нашему маршрутизатору по глобальному адресу, обращался к следующему серверу из этой десятки (по кругу).
Вот тут-то там и поможет этот хитрый NAT.

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

1. Прямая трансляция. Вопреки логичным и привычным ожиданиям, основанным на логике работы inside source NAT, для этого типа прямая трансляция та, которая создается при обращении со стороны outside в сторону inside. При появлении TCP (и только его, повторюсь) трафика на outside интерфейсе, трафик сначала проверяется на соответствие inside destination NAT. Если он соответствует — адрес назначения меняется на следующий в пуле и трансляция заносится в список трансляций. После этого пакет с уже измененным адресом назначения подвергается маршрутизации.
2. Обратная трансляция. Опять же — многое наоборот. Обратная трансляция происходит в направлении inside-to-outside. И здесь уже сначала отрабатывает маршрутизация, если она бросает трафик с inside на outside и есть соответствующая запись в таблице трансляций — пакет растранслируется.

Замечания.
1. В отличие от static inside source NAT и static inside source PAT, маршрутизатор не отвечает на ARP-запросы по поводу глобального адреса, если конечно этот адрес не назначен его интерфейсу. Поэтому возможно потребуется добавить его к интерфейсу как secondary.
2. Как и в случае inside source NAT, трафик роутера тоже подвергается трансляции, даже если нет ни одного inside интерфейса.
3. Следствие из п. 2: если нет inside-интерфейсов, транслируется только трафик самого роутера.

давайте теперь посмотрим, как это конфигурируется.
1. Итак, сначала создаем пул. Адреса в пуле — адреса наших серверов.
(config)# ip nat pool NAME_OF_POOL 10.0.0.1 10.0.0.10 netmask 255.255.255.0 type rotary
я специльно выделил слово rotary — для этого типа NAT пул должен быть ротационным (т.е. мы как раз указываем, что адреса будут браться один за другим
по кругу, иначе по достижению конца пула следующий пакет будет дропнут).

2. Создаем access-list, который будет выделять трафик, подлежащий трансляции. Специально сделал его расширенным:
(config)# access-list 100 permit tcp any host 11.1.1.1 eq www
Т.е. транслировать мы будем трафик, направленный к нашему глобальному адресу и даже конкретному порту (TCP!).

3. Создаем трансляцию, остались мелочи:
(config)# ip nat inside destination list 100 pool NAME_OF_POOL

4. И маркируем интерфейсы (там где сервера — inside, где внешний мир — outside)
(config)# int fa0/0
(config-if)# ip nat inside
(config-if)# int fa0/1
(config-if)# ip nat outside

И теперь, можем пронаблюдать картину обращений к нашему серверу:
R3#sh ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 11.1.1.1:80 10.0.0.1:80 11.1.1.251:18747 11.1.1.251:18747
tcp 11.1.1.1:80 10.0.0.2:80 11.1.1.250:52943 11.1.1.250:52943

видим, что один и тот же порт глобального адреса (а именно 11.1.1.1:80) странслировался в разные адреса.

Замечания.
1. Нельзя перенаправлять какой-то порт глобального адреса на другие порты серверов (например 80й на 8080й), порты должны совпадать. Если очень нужно — можно прицепить loopback, транслировать на него обычным inside source static PAT с заменой порта, оттуда уже на сервера с помощью inside destination NAT. И совсем нельзя (ощущение, что с помощью еще и nat enable — можно) такое делать, если на серверах один и тот же протокол отвечает по разным портам (где-то по 80, а где-то по 8080 например). Но если кому-то до зарезу нужно — пишите, попробую сообразить.
2. Если настроены две трансляции — одна inside destination, как выше, а другая — inside source dynamic PAT для тех же серверов, т.е. для трафика, идущего от них наружу, но не попадающего в обратную трансляцию (например для доступа серверов к репозиториям):
ip nat inside source list 110 interface FastEthernet0/1 overload
access-list 110 permit ip 10.0.0.0 0.0.0.255 any

Видим, что они перекрываются, т.е. ответ от серверов с 80го порта должен подвергнуться обратной трансляции inside destination и прямой inside source (кстати, обе они сработают только после маршрутизации). В этом случае, обратная трансляция выигрывает и все будет работать как положено.
3. Нельзя сделать статический inside destination NAT. Для этого нужно использовать static inside source NAT.

В заключение. Подводя итоги, хочу еще разок отметить следующее:
1. Inside destination NAT — технология трансляции адресов с целью балансировки и работает она только для протокола TCP.
2. Хотя интерфейсы маркируются так же, как и в случае inside source NAT, направление прямой и обратной трансляции противоположное.
3. Приоритеты NAT (inside-to-outside и outside-to-inside) такие же, как и в случае inside source NAT.
4. Если трафик инициируется в направлении inside-to-outside, то трансляции он не подвергается (если только Вы там еще не наворотили и inside source NAT).

Копипаст:  http://habrahabr.ru/blogs/cisconetworks/108978/

WordPress Content Slide — Плагин для слайда картинок

1 WordPress Content Slide   Плагин для слайда картинок

Как встроить в шаблон слайдер изображений? В этом может помочь плагин WordPress Content Slide. Он довольно мощный по настройкам и с другой стороны очень простой, разобраться с ним может любой новичок.

Плагин создаст свое меню в админке — «Content Slide«, а сами настройки этого плагина можно найти в «Content Slide\Content Slide«.

Всего есть три блока настроек:

General Settings (основные настройки) — здесь можно указать размер изображений в слайдере. Размер всех изображений должен быть одинаковым, в любом случае плагин будет отображать изображения именно в указанных в настройках размерах, игнорируя их настоящий размер. Тут же можно настроить подписи и описания к изображениям (работает, если  включить их показ в разделе «Images Source Settings» ).

Effects & Animations Settings (настройки эффектов и анимации) —  тут можно настроить эффекты появления картинок и их анимацию. Начиная от настройки времени смены изображений друг за другом и заканчивая каким-либо конкретным эффектом смены изображения. Также тут можно включить и  отключить навигационные кнопки (квадраты на скриншоте) и некоторые другие простые настройки.

Images Source Settings (настройки картинок) – здесь можно указать сами изображения; ссылки, открывающиеся по клику на изображение; описания и подписи к изображениям (при включенном параметре «Display Heading and Text?«) и количество картинок в слайдере.

Вся настройка плагина довольно проста и, потратив 5-10 минут, вы полностью с ним разберетесь. Теперь о том, как вставить слайдер в шаблон. Тут тоже все легко — нужно вставить в файл шаблона этот код:

<?php if(function_exists('wp_content_slider')) { wp_content_slider(); } ?>

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

<?php
if(is_front_page()) {
	if(function_exists('wp_content_slider')) { wp_content_slider(); }
} ?>

Пори помощи условных тегов слайдер можно выводить только на нужной странице блога.

Совместимость с версией WordPress: 2.9 и выше.

Взлом программ для чайников

84d30e1a Взлом программ для чайников

Disclaimer: всё ниженаписанное написано исключительно с просветительскими и исследовательскими целями, а также понимания механизмов защиты от взлома. Автор ни в коем случае не рекомендует использовать данную информацию для взлома программ.

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

Я не буду углубляться в детали и использовать сложные инструменты для взлома. Всё будет расписано «для чайников», т.е. все инструменты будут простыми, легкодоступными и бесплатными. А основным будет Reflector, декомпилятор программ под .NET

a6115465 Взлом программ для чайников

В качестве подопытного кролика я выбрал Expresso — анализатор регулярных выражений. Данная программа бесплатная, в лицензии вроде бы ничего не указано про взлом, но при этом без регистрации она будет работать всего 60 дней. Другими словами, вред от взлома данной программы минимальный, к тому же внутреннее её устройство очень уж хорошо подходит для тренировки. Буду надеяться, что автор данной программы не обидится на меня.

Для начала краткий ликбез по структуре .NET программы, для тех кто не знаком с разработкой под данный Framework: весь код, написанный на любом .NET языке (C#, Visual Basic, F#, Delphi.NET) компилируется в особый Intermediate Language, называемый обычно IL или MSIL. Это что-то типа ассемблера, только весьма умного и обладающего весьма мощными инструкциями. И это, в принципе, такой же равноправный язык как и C#, только синтаксис похуже (а возможности больше). Кроме того, в программе на .NET активно используются метаданные, т.е. вся информация о классах, метода, пропертях, атрибутах и всём остальном сохранена в исполняемом файле.
Т.е. на самом деле, декомпиляция программы не очень верное понятие в данном случае. Она и так вся в открытом виде лежит, а инструменты в виде Reflector’а занимаются тем, что приводят конструкции MSIL к соответствующим конструкциям C# или другого языка, повышая читабельность кода.

Перейдём, собственно, к взлому.

0. Обнуление триала

Собственно, это даже не взлом, а полулегальный способ продлить срок использования неактивированной программы. Заключается он в том, что находится место, где хранится дата первого запуска и меняется/уничтожается. После этого всё можно пользоваться программой до следующего срока.

Посмотрим на нашего подопытного рефлектором:
Немного погуляв по коду, находим интересную строчку в конструкторе MainForm
ea18f496 Взлом программ для чайников
Открываем редактор реестра, идём в HKEY_CURRENT_USER\Software\Ultrapico\Expresso и видим следующие ключи:
c66c1d75 Взлом программ для чайников
Удаляем их и получаем ещё 60 дней работы.

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

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

1. Написание keygen’а

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

Открываем рефлектор и ищем код на предмет классов содержащих License или Registration, видим:
b853538b Взлом программ для чайников
При вводе имени и кода по имени вычисляется некий хеш, который и сравнивается с кодом.

dbd0ca6f Взлом программ для чайников
Данный хеш использует DES и всякие префиксы

1065e362 Взлом программ для чайников
Байты конвертятся в строку с помощью данного метода.

Теперь всё выяснилось, открываем IDE и копируем все необходимые куски кода (или сами реализовываем). Осталось только выяснить, какие значения у Prefix, Suffix и параметры реализации MyDES. Я их приводить не буду, это уже технические детали.

В результате генерируем ключ на любое имя и видим:
3c2561e9 Взлом программ для чайников
Бинго!

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

2. Использование враппера

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

  1. Указать программе, что лицензия уже проверена
  2. Указать программе, что лицензия корректна

Как это сделать? Я уже упоминал о наличии метаданных в исполняемых файлах в начале, этим и воспользуемся. Посмотрим как запускается программа и как проверяется лицензия:
46dcd6bc Взлом программ для чайников
5ac1ee65 Взлом программ для чайников

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

Воспользуемся этим:
Сделаем новый проект, добавим Reference на Expresso.exe и запустим его через себя:
61d00252 Взлом программ для чайников
Смотрим, что получилось:
3627dc37 Взлом программ для чайников
Ну кто бы сомневался.

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

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

Но все эти защиты приведут к тому, что злоумышленник будет использовать

3. Физический взлом программы

Тут уже всё серьёзно. Программа целиком декомилируется в MSIL а из него уже собирается обратно (помните, я писал, что MSIL это такой же язык как и C#?). Для декомпиляции нам понадобится утилита из SDK под названием ildasm, а для компиляции компилятор из .NET Framework ilasm.

Запускаем ildasm, открываем Expresso.exe и сохраняем дамп в .il файл. Находим уже рассмотренный метод IsRegistered и добавляем немножко своего кода (без меток):
e5800cdd Взлом программ для чайников

Потом берём ilasm и собираем всё назад (не забыв подключить ресурсы).

Что делает данный код: устанавливает нужное имя для регистрации (не обязательно), и возвращает статус, что всё хорошо.
Чтобы было понятнее, так это выглядит в рефлекторе, в C#
49dbcad4 Взлом программ для чайников

Т.е. вполне очевидно, что теперь всё будет хорошо:
ea25d8c8 Взлом программ для чайников

Немного про код в MSIL: это стековая машина, у которой нет регистров, все операции имеют вид: засунуть в стек нужное количество параметров, выполнить функцию, которая заберёт нужное количество параметров и положит результат. Ну и обратно: установить значение переменной тем, что лежит в стеке. Чтобы лучше понять работу всего этого рекомендую простой приём: пишите маленькую программу на привычном языке, компилируете, смотрите что получилось в MSILe и разбираетесь в конструкциях языка.
При этом некоторые вещи в MSIL можно сделать очень красиво, например поменять две переменные местами — 4 симпатичных строчки (на C# меньше, но некрасиво).

Чем жертвует злоумышленник: подписью программы, теперь она уже не автора, а его. В некоторых случаях это проблема, если в программе используется множество библиотек. Тогда злобному хакеру придётся разбирать их все и собирать их заново, но если он с этим справится, то у него будет «своя» версия программы подписанная его ключом.

Защиты от всего этого безобразия собственно немного: проводить обфускацию или выносить часть логики/проверки защиты в нативный код.

Заключение

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

Копипаст отсюда: http://habrahabr.ru/blogs/net/109117/#habracut

DocsPal – универсальный онлайн-конвертер и просмотрщик файлов

Часто задаюсь мыслью «а нужно ли держать на компьютере монстрообразный office?».  Вместо этого можно пользоваться онлайновыми офисными пакетами. Однако иногда, могут возникать ситуации, в которых Google Docs окажется бессильным. Зачастую это связано документами в каких-то старых, не поддерживаемых онлайн-сервисами форматах. И могут сильно пригодиться онлайновые конвертеры.

overview filetypes DocsPal – универсальный онлайн конвертер и просмотрщик файлов

DocsPal – бесплатный онлайн-просмотрщик документов и конвертер, с помощью которого можно преобразовывать различные изображения, документы  и архивные файлы в разные поддерживаемые форматы. Все очень просто и легко: Шаг 1 – загрузите нужный файл или укажите адрес в сети, Шаг 2 – выберите нужный формат, Шаг 3 – нажмите кнопку Convert и получите результат.

2010 11 26 17h33 40 DocsPal – универсальный онлайн конвертер и просмотрщик файлов

С помощью DocsPal можно конвертировать до пяти файлов одновременно, правда размер изображений и документов ограничен 50 Мб, для видео, архивов  и аудио форматов максимальный размер файлов уже составляет 100 Мб. Каждый конвертированный файл получает свой адрес, который действительный на протяжении 5 дней, так что можно скачать результат и позже или поделиться конвертированным файлом с знакомыми. Сервис поддерживает громадное количество файловых форматов, перечень которых займет целую страницу, поэтому лучше ознакомиться с этим списком самостоятельно тут.

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

2010 11 26 18h11 24 DocsPal – универсальный онлайн конвертер и просмотрщик файлов

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

Быстрое и эффективное создание скриншотов в Google Chrome

variant Быстрое и эффективное создание скриншотов в Google Chrome

Снимок экрана бывает нужным для того, чтоб показать сообщения об ошибке иди, скажем, для инструкций к использованию какой-то программы или если надо запечатлеть интересный момент, встретившийся в сети. Профи используют специальные программы, некоторые используют Paint оперируя комбинациями PrintScreen + Alt. Но в этой статье будет описан третий вариант — снятии скриншота в любимом Google Chrome.

5 Быстрое и эффективное создание скриншотов в Google Chrome

После того, как установите расширение в списке иконок рядом с адресной строкой вы увидите новую кнопочку. При клике выпадает меню с тремя способами съемки экрана: фотографировать видимую часть экрана, снять выделенную область или же сфотографировать всю страницу. Следует помнить, что при создании снимка видимой части экрана в кадр не попадут вертикальные ползунки браузера, иконок установленных расширений и панель вкладок. При создании снимка с части странички настройте границы, смотрите информацию о высоте ширине будущего снимка. Если вы любите использовать горячие клавиши, то в  Awesome Screenshot и это не проблема — задайте в настройках расширения комбинации клавиш.

21 Быстрое и эффективное создание скриншотов в Google Chrome

Созданный снимок откроется в новом окне для дальнейшего редактирования: выделите нужные фрагменты овалом или прямоугольником, обрежьте часть снимка,направьте в нужное место стрелку или линию, размойте конфиденциальную информацию и наносите подписи. Для этих операций можно использовать двенадцать цветов, если где-то ошиблись — поможет  кнопка «Отменить». Расширение переведено на русский язык, кроме кнопок «Capture» и «Done».

3 Быстрое и эффективное создание скриншотов в Google Chrome

Что ж, снимок экрана заснят, отредактирован, остается только определиться что дальше с ним делать. Есть два пути — сохранить скриншот на компьютере или загрузить на сервер расширения. При сохранении на локальном диске вы получите PNG-файл с адресом страницы в названии. При загрузке на сервер расширения получите ссылку. Тут же будут присутствовать ссылки для быстрой отправку информации на Twitter, Facebook или Google Buzz.

41 Быстрое и эффективное создание скриншотов в Google Chrome

Awesome Screenshot является одним из тех дополнений к Google Chrome, которые выполняют функцию полноценной программы и делает это совершенно бесплатно и с максимальным удобством.

Установить расширение Awesome Screenshot: Capture & Annotate

Как избавиться от винлокера?

trojan old Как избавиться от винлокера?

Для начала кратко напишу что такое винлокер (вин — виндовс, лок — блокировать). Это вирус\троян, который блокирует работу на вашем компьютер каким-то окошком, развернутым на весь экран с надписью о том, что надо отослать смс для того чтоб компьютер разблокировался. Окошка могут быть самыми разными, от обычной надписи что windows не лицензионый, до изображений на тематику гей-порно.

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

Как же с такой заразой бороться? Для профессионалов хватит нескольких слов – нужно залезть в реестр и поправить параметры Shell и Userinit.

Теперь описание решение проблемы для нормальных. =)

Вам нужен будет LiveCD с Windows XP. Сейчас такие есть почти на всех реанимационных дисках. Скачайте из Интернета или где-то купите.

Загрузитесь с LiveCD. Как это сделать? В выключенный компьютер вставьте диск. После включения компьютера постоянно нажимайте на клавишу F8. Компьютер или сразу загрузится с диска, или отобразит меню, в котором вы сможете выбрать из чего грузиться. Нужно выбрать тот пункт, в котором указан DVD. Если получилось запуститься с диска — увидите меню реаниматора, найдите строку, содержащую «LiveCD» и нажмите.

Если кнопка F8 не помогает загрузиться с диска (такое бывает, не на всех компьютерах есть boot menu) – зайдите в BIOS. Для этого после включения компьютера надо нажимать клавишу Del или F2 — эти клавиши чаще всего используются для входа в BIOS. Но иногда бывает что для входа в BIOS назначаются другие варианты клавиш. Суть в том, что при включении компьютера вы можете прочитать какая клавиша для входа в биос используеться:

bios del Как избавиться от винлокера?

Видите надпись «Press DEL to enter SETUP»? именно такую надпись и надо искать. Она подсказывает что надо нажать кнопку DEL  чтоб зайти в биос. Вместо слова SETUP могут быть слова BIOS, SETUP MENU.

Если вам удалось зайти в BIOS, то должны увидеть что-то вроде этого:

bios1 Как избавиться от винлокера?

или вот этого:

ecsp33t a bios pic1 b 300x238 Как избавиться от винлокера?

Теперь ищите по всему меню строку где есть слово Boot, там нужно выставить на первое место (first) ваш DVD.

Вот так оно может выглядеть. Тут CD/DVD на третьем месте, его надо переместить на первое:

bios boot Как избавиться от винлокера?

Итак, когда загрузитесь с LiveCD вы увидите тот же Windows, правда немного урезанный. Запустите редактор реестра (кнопка «Пуск», найдите «Выполнить» и введите » regedit»). В левой части запущенного редактора реестра нажмите на раздел HKEY_LOCAL_MACHINE,  в верхнем меню выберите «Файл» – «Загрузить куст…». Откроется окно обзора, в котором перейдите  по адресу: C:\WINDOWS\system32\config. Это не обязательно должен быть диск C, может быть и другой, зависит от того, куда вы установили операционную систему.

Когда доберетесь до папки config, щелкните дважды на файле «SOFTWARE». Редактор реестра предложит вам ввести имя для нового раздела – введите что угодно, к примеру 1234. Раздел теперь  загружен, вы сможете его увидеть в левой части окошка редактора реестра. Перейдите к ветке раздела – HKEY_LOCAL_MACHINE\1234\Microsoft\Windows NT\CurrentVersion\Winlogon. Кликните на Winlogon, вы увидите в правой части окна список параметров.

Из параметров нам нужны 2:

Userinit – должно иметь значение C:\WINDOWS\system32\userinit.exe

Shell – должен иметь значение Explorer.exe,

Если у Вас по другому – поправьте, дважды кликнув на нужном параметре. Зачастую, путь к вирусу указан в параметре Userinit. Перед тем как его исправить, запомните этот адрес и, зайдя по нему, удалите зараженный файл. Например, это может быть файл wlock.exe, который находиться по адресу C:\Documents and Settings\UserXPSP3\wlock.

Теперь можно вытащить диск и перезагрузить компьютер,  радуйтесь вернувшемуся Windows

Решение подсмотрено тут: http://adminxp.ru/xyecoc-net-i-drugie/comment-page-1/#comment-1840

Плагин для поиска неработающих ссылок в WordPress-блоге.

1 Плагин для поиска неработающих ссылок в WordPress блоге.

Плагин Broken Link Checker помогает найти неработающие ссылки в вашем блоге. Кто-то может подумать, что нет особой  необходимости ставить плагин, но на любом развитом блоге много неработающих ссылок. И тут не говориться про сайты людей которые комментируют. Имеется ввиду те ссылки, которые проставляются самим автором блога. Например когда вы ссылались на хороший пост, забавное изображение или еще на что-то, что показалось достойным, чтоб поделиться ссылкой с читателем. Вы уверены, что эти ссылки до сих пор рабочие? Broken Link Checker может вам в этом помочь: в фоновом режиме проверит ссылки блога и выведет свой отчет в админской консоли блога.

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

Выбор того, что надо проверять находится на владке  »Look For Links In«. Сначала отключите проверку ссылок в комментариях. Интересная возможность плагина в том, что он может проверять ссылки в произвольном поле запи. Зачем это надо? В некоторых шаблонах анонс записи сопровождается картиной-миниатюрой, при добавлении записи указывается ссылка на миниатюру картины в произвольном поле. Такие ссылки также могут «умирать», потому не будет лишним прописать их проверку, для этого нажмите «Configure» и укажите нужные вам поля:

2 Плагин для поиска неработающих ссылок в WordPress блоге.

Тут же в «Look For Links In» есть возможность указывать исключения для проверки. Например, плагин помечает найденные в этом блоге ссылки на localhost, как ошибочные. Также он может плохо понять php-код,  помечая неправильными ссылки, которые являются всего-лишь частью php-кода и в самом деле никуда не ведут.

Broken Link Checker проверяет HTML-ссылки на картинки и сайты, для включения возможности проверки ссылок, вставленных как простой текст или проверки вставленных видео-роликов нужно купить Proверсию. Но, по правде говоря, такие опции могут понадобиться разве что в видео-блоге, а для остальных  хватает и бесплатной версии плагина.

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

Для открытия списка неработающих ссылок необязательно заходить в настройки, ссылка список дублируется в «Инструментах\Неправильные ссылки«.

Автор плагина: Janis Elsts
Страница плагина: http://wordpress.org/extend/plugins/broken-link-checker/

Статья перепечатана отсюда: http://www.wordpressplugins.ru/critical/broken-link-checker.html

Проверяем файлы на заразность сразу множеством антивирусов

Современная жизнь тесно связана с интернетом и компьютерами. На сегодня самая популярная ОС это Windows. Отсюда вывод: современная жизнь человека тесно связана с компьютерными вирусами. Конечно, есть заслужившие доверие антивирусы, при этом некоторые из них даже бесплатны для домашнего использования. Бывает что хочется лишний раз убедиться в том что тот антивирус, который просканировал подозрительный файл, не ошибся и отдать этот файл на съедение другим популярным и известным антивирусам. Но не устанавливать же себе все эти антивирусы?  Для таких случаев есть хорошая возможность сделать процедуру проверки файла разными антивирусами удобной.

virus total Проверяем файлы на заразность сразу множеством антивирусов

Как видите маленькая (80KB) утилитка VirusTotal Uploader добавляет команду в контекстное меню проводника. Очень похоже на стационарный антивирус =)

Утилитка отправляет указанный файл на сервер VirusTotal, где он и проверяется разными антивирусами.

VirusTotal Uploader