410 lines
10 KiB
Bash
Executable File
410 lines
10 KiB
Bash
Executable File
#!/bin/sh
|
||
# $FreeBSD$
|
||
set_resolv() {
|
||
echo "[H[J"
|
||
echo "[1m Domyślna Nazwa Domeny[m"
|
||
echo ""
|
||
echo "Podaj domyślną nazwę domeny Internetowej, której będziesz używać."
|
||
echo "Jeśli Twój provider ma nazwy typu 'www.akuku.com.pl', to będzie"
|
||
echo "to najprawdopodobniej 'akuku.com.pl'."
|
||
echo ""
|
||
echo "Jeśli po prostu naciśniesz Enter, ustawisz (nieistniejącą) domenę"
|
||
echo "'mydomain.org.pl', co nie jest najlepszym pomysłem, ale może na"
|
||
echo "razie wystarczyć."
|
||
echo ""
|
||
read -p "Podaj domyślną nazwę domeny: " domain
|
||
if [ "X${domain}" = "X" ]
|
||
then
|
||
echo ""
|
||
echo "Dobrze, ustawimy 'mydomain.org.pl', ale miej świadomość"
|
||
echo "że taka domena prawdopodobnie nie istnieje."
|
||
echo ""
|
||
read -p "Naciśnij Enter" junk
|
||
domain="mydomain.org.pl"
|
||
fi
|
||
echo "[H[J"
|
||
echo "[1m Adres Serwera DNS[m"
|
||
echo ""
|
||
echo "Podaj adres w postaci numerycznej serwera DNS. Jest on potrzebny"
|
||
echo "do zamiany nazw (takich jak www.freebsd.org.pl) na adresy IP"
|
||
echo "(takie jak 192.168.1.1). Jeśli nie jest to ustawione poprawnie,"
|
||
echo "będziesz musiał posługiwać się adresami IP podczas łączenia się"
|
||
echo "z innymi maszynami - jest to co najmniej niewygodne."
|
||
echo ""
|
||
echo "Jeśli po prostu naciśniesz Enter, ustawisz (istniejący) serwer"
|
||
echo "o numerze 194.204.159.1 (w sieci TP SA)."
|
||
echo ""
|
||
read -p "Podaj adres IP serwera DNS (w postaci A.B.C.D): " dns
|
||
if [ "X${dns}" = "X" ]
|
||
then
|
||
echo ""
|
||
echo "Dobrze, ustawimy adres DNS serwera na 194.204.159.1, ale"
|
||
echo "niekoniecznie musi to być najlepszy serwer w Twojej części sieci."
|
||
echo ""
|
||
read -p "Naciśnij Enter..." junk
|
||
dns="194.204.159.1"
|
||
fi
|
||
}
|
||
set_phone() {
|
||
while [ "X${phone}" = "X" ]
|
||
do
|
||
echo "[H[J"
|
||
echo "[1m Numer Telefoniczny[m"
|
||
echo ""
|
||
echo "Podaj numer telefoniczny, którego normalnie używasz, żeby"
|
||
echo "dodzwonić się do swojego providera. Powinieneś podać pełny"
|
||
echo "numer, z ewentualnymi przedrostkami, np: 022113355"
|
||
echo ""
|
||
read -p "Podaj numer telefoniczny: " phone
|
||
done
|
||
}
|
||
|
||
set_port() {
|
||
while [ "X${dev}" = "X" ]
|
||
do
|
||
echo "[H[J"
|
||
echo "[1m Numer Portu Modemowego[m"
|
||
echo ""
|
||
echo "Podaj numer portu szeregowego, do którego podłączony jest modem."
|
||
echo "UWAGA: DOSowy port COM1 to port 0 (cuaa0) we FreeBSD, COM2 -"
|
||
echo "port 1, itd. Podaj tutaj tylko numer, a nie pełną nazwę urządzenia."
|
||
echo ""
|
||
read -p "Podaj numer portu szeregowego (0,1,2): " dev
|
||
done
|
||
}
|
||
|
||
set_speed() {
|
||
while [ "X${speed}" = "X" ]
|
||
do
|
||
echo "[H[J"
|
||
echo "[1m Prędkość Linii Szeregowej[m"
|
||
echo ""
|
||
echo "Wybierz prędkość linii szeregowej, której używa modem."
|
||
echo ""
|
||
echo "UWAGA: Prędkość linii szeregowej NIE jest tym samym, co prędkość"
|
||
echo "modemu. Jeśli Twój modem obsługuje protokół V.42 lub MNP"
|
||
echo "(zazwyczaj tak właśnie jest), prędkość linii szeregowej musi być"
|
||
echo "dużo większa od prędkości modemu. Np. dla modemów 14.4 kbps z"
|
||
echo "kompresją należy wybrać prędkość 38400 bps, a dla modemów"
|
||
echo "28.8 kbps z kompresją należy wybrać prędkość 115200 bps."
|
||
echo ""
|
||
echo " 1. 9600 bps"
|
||
echo " 2. 14400 bps"
|
||
echo " 3. 28800 bps"
|
||
echo " 4. 38400 bps (modem 14.4 kbps z kompresją)"
|
||
echo " 5. 57600 bps"
|
||
echo " 6. 115200 bps (modem 28.8 kbps z kompresją)"
|
||
echo ""
|
||
read -p "Wybierz prędkość linii szeregowej (1-6): " ans
|
||
case ${ans} in
|
||
1)
|
||
speed=9600
|
||
;;
|
||
2)
|
||
speed=14400
|
||
;;
|
||
3)
|
||
speed=28800
|
||
;;
|
||
4)
|
||
speed=38400
|
||
;;
|
||
5)
|
||
speed=57600
|
||
;;
|
||
6)
|
||
speed=115200
|
||
;;
|
||
*)
|
||
read -p "Zła wartość! Naciśnij Enter..." junk
|
||
unset speed
|
||
;;
|
||
esac
|
||
done
|
||
}
|
||
|
||
set_timeout() {
|
||
while [ "X${timo}" = "X" ]
|
||
do
|
||
echo "[H[J"
|
||
echo "[1m Czas rozłączenia[m"
|
||
echo ""
|
||
echo "Podaj czas (w sekundach), po którym, jeśli nie ma ruchu na łączu,"
|
||
echo "nastąpi automatyczne rozłączenie. To pomaga w oszczędzaniu :-)"
|
||
echo ""
|
||
read -p "Podaj czas rozłączenia: " timo
|
||
done
|
||
}
|
||
|
||
set_user() {
|
||
while [ "X${user}" = "X" ]
|
||
do
|
||
echo "[H[J"
|
||
echo "[1m Nazwa Użytkownika[m"
|
||
echo ""
|
||
echo "Podaj nazwę użytkownika (login name), której normalnie używasz"
|
||
echo "do zalogowania się do serwera komunikacyjnego providera."
|
||
echo ""
|
||
read -p "Podaj nazwę użytkownika: " user
|
||
done
|
||
}
|
||
|
||
set_pass() {
|
||
while [ "X${pass}" = "X" ]
|
||
do
|
||
echo "[H[J"
|
||
echo "[1m Hasło[m"
|
||
echo ""
|
||
echo "Podaj hasło, którego używasz do zalogowania się do providera."
|
||
echo ""
|
||
echo "[31mUWAGA: Hasło to zostanie zapisane w czytelnej postaci na"
|
||
echo "dyskietce!!! Jeśli tego nie chcesz... będziesz musiał logować się"
|
||
echo "ręcznie, tak jak dotychczas. W tym przypadku przerwij ten skrypt"
|
||
echo "przez Ctrl-C.[37m"
|
||
echo ""
|
||
stty -echo
|
||
read -p "Podaj swoje hasło: " pass
|
||
echo ""
|
||
read -p "Podaj powtórnie swoje hasło: " pass1
|
||
stty echo
|
||
echo ""
|
||
if [ "X${pass}" != "X${pass1}" ]
|
||
then
|
||
echo "Hasła nie pasują do siebie. Naciśnij Enter..."
|
||
pass=""
|
||
read junk
|
||
set_pass
|
||
fi
|
||
done
|
||
}
|
||
|
||
set_chat() {
|
||
echo "[H[J"
|
||
while [ "X${chat}" = "X" ]
|
||
do
|
||
echo "[1m Rodzaj dialogu podczas logowania się[m"
|
||
echo ""
|
||
echo "Jak normalnie przebiega proces logowania się do serwera"
|
||
echo "komunikacyjnego?"
|
||
echo ""
|
||
echo "1) [32m......login:[37m ${user}"
|
||
echo " [32m...password:[37m ********"
|
||
echo " [36m(tutaj startuje PPP)[37m"
|
||
echo ""
|
||
echo "2) [32m...username:[37m ${user} (TP S.A.)"
|
||
echo " [32m...password:[37m ********"
|
||
echo " [36m(tutaj startuje PPP)[37m"
|
||
echo ""
|
||
echo "3) [32m......username:[37m ${user} (NASK)"
|
||
echo " [32m......password:[37m ********"
|
||
echo " [32mportX/..xxx...:[37m ppp"
|
||
echo " [36m(tutaj startuje PPP)[37m"
|
||
echo ""
|
||
echo "4) [32mZastosuj CHAP[37m"
|
||
echo ""
|
||
echo "5) [32mZastosuj PAP[37m"
|
||
echo ""
|
||
read -p "Wybierz 1,2,3,4 lub 5: " chat
|
||
case ${chat} in
|
||
1)
|
||
chat1="TIMEOUT 10 ogin:--ogin: ${user} word: \\\\P"
|
||
chat2="login/password"
|
||
;;
|
||
2)
|
||
chat1="TIMEOUT 10 ername:--ername: ${user} word: \\\\P"
|
||
chat2="TP SA - username/password"
|
||
;;
|
||
3)
|
||
chat1="TIMEOUT 10 ername:--ername: ${user} word: \\\\P port ppp"
|
||
chat2="NASK - username/password/port"
|
||
;;
|
||
4) chat1="-"
|
||
chat2="CHAP"
|
||
;;
|
||
5) chat1="-"
|
||
chat2="PAP"
|
||
;;
|
||
*) echo "Zła wartość! Musisz wybrać 1,2 lub 3."
|
||
echo ""
|
||
unset chat
|
||
unset chat2
|
||
;;
|
||
esac
|
||
done
|
||
}
|
||
|
||
|
||
# Main entry of the script
|
||
|
||
echo "[H[J"
|
||
echo "[1m Witamy w Automatycznym Konfiguratorze PPP! :-)[m"
|
||
echo ""
|
||
echo " PPP jest już wstępnie skonfigurowane, tak że można ręcznie wybierać"
|
||
echo "numer i ręcznie logować się do serwera komunikacyjnego. Jest to jednak"
|
||
echo "dosyć uciążliwy sposób na dłuższą metę."
|
||
echo ""
|
||
echo "Ten skrypt postara się stworzyć taką konfigurację PPP, żeby umożliwić"
|
||
echo "automatyczne wybieranie numeru i logowanie się, a ponadto pozwoli na"
|
||
echo "uruchamianie ppp w tle - nie zajmuje ono wówczas konsoli."
|
||
echo ""
|
||
echo "Jeśli chcesz kontynuować, naciśnij [1mEnter[m, jeśli nie - [1mCtrl-C[m."
|
||
echo ""
|
||
read junk
|
||
# Step through the options
|
||
set_phone
|
||
set_port
|
||
set_speed
|
||
set_timeout
|
||
set_user
|
||
set_pass
|
||
set_chat
|
||
set_resolv
|
||
|
||
ans="loop_it"
|
||
while [ "X${ans}" != "X" ]
|
||
do
|
||
|
||
echo "[H[J"
|
||
echo "[1m Ustawione zostały następujące parametry:[m"
|
||
echo ""
|
||
echo " 1. Numer telef.: ${phone}"
|
||
echo " 2. Numer portu: cuaa${dev}"
|
||
echo " 3. Prędkość portu: ${speed}"
|
||
echo " 4. Czas rozłącz.: ${timo} s"
|
||
echo " 5. Użytkownik: ${user}"
|
||
echo " 6. Hasło: ${pass}"
|
||
echo " 7. Typ dialogu: ${chat} (${chat2})"
|
||
echo " 8. Nazwa domeny: ${domain}"
|
||
echo " Serwer DNS: ${dns}"
|
||
echo ""
|
||
echo "Jeśli te wartości są poprawne, po prostu naciśnij [1mEnter[m"
|
||
read -p "Jeśli nie, podaj numer opcji, którą chcesz zmienić (1-8): " ans
|
||
|
||
a="X${ans}"
|
||
case ${a} in
|
||
X1)
|
||
unset phone
|
||
set_phone
|
||
;;
|
||
X2)
|
||
unset dev
|
||
set_port
|
||
;;
|
||
X3)
|
||
unset speed
|
||
set_speed
|
||
;;
|
||
X4)
|
||
unset timo
|
||
set_timeout
|
||
;;
|
||
X5)
|
||
unset user
|
||
set_user
|
||
;;
|
||
X6)
|
||
unset pass
|
||
set_pass
|
||
;;
|
||
X7)
|
||
unset chat
|
||
unset chat1
|
||
unset chat2
|
||
set_chat
|
||
;;
|
||
X8)
|
||
unset domain
|
||
unset dns
|
||
set_resolv
|
||
;;
|
||
X)
|
||
;;
|
||
*)
|
||
read -p "Zły numer opcji! Naciśnij Enter..." junk
|
||
ans="wrong"
|
||
;;
|
||
esac
|
||
done
|
||
|
||
echo ""
|
||
echo -n "Generowanie /etc/ppp/ppp.conf file..."
|
||
rm -f /etc/ppp/ppp.conf
|
||
cp /etc/ppp/ppp.conf.template /etc/ppp/ppp.conf
|
||
echo "" >>/etc/ppp/ppp.conf
|
||
echo "# This part was generated with $0" >>/etc/ppp/ppp.conf
|
||
echo "dialup:" >>/etc/ppp/ppp.conf
|
||
echo " set line /dev/cuaa${dev}" >>/etc/ppp/ppp.conf
|
||
echo " set phone ${phone}" >>/etc/ppp/ppp.conf
|
||
echo " set authkey ${pass}" >>/etc/ppp/ppp.conf
|
||
echo " set timeout ${timo}" >>/etc/ppp/ppp.conf
|
||
if [ "X${chat1}" = "-" ]
|
||
then
|
||
echo "set authname ${user}" >>/etc/ppp/ppp.conf
|
||
else
|
||
echo " set login \"${chat1}\"" >>/etc/ppp/ppp.conf
|
||
fi
|
||
echo " set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0" >>/etc/ppp/ppp.conf
|
||
|
||
echo " Zrobione."
|
||
|
||
echo -n "Generowanie /etc/resolv.conf..."
|
||
echo "# This file was generated with $0">/etc/resolv.conf
|
||
echo "domain ${domain}" >>/etc/resolv.conf
|
||
echo "nameserver ${dns}">>/etc/resolv.conf
|
||
echo "hostname=\"pico.${domain}\"">>/etc/rc.conf
|
||
echo " Zrobione."
|
||
|
||
echo ""
|
||
echo "Ok. Sprawdź zawartość /etc/ppp/ppp.conf, i popraw go jeśli to konieczne."
|
||
echo "Następnie możesz wystartować ppp w tle:"
|
||
echo ""
|
||
echo " [1mppp -background dialup[m"
|
||
echo ""
|
||
echo "PAMIĘTAJ, żeby uruchomić /stand/update ! Inaczej zmiany nie zostaną zapisane"
|
||
echo "na dyskietce!"
|
||
echo ""
|
||
echo "Ok. Jeśli Twój plik /etc/ppp/ppp.conf jest prawidłowy (co jest dosyć"
|
||
echo -n "prawdopodobne :-), czy chcesz teraz uruchomić połączenie dialup? (t/n) "
|
||
read ans
|
||
opts=""
|
||
while [ "X${ans}" = "Xt" ]
|
||
do
|
||
echo "[H[J"
|
||
if [ "X${opts}" = "X" ]
|
||
then
|
||
echo "Wystartujemy 'ppp' z poniższymi opcjami:"
|
||
echo ""
|
||
echo " ppp -background dialup"
|
||
echo ""
|
||
echo -n "Czy chcesz je zmienic?? (t/n) "
|
||
read oo
|
||
if [ "X${oo}" = "Xt" ]
|
||
then
|
||
read -p "Podaj opcje ppp: " opts
|
||
else
|
||
opts="-background dialup"
|
||
fi
|
||
echo ""
|
||
echo ""
|
||
fi
|
||
echo "Uruchamiam połączenie dialup. Proszę czekać dopóki nie pojawi się"
|
||
echo "komunikat 'PPP Enabled'..."
|
||
echo ""
|
||
ppp -background dialup
|
||
if [ "X$?" != "X0" ]
|
||
then
|
||
echo -n "Połączenie nie powiodło się. Spróbować jeszcze raz? (t/n) "
|
||
read ans
|
||
if [ "X${ans}" != "Xt" ]
|
||
then
|
||
echo "Spróbuj później. Sprawdź również plik konfiguracyjny /etc/ppp/ppp.conf."
|
||
echo ""
|
||
fi
|
||
else
|
||
echo ""
|
||
echo "Gratuluję! Jesteś on-line."
|
||
echo ""
|
||
exit 0
|
||
fi
|
||
done
|