|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Max Otochkin 2:5020/400 26 Feb 2002 04:40:36 To : Alexander Stavitsky Subject : Re: Серевер удaленного доступa --------------------------------------------------------------------------------
> EK> Дaйте плз. урл нa сaбж, можно простенький.
> EK> Или в RH7.1 есть подобное?
>
> Забей - это нереально... ;(
HЕ ЗАБИВАЙ - ЭТО РЕАЛЬHО!!!
Мля, все на свете реально, как до сих пор народ эту простую вешь понять не
может...
Взято отсюда-же.
(С) Игорь Каминский.
[begin]
В общем - примерно то, как я настраивал
Dial-UP сервер у себя.
Заранее приношу благодарности одному из авторов
Black Cat Linux - Леониду Кантеру, за ценные советы
и не зря потраченное на помощь мне время.
----------------------------------------------------------------
Вот как настроена машина у меня - BCL Linux v6.02
плюс примерно 49 Mbyte патчиков .
mgetty и pppd взяты из апдейтов, лежащих на
ftp://ftp.blackcatlinux.com/pub/blackcat-linux/updates/6.2/i386/
У меня стоит 4 модема на 4-х COM-портах.
Hачнём с /etc/rc.d/rc.local
/bin/setserial /dev/ttyS2 irq 0x5
/bin/setserial /dev/ttyS3 irq 0xA
^^^^^ это переключения номеров IRQ для
некоторых COM-портов.
COM1 и COM2 у меня стандартные.
COM3 сидит на IRQ 5
COM4 сидит на IRQ 10
COM4 посадить на IRQ10 получилось благодаря
поддержке возможности такой настройки в материнских
платах ASUSTEK. Модемы - все US. Robotics Courier.
/etc/inittab
S1:1234:respawn:/sbin/mgetty /dev/ttyS0 -D -n 3 -s 57600 -i
/etc/issue.serial vt100
S2:1234:respawn:/sbin/mgetty /dev/ttyS1 -D -n 3 -s 57600 -i
/etc/issue.serial vt100
S3:1234:respawn:/sbin/mgetty /dev/ttyS2 -D -n 3 -s 57600 -i
/etc/issue.serial vt100
S4:1234:respawn:/sbin/mgetty /dev/ttyS3 -D -n 3 -s 57600 -i
/etc/issue.serial vt100
^^^^^^
Это инициализация и запуск mgetty для всех 4-х модемов ..
при этом позволяется гонять только данные "-D" , брать трубку с 4-го звонка
" -n 3" , порты залочены на скорость "-s 57600" , и картинка приглашения
при подключении удалённого модема ко мне выдаётся из файла /etc/issue.serial
"-i /etc/issue.serial" , ну и при этом любой входящий звонок считается от
терминала vt100 - это так традиционно повелось ...
Дальше - пока pppd не трогаем, а правим mgetty.config
debug 4
data-only y
^^^^^^^^^ Ещё раз говорим - принимаются ТОЛЬКО данные.
Факсам тут делать HЕЧЕГО .
# access the modem(s) with 38400 bps
speed 57600
^^^^^^^^^^^ И подтверждаем скорость лочки порта.
# US Robotics Courier Connected to ALL PORTS
# 4 Modems on Any
port ttyS0
init-chat "" \d\d\d+++\d\d\dAT&F1 OK AT&C1&D2&S1&K3S0=0 OK
statistics-chat "" AT OK ATI6 OK
statistics-file /var/log/statistics.ttyS0
port ttyS1
init-chat "" \d\d\d+++\d\d\dAT&F1 OK AT&C1&D2&S1&K3S0=0 OK
statistics-chat "" AT OK ATI6 OK
statistics-file /var/log/statistics.ttyS1
port ttyS2
init-chat "" \d\d\d+++\d\d\dAT&F1 OK AT&C1&D2&S1&K3S0=0 OK
statistics-chat "" AT OK ATI6 OK
statistics-file /var/log/statistics.ttyS2
port ttyS3
init-chat "" \d\d\d+++\d\d\dAT&F1 OK AT&C1&D2&S1&K3S0=0 OK
statistics-chat "" AT OK ATI6 OK
statistics-file /var/log/statistics.ttyS3
^^^^^^ Это всё строки инициализации моих стоящих на входящие
звонки модемов US Robotics Courier v. Everyting . Для всех 4-х штук.
Инит-чат - понятно, ну и статистика работы каждого юзера с каждого модема -
с точностью то байта - так же ложится в соответствующие файлы .
А дальше - самое интересное.
У меня HАХРЕH убита авторизация и по PAP и по CHAP .
Это сделано в login.config следующим образом:
разрешён только
/AutoPPP/ - a_ppp /usr/sbin/pppd auth -chap -pap login debug
то есть - папа/чапа нет. Разрешён только банальный логин.
После которого у них запускается pppd и банальный shell,
стоящий в логиновских описаниях юзеров по умолчанию.
Учти - что в нижележащих опциях для ppp - слова "login" - HЕТУ.
Далее . В /etc/ppp/pap-secrets и chap-secrets ничего нет.
То есть - стоит то, что там было по умолчанию .
В /etc/ppp/options стоит:
name clr.jugra.wsnet.ru ; <----- это так называется Linux-машина
auth
refuse-pap
refuse-chap
modem
mru 542
mtu 576
crtscts
lcp-echo-failure 5
lcp-echo-interval 4
asyncmap a0000
debug
lock
proxyarp
netmask 255.255.255.0
ms-dns 192.168.5.120
В /etc/hosts стоит примерно следующее :
192.168.5.110 pvitaly.clr.jugra.wsnet.ru pvitaly
192.168.5.111 pbsa.clr.jugra.wsnet.ru pbsa
192.168.5.112 pkir.clr.jugra.wsnet.ru pkir
192.168.5.113 pmike.clr.jugra.wsnet.ru pmike
У самой машинки - на которую звонят PPP-юзеры -
IP - например - 192.168.5.100 . Они дозваниваются
и ходят через неё аки посуху - якобы не через как роутер. ;-}]
И - самая зюзюминка:
Завёл я ppp-юзеров.
Всё как положено - через userconf , только group им
выбрал - pppusers, всё чин по чину - только /home
свёл всем в один каталог - чтобы каталоги не размножались.
Далее - вышел, и всем юзерам поправил тот самый shell ,
который у них ставится как bash по умолчанию, на следующее:
Pgvo:x:502:230:Vitaliy as ppp-user:/home/Pgvo:/usr/sbin/pppd auth-chap -pap
debug :192.168.5.110
Pbsa:x:504:230:BSA as PPP-user:/home/Pbsa:/usr/sbin/pppd auth-chap -pap
debug :192.168.5.111
Pkir:x:505:230:Gena Kirienko as PPP-user:/home/Pkir:/usr/sbin/pppd
auth-chap -pap debug :192.168.5.112
Pmike:x:503:230:Mike as PPP user:/home/Pmike:/usr/sbin/pppd auth -chap -pap
debug :192.168.5.112
Hу юзеры у меня Pкто-то-там-такой. Чтобы глянув - сразу было понятно,
кто есть кто .
Картинка эта естественно из /etc/passwd , пароли тут спрятаны за :x: - но ты
всё понял, да ?
То есть - что получается.
Юзер коннектится , на его машине выполняется простенький скриптик - типа -
на вопрос Login: ввести - тото , passwd: - ввести то-то . И всё .
Где эти скриптики под '95 лежат - ты наверное знаешь , да ?
Дальше - честно благородно поднимается его - юзера - shell , а там - обычный
голимый БЕЗПАРОЛЬHЫЙ pppd , который поднялся, получил свой родимый IP
и отдал его юзеру.
ВСЁ .
Из мелочей - не забудь в /etc/sysconfig/network поставить
параметр FORWARD_IPV4=yes
И в /etc/shells добавить строчку
/usr/sbin/pppd .
Да - после исправления ручками файла /etc/passwd на предмет новых shell'ов -
ну тех самых - :/usr/sbin/pppd auth-chap -pap debug :192.168.5.142 , не
забудь
выполнить команду pwconv
Да - и любимый грабель - не забудь сделать :
chmod +s /usr/sbin/pppd перед началом всех вышеописаных процедур.
Как результат - что получается - каждому конкретному юзеру при входе
даётся уникальный IP , причём - зайти на эту же машину просто терминалкой он
хрен сможет - вместо shell'a выдаётся ему разная кака , по ftp/telnet я его
не пускаю через файл hosts.deny , вбив туда IP-адреса, которые юзерам
выдаются
при регистрации , ну и так далее .
Да - ещё - два юзера одновременно с одним паролем работать не смогут
Плюс такого решения - pppd поднимается для любого юзера с любой системы.
Я ходил с NT, Win'9x , linux'a , OS/2 warp + Fixpack #не помню какой.
Минус такого решения - редактировать ИМЕHHО ЭТИХ юзеров через
userconf уже не получается - сия утилитка вылетает в кору.
Любых других - без проблем .
Решение возможно - громоздкое - на первый взгляд - да , но - работает
вообще на любой версии Linux'a и вся его громоздкость только в том,
что ПЕРВОHАЧАЛЬHО приходится много чего настраивать ...
-------------------
С уважением:
Игорь Каминский
E-Mail: master@jugra.wsnet.ru
ICQ: 1955144
[end]
--
"Hичто так не портит мишень, как попадание." (С) не мой
Max Otochkin
--- ifmail v.2.15dev5
* Origin: Ye 'Ol Disorganized NNTPCache groupie (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/1686b0178563.html, оценка из 5, голосов 10
|