Оболочки PPP для пользователей с динамическими IP
Создайте файл, называющийся /etc/ppp/ppp-shell и содержащий следующее:
#!/bin/sh
IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'`
CALLEDAS="$IDENT"
TTY=`tty`
if [ x$IDENT = xdialup ]; then
IDENT=`basename $TTY`
fi
echo "PPP for $CALLEDAS on $TTY"
echo "Starting PPP for $IDENT"
exec /usr/sbin/ppp -direct $IDENT
Этот скрипт должен быть исполняемым. Теперь создайте на этот скрипт символическую ссылку с именем ppp-dialup с помощью следующей команды:
# ln -s ppp-shell /etc/ppp/ppp-dialup
Используйте этот скрипт в качестве оболочки для удаленных пользователей. Ниже приведен пример записи в /etc/password для удаленных пользователей PPP с именем пользователя pchilds (не забывайте использовать vipw для редактирования файла паролей).
pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup
Создайте каталог /home/ppp, который доступен для чтения и содержит следующие файлы нулевой длины:
-r--r--r-- 1 root wheel 0 May 27 02:23 .hushlogin
-r--r--r-- 1 root wheel 0 May 27 02:22 .rhosts
Это предотвратит отображение /etc/motd.
Оболочки PPP для пользователей со статическими IP
Создайте файл ppp-shell как в примере выше, и для каждой учетной записи со статически назначаемым IP создайте символическую ссылку на ppp-shell.
Например, если у вас три пользователя удаленного доступа, fred, sam и mary, которые подключаются к вашей сети класса C, выполните следующее:
# ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred
# ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam
# ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-mary
Оболочка каждого из этих пользователей удаленного доступа должна быть символической ссылкой, созданной выше (например, оболочка пользователя mary должна быть /etc/ppp/ppp-mary).
|
|
Настройка ppp.conf для пользователей с динамическими IP
Файл /etc/ppp/ppp.conf должен содержать примерно такие строки:
default:
set debug phase lcp chat
set timeout 0
ttyd0:
set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255
enable proxy
ttyd1:
set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255
enable proxy
Замечание: Необходимо соблюдать отступы.
Раздел default: загружается для каждого соединения. Для каждой строки, включенной в /etc/ttys, создайте запись, подобную ttyd0: выше. Каждая строка должна содержать уникальные IP адреса из вашего пула IP адресов, выделенных пользователям с динамическими IP.
Настройка ppp.conf для пользователей со статическими IP
Помимо содержимого, описанного в примере файла /usr/share/examples/ppp/ppp.conf выше, вам потребуется добавить раздел для каждого из пользователей со статическими IP. Мы продолжим использовать имена fred, sam и mary в качестве примера.
fred:
set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255
sam:
set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255
mary:
set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255
Если требуется, файл /etc/ppp/ppp.linkup должен также содержать информацию о маршрутизации для каждого пользователя со статическим IP. В строке ниже через клиентское соединение добавляется маршрут к сети класса C203.14.101.0.
|
|
fred:
add 203.14.101.0 netmask 255.255.255.0 HISADDR
sam:
add 203.14.102.0 netmask 255.255.255.0 HISADDR
mary:
add 203.14.103.0 netmask 255.255.255.0 HISADDR
Mgetty и AutoPPP
Настройка и компиляция mgetty с параметром AUTO_PPP позволяет mgetty определять LCP фазу PPP соединений и автоматически порождать оболочку ppp. Однако, поскольку стандартный метод логин/пароль не используется, необходима аутентификация пользователей через PAP или CHAP.
В этом разделе предполагается, что пользователь успешно настроил, скомпилировал и установил версию mgetty с параметром AUTO_PPP (v0.99beta или более поздняя).
Убедитесь, что в файле /usr/local/etc/mgetty+sendfax/login.config имеется следующая строка:
/AutoPPP/ - - /etc/ppp/ppp-pap-dialup
Это укажет mgetty запускать скрипт ppp-pap-dialup для обнаруженных соединений PPP.
Создайте файл /etc/ppp/ppp-pap-dialup, содержащий следующее (этот файл должен быть выполняемым):
#!/bin/sh
exec /usr/sbin/ppp -direct pap$IDENT
Для каждой линии, включенной в /etc/ttys, создайте соответствующую запись в /etc/ppp/ppp.conf. Она будет отлично сочетаться с тем, что было создано выше.
pap:
enable pap
set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40
enable proxy
Для каждого пользователя, входящего по этому методу, в файле /etc/ppp/ppp.secret должна присутствовать запись с логином/паролем, или, в качестве альтернативы, для аутентификации пользователей по PAP через /etc/password, необходимо использовать следующий параметр.
|
|
enable passwdauth
Если вы хотите присвоить некоторым пользователям статический IP, задайте его в качестве третьего аргумента в /etc/ppp/ppp.secret. Обратитесь к к /usr/share/examples/ppp/ppp.secret.sample за примерами.
MS расширения
Возможна настройка PPP для выдачи адресов DNS и NetBIOS по запросу.
Для включения этих расширений с PPP версии 1.x, необходимо добавить к соответствующему разделу /etc/ppp/ppp.confследующие строки.
enable msext
set ns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5
Для PPP версии 2 и выше:
accept dns
set dns 203.14.100.1 203.14.100.2
set nbns 203.14.100.5
Клиентам будут выдаваться адреса первичного и вторичного серверов имен, и адрес хоста NetBIOS.
Если в версии 2 и выше строка set dns будет опущена, PPP использует значения из /etc/resolv.conf.
Аутентификация PAP и CHAP
Некоторые провайдеры настраивают систему так, что аутентификация производится с использованием либо PAP либо CHAP. В этом случае, приглашение login: при соединении не выдается и соединение PPP начинается сразу.
PAP менее безопасен, чем CHAP, но безопасность в данном случае не страдает, поскольку хотя пароли и передаются открытым текстом, они передаются только по модемной линии. У кракеров не так много возможностей для кражи паролей.
|
|
В примерах выше PPP и статические IP адреса или PPP и динамические IP адреса должны быть сделаны следующие изменения:
13 set authname MyUserName
14 set authkey MyPassword
15 set login
Строка 13:
Эта строка указывает имя пользователя PAP/CHAP. Вам потребуется заменить MyUserName на правильное значение.
Строка 14:
Эта строка указывает пароль PAP/CHAP. Вам потребуется заменить MyPassword на правильное значение. Вы можете также добавить дополнительную строку, такую как:
16 accept PAP
или
16 accept CHAP
для явного указания протокола, но и PAP и CHAP поддерживаются по умолчанию.
Строка 15:
Ваш провайдер обычно не потребует входа на сервер при использовании PAP или CHAP. Следовательно, вы должны отключить строку ''set login''.
24.2.1.3.13. Изменение настроек ppp ''на лету''
Возможно изменение настроек ppp программы во время ее работы в фоновом режиме, но только если открыт соответствующий диагностический порт. Для его открытия добавьте в настройку следующую строку:
set server /var/run/ppp-tun%d DiagnosticPassword 0177
С этой директивой ppp будет прослушивать заданный UNIX сокет, запрашивая у клиентов пароль перед выдачей доступа. Символы%d заменяются на номер используемого устройства tun.
Как только сокет открыт, в скриптах, выполняющих настройку работающей программы, можно использовать pppctl(8).
Использование NAT
PPP имеет возможность использовать встроенный NAT без преобразования пакетов в ядре. Эта возможность может быть включена следующей строкой в /etc/ppp/ppp.conf:
nat enable yes
Альтернативно, PPP NAT может быть включен параметром командной строки -nat. Существует также переменная /etc/rc.conf ppp_nat, которая включена по умолчанию.
Если вы используете эту возможность, вы также можете найти полезными параметры /etc/ppp/ppp.conf для включения пересылки входящих соединений:
nat port tcp 10.0.0.2:ftp ftp
nat port tcp 10.0.0.2:http http
или отключить все входящие соединения
nat deny_incoming yes
Дата добавления: 2018-10-26; просмотров: 161; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!