вторник, 27 мая 2014 г.

Linux: RDP через SSH

Дано:
1) Сервер my-rdp-server во внешнем инете, доступный по RDP;
2) Домашний компьютер my-ssh-server, доступный по ssh;
3) Корпоративный http-прокси с ntlm-авторизацией;
4) Рабочая станция с линуксом и программой rdesktop.
Проблема следующая: как попасть на сервер my-rdp-server с рабочего компьютера?

Решение:
1) поднимаем cntlm
2) пускаем ssh через этот самый cntlm (как это сделать, см., например, тут)
3) поднимаем ssh-туннель командой:
ssh -N -f -L 3389:my-rdp-server:3389 my-login@my-ssh-server
4) цепляемся к туннелю командой:
rdesktop -g 1024x720 localhost:3389

Литература:
man ssh
http://rus-linux.net/MyLDP/sec/SSH-Tunneling.html

воскресенье, 25 мая 2014 г.

Linux: организуем proxy при помощи SSH

Дано:
1) Корпоративный http-прокси с ntlm-авторизацией;
2) Рабочая станция с линуксом;
3) Домашний компьютер my-ssh-server, доступный по ssh.
Проблема следующая: как гулять по интернету с рабочего компьютера так, чтобы не сильно светиться на корпоративном прокси?

Решение:
1) поднимаем cntlm
2) пускаем ssh через этот самый cntlm (как это сделать, см., например, тут)
3) поднимаем socks-прокси командой:
ssh -N -f -D localhost:12345 my-login@my-ssh-server
4) прописываем localhost:12345 в качестве socks4-сервера в своём браузере.

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

суббота, 24 мая 2014 г.

TrueCrypt: кодировка

В общем, есть некий том (или как его там правильно, криптоконтейнер), который был создан под Windows, содержит файловую систему fat-32 и файлы с папками, названные по-русски. При попытке смонтировать этот том под убунтой вместо кириллических имен получаются знаки вопроса. Чтобы это победить, нужно при подключении в Mount options (это в окне ввода пароля кнопка "Options >") указать:
iocharset=utf8

четверг, 15 мая 2014 г.

Slackware: выставить разрешение 1280x1024 на GF9500GT + SyncMaster 913n

В один прекрасный момент захотелось на своей Slackware 14.0 x64 устроить разрешение 1280x1024. Да, времена меняются - помнится, я совсем недавно добивался своего любимого 800x600, потом 1024x768... Теперь вот это.

В общем, всё оказалось просто:

1. Вышел из иксов (т.к. они у меня запускаются не автоматически, это было совсем просто. В противном случае там какие-то сложности)

2. Установил драйвер NVIDIA-Linux-x86_64-325.15.run командой:
sudo sh NVIDIA-Linux-x86_64-325.15.run
Он там чего-то там поругался, поотключал, попросил перезагрузиться, продолжил, сконфигурировал, и... визуально ничего не поменялось. Только добавилась прикольная команда: nvidia-settings, в которой можно посмотреть всякие настройки видеокарты.

3. В созданном на предыдущем шаге /etc/X11/Xorg.conf в разделе "Monitor" прописал подсмотренные где-то в инете строки:
Section "Monitor"
    ....
    VertRefresh 40-90
    HorizSync   30-81
    ....
EndSection

4. Запустил xfce обратно командой:
nohup startxfce4 &

И вот тогда уже, наконец смог в меню "Настройки" -> "Дисплей" поставить нужное мне разрешение экрана.

пятница, 9 мая 2014 г.

Xubuntu: обновился до 14.04

От нечего делать решился обновиться с 13.10 до 14.04... Это просто какой-то праздник. По ощущениям слетело всё.

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

Во-вторых, начала глючить графика. Разрешение экрана перескочило с 1024x768 в сторону 1280x1024 и обратно ни в какую. Вылечилось установкой пакета nvidia-331. После этого комп свихнулся окончательно и стал просто виснуть в случайные моменты времени. Например, при попытке перетащить работающий mplayer на другой рабочий стол экран начинает мелко подёргиваться, и изображение зависает. Установил пакет nvidia-304, пока это прекратилось.

В-третьих, слетела таблица кодов клавиш в rdesktop. Ну, с этим я когда-то разбирался, так что удалось справиться быстро.

В-четвертых, открытие файла SWF с локального компьютера в FireFox-e приводит к неконтролируемому размножению пустых вкладок, и браузеру резко становится не до меня. Пришлось устанавливать Linux Flash Player 11.2 Projector, который "из коробки" тоже не заработал, там нужно в файле flashplayer-installer закомментировать строки 134-151 (проверку на glibc и i386) и доустановить пакеты:
sudo apt-get install libnss3:i386 libgtk2.0-0:i386 curl:i386

И, наконец, при установках что-то часто стала выдаваться ошибка загрузки пакета "хэш-функция не совпадает", и приходится запускать процедуру установки повторно. Это уже вообще ни в какие ворота, но пока неясно, как с этим быть.

вторник, 6 мая 2014 г.

mailto: Некоторые тонкости

Как известно, если в html-коде в атрибуте href какой-либо ссылки написать конструкцию вида mailto:xxx@yyy.zzz, то при клике на эту ссылку вызывается почтовик по умолчанию, и создается пустое сообщение для получателя xxx@yyy.zzz

Менее известно, что эта конструкция допускает параметры (cc, bcc, subject, body), например mailto:xxx@yyy.zzz?subject=hello%20world

А вот с русскими буквами есть небольшая проблема. Оказалось (связка Internet Explorer 8+ и Outlook Express/Outlook 2007), что проканывает такая конструкция: mailto:xxx@yyy.zzz?subject=Привет%20мир

Но особое удивление у меня вызвало интересное ограничение на длину body. Почему-то для работы связки IE9 + Outlook2007 эта длина должна быть меньше 255 символов! Иначе при клике просто открывается about:blank.

А тут - полезная ссылка

четверг, 10 апреля 2014 г.

MSSQL: Функция для транслита

Попытался тут давеча использовать SOUNDEX и DIFFERENCE для поиска похожих фамилий. Безуспешно - выяснилось, что эти функции с кириллицей не работают. Возникла идея транслитерировать фамилии и уже затем скармливать их этим функциям. Эксперимент показал, что всё равно получается не очень хорошо, так что идея умерла. А функция транслитерации (по стандарту ГОСТ Р 52535.1-2006) осталась, вот:
CREATE FUNCTION TranslitString(@string varchar(256)) RETURNS varchar(256)
AS BEGIN

DECLARE @return varchar(256)

SET @return = UPPER(@string)
SET @return = REPLACE(@return, 'АЙ', 'AY')
SET @return = REPLACE(@return, 'ЕЙ', 'EY')
SET @return = REPLACE(@return, 'ИЙ', 'IY')
SET @return = REPLACE(@return, 'ОЙ', 'OY')
SET @return = REPLACE(@return, 'УЙ', 'UY')
SET @return = REPLACE(@return, 'ЫЙ', 'Y')
SET @return = REPLACE(@return, 'ЭЙ', 'EY')
SET @return = REPLACE(@return, 'ЮЙ', 'YUY')
SET @return = REPLACE(@return, 'ЯЙ', 'YAY')
SET @return = REPLACE(@return, 'А', 'A')
SET @return = REPLACE(@return, 'Б', 'B')
SET @return = REPLACE(@return, 'В', 'V')
SET @return = REPLACE(@return, 'Г', 'G')
SET @return = REPLACE(@return, 'Д', 'D')
SET @return = REPLACE(@return, 'Е', 'E')
SET @return = REPLACE(@return, 'Ё', 'E')
SET @return = REPLACE(@return, 'Ж', 'ZH')
SET @return = REPLACE(@return, 'З', 'Z')
SET @return = REPLACE(@return, 'И', 'I')
SET @return = REPLACE(@return, 'Й', 'I')
SET @return = REPLACE(@return, 'К', 'K')
SET @return = REPLACE(@return, 'Л', 'L')
SET @return = REPLACE(@return, 'М', 'M')
SET @return = REPLACE(@return, 'Н', 'N')
SET @return = REPLACE(@return, 'О', 'O')
SET @return = REPLACE(@return, 'П', 'P')
SET @return = REPLACE(@return, 'Р', 'R')
SET @return = REPLACE(@return, 'С', 'S')
SET @return = REPLACE(@return, 'Т', 'T')
SET @return = REPLACE(@return, 'У', 'U')
SET @return = REPLACE(@return, 'Ф', 'F')
SET @return = REPLACE(@return, 'Х', 'KH')
SET @return = REPLACE(@return, 'Ц', 'TC')
SET @return = REPLACE(@return, 'Ч', 'CH')
SET @return = REPLACE(@return, 'Ш', 'SH')
SET @return = REPLACE(@return, 'Щ', 'SHCH')
SET @return = REPLACE(@return, 'Ы', 'Y')
SET @return = REPLACE(@return, 'Э', 'E')
SET @return = REPLACE(@return, 'Ю', 'IU')
SET @return = REPLACE(@return, 'Я', 'IA')
SET @return = REPLACE(@return, 'Ь', '')
SET @return = REPLACE(@return, 'Ъ', '')

RETURN @return

END