Настройка модемного пула в качестве сервера: различия между версиями

Материал из Wiki МИАЦ ВО
Перейти к навигации Перейти к поиску
(Новая: В качестве источника была взята [http://gazette.linux.ru.net/rus/articles/TalePPP/taleppp.html | статья] ==Введение.== Цель написани...)
 
м (Откат правок Alngrak (обсуждение) к версии Misha)
 
(не показано 8 промежуточных версий 2 участников)
Строка 13: Строка 13:
 
файл '''dialin.config''' должен быть пустой (все строки закомментированы); <br />
 
файл '''dialin.config''' должен быть пустой (все строки закомментированы); <br />
 
файл '''login.config''' среди прочих, закомментированных строк, должен содержать строки:  
 
файл '''login.config''' среди прочих, закомментированных строк, должен содержать строки:  
<pre>/AutoPPP/ -    pppd    /usr/sbin/pppd file /etc/ppp/options</pre>
+
<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. Конечно же, делать это не обязательно, можно выбрать наиболее вам нравящийся вариант.
+
Здесь параметр '''-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>172.16.133.2:
+
<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 172.16.130.1
+
ms-dns kkk.lll.mmm.nnn
#ms-dns 193.233.132.2
 
 
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 -- адрес, присваиваемый интерфейсу сервера, адрес eee.fff.ggg.hhh -- отдается клиенту, а kkk.lll.mmm.nnn -- адрес DNS-сервера.
+
Где 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 "" *
 
dipuser2 myserver "" *
 
dipuser3 myserver "otherpass" *
 
dipuser4 myserver "" *
 
dipuser5 myserver "yetanotherpass" *
 
dipuser6 myserver "" dfg.wer.cxv.sdf
 
dipuser7 myserver "" *</pre>
 
  
 +
На очереди файл '''/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 />
* -- означает, что разрешен доступ с любого IP адреса<br />
+
eee.kkk.lll.mmm -- означает, что клиенту будет выдан данный ip адрес<br />
dfg.wer.cxv.sdf -- доступ только с указанного адреса.<br />
+
 
 +
Вот мы и настроили демон PPP.
  
Вот мы и настроили демон 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, а существует в виде патча, поставляемого с исходным кодом и требующим компиляции.