Popis konfigurace DIAL-IN SERVERU

Autor: Petr Leco


Popsaná konfigurace je pro Debian verzi linuxu.

Podmínka konfigurace:
Na budoucím serveru je nutné mít nainstalované tyto aplikace: pppd a mgetty (pravdepodobne by stacila i verze getty)

Pokud nemáte nainstalované aplikace, můžete je nainstalovat následujícím způsobem:
apt-get install ppp
apt-get install mgetty

Pro provozování dialin serveru si vytvořím speciální konta pro uživatele, který se bude na mě napojovat. Pro lepší přehlednost si vytvořím i skupinu nazvanou ppp
Toto dělám také z důvodu toho, že při logování se podle zadaného uživatelského jména spouští inicializační skript, který si nastavím dle potřeb připojení.

Krok1: Vytvoření skupiny ppp
Máme dvě možnosti, buď použijeme příkaz addgroup ppp nebo editujeme soubor /etc/groupe a doplníme řádek: ppp:x:1001:

Krok2: Vytvoření uživatele pppuser
Opět dvě možnosti, bud použijeme příkaz adduser nebo do souboru /etc/passwd vložíme řádek: pppuser:x:1001:1001:,,,:/home/pppuser:/usr/sbin/ppplogin
Pokud uživatel zadá správně i heslo, pak se spouští skript ppplogin

Krok3: Vytvořím si script ppplogin v adresáři /usr/sbin
Tento script se spuští v případě, že se po vytočení pokusíme do terminalu zadávat jméno a heslo, pokud však necháme rovnou navázat spojení přes ppp, pak mgetty, ktera obsluhuje modem pozná, že se jedná o ppp a podle nastavení v login.config najde uživatele /AutoPPP/ a spustí rovnou pppdemona. Bohužel se mi nepodařilo komunikovat přes ppp, přestože se ppp demon spouštěl. Funkční je tedy jen terminálové okno s bashem.
Script:
#!/bin/sh
mesg n //Nastaví, že nikdo nemůže psát na můj terminál
stty -echo //Nastavi vypsani echa na terminal
exec /bin/bash //spusti bash pro terminál

Krok4: Nastavení příslušných atributů daných souborů/adresářů
Toto se dělá jen z důvodu bezpečnosti. Navíc je třeba nastavid suid bit u pppd
chmod 750 /usr/sbin/ppplogin
chown root:ppp /usr/sbin/ppplogin
chmod 775 /etc/ppp
chown root:root -R /etc/ppp
chmod 750 /usr/sbin/pppd chmod u+s /usr/sbin/pppd

Krok5: Úprava souboru /etc/inittab
Pokud budete připojovat modem na com2 doplňte tento řádek:
S1:2345:respawn:/sbin/mgetty ttyS1
a teď restartujeme init pro aktualizaci příkazem: init q
Tímto zajistíme, že se mgetty při spuštění systému aktivuje a navěsí se na com2 a pokus se bude snažit někdo vytočit mé telefonní číslo, pak začne obsluhovat spojení a podle nastavení zareáguje. V našem případě buď spuštěním ppplogin skriptu nebo při detekci ppp automaticky(pokud je tak nakompilován) spustí podle login.config pppdeamona.

Krok6: Teď si nastavíme konfiguraci programu mgetty
Do konfiguračního souboru /etc/mgetty/login.config vložíme tento řádek: /AutoPPP/ - - /usr/sbin/pppd auth +pap -chap login -detach
Toto je právě větev, kdy mgetty pozná, že na druhé straně se někdo snaží přímo komunikovat přes ppp, pak jako username zvolí jméno: /AutoPPP/ (Pozor, jméno je casesensitive) a spustí příkaz /usr/sbin/pppd auth +pap -chap login -detach
pppd funguje tak, že nejdříve si načte /etc/ppp/options pak soubor /etc/ppp/options.ttyS1 a pak parametry za příkazem
Poznámka k parametrům:
auth +pap -chap //nastaví typ přihlašování
login //nastaví, že pro ověření jména a hesla se použije soubor passwd
-detach //nastaví, že ppp demon nepřejde do pozadí a bude vykonávat činnost na popředí jako standartní program.

Podrobnější popis najdete v manuálových stránkách

Krok7: Nyní si ještě nastavíme pppd
Pokud používáme modem na COM2, pak vytvoříme soubor options.ttyS1 v adresáři /etc/ppp/ a vložíme do něj toto:
192.168.0.1:192.168.0.50
debug
První ip číslo je přiřazeno modemu na serverovské straně a druhé číslo je přiřazeno klientovi, který se připojil (Tento soubor jsem tedy použil pro přidělení ip čísel klientovi a sobě.

Krok8: Nyní vytvoříme na straně klienta (win98) nové telefonické spojení zvolíme protokol ppp, zadáme číslo a vytáčíme. Po vytočení bude server vyžadovat jméno a heslo, takže jej zadáme.

Poznámka: Pokud funguje vše, tak jak má, pak se jak na straně klienta, tak na straně serveru vytvoří nové rozhraní (na straně serveru generovaném ppp deamonem. Pokud je jedine, pak se bude pravděpodobně jmenovat ppp0)