Показаны сообщения с ярлыком admin. Показать все сообщения
Показаны сообщения с ярлыком admin. Показать все сообщения

вторник, 27 декабря 2016 г.

SSH туннель между двумя узлами

Возникла необходимость организовать канал связи между двумя компьютерами из разных мест (work и home), между которыми есть интернет, но нет внешних ip и один из них (work) находится за http proxy.
Имеем: 
work - рабочая станция, выход в интернет через прокси (доступны порты 80 и 443)
vds - виртуальный сервер с внешним ip
home - домашняя рабочая станция, доступ в интернет посредством 4g модема без внешнего ip

Идея заключается в использовании vds в качестве промежуточного звена для связи work и home. Для этого пробрасываем обратный ssh туннеля с work на vds. Далее с home получаем доступ к work через vds.

Настройка.

vds

1. /etc/ssh/sshd_config
Port 443
sudo service sshd restart
Со стороны work открыты только 443 и 80 порты.
2. /home/vds_user/.ssh/config
Host localhost # for work pc over tunnel
   HostName localhost                                  Port 4321    IdentityFile ~/.ssh/work # ключи не обязательны, но очень удобны и безопасны

3. При разрыве соединения по ssh, например, из-за сбоя с интернетом, на стороне сервера остаются открытые сокеты. Виной тому настройки ssh по умолчанию, который ожидает восстановление связи. Но аutossh со стороны клиента work будет пытается создать новое соединение при обнаружении обрыва. Сделать это не сможет из-за того, что на сервере порты заняты предыдущим подключением. Поэтому необходимо разрывать соединение ssh на сервере, чтобы освободить порты. Указываем серверу ssh разрывать соединение в случае бездействия или отсутствия клиента: в файле /etc/ssh/sshd_config устанавливаем параметры
Protocol 2
TCPKeepAlive yes
ClientAliveInterval 10
ClientAliveCountMax 2

sudo service sshd restart


work

1. /etc/ssh/sshd_config
Port 4321
sudo service sshd restart
2. /home/work_user/.ssh/config
Host vds
  HostName VDS_IP_ADDRESS
  Port 443
  ProxyCommand corkscrew PROXY_HOST PROXY_PORT %h %p /home/work_user/.ssh/corkscrew_proxy_auth # команда для подключения по ssh через http proxy
  IdentityFile ~/.ssh/keys/vds # ключи не обязательны, но очень удобны и безопасны

ps создать пару ключей можно командой ssh-keygen -t rsa

скопировать на сервер: ssh-copy-id -i KEY vds_user@vds

3. Проверяем соединение по ssh work к vds:

ssh vds_user@vds

4. Настраиваем обратный ssh туннель

autossh -M 59001 -f -g -N -R 4321:localhost:4321 vds_user@vds -p 443
ps команду autossh можно обернуть сервисом

5. Проверяем соединение по ssh от vds к work

ssh work_user@localhost -p 4321

Таким образом получили возможность подключаться к work извне.


home

1. Добавить в ~/.ssh/config правила 
Host vds 
   User vds_user
   HostName vds
   Port 443
   IdentityFile ~/.ssh/keys/vds


Host work 
   User work_user 

   HostName localhost
   Port 4321
   ProxyCommand ssh vds -W %h:%p


Подключаемся при помощи команды:
ssh work

Подключиться из home к work можно другими способами, но, имхо, менее удобными:
1. Пробросить еще один туннель и ходить к work по сути через два туннеля
ssh -L 1234:localhost:4321 vds_user@vds # туннель
Подключение к work опосредовано через vds:
ssh work_user@localhost -p 1234
Трафик через два туннеля пойдет к work
2. Подключиться по ssh к vds и далее еще по одному ssh к work. Можно это сделать одной командой:
ssh -t vds_user@vds ssh work_user@localhost
  

суббота, 2 января 2016 г.

Дружим philips v387 с kubuntu 14.04

В случае, если из коробки в kubuntu не определяется смартфон philips v387, используйте инструкцию
http://jtprog.ru/android-and-ubuntu/

пятница, 20 ноября 2015 г.

Игнорирование default маршрута при подключении openvpn

При установке соединения openvpn с помощью network-manager связь openvpn устанавливалась успешно, а вот интернет пропадал. Проблема в маршруте по умолчанию, который автоматически устанавливались при соединении по openvpn и перезаписывал существующий.

До подключения openvpn:
spirit:~ $ route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
default         Dlink-Router.Dl 0.0.0.0         UG    0      0        0 wlan0
192.168.0.0     *               255.255.255.0   U     9      0        0 wlan0

После соединения openvpn

spirit:~ $ route
Таблица маршутизации ядра протокола IP
Destination Gateway Genmask Flags Metric Ref Use Iface
default         some.vpn.address 0.0.0.0         UG    0      0        0 tun0
xxxx
xxxx
xxxx
xxxx
192.168.0.0     *               255.255.255.0   U     9      0        0 wlan0

Решение проблемы: использовать только для ресурсов этого соединения. Для этого есть чекбокс в настройках подключения openvpn.

воскресенье, 15 февраля 2015 г.

Настройка infinality для сглаживания шрифтов

Infinality - это набор патчей для библиотеки freetype, улучшающий рендеринг шрифтов в линуксе. В пакете присутствуют несколько предустановленных схем тонкой настройки рендеринга, имитирующих технологию рендеринга в различных ОС.

На момент написания статьи в оффициальном репозитории ubuntu отсутствовал. Для установки необходимо добавить репозиторий ppa:no1wantdthisname/ppa. В процессе настройки по инструкции (например, отсюда) выявился ряд проблем, о которых речь пойдет ниже.

Мне захотелось отключить antialiasing для ttf шрифтов определенного размера, оставив только hinting. Так мне больше нравится отображение, глаза меньше устают. В процессе выяснилось, что установка пропатченной libfreetype из ppa криво рендерит шрифты с отключенных antialiasing. Решение было следующее, установить пакет fontconfig-infinality из ppa, а libfreetype использовать из репозитория убунты (на момент настройки была установлена kubuntu 14.04, librfreetype в официальном репозитории имеет версию 2.5.2-1ubuntu2.2).

Полный порядок установки и настройка:

  1. sudo add-apt-repository ppa:no1wantdthisname/ppa Добавляем репозиторий с infinality.
  2. sudo aptitude update
  3. sudo aptitude download fontconfig-infinality Скачиваем пакет. Из репозитория не устанавливаем, не выполняем upgrade, т.к. нам не нужно обновлять libreetype оттуда.
  4. sudo ppa-purge ppa:no1wantdthisname/ppa Удаляем репозиторий, больше он нам не понадобиться.
  5. sudo dpkg -i fontconfig-infinality
  6. sudo /etc/fonts/infinality/infctl.sh setstyle Выбиаем infinality.
  7. sudo mcedit /etc/profile.d/infinality-settings.sh Устанавливаем переменной USE_STYLE значение WINDOWS7. Настройка Xft для xrdb находится тоже в этом файле. Для Xft я использую настройки по умолчанию.
  8. Теперь нужно отключить antialiasing для ttf шрифтов определенного размера. Добавляем в файл /etc/fonts/infinality/conf.src/61-group-tt-rendering-inf-7-xp.conf (или другой, в зависимости от стиля, этот для win7, infinality и xp) следующий код:
  9.        <match target="font">
                    <test name="font_type">
                            <string>TT Instructed Font</string>
                    </test>
                    <test compare="more_eq" name="pixelsize" qual="any">
                            <double>5</double>
                    </test>
                    <test compare="less_eq" name="pixelsize" qual="any" >
                            <double>17</double>
                    </test>
                    <edit mode="assign" name="antialias">
                            <bool>false</bool>
                    </edit>
            </match>




  10. Перезагружаемся и наслаждаемся
ps При установленном пакете infinality настройки из файла ~/.config/fontconfig/fonts.conf игнорируются

ps Решение проблемы загрузки mdm в mint http://www.infinality.net/forum/viewtopic.php?f=4&p=2148 

UPD 30.10.2020
Поддержка скриптов infinality разработчиком прекращена, в ppa репозитории пакет больше не обновляется. Но в kubuntu (последняя версия 20.04) по-прежнему меня не устраивают системные настройки шрифтов. В связи с чем, содержимое пакета из репозитория решено заложить в архив для последующего использования в случае удаления репозитория. В целом инструкция выше остается актуальной с п. 6, а установку произвести можно из архива.


Используемые ресурсы:

http://exlmoto.ru/linux-ttf-rendering/
http://www.webupd8.org/2013/06/better-font-rendering-in-linux-with.html
https://www.linux.org.ru/forum/desktop/10783674

суббота, 15 ноября 2014 г.

Настройка шрифта в Ubuntu

В директории ~/.config/fontconfig/font.conf находятся настройки шрифтов. Для управления сглаживанием, хинтингом нужно использовать этот файл.

Мой конфиг представлен ниже:
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
<fontconfig>

  <match target="pattern">
    <edit name="dpi" mode="assign">
      <double>96</double>
    </edit>
  </match>


 <!-- Disable sub-pixel rendering.
 X detects it anyway, and if you set this as well, it just looks really horrible  -->
<match target="font" >
<edit mode="assign" name="rgba" >
<const>none</const>
</edit>
 </match>
 <match target="font" >
<edit mode="assign" name="hinting">
<bool>true</bool>
</edit>
 </match>
 <match target="font" >
<edit mode="assign" name="hintstyle">
<const>hintfull</const>
</edit>
 </match>

<match target="font">
  <edit mode="assign" name="antialias">
    <bool>true</bool>
  </edit>
</match>

 <match target="font">
   <test qual="any" name="family" compare="eq">
     <string>Verdana</string>
     <string>Arial</string>
     <string>sans-serif</string>
     <string>Courier New</string>
   </test>
   <edit mode="assign" name="antialias">
     <bool>false</bool>
   </edit>
 </match>

<!-- Helvetica is a non true type font, and will look bad.
 This replaces it with whatever is the default sans-serif font -->
 <match target="pattern" name="family" >
<test name="family" qual="any" >
<string>Helvetica</string>
</test>
<edit mode="assign" name="family" >
<string>Verdana</string>
</edit>
 </match>

 <dir>~/.fonts</dir>

</fontconfig>

ps man fonts-conf 

четверг, 9 октября 2014 г.

Настройка wifi на Lenovo b590 под Astra Linux

Для настройки встроенного модуля wifi на ноутбуке Lenovo B590 под Astra Linux необходимо установить пакет из ubuntu bcmwl-kernel-source_6.20.155~bdcom-0ubuntu0.0.2_amd64.deb
ps ранние версии драйвера не работают

суббота, 2 августа 2014 г.

Ubuntu не видит мой wi-fi

Ноутбук леново не видит мою сеть wi-fi. Остальные видит, а мою нет. Причем сеть не скрытая, другие устройства ее видят. Роутер dlink. Решение: изменить канал в настройках роутера, поставил auto, теперь видит.

http://kosumosu.ru/index.php?id=75

вторник, 29 июля 2014 г.

Двусторонняя синхронизация удаленных директорий (unison и incron)

Для двусторонней синхронизации двух и более директорий, размещенных на разных узлах, отлично подходит утилита unison. Основным отличием от других инструментов зеркалирования является ее способность производить синхронизацию в обе стороны на основании реплик каждого узла.
Утилита incron позволяет отслеживать события файловой системы в определенном каталоге, и по любому событию запускать определенный скрипт. Это позволяет автоматизировать синхронизацию двух каталогов, если в исполняемом скрипте запускать команду unison. Это при условии, что настроек беспарольный доступ по ssh на другую машину. Нужно уточнить, чтобы работал беспарольный доступ из скрипта, необходимо экспортировать переменную окружения HOME=dir для пользователя, от которого производится беспарольный доступ.
Подробнее в материалах ниже:
http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html
http://rbgeek.wordpress.com/2012/08/30/file-synchronization-between-two-ubuntu-servers-using-unison/
http://www.cyberciti.biz/faq/unison-file-synchronizer-tool/
http://www.cyberciti.biz/faq/linux-inotify-examples-to-replicate-directories/
http://stackoverflow.com/questions/1034243/how-to-get-a-unix-script-to-run-every-15-seconds

понедельник, 7 июля 2014 г.

Подключение к инету через прокси в eclipse

В eclipse, начиная с версии luna, изменился подход к аутентификации к прокси серверу для инета. Ранее необходимо было указывать в имени пользователя еще и домен (ELINS\serkin), теперь этого не требуется (просто имя пользователя, serkin)

пятница, 4 июля 2014 г.

Установка и настройка необходимых пакетов для чистой ubuntu или mint

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install aptitude mc ncdu zsh xneur pidgin kmail ttf-mscorefonts-installer krusader openssh-server python-svn subversion git g++-4.8 gcc-4.8 g++ gcc cmake qtcreator

chsh -s /bin/zsh

# java от oracle (необязательно, openjdk справляется)
java -version
sudo apt-get remove openjdk*
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer


ps: при наличии прокси к инету лучше зайти под sudo (например, sudo mc) и выполнять команды без предварительной sudo. Это позволит выполнить инсталляцию ttf шрифтов и java от oracle, т.к. они обращаются дополнительно к внешним ресурсам. Хотя в случае, если в /etc/sudoers настроены Defaults на окружение пользователя, то это делать необязательно