Содержание статьи
Q: Хочу расшарить инет с ноутбука под управлением Ubuntu. Создаю точку доступа через Network Manager, но ни Android-смартфон, ни планшет к ней не могут подключиться. В чем дело?
A: Дело в том, что Network Manager создает так называемую ad hoc сеть, с которой не умеет работать Android (да и iOS, кстати, тоже). Нам нужна инфраструктура hotspot. На XDA естьдетальное описание того, как такую инфраструктуру можно поднять, не удаляя Network Manager. На базе этого туториала написана утилита, которая в автоматическом режиме поднимает hotspot точку доступа, — ap-hotspot. Установить ее можно так:
$ sudo add-apt-repository ppa:nilarimogard/webupd8
$ sudo apt-get update
$ sudo apt-get install ap-hotspot
Теперь для поднятия точки достаточно выполнить
$ sudo ap-hotspot start
Кроме start, также доступны команды stop, restart и configure. Стоит отметить, что не все сетевые карты поддерживают режим hotspot, — утилита известит тебя в таком случае.
Q: Как правильно посчитать, сколько времени уйдет, чтобы намайнить 1 bitcoin?
A: Можно воспользоваться специальным bitcoin-калькулятором, который доступен по адресу. Количество Mhash/s для твоей видеокарты/процессора/Bitcoin-процессора можно узнать наwiki-странице. Что интересно, калькулятор способен вычислить и стоимость потраченного на майнинг электричества.
Q: Нужно обеспечить высокую безопасность сайта. Что посоветуешь?
A: Думаю, о таких очевидных вещах, как защита от SQL-инъекций, тщательная фильтрация входных данных, защита от XSRF и так далее, читателю ][ говорить не нужно. Дам несколько менее тривиальных советов:
- Используй SSL везде, где это возможно: никакого HTTP — только HTTPS. Настроить SSL не очень сложная задача, но настроить его правильно и безопасно — задача похитрее. Сервис Qualys SSL server test поможет тебе проверить качество SSL на своем сервере (смотри скриншот) и укажет на ошибки. Также полезно использовать HSTS (HTTP Strict Transport Security) — механизм, сообщающий браузеру использовать для взаимодействия с сайтом только HTTPS. Подробнее об этом читай здесь.
- Для предотвращения XSS, кроме стандартных техник, используй также Content security policy — политику безопасности, позволяющую ограничить выполнение сторонних скриптов. При правильной настройке шансы на проведение XSS-атаки стремятся к нулю.
- Предоставь пользователям двух/мультифакторную аутентификацию.
- Подумай, нет ли уязвимостей в механизме аутентификации. Особое внимание удели функциям напоминания пароля и «Запомнить меня».
Хакер #176. Анонимность в интернете
Q: Как скачать файл из интернета сразу в облако, не сохраняя сначала на компьютер?
A: Недавно я наткнулся на простейшее онлайн-приложение, которое позволяет легко сохранять файлы напрямую в облачные хранилища. Примечательно, что не нужно устанавливать никаких расширений, не нужно регистрироваться, надо просто указать URL нужного файла и выбрать облако, то есть можно легко использовать с телефона или планшета. В качестве доверенного «посредника», который собственно и работает с твоими облаками, используется API filepicker.io.
Q: У меня Nexus 7 3G. С него можно отправлять SMS, но для этого я должен использовать разные сторонние приложения, которые либо слишком наворочены, либо неюзабельны. Хочу стандартное SMS-приложение. Как установить?
A: Для этого нужно взять (например, скачать с XDA) «выдернутое» из любого аппарата приложение mms.apk и поместить его в /system/app любым доступным способом (нужен root), выставив при этом права rw-r--r-- (Root Browser — неплохой вариант, так как задаст нужные права автоматом). После перезагрузки устройства нативное SMS-приложение будет установлено.
Q: На протяжении всего дня мне требуется SSH-доступ к серверу. Я работаю с ноутбука, часто отправляю его в сон, чтобы экономить батарею. Так вот, после выхода из сна сессия разрывается, и это раздражает. Что порекомендуешь?
A: Действительно, жизнь SSH-сессии оборвать очень легко, особенно это касается работы с ноутбука: уход в сон, плохое подключение или смена Wi-Fi-сети — все это убьет соединение. За исправление недостатков SSH взялись профессора из Массачусетского технологического института. Результатом их работы стало приложение под названием Mosh. Принцип работы Mosh существенно отличается от SSH и Telnet. Создатели разработали свой протокол SSP (State Synchronization Protocol), суть работы которого заключается в синхронизации «состояний» терминалов клиента и сервера. Еще одна особенность Mosh в том, что в качестве транспортного протокола используется UDP. Благодаря этому Mosh позволяет работать в условиях очень плохого соединения, а также менять Wi-Fi точку доступа на ходу или даже переключаться на 3G-соединение, уходить в сон, при этом не разрывая сессии. Доступен под Linux, OS X, Android. Рекомендую посмотреть видеопрезентацию на странице проекта.
Работает ли TRIM на моем SSD в Windows?
A: Для проверки можешь воспользоваться утилитой fsutil:
fsutil behavior query DisableDeleteNotify
Если результатом выполнения команды будет 0, значит, TRIM включен. Но эта команда лишь показывает, работает ли TRIM на уровне софта, то есть посылает ли ОС специальные TRIM-команды контроллеру SSD. Это конечно хорошо, но если ты хочешь на 100% убедиться, что TRIM работает (исключить дефект прошивки контроллера, косяки драйвера и так далее), то для этого воспользуйся утилитой TRIMCheck. Утилита работает по очень простому принципу: при первом запуске на диск записывается порция данных, при этом сохраняются адреса, в которые эти данные были записаны. После небольшой паузы нужно запустить утилиту еще раз. В этот раз она проверяет, лежат ли по сохранным ранее адресам эти данные (чтобы начать проверку, сначала удали JSON-файл из папки с утилитой). Если данных нет, значит, контроллер получил и корректно обработал команды TRIM. Если данные еще лежат, это не всегда говорит о том, что у тебя проблемы с TRIM: контроллер SSD не обязан сразу же обрабатывать команду. Попробуй перезагрузить компьютер; если не поможет, то попробуй просто подождать. Но все же если данные лежат нетронутыми более суток, то, скорее всего, TRIM на твоем SSD работает некорректно. Возможно, что-то с драйверами или с прошивкой SSD. Для начала попробуй обновить драйвер SATA или же переключиться на стандартный драйвер от MS. Если же это не помогает, пробуй обновить прошивку SSD.
Q: Можно ли из VBS двигать мышью? Если да, то как?
A: Из чистого VBS двигать мышью, конечно же, нельзя. Хотя можно воспользоваться сторонними средствами. Например, можно заюзать AutoItX3 — «библиотечную» версию AutoIt, предоставляющую функционал последнего через ActiveX/COM-интерфейс. Подробное описание библиотеки можно посмотреть на страничке, а скачать DLL’ку весом всего лишь 300 Кб — здесь. Чтобы использовать библиотеку, сначала нужно зарегистрировать ее в системе. Для этого скопируй DLL-файл в system32 и выполни
regsvr32 AutoItX3.dll
Если библиотека была успешно зарегистрирована, можешь воспользоваться ею для перемещения мышки, например так:
Set oAutoIt = WScript.CreateObject("AutoItX3.Control")
oAutoIt.MouseMove 0,0 'перемещать медленно
oAutoIt.MouseMove 150, 150, 0 'мгновенно
Q: Экспериментировал с различными DNS-серверами. Скорость ответов от DNS-сервера, предоставляемого провайдером, оказалась наивысшей, но я заметил, что все-таки с публичным DNS от Google некоторые страницы загружаются быстрее. Почему так происходит?
A: DNS-серверы от Google (а еще и OpenDNS) участвуют в программе The Global Internet Speedup. Многие зонные данные продублированы на серверах в разных регионах мира для ускорения доступа к ним. Суть программы как раз и заключается в том, чтобы на основе физического местоположения пользователя, инициировавшего запрос, определять сервер, который находится ближе всего к юзверю и который можно использовать для получения необходимых данных. Зачастую провайдеры не так быстро внедряют подобные технологии, за счет чего ты можешь наблюдать некоторое ускорение работы, используя сторонний сервер. Кстати, возможно, тебе будет интересна утилита Namebench (доступна для Windows, Linux и OS X). Это своего рода бенчмарк DNS, который сравнит скорость твоего текущего DNS-сервера с большим количеством публичных и выдаст тебе подробный отчет и рекомендации.
Q: 64-разрядная Windows 7 отказывается грузить неподписанные драйверы, а подписывать каждый раз неудобно. Нагуглил, что поможет включение режима отладки ядра. Так и сделал: bcdedit -debug on
, затем перезагрузился. После этого винда не грузится даже в безопасном режиме. Как починить?
A: Первое, что приходит в голову, — воспользоваться консолью восстановления. Но есть способ проще и намного быстрее. Во время загрузки винды нажимай — это откроет меню настройки параметров загрузки Windows. Все, что тебе теперь нужно сделать, — удалить ключ /DEBUG (смотри скриншот) и нажать . Действует это только для текущей загрузки, то есть следующая загрузка будет снова с включенным режимом отладки, если ты, конечно, не отключишь его:
bcdedit -debug off
Q: На работе используется SVN-сервер. Как убедить начальство перейти на Git? Просто я уже привык к плюшкам этой системы.
A: Возможно, переубеждать и не придется. Рекомендую попробовать в действии такую штуку, как git-svn. Этот инструмент является двухсторонним мостом между Git и SVN. Ты можешь использовать локально Git и все его возможности, а потом сохранять результаты работы на SVN-сервере, не нарушая совместимости. Кстати, можно подсадить на git-svn и коллег, таким образом увеличивая шансы перехода твоей компании на Git. Подробнее о настройке инструмента читай здесь. Если ты работаешь под Windows, твой git-svn является частью проекта msysGit. Кроме того, можно просто установить git-svn на Cygwin.
Экранная клавиатура vs кейлоггер?
Q. Если я буду вводить пароли через экранную клавиатуру, значит ли это, что мои пароли не попадут в лапы кейлоггеров?
A.
С одной стороны, использование экранной клавиатуры действительно оправданно. Большинство кейлоггеров не могут перехватить нажатия на виртуальной клавиатуре, именно поэтому часто можно увидеть экранную клавиатуру для ввода, например, CVV/CVC2-кода карты Visa.
B.
Современные кейлоггеры давно научились обходить экранные клавиатуры. Например, они могут делать скриншоты по клику мышью. В этом плане использование экранной клавиатуры даже вредно, так как создает ложное чувство безопасности.
Q: Можно ли добавить в cron задание, которое запускало бы определенную программу каждые 5 секунд?
A: Средствами cron так сделать нельзя — минимальный интервал времени, которым оперирует cron, составляет одну минуту. При необходимости можно запускать нужную задачу из shell-скрипта, используя бесконечный цикл и sleep:
while true
do
/home/xakep/myprogram
sleep 5
done
Чтобы выполнение продолжалось в фоновом режиме, даже после выхода пользователя из системы, запускай скрипт через nohup:
$ nohup ./every5seconds.sh &
Q: Нужна легковесная и быстрая БД. В какую сторону смотреть?
A: Рекомендую посмотреть в сторону in-memory баз данных, то есть баз данных, работающих в оперативной памяти. Такие БД чаще всего легковесные, ведь они не нуждаются в реализации кеша, полностью опираясь на кеш ОС. Среди такого рода БД хотелось бы выделить LMDB иFastDB.
"5 ШАГОВ": Безопасные бэкапы с duplicity в OS X и Linux
Необходимость в регулярных бэкапах очевидна и не вызывает сомнений. Очень удобно хранить резервные копии в облачных хранилищах. Конечно, учитывая недавнюю историю, связанную с NSA, ты можешь не доверять им важную информацию, но с утилитой duplicity ты будешь абсолютно спокоен за свои бэкапы. Почему? Потому что перед загрузкой на сервер она шифрует данные, используя GnuPG, а кроме того, это опенсорсный проект, и, соответственно, ты можешь проверить исходный код на наличие бэкдоров.
- Устанавливаем утилиту
Для OS X утилита доступна через Homebrew и MacPorts. Если MacPorts установлен, то установка duplicity сводится к выполнению в терминале команды
$ sudo port install duplicity
Для Ubuntu — устанавливаем через apt-get. Если будем бэкапить в Google Drive, то нужно также установить gdata-python-client. Для этого скачай последние исходники, разархивируй и выполни
$ ./setup.py install
- Создаем ключ
Duplicity использует GnuPG для шифрования. Соответственно, для того, чтобы начинать бэкапить, нужно сначала создать GnuPG-ключ:
$ gpg --gen-key
На всякий случай ключ нужно экспортировать:
$ gpg --export-secret-key -a > mykey.key
и сохранить его в надежном месте. Парольную фразу надо запомнить, иначе можешь потерять свои бэкапы.
- Собственно бэкапим
Бэкапить мы будем в Google Drive. Конечно же, двухфакторная аутентификация у нас включена, поэтому прежде всего нужно создать «пароль приложения». После того как пароль создан, для бэкапов нужно выполнить:
$ export PASSPHRASE="passphrasehere"
$ duplicity /home/user/ "gdocs://username:xxxx xxxx xxxx xxxx@gmail.com/backup"
где вместо passphrasehere подставь парольную фразу GnuPG-ключа, а вместо иксов — пароль приложения Google. Backup — папка Google Drive, где будет лежать бэкап.
- Автоматизируем
Duplicity отличается еще и тем, что применяет инкрементальные бэкапы (используется librsync). Но иногда нужно делать полные бэкапы (за это отвечает опция MARKDOWN_HASH2e4daccb0e580f048895ea75c10151bcMARKDOWN_HASH
), а старые данные удалять (MARKDOWN_HASH6c5160e24b856d8c2454281bd19ce291MARKDOWN_HASH
). Учитывая это, в cron добавляем примерно такой скрипт:
#!/bin/sh
$ export PASSPHRASE="passphrasehere"
$ duplicity --full-if-older-than 1M /home/user/ "gdocs:..."
$ duplicity remove-older-than 6M --force /home/user/ "..."
unset PASSPHRASE
exit 0
- Восстанавливаем данные
Невозможно восстановить файл, если такой уже существует, поэтому обычно файлы восстанавливают с другим именем или в другую директорию. Для восстановления папки нужно выполнить
duplicity "gdocs://username:xxxx xxxx xxxx xxxx@gmail.com/backup" /home/user
Кроме Google Drive, duplicity поддерживает много других удаленных файловых серверов и множество интересных опций. Для более подробной информации читай man’ы или же посети страницу проекта.