Настройка модемного пула в качестве сервера: различия между версиями
(Новая: В качестве источника была взята [http://gazette.linux.ru.net/rus/articles/TalePPP/taleppp.html | статья] ==Введение.== Цель написани...) |
Misha (обсуждение | вклад) м (Откат правок Alngrak (обсуждение) к версии Misha) |
||
(не показано 8 промежуточных версий 2 участников) | |||
Строка 13: | Строка 13: | ||
файл '''dialin.config''' должен быть пустой (все строки закомментированы); <br /> | файл '''dialin.config''' должен быть пустой (все строки закомментированы); <br /> | ||
файл '''login.config''' среди прочих, закомментированных строк, должен содержать строки: | файл '''login.config''' среди прочих, закомментированных строк, должен содержать строки: | ||
− | <pre>/AutoPPP/ - | + | <pre>/AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap login debug</pre> |
файл mgetty.config варьируется, и должен быть привязан к вашему модему. У меня он выглядит вот так: | файл mgetty.config варьируется, и должен быть привязан к вашему модему. У меня он выглядит вот так: | ||
Строка 32: | Строка 32: | ||
S1:345:respawn:/sbin/mgetty -n 2 -D ttyS1 -s 57600 | S1:345:respawn:/sbin/mgetty -n 2 -D ttyS1 -s 57600 | ||
S2:345:respawn:/sbin/mgetty -n 2 -D ttyS2 -s 57600</pre> | S2:345:respawn:/sbin/mgetty -n 2 -D ttyS2 -s 57600</pre> | ||
− | Здесь параметр | + | Здесь параметр '''-n''' указывает количество гудков до снятия трубки, '''-D''' - отключение режима факса, '''-s''' - скорость обмена с модемом, '''-x''' - уровень оладки. (другие опции можно посмотреть в man mgetty). Возможно, вы заметили, что ключами дублируются параметры, указанные в файле mgetty.conf. Конечно же, делать это не обязательно, можно выбрать наиболее вам нравящийся вариант. |
Теперь, чтобы процесс узнал о изменении файла конфигурации, выполняем команду: | Теперь, чтобы процесс узнал о изменении файла конфигурации, выполняем команду: | ||
Строка 38: | Строка 38: | ||
На модеме должна загореться лампочка "TR" (на некоторых модемах -- "MR"). Для пущей верности проверим, запустился ли mgetty, командой: | На модеме должна загореться лампочка "TR" (на некоторых модемах -- "MR"). Для пущей верности проверим, запустился ли mgetty, командой: | ||
<pre>$ ps ax | grep mgetty</pre> | <pre>$ ps ax | grep mgetty</pre> | ||
− | Очередь настраивать демон PPP. Для этого в каталоге /etc/ppp создаем файлы options.ttySX, где Х -- номер порта к которому подсоединен модем. В него вносим следующие строки: | + | Очередь настраивать демон PPP. Для этого сначала обнуляем файл /etc/ppp/options |
− | <pre> | + | <pre># cp /dev/null /etc/ppp/options</pre> |
+ | Затем в каталоге /etc/ppp создаем файлы options.ttySX, где Х -- номер порта к которому подсоединен модем. В него вносим следующие строки: | ||
+ | <pre>aaa.bbb.ccc.ddd: | ||
#ipparam PoPToP | #ipparam PoPToP | ||
mtu 1490 | mtu 1490 | ||
mru 1490 | mru 1490 | ||
− | ms-dns | + | ms-dns kkk.lll.mmm.nnn |
− | |||
ipcp-accept-local | ipcp-accept-local | ||
ipcp-accept-remote | ipcp-accept-remote | ||
Строка 59: | Строка 60: | ||
#require-mschap-v2 | #require-mschap-v2 | ||
refuse-mschap-v2 | refuse-mschap-v2 | ||
+ | nomppe | ||
#deflate 0 | #deflate 0 | ||
#nobsdcomp | #nobsdcomp | ||
Строка 69: | Строка 71: | ||
− | Где aaa.bbb.ccc.ddd -- адрес, присваиваемый интерфейсу сервера | + | Где aaa.bbb.ccc.ddd -- адрес, присваиваемый интерфейсу сервера, а kkk.lll.mmm.nnn -- адрес DNS-сервера. |
− | Важный момент с адресом клиента. Он либо будет принадлежать той же сети, что и сервер, либо нет. В первом случае вам необходимо будет добавить директиву proxyarp в файл options.ttySX, и тогда всем хостам будет казаться, что клиент находится в Ethernet-сети. Во втором же случае, будет необходимым указание маршрута к сети клиента либо к самому хосту клиента. | + | Важный момент с адресом клиента. Он либо будет принадлежать той же сети, что и сервер, либо нет. В первом случае вам необходимо будет добавить директиву '''proxyarp''' в файл '''options.ttySX''', и тогда всем хостам будет казаться, что клиент находится в Ethernet-сети. Во втором же случае, будет необходимым указание маршрута к сети клиента либо к самому хосту клиента. |
Пройдемся по другим полезным опциям. Итак:<br /> | Пройдемся по другим полезным опциям. Итак:<br /> | ||
− | idle n сообщает демону pppd о необходимости обрыва соединения, в случае отсутствия в канале пакетов данных на протяжении n секунд. <br /> | + | '''idle n''' сообщает демону pppd о необходимости обрыва соединения, в случае отсутствия в канале пакетов данных на протяжении n секунд. <br /> |
− | ktune разрешает демону настраивать переменные ядра. Например, если в конфигурации указана директива proxyarp, то автоматически будет разрешена маршрутизация пакетов. <br /> | + | '''ktune''' разрешает демону настраивать переменные ядра. Например, если в конфигурации указана директива proxyarp, то автоматически будет разрешена маршрутизация пакетов. <br /> |
− | ms-wins <addr> указывает адрес сервера WINS для клиентов.<br /> | + | '''ms-wins <addr>''' указывает адрес сервера WINS для клиентов.<br /> |
− | noipx запрещает использование протоколов IPXCP и IPX<br /> | + | '''noipx''' запрещает использование протоколов IPXCP и IPX<br /> |
− | show password опция, полезная при отладке: при протоколировании пакетов, пароли будут представлены открытым текстом.<br / | + | '''show password''' опция, полезная при отладке: при протоколировании пакетов, пароли будут представлены открытым текстом.<br /> |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | На очереди файл '''/etc/ppp/pap-secrets'''. В нем указывают пользователей, которым разрешен доступ по dial-up, и где они должны проходить аутентификацию. Вот пример: | ||
+ | <pre>dipuser1 myserver "" eee.kkk.lll.mmn | ||
+ | dipuser2 myserver "" eee.kkk.lll.mmm | ||
+ | dipuser3 myserver "otherpass" eee.kkk.lll.mmi | ||
+ | </pre> | ||
где:dipuser1 -- имя пользователя,<br /> | где:dipuser1 -- имя пользователя,<br /> | ||
Строка 94: | Строка 92: | ||
"" -- означает, что пароль берется из /etc/passwd (/etc/shadow)<br /> | "" -- означает, что пароль берется из /etc/passwd (/etc/shadow)<br /> | ||
otherpass -- конкретно указанный пароль<br /> | otherpass -- конкретно указанный пароль<br /> | ||
− | + | eee.kkk.lll.mmm -- означает, что клиенту будет выдан данный ip адрес<br /> | |
− | + | ||
+ | Вот мы и настроили демон PPP. | ||
− | |||
==Заключение== | ==Заключение== | ||
Текущая версия на 16:11, 5 марта 2013
В качестве источника была взята | статья
Содержание
Введение.
Цель написания данной статьи -- комплексное описание настройки Linux в качестве сервера доступа для клиентов Windows и Linux. При этом предполагается, что читатель знаком с основами настройки Linux в качестве маршрутизатора и пакетного фильтра. Описание приводится для дистрибутива Mandriva 2008.0, но может быть легко применено и к другим дистрибутивам.
Подготовка.
Для настройки сервера доступа вам понадобятся пакет с демоном ppp и пакет mgetty. Для того, что бы узнать, установлены ли у вас указанные пакеты, введите:
$ rpm -q mgetty; rpm -q ppp
Если пакетов нет -- установите их:
# urpmi mgetty # urpmi ppp
Настройка
Теперь можно переходить к настройке системы. В каталоге /etc/mgetty+sendfax/ находятся файлы конфигурации программы mgetty. Проверяем их содержимое:
файл dialin.config должен быть пустой (все строки закомментированы);
файл login.config среди прочих, закомментированных строк, должен содержать строки:
/AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap +pap login debug
файл mgetty.config варьируется, и должен быть привязан к вашему модему. У меня он выглядит вот так:
speed 57600 data-only debug 0
Следующим нашим шагом будет указание Linux, когда и как он должен запускать программу mgetty Для этого в каталоге /etc находим файл inittab и добавляем в него строки:
P04:345:respawn:/sbin/mgetty -x 5 -s 57600 -D /dev/ttyS4 ttyS4 P05:345:respawn:/sbin/mgetty -x 5 -s 57600 -D /dev/ttyS5 ttyS5 P06:345:respawn:/sbin/mgetty -x 5 -s 57600 -D /dev/ttyS6 ttyS6 P07:345:respawn:/sbin/mgetty -x 5 -s 57600 -D /dev/ttyS7 ttyS7 P08:345:respawn:/sbin/mgetty -x 5 -s 57600 -D /dev/ttyS8 ttyS8 P09:345:respawn:/sbin/mgetty -x 5 -s 57600 -D /dev/ttyS9 ttyS9 P10:345:respawn:/sbin/mgetty -x 5 -s 57600 -D /dev/ttyS10 ttyS10 #P11:345:respawn:/sbin/mgetty -x 5 -s 57600 -D /dev/ttyS11 ttyS11
или
S0:345:respawn:/sbin/mgetty -n 2 -D ttyS0 -s 57600 S1:345:respawn:/sbin/mgetty -n 2 -D ttyS1 -s 57600 S2:345:respawn:/sbin/mgetty -n 2 -D ttyS2 -s 57600
Здесь параметр -n указывает количество гудков до снятия трубки, -D - отключение режима факса, -s - скорость обмена с модемом, -x - уровень оладки. (другие опции можно посмотреть в man mgetty). Возможно, вы заметили, что ключами дублируются параметры, указанные в файле mgetty.conf. Конечно же, делать это не обязательно, можно выбрать наиболее вам нравящийся вариант.
Теперь, чтобы процесс узнал о изменении файла конфигурации, выполняем команду:
# init q
На модеме должна загореться лампочка "TR" (на некоторых модемах -- "MR"). Для пущей верности проверим, запустился ли mgetty, командой:
$ ps ax | grep mgetty
Очередь настраивать демон PPP. Для этого сначала обнуляем файл /etc/ppp/options
# cp /dev/null /etc/ppp/options
Затем в каталоге /etc/ppp создаем файлы options.ttySX, где Х -- номер порта к которому подсоединен модем. В него вносим следующие строки:
aaa.bbb.ccc.ddd: #ipparam PoPToP mtu 1490 mru 1490 ms-dns kkk.lll.mmm.nnn ipcp-accept-local ipcp-accept-remote lcp-echo-failure 30 lcp-echo-interval 5 #proxyarp auth refuse-pap #require-pap #refuse-chap require-chap #require-mschap refuse-mschap #require-mschap-v2 refuse-mschap-v2 nomppe #deflate 0 #nobsdcomp #nodeflate #nodefaultroute defaultroute #require-mppe-128 #require-mppe-40 #plugin radius.so
Где aaa.bbb.ccc.ddd -- адрес, присваиваемый интерфейсу сервера, а kkk.lll.mmm.nnn -- адрес DNS-сервера.
Важный момент с адресом клиента. Он либо будет принадлежать той же сети, что и сервер, либо нет. В первом случае вам необходимо будет добавить директиву proxyarp в файл options.ttySX, и тогда всем хостам будет казаться, что клиент находится в Ethernet-сети. Во втором же случае, будет необходимым указание маршрута к сети клиента либо к самому хосту клиента.
Пройдемся по другим полезным опциям. Итак:
idle n сообщает демону pppd о необходимости обрыва соединения, в случае отсутствия в канале пакетов данных на протяжении n секунд.
ktune разрешает демону настраивать переменные ядра. Например, если в конфигурации указана директива proxyarp, то автоматически будет разрешена маршрутизация пакетов.
ms-wins <addr> указывает адрес сервера WINS для клиентов.
noipx запрещает использование протоколов IPXCP и IPX
show password опция, полезная при отладке: при протоколировании пакетов, пароли будут представлены открытым текстом.
На очереди файл /etc/ppp/pap-secrets. В нем указывают пользователей, которым разрешен доступ по dial-up, и где они должны проходить аутентификацию. Вот пример:
dipuser1 myserver "" eee.kkk.lll.mmn dipuser2 myserver "" eee.kkk.lll.mmm dipuser3 myserver "otherpass" eee.kkk.lll.mmi
где:dipuser1 -- имя пользователя,
myserver -- сервер аутентификации (имя вашего хоста)
"" -- означает, что пароль берется из /etc/passwd (/etc/shadow)
otherpass -- конкретно указанный пароль
eee.kkk.lll.mmm -- означает, что клиенту будет выдан данный ip адрес
Вот мы и настроили демон PPP.
Заключение
Всё. Сервер Dial-IN уже работает. В качестве дополнительных возможностей укажем настройку firewall, времени доступа и так называемый callback. Документацию по настройке брандмауэра (firewall) можно найти на любом сайте с документацией по ОС Линукс. Ограничение времени доступа реализуется при помощи файла /etc/nologin.ttySX, когда этот файл существует, доступ через указанный порт запрещен. В простейшем случае в /etc/crontab добавляются строки:
30 8 * * * root rm -f /etc/nologin.ttyS1 30 20 * * * root echo "disable" > /etc/nologin.ttyS1
результатом коих будет разрешение доступа к серверу с 8:30 до 20:30 на порт /dev/ttyS1 (COM2). Настройка callback является темой отдельной статьи, которая будет опубликована в ближайшее время. Сложность такой настройки обуславливается желанием не производить никаких дополнительных действий на клиентах. Для этого существует специальный протокол CBCP, который, к сожалению, не входит в бинарную поставку демона ppp, а существует в виде патча, поставляемого с исходным кодом и требующим компиляции.