Установка и настройка DialUp in server

19.01.2003

Настройки считать верными для FreeBSD 4.4-STABLE и RedHat 6.x (и его клонов).

Настройка mgetty

Аналогом COM1 является /dev/ttyS0 (Linux), /dev/cuaa0 (FreeBSD). COM2 - /dev/ttyS1, /dev/cuaa1 и т.д.
mgetty должен быть собран с опцией -DAUTO_PPP. Конфигурационные файлы находятся в директории mgetty+sendfax. Раскоментировать строчку /AutoPPP/ в login.config:

/AutoPPP/ -  a_ppp /usr/sbin/pppd auth -chap +pap login debug

Для новых версий pppd эта строчка выглядит так:

/AutoPPP/ -  a_ppp /usr/sbin/pppd auth refuse-chap require-pap login debug

Файл mgetty.config должен содержать примерно следующее:

port cuaa0
debug 4
fax-id 00 00 000000
speed 57600
direct NO
blocking NO
port-owner uucp
port-group dialer
port-mode 0660
toggle-dtr YES
toggle-dtr-waittime 500
data-only YES
fax-only NO
modem-type data
init-chat "" ATZ OK
modem-check-time 3600
rings 7
answer-chat "" ATA CONNECT c r
answer-chat-timeout 80
autobauding NO
ringback NO
ringback-time 30
ignore-carrier false
issue-file /etc/issue
prompt-waittime 500
login-prompt @!login: 
login-time 240
diskspace 1024
notify root
fax-owner uucp
fax-group dialer
fax-mode 0660

nologin.cuaaX

Если нужно, чтобы модем не поднимал трубку в определенное время, то можно по крону создавать nologin.cuaaX в директории etc, где X номер порта.

options

modem
asyncmap 0
mtu 576
idle 600

options.cuaa0

passive
10.0.0.1:10.0.0.2
proxyarp
ms-dns 10.0.0.1

pap-secrets

Пароль пользователя max берется из системы и разрешена любая линия.

max  * ""  *

Пароль пользователя max указан явно (не зашифрован) и доступ возможен только с двух линий.

max * asdfg 10.0.0.2 10.0.0.3

Настройка Linux (pppd)

В файле /etc/inittab прописываем запуск mgetty:

S0:2345:respawn:/sbin/mgetty ttyS0
S1:2345:respawn:/sbin/mgetty ttyS1

Если при подъеме ppp в /var/log/messages появляются такие строчки:

modprobe: Can't locate module ppp-compress-21
modprobe: Can't locate module ppp-compress-24
modprobe: Can't locate module ppp-compress-26
Нужно добавить в /etc/{modules.conf|conf.modules}:

alias ppp-compress-21 bsd_comp
alias ppp-compress-24 ppp_deflate
alias ppp-compress-26 ppp_deflate

Для прохождения пакетов между интерфейсами, нужно включить форвардинг пакетов /etc/sysctl.conf:

net/ipv4/ip_forward = 1

Если используется диапазон адресов из приватной сети (в нашем случае), то пакеты идущие от интерфейса ppp0 нужно маскировать. Маскарадинг с помощью ipchains:

# /sbin/ipchains -F
# /sbin/ipchains -P forward DENY
# /sbin/ipchains -A forward -j MASQ -s 10.0.0.0/255.0.0.0 -d 0.0.0.0/0

Маскарадинг с помощью iptables:

# /sbin/iptables -P FORWARD ACCEPT 
# /sbin/iptables -A FORWARD -i ppp0 -m state --state NEW,INVALID -j REJECT 
# /sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Настройка FreeBSD (pppd)

В файл /etc/ttys добавим запуск mgetty:

cuaa0 "/usr/local/sbin/mgetty"        unknown on insecure

Ядро должно быть регенерировано с options IPFIREWALL и IPDIVERT. Подразумевается, что интерфейс ed0 смотрит в мир. Файл /etc/rc.conf должен содержать:

gateway_enable="YES"
firewall_enable="YES"
firewall_type="open"
natd_enable="YES"
nat_interface="ed0"

А в /etc/rc.local добавим alias для интерфейса ed0 (подразумевается, что в сервере всего один интерфейс, который имеет реальный адрес), чтобы использовать proxyarp.

/sbin/ifconfig ed0 alias 10.1.1.1

Проверяем

Если адрес ppp-соединения входит в туже подсеть и используется proxyarp, то мы увидим перманентное соединение с помощью команды:

# arp -a

Нет комментариев






4 + 8 =

© 2001-2015 NLG