воскресенье, 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

Введение

Думаю, у каждого, кто начинает своё знакомство с Linux постоянно возникает большое количество вопросов по настройке и использованию этой операционной системы. Я - не исключение из правил. Вопросы возникают даже через 4 года, прошедших после моего первого знакомства с Linux.
Этот блог создан в первую очередь для того, чтобы хранить ответы на вопросы, которые возникали у меня в процессе работы с различными представителями семейства ОС Linux. Если информация, размещённая здесь будет полезна ещё кому-нибудь, я буду очень рад.