вторник, 24 января 2012 г.

Удалённая поддержка клиентов

Внимание!
Данный пост предназначен не для широкого круга читателей, а только для моих клиентов, нуждающихся в моей помощи удалённо.


Для получения удалённой поддержки нажмите на кнопку, расположенную выше.
Скачайте себе на компьютер программу TeamViewerQS_ru.exe и запустите её.


Убедитесь, что загорелась зелёная лампочка "Готов к подключению", позвоните мне и сообщите "Ваш ID" и "Пароль".
После этого я смогу временно получить доступ к управлению вашим компьютером для оказания помощи.

понедельник, 12 декабря 2011 г.

Восстановление прав пользователя в Ubuntu

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

Итак, понадобилось мне добавить свою учётную запись (дело происходило в Ubuntu 11.10) в группу vboxusers. Казалось бы, чего проще?
sudo usermod -a -G vboxusers alexey
и все дела. Да угораздило меня ошибиться следующим образом:
sudo usermod -G vboxusers alexey
Естественно, после такого надругательства над своей учётной записью я при следующем логоне утратил все свои права в системе (проще говоря, для меня перестала работать команда sudo).

Проблема решилась бы просто, активируй я заранее учётную запись суперпользователя. Пришлось загружать LiveCD (у меня под рукой оказался Linux Mint 11), монтировать корневой раздел жёсткого диска и править файл /media/.../etc/group. Кстати, в файле /media/.../etc/group-, как я понял, хранится резервная копия файла групп, куда я и подсматривал в процессе редактирования.

Да, чуть не забыл. Редактировать файл group можно только с правами суперпользователя, поэтому проще всего использовать команду sudo nano /media/.../etc/group или sudo nano group, перейдя в каталог с файлом.

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

Из всего вышеописанного можно сделать несколько важных выводов.

Во-первых, если не помнишь синтаксис команды - внимательно читай справку.

Во-вторых, после установки дистрибутива с отключенной по умолчанию учётной записью суперпользователя - включи её. Это можно сделать серией команд:
sudo su -
passwd
exit
В-третьих, любишь экспериментировать с системой - держи под рукой свежий LiveCD или LiveUSB.

В-четвёртых, "Backup, backup и ещё раз backup!" Не помню, кто сказал ;-)

воскресенье, 20 ноября 2011 г.

Мои любимые Android-приложения

Около полугода назад я впервые подержал в руках смартфон с ОС Android. До этого мои предпочтения были на стороне продукции Nokia, в частности, Symbian S60.
Заполучив новую "игрушку" я, естественно, занялся поиском и установкой приложений, чтобы, как говорится, "заточить аппарат под себя". Оно и понятно - смартфон приобретался не для "понтов", а для работы.
В конце концов я определился со списком нужных мне приложений. Этот список я и публикую.


Adobe Reader
Знаю, что есть альтернативные программы для просмотра файлов в формате PDF. Многие из них шустрее, многие занимают меньше места в памяти, но мне больше нравится продукт Adobe.




Balance BY
Очень полезная программа для систематической проверки баланса аккаунтов сотовых операторов и провайдеров. В бесплатной версии присутствует реклама (по некоторым отзывам, она появляется и в платной версии), введено ограничение на количество аккаунтов (не более семи) и отсутствуют оповещения. Однако, всё вышеперечисленное не мешает использовать программу для мониторинга расходов семьи на мобильную связь и интернет.


Dropbox
Официальный клиент облачного хранилища файлов. Не буду писать обо всех преимуществах и, может быть, недостатках хранения файлов в облаке, просто скажу, что мобильнее и удобнее технологии я пока не встречал.




ES Проводник
Пожалуй, лучший менеджер файлов для Android. Бесплатен. Умеет подключаться по FTP, SMB, встроенный клиент Dropbox. Активно использую для обмена файлами с домашним и рабочим компьютером.




FBReader
Программа для чтения электронных книг в форматах fb2 (.zip), ePub, mobi. Выбирал, основываясь на отзывах и рейтинге. Выбором доволен.



 

Fing - Network Tools
Прекрасная утилита для исследования сети. Показывает устройства, находящиеся в сети, сканирует открытые порты. Умеет выполнять ping, traceroute, dnslookup, portscan для указанного хоста. Незаменимый инструмент системного администратора.



Gismeteo Weather Forecast LITE
Официальное и совершенно бесплатное погодное приложение от Гисметео. Установил, поскольку надоело каждое утро лазить на сайт, чтобы посмотреть погоду, слишком много там у них рекламы. Приятным сюрпризом стало то, что программа сама верно определила моё местоположение.


Google Reader
Официальное приложение для чтения своих подписок на новости и блоги. Синхронизируется со своей Web-версией, имеет приятный интерфейс и некоторые недоработки ;-)




GoTasks
Легковесное бесплатное приложение для управления списками дел. Из достоинств хотелось бы особо отметить корректную автоматическую синхронизацию с Google Tasks и полное отсутствие рекламы. По своей сути программа является образцом приложений под Android.



Jota Text Editor
Ёта (й-о-та). Просто хороший текстовый редактор.








QIP Mobile под Android (beta)
Мультипротокольный IM-клиент. Ненавижу его версию под Window$, но под Android очень даже неплохо. Намного красивее и удобнее MRA. С радостью отдал бы предпочтение "родному" ICQ, если бы он не был таким тупым...





Sense Analog Small Black 4x1
Замечательный виджет, показывающий часы, календарь, погоду, фазу луны и системную информацию. Кроме чёрного исполнения имеются варианты с белыми часиками и прозрачный вариант.





ThinkFree Office Mobile Viewer
Бесплатная программа просмотра файлов Microsoft Office (doc[x] / xls[x] / ppt[x]). Приятный внешний вид, быстрая работа, наиболее корректное отображение документов.




Wifi Analyzer
Бесплатный анализатор уровня сигнала Wifi. Очень полезен при настройке беспроводных сетей, в частности, при выборе оптимального места для беспроводного маршрутизатора или точки доступа.




Антивирус Dr.Web Light
Антивирус не требователен к ресурсам, не уменьшает время работы от аккумулятора. Регулярное обновление, проверка устанавливаемых приложений. Например, нашел троян в Go SMS Pro и Opera Mini и заблокировал установку. Информация об инфицированных приложениях позже была подтверждена в Android Market.


Обои Box
Бесплатная программа для смены обоев главного экрана. Библиотека содержит более 900 000 изображений.







Набор простых виджетов 1x1 для включения / выключения соответствующих функций. Красивое исполнение, безупречная работа.

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


четверг, 7 мая 2009 г.

Настройка интернет-шлюза на базе Debian GNU/Linux 5.0

Постановка задачи

Необходимо настроить интернет-шлюз для подключения компьютеров ЛВС предприятия к интернет, включая электронную почту и банковский "почтовик" системы дистанционного обслуживания (Клиент-Банк).

Решение

Этап 1. Настройка кеширующего прокси-сервера

Проблема настройки прокси-сервера SQUID достаточно широко рассмотрена в интернете, поэтому привожу изменения и (или) дополнения к конфигурационному файлу /etc/squid/squid.conf:

# Привилегированный доступ: 192.168.0.1 - 192.168.0.14 (14)
acl priv_access src 192.168.0.0/28
# Непривилегированный доступ: 192.168.0.33 - 192.168.0.62 (30)
acl unpriv_access src 192.168.0.32/27

http_access allow priv_access
http_access allow unpriv_access

icp_access allow priv_access
icp_access allow unpriv_access

# "Прозрачное проксирование"
http_port 3128 transparent

cache_mem 64 MB

cache_dir ufs /var/spool/squid 1024 16 256

# Трафик шейпер
delay_pools 2
delay_class 1 2
delay_class 2 2
delay_access 1 allow priv_access
delay_access 1 deny all
delay_access 2 allow unpriv_access
delay_access 2 deny all
delay_parameters 1 -1/-1 16000/16000    # ~128kbps
delay_parameters 2 -1/-1 8000/8000        # ~64kbps

Этап 2. Настройка фйрвола

Настройка IPTABLES была "подсмотрена" на этом сайте:

#!/bin/sh

# путь к IPTABLES, на всякий случай
IPTABLES="/sbin/iptables"
# описание сетевых интерфейсов: "петля", внешний, внутренний
LO_IF="lo"
EXT_IF="eth1"
INT_IF="eth0"
# IP-адреса шлюза на описанных интерфейсах
LO_IP="127.0.0.1"
INT_IP="192.168.0.2"
EXT_IP="192.168.1.2"
# адрес внутренней сети
INT_NET="192.168.0.0/24"
# описание используемых портов
UNPRIV_PORTS="1024:65535"
DNS_PORT="53"
HTTP_PORT="80"
SQUID_PORT="3128"
SSH_PORT="22"
POP_PORT="110"
SMTP_PORT="25"
# описание внешних адресов, с которыми нужно работать
DNS1_IP="x.x.x.x"
DNS2_IP="x.x.x.x"
BPS_IP="x.x.x.x"
BREST_BY_IP="x.x.x.x"
# устанавливаемое значение TTL
TTL="64"
# расположение файла для включения форвардинга
IP_FORWARD_FILE="/proc/sys/net/ipv4/ip_forward"

# Очистка правил
$IPTABLES -F INPUT
$IPTABLES -F FORWARD
$IPTABLES -F OUTPUT
$IPTABLES -t nat -F PREROUTING
$IPTABLES -t nat -F POSTROUTING
$IPTABLES -t mangle -F

# Политика по-умолчанию - запрет на всё
$IPTABLES -P FORWARD DROP
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT DROP

# DROP пакетов кроме запросов на соединение
$IPTABLES -A INPUT -p TCP ! --syn -m state --state NEW -j DROP

# DROP запросов на соединение из Интернет
$IPTABLES -A INPUT -d $EXT_IP -p TCP --syn -j DROP

# Разрешение SQUID и SSH в локальной сети
$IPTABLES -A INPUT -s $INT_NET -p TCP -d $INT_IP -m multiport --dport $SSH_PORT,$SQUID_PORT -j ACCEPT

# Разрешение уже установленных входящих подключений на незарезервированные порты
$IPTABLES -A INPUT -d $EXT_IP -p TCP --dport $UNPRIV_PORTS -m state --state ESTABLISHED,RELATED -j ACCEPT

# Разрешение DNS для SQUID и локальной сети (входящие - только ответы на DNS-запросы)
$IPTABLES -A INPUT -p UDP -s $DNS1_IP -m state --state ESTABLISHED --sport $DNS_PORT -j ACCEPT
$IPTABLES -A INPUT -p TCP -s $DNS1_IP --sport $DNS_PORT --dport $UNPRIV_PORTS -m state --state ESTABLISHED -j ACCEPT

$IPTABLES -A INPUT -p UDP -s $DNS2_IP -m state --state ESTABLISHED --sport $DNS_PORT -j ACCEPT
$IPTABLES -A INPUT -p TCP -s $DNS2_IP --sport $DNS_PORT --dport $UNPRIV_PORTS -m state --state ESTABLISHED -j ACCEPT

$IPTABLES -A FORWARD -p UDP -s $INT_NET -d $DNS1_IP --dport $DNS_PORT -j ACCEPT
$IPTABLES -A FORWARD -p UDP -s $DNS1_IP -d $INT_NET --sport $DNS_PORT -m state --state ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -p TCP -s $INT_NET -d $DNS1_IP --dport $DNS_PORT -j ACCEPT

$IPTABLES -A FORWARD -p UDP -s $INT_NET -d $DNS2_IP --dport $DNS_PORT -j ACCEPT
$IPTABLES -A FORWARD -p UDP -s $DNS2_IP -d $INT_NET --sport $DNS_PORT -m state --state ESTABLISHED -j ACCEPT
$IPTABLES -A FORWARD -p TCP -s $INT_NET -d $DNS2_IP --dport $DNS_PORT -j ACCEPT

# Перенаправление исходящего HTTP-трафика на порт SQUID
$IPTABLES -t nat -A PREROUTING -s $INT_NET -p tcp -m tcp --dport $HTTP_PORT -j REDIRECT --to-ports $SQUID_PORT
$IPTABLES -t nat -A POSTROUTING -s $INT_NET -o $EXT_IF -j SNAT --to-source $EXT_IP

# Разрешение обмена с сервером БПС-Банк (!!!!!)
$IPTABLES -A FORWARD -s $INT_NET -d $BPS_IP -p TCP --dport $UNPRIV_PORTS -j ACCEPT

# Разрешение обмена с почтовым сервером brest.by
$IPTABLES -A FORWARD -s $INT_NET -d $BREST_BY_IP -p TCP --dport $POP_PORT -j ACCEPT
$IPTABLES -A FORWARD -s $INT_NET -d $BREST_BY_IP -p TCP --dport $SMTP_PORT -j ACCEPT

# Разрешение уже установленных соединений для двустороннего обмена
$IPTABLES -A FORWARD -p TCP -m state --state ESTABLISHED,RELATED -m multiport --sport $DNS_PORT,$POP_PORT,$SMTP_PORT,$BPS_PORT -j ACCEPT

# Разрешение внутреннего трафика
$IPTABLES -A INPUT -p ALL -s $LO_IP -i $LO_IF -j ACCEPT
$IPTABLES -A INPUT -p ALL -s $INT_IP -i $LO_IF -j ACCEPT
$IPTABLES -A INPUT -p ALL -s $EXT_IP -i $LO_IF -j ACCEPT

$IPTABLES -A OUTPUT -p ALL -d $LO_IP -o $LO_IF -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $EXT_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $INT_IP -j ACCEPT
$IPTABLES -A OUTPUT -p ALL -s $LO_IP -j ACCEPT

# Установка на все исходящие пакеты одного и того же значения TTL (маскировка)
$IPTABLES -t mangle -A PREROUTING -i $EXT_IF -j TTL --ttl-set $TTL

# Включение NAT
$IPTABLES -t nat -A POSTROUTING -o $EXT_IF -j SNAT --to-source $EXT_IP

echo "1" > $IP_FORWARD_FILE

Данный скрипт рекомендуется сохранить в каталоге /etc, например, /etc/fw.sh, выставить права 0711 (rwx-x-x): chmod 0711 /etc/fw.sh , и организовать его автоматический запуск в конце загрузки системы (добавить вызов в скрипт /etc/rc.local)


Заключение

Итак, получился вполне работоспособный интернет-шлюз. Единственное, что хотелось бы сделать, так это настроить почтовый сервер, который мог бы отправлять/получать почту у провайдера. Но об этом позже.

воскресенье, 22 июня 2008 г.

Организация доступа к ЛВС через модемное соединение

Методика была отработана на ASPLinux 9.2, RHELAS 3 и SUSE 9.3 с модемами ZyXEL OMNI 56k+ и ZyXEL U336.
Адрес сервера в ЛВС 172.18.29.11, адрес клиента 172.18.29.20.
Нужно установить пакеты ppp и mgetty.

===/etc/ppp/options.ttyS0===
lock
login
auth
modem
crtscts
refuse-chap
require-pap
mtu 576
mru 576
proxyarp
172.18.29.11:172.18.29.20
======

===/etc/ppp/pap-secrets===
# Secrets for authentication using PAP
# client server secret IP addresses
* * "" 172.18.29.20
======


(добавить строки)
===/etc/mgetty+sendfax/login.config===
/AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap login debug
======


(добавить строки)
===/etc/mgetty+sendfax/mgetty.config===
port ttyS0
data-only y
init-chat "" ATZ OK AT&FM0E1Q0S0=1 OK
answer-chat "" ATA CONNECT \c \r
======


(добавить строки)
===/etc/inittab===
S0:2345:respawn:/sbin/mgetty -s 57600 -x3 -n 2 ttyS0
======


Скрипт для разрешения форвардинга пакетов от IP_CLIENT на IP_SERVER. Это нужно, например, для того, чтобы удаленный клиент смог воспользоваться услугами Интернет, которые раздает шлюз с адресом IP_SERVER. Если просто включить форвардинг, то удаленный клиент будет чувствовать себя частью ЛВС со всеми вытекающими отсюда последствиями.
===/etc/init.d/router===
#!/bin/sh

IPTABLES=/sbin/iptables
DEPMOD=/sbin/depmod
MODPROBE=/sbin/modprobe

IP_CLIENT=172.18.29.20
IP_LO=127.0.0.1
IP_HOST=172.18.29.11
IP_SERVER=172.18.29.1


forward_set()
{
echo $1> /proc/sys/net/ipv4/ip_forward
}

rule_clear()
{
forward_set "0"
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
$IPTABLES -t mangle -P PREROUTING ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X
}

rule_set()
{
$DEPMOD -a
$MODPROBE ip_tables
$MODPROBE ip_conntrack
$MODPROBE iptable_filter
$MODPROBE iptable_mangle
$MODPROBE iptable_nat
$MODPROBE ipt_LOG
$MODPROBE ipt_limit
$MODPROBE ipt_state
forward_set "1"
$IPTABLES -F INPUT
$IPTABLES -F FORWARD
$IPTABLES -F OUTPUT
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -A FORWARD -s $IP_CLIENT -d ! $IP_SERVER -j REJECT
$IPTABLES -P OUTPUT ACCEPT
}

case "$1" in
start)
rule_set
;;
stop)
rule_clear
;;
*)
echo "Usage: route {start|stop}"
exit 1
esac
exit 0
======


Вот, собственно, и все.

пятница, 20 июня 2008 г.

Настройка раскладки клавиатуры

В многих дистрибутивах Linux (особенно это касается xUBUNTU) раскладка клавиатуры и метод её переключения отличается от того, что привыкли наблюдать пользователи Window$. Попытка же исправить положение при помощи GUI-шных утилит, как правило не дает должного эффекта, а зачастую и вовсе обратный эффект (у меня как-то случилаcь такая неприятность - напрочь пропала латиница).
Хочу описать "дуракоустойчивый" метод настройки клавиатуры.

Итак, во-первых, правим xorg.conf (в клонах RedHat он называется XF86Config),
его можно найти в каталоге /etc/X11:
Section "InputDevice"
...
Option "XkbLayout" "us,ru"
Option "XkbVariant" ",winkeys"
Option "XkbOptions" "grp:ctrl_shift_toggle,grp_led:scroll"
...
EndSection
Скорее всего, придётся только дописать параметр "XkbVariant"

Во-вторых, нужно настроить индикатор раскладки клавиатуры. В KDE это делается просто - есть пакет kkbswitch, для GNOME - чуть посложнее. В GNOME есть апплет панели, отображающий раскладку, но он отображает текст. Исправить ситуацию мне помогли на LinuxForum:
$ mkdir ~/.icons/flags
$ cd ~/.icons/flags
$ wget http://kir.sacred.ru/flags/{ru,us}.svg
(можно просто положить в каталог ~/.icons/flags свои файлики в формате SVG или PNG)
$ gconftool-2 --type bool --set /desktop/gnome/peripherals/keyboard/indicator/showFlags true
Все.

среда, 18 июня 2008 г.

Каскадирование в SQUID

Возникла как-то раз у меня такая проблема. Имел я доступ в Интернет через прокси-сервер, и хотел я поделиться своим трафиком с ближними, которым доступ в Интернет был закрыт.
Умные люди подсказали, что в прокси-сервере SQUID реализована такая вещь - каскадирование. За его настройку отвечает параметр cache_peer конфигурационного файла SQUID (/etc/squid/squid.conf).
Вот выдержка из моего squid.conf:
acl my_clients src xxx.xxx.xxx.xxx/xxx.xxx.xxx.xxx
http_access allow my_clients
cache_peer yyy.yyy.yyy.yyy parent 3128 0 no-query default
never_direct allow all