Архив метки: linux

Подключение через VPN в Debian/Ubuntu Linux

Когда у меня еще не было роутера с точкой доступа wi-fi и кабель от провайдера подключался напрямую к компьютеру, мне пришлось настраивать vpn соединение с провайдером, чтобы проходить авторизацию и получать доступ в интернет. Привожу свой опыт того, как настроить openvpn соединение в Debian Linux (с провайдером Корбина).

Для начала нужно установить пакеты ppp и pptp, затем отредактировать файл /etc/ppp/, в котором хранятся настройки vpn-подключения:

noauth
nobsdcomp
nodeflate
# восстанавливать соединение после обрыва
persist

Следующий шаг — внести данные для аунтефикации в файл /etc/ppp/chap-secrets в виде: login имя_подключения password *, где логин и пароль — соответственно те, что выдал провайдер, а имя подключения — любое на свой вкус. Стоит обратить внимание на тот факт, что пароль будет сохранён в открытом виде, а значит имеет смысл изменить права доступа к файлу на 600 для затруднения доступа к нему посторонних: sudo chmod 600 /etc/ppp/chap-secrets.

Далее нужно создать конфигурационный файл с настройками VPN непостредственно для корбины, например так: sudo mkdir /etc/ppp/peers и затем sudo touch /etc/ppp/peers/corbina. Настройки для корбиновского vpn указать следующим образом (имя пользователя и название подключения должны совпадать с указанными выше в файле /etc/ppp/chap-secrets):

pty "pptp --nolaunchpppd"
сonnect /bin/true
name имя_пользователя
remotename название_подключения
file /etc/ppp/
ipparam corbina

Теперь можно включать/выключать впн-соединение с корбиной командами pon corbina и poff corbina соответственно. В принципе на этом настройка VPN подключения под Linux может считаться законченой, все должно работать. Если происходят обрывы соединения — можно дополнительно прописать файл с маршрутами для Корбины /etc/ppp/ip-up.d/corbina:

#Маршруты до VPN
route add -host 195.14.40.6 gw шлюз
route add -host 195.14.40.7 gw шлюз
route add -host 195.14.40.8 gw шлюз
route add -host 195.14.40.9 gw шлюз
route add -host 195.14.40.13 gw шлюз
route add -host 195.14.40.14 gw шлюз
route add -host 195.14.40.15 gw шлюз
#Маршруты до DNS
route add -host 195.14.50.1 gw шлюз
route add -host 195.14.50.3 gw шлюз
route add -host 195.14.50.21 gw шлюз
#Маршруты до локальных ресурсов сети
route add -net 10.0.0.0 netmask 255.0.0.0 gw шлюз
route add -net 85.21.79.0 netmask 255.255.255.0 gw шлюз
route add -net 85.21.90.0 netmask 255.255.255.0 gw шлюз
route add -host 85.21.52.254 gw шлюз
route add -host 195.14.50.26 gw шлюз

route del default
route add default dev ppp0

И затем добавить адреса DNS-серверов в /etc/dns:

nameserver 195.14.50.1
nameserver 195.14.5021

Имена шлюзов и актуальные адреса DNS-серверов следует уточнить у провайдера.

Бесплатный редактор PDF для Windows и Linux — pdftk

Несколько недель назад понадобилось мне кое-что поменять в чертежах, которые были в виде pdf-альбома представлены. Файл pdf не был закрыт от редактирования к слову. Казалось бы — задача примитивная, но не тут-то было. Перепробовал около десятка различных бесплатных и условно-бесплатных pdf-редакторов — всё без толку. Некоторые «редакторами» только называются — на деле не могут вообще ничего. Другие вроде позволяют изменения внести, но лепят всюду свои надписи типа «отредактировано в таком-то pdf редакторе», что мне тоже совсем ни к чему. А чем можно банально разбить альбом на страницы — я вообще не понял.

Помощь, как часто бывает, пришла из мира open source — была найдена бесплатная консольная утилита для редактирования PDF — pdftk (кроссплатформенная, под Linux и Windows точно есть), позволющая редактировать pdf в широких пределах. Для любителей графики — и под Linux, и под Window у pdftk есть графические интерфейсы (GUI). Меня же как раз больше привлекла консольность — можно в пакетном режиме обрабатывать сразу несколько файлов. Ей я вырезаю или вклеиваю нужные листы в альбомы чертежей, а сами изменения делаю в обычно графическом редакторе (чаще в сего — в Gimp).
Читать далее Бесплатный редактор PDF для Windows и Linux — pdftk

TOR NEWNYM — автоматическая смена IP в TOR

Высокие технологии

Время от времени использую в качестве прокси сеть TOR, недавно вот пригодилось при проверке готовности загранпаспорта через интернет, когда постоянно получал ошибку о превышении числа запросов к серверу — пришлось сделать макрос на lynx, который через TOR периодически проверял готовность загранпаспорта (Автоматическая проверка готовности загранпаспорта). Удобство TOR не только в том, что это рабочий бесплатный прокси (с шифрованием трафика кстати) — TOR это сеть и прокси-серверы, а значит и IP-адреса, можно легко менять при необходимости, даже автоматически.

Под Windows сменить прокси и IP-адрес совершенно несложно — в составе дистрибутива TOR для Windows присутствует графическая оболочка Vidalia и для получения нового IP-адреса достаточно нажать в ней кнопку «Новый Ним / Новая личина / New NYM«. Под Linux всё не так очевидно, хотя тоже несложно, как выяснилось — сделать автоматическую смену IP в TOR можно при помощи простого скрипта.

Читать далее TOR NEWNYM — автоматическая смена IP в TOR

rsync — отличная замена scp!

Довольно смешно, но впервые воспользовался rsync только три недели назад. До этого пытался один раз, не разобрался с ключами и забросил. Зря, как оказалось!
Главное достоинство rsync по сравнению с scp — показывает прогресс загрузки. Также рекурсивно загружает директории. Немаловажно — поддерживает докачку в обе стороны.

Попользовался и сделал себе для bash алиас в bashrc [cc lang=»bash» inline=»true»]rsync=»rsync -P»[/cc], теперь всё время его использую для загрузки на хостинг. Авторизацию по ключам тоже настроил, так что можно делать бэкапы.
Основной синтаксис вызова: [cc inline=»true»]rsync логин@хост:/откуда/что логин@хост:/куда/что[/cc]. В случае локальной машины логин и хост указывать естественно не нужно, достаточно только пути.
Основные опции, которыми пользуюсь: -P — выводит прогресс-бар, -r — рекурсивная загрузка.

Если кто ещё тоже до сих пор не знаком с rsync и пользуется scp/sftp — самое время попробовать!

Настройка Rxvt через Xdefaults

Настройки Rxvt черезе Xdefaults

С некоторых пор стал пользоваться эмулятором терминала urxvt (unicode-версия rxvt) вместо gnome-terminal. Причина простая — на старом ноуте разница в скорости заметна и эта разница — в пользу urxvt (особенно если запускать его при старте GUI в режиме демона).

В остальном отличий в общем-то нет, urxvt тоже поддерживает именованные вкладки (табы), обработку гиперссылок, копирование и вставку мышью. Кроме того, он имеет поиск по выводимым в терминал данным (по Alt+S — очень удобно) и поддерживает цветной вывод man-страниц. Также urxvt существует и для cygwin.

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

Читать далее Настройка Rxvt через Xdefaults

BASH [born again shell] — оболочка командной строки

Краткая история Bash

bash, bashrc, настройка bash linux

bash представляет собой модернизированную и усовершенствованную версию оболочки командной строки Bourne shell. В системах семейства *NIX bash на данный момент является одной из наиболее популярных и распространённых оболочек, на многих таких ОС (и например в эмуляторе unix-подобного окружения Cygwin) эта оболочка предустановлена.

Корнями bash уходит к оболочке sh за авторством Стивена Борна, разработанной им в 1978 г. и усовершенствованной в 1987 году Брайаном Фоксом. Дословно Bash можно расшифровать как Biurne-again-shell или «Ещё одна оболочка Борна». Также фамилия Борн созвучна со словом born (родившийся), что порождает альтернативное название: «вновь рождённая оболочка».

Порядок запуска Bash

При запуске bash, во-первых, считывает и исполняет команды из основного файла профиля /etc/profile (при условии существования такого файла). Затем происходит чтение файлов из домашней директории пользователя: $HOME/.bash_profile, $HOME/.bash_login, и $HOME/.profile и исполнение записанных в них команд. В момент завершения работы при выходе из оболочки вызываются команды из файла $HOME/.bash_logout.

Помимо перечисленных выше файлов, bash также распознаёт команды, описанные в так называемом дот-файле (или .rc-файле) $HOME/.bashrc (примеры — файлы .vimrc и .wgetrc) Обычно здесь содержатся пользовательские настройки внешнего вида оболочки, переопределения пользовательских команд и т.п. Пользовательские функции для bash в целях удобства восприятия полезно выносить в отдельный файл (например $HOME/.bash_function), который затем подключать из .bashrc командой source (source $HOME/.bash_function).

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

bashrc — основной файл настроек

Мой файл bashrc (открыть на новой странице) содержит основные настройки оболочки — алиасы, сохранение истории команд, вид приглашения командной строки, настройки вывода некоторых команд и т.п. Все пользовательские функции вынесены в отдельный файл .bash_functions, подгружаемый из .bashrc. Локальные настройки для разных машин (переменные окружения, цвета приглашения командной строки) также подгружаются из отдельных внешних файлов .bash_local.

bash_functions — функции оболочки

bash_functions (открыть на новой странице) — содержит определения пользовательских функций и подгружается по вызову из .bashrc.

bash_usage — справка по использованию bash

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

Остальные настройки оболочки, подключаемые в bashrc

Больше конфигов? Легко!

Примеры моих конфигурационных файлов для других программ можно найти на странице Конфиги / dotfiles

Автоматическая проверка готовности загранпаспорта

Гос. органы идут в массы, постоянно вводят новые, удобные для граждан (по крайней мере на первый взгляд), формы взаимодействия.
К такому нововведению можно отнести и сервис проверки готовности загран. паспорта на сайте УФМС, расположенный по адресу http://www.ufms.spb.ru/checkzp.php. С помощью сервиса можно быстро узнать, готов ли загран. паспорт или еще находится в процессе оформления, введя в поля формы данные своего гражданского паспорта (также доступна проверка по данным из свидетельства о рождении).

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

Но раз УФМС не идет на встречу гражданину, значит гражданин должен сам облегчить себе жизнь. Я решил сделать это используя три простых и доступных инструмента: консольный браузер lynx (для отправки данных формы POST-запросом), планировщик заданий cron (для периодической проверки готовности загран. паспорта) и утилиту поиска по тексту grep (для поиска нужной строки в дампе страницы), для чего написал простенький скрипт, который закинул в cron. Скрипт с указанным в кроне периодом проверяет готовность моего паспорта и присылает мне отчет на электронную почту (которая указана в настройках крона).


#!/bin/sh
echo "checkser=p&seriap=XXXX&numberp=YYYYYY&submit=%CF%F0%EE%E2%E5%F0%E8%F2%FC" | lynx -post_data -dump http://www.ufms.spb.ru:80/checkzp.php | grep 'Ваш заграничный'

Вместо ХХХХ нужно подставить серию своего гражданского паспорта (макс. 7 символов, что, как я понимаю, позволяет использовать серии старых паспортов, с римскими цифрами), а YYYYYY заменить соотв. на его номер (макс. 6 символов). Если запускать скрипт из-под английской локали, то шаблон для grep надо изменить с ‘Ваш заграничный’ на ‘Vash zagranichnyj’, поскольку скрипт отдаст страницу в латинице.

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

Дополнение:
Если сайт проверки готовности загранника постоянно «радует» сообщением о превышении числа запросов, можно пропустить их через tor. В этом случае удобно будет воспользоваться другим способом отправки форм POST-методом из lynx — записать автоматический скрипт, который и будет осуществлять проверку.

Посутпаем следующим образом:

  1. вызываем lynx с ключем cmd_log=имя_файла_куда_сохранить_скрипт:
    lynx -cmd_log=script_name http://www.ufms.spb.ru:80/checkzp.php,
    вводим серию и номер паспорта, отправляем запрос, дожидаемся загрузки страницы с ответом и закрываем браузер.
  2. в дополнение к tor устанавливаем torsocks — утилита несколько сырая, но дело своё делает исправно, перенаправляя траффик на tor (можно естественно использовать любой понравившийся прокси, указав его в качестве умолчального export http_proxy="address:port").
  3. вызываем lynx через torsocks или выбранный прокси с указанием использовать для автоматизации отправки данных формы записанный ранее файл скрипта с передачей результатов работы на разбор в grip:
    torsocks lynx -cmd_script=script_name http://www.ufms.spb.ru:80/checkzp.php | grep «Ваш заграничный»

Всё, автоматизация проверки готовности заграничного паспорта успешно проведена! Пока скрипт работает за человека, человек может расположиться у телевизора и спокойно отдохнуть :)

cgroups — повышаем отзывчивость Linux

С недавних пор по интернету ходит новость про чудо-патч для ядра Linux, сильно уменьшающий время отклика системы. Однако ядерный патч — есть ядерный патч — для его использования нужно пересобирать ядро, что не каждому захочется делать (мне вот например не хочется). Между тем, уменьшить время отклика и повысить комфортность работы с ОС было бы не плохо.

И простой способ ускорить работу Linux не заставил себя ждать (следует заметить, что этот способ окажет влияние только на процессы, запущенные в текущей сессии оболочки). Появился он в ходе обсуждения разработчиками ОС вышеупомянутого патча для ядра. Получить ускорение можно, всего-лишь внеся несколько строк кода в .bashrc и выполнив пару команд от имени суперпользователя!

Читать далее cgroups — повышаем отзывчивость Linux

Создание инфракрасной камеры ночного видения из веб-камеры

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

Что такое инфракрасная камера ночного видения

Фактически любая цифровая камера может выступать в качестве ЭОП (электронно-оптического преобразователя) для прибора ночного видения (ПНВ) нулевого поколения (в таких ПНВ используется активная ИК-подсветка местности), поскольку сами матрицы камер воспринимают не только видимый, но и ИК спектр. Отсекается «лишний» свет при помощи светофильтров (в данном случае — ИК фильтр) и делается это для того, чтобы выдаваемое камерой изображение соответствовало воспринимаемому человеческим глазом. К слову, в дешевых камерах ИК-фильтр слабый или может вовсе отсутствовать — для проверки можно посветить пультом ДУ например в камеру мобильного телефона. Следовательно, демонтировав ИК-фильтр можно из обычной веб-камеры сделать камеру ночного видения, заодно повысив общую чувствительность веб-камеры и избавившись от зашумлённости изображения в условиях недостаточного освещения

Читать далее Создание инфракрасной камеры ночного видения из веб-камеры

Видеорегистрация + видеонаблюдение для дома в Linux

Надумал и я побаловаться созданием простой и дешевой домашней системы видеонаблюдения и видеорегистрации (сподвигла меня на это статья из журнала «Хакер»). Естественно, что идея использовать веб-камеру и домашний компьютер в данном случае выглядит наиболее привлекательной.

Веб-камера для Linux

Свой выбор веб-камеры для Linux я остановил на Logitech Webcam C120 по ряду причин: во-первых, она отличается приемлемым качеством картинка (изображение с камер Genius аналогичного ценового диапазона меня не впечатлило совсем), во-вторых — камера работает по протоколу UVC, что означает её поддержку ядром Linux «из коробки» (штатно поддержка добавлена в ядро Linux с версии 2.6.26, также в Linux заработают веб-камеры, управляемые драйвером GSPCA) и в-третьих — эта веб-камера стоит всего 500 рублей и её мне не жалко разобрать с целью создания из неё ИК-камеры (камеры «ночного видения»).

Читать далее Видеорегистрация + видеонаблюдение для дома в Linux