diff options
author | Guillaume Cottenceau <gc@mandriva.com> | 2001-06-11 13:49:39 +0000 |
---|---|---|
committer | Guillaume Cottenceau <gc@mandriva.com> | 2001-06-11 13:49:39 +0000 |
commit | 0a121a8ecd6de894c14d60daf9da2022ec47405c (patch) | |
tree | 3705a0c51f96ffdd2a0594ef43a5677c926eb0cc /mdk-stage1/rp-pppoe/scripts/adsl-setup.in | |
parent | ab5559aaabd1167a18ac882e64d97c5adc0e7d03 (diff) | |
download | drakx-backup-do-not-use-0a121a8ecd6de894c14d60daf9da2022ec47405c.tar drakx-backup-do-not-use-0a121a8ecd6de894c14d60daf9da2022ec47405c.tar.gz drakx-backup-do-not-use-0a121a8ecd6de894c14d60daf9da2022ec47405c.tar.bz2 drakx-backup-do-not-use-0a121a8ecd6de894c14d60daf9da2022ec47405c.tar.xz drakx-backup-do-not-use-0a121a8ecd6de894c14d60daf9da2022ec47405c.zip |
Initial revision
Diffstat (limited to 'mdk-stage1/rp-pppoe/scripts/adsl-setup.in')
-rwxr-xr-x | mdk-stage1/rp-pppoe/scripts/adsl-setup.in | 346 |
1 files changed, 346 insertions, 0 deletions
diff --git a/mdk-stage1/rp-pppoe/scripts/adsl-setup.in b/mdk-stage1/rp-pppoe/scripts/adsl-setup.in new file mode 100755 index 000000000..a8c7fa039 --- /dev/null +++ b/mdk-stage1/rp-pppoe/scripts/adsl-setup.in @@ -0,0 +1,346 @@ +#!/bin/sh +#*********************************************************************** +# +# adsl-setup +# +# All-purpose slicing/dicing shell script to configure rp-pppoe. +# +# Copyright (C) 2000 Roaring Penguin Software Inc. +# +# $Id$ +#*********************************************************************** + +# From AUTOCONF +prefix=@prefix@ +exec_prefix=@exec_prefix@ + +# Paths to programs +IFCONFIG=/sbin/ifconfig +PPPD=@PPPD@ +PPPOE=@sbindir@/pppoe +ECHO=@ECHO@ +LOGGER="/usr/bin/logger -t `basename $0`" + +CONFIG=/etc/ppp/pppoe.conf + +# Protect created files +umask 077 + +copy() { + cp $1 $2 + if [ "$?" != 0 ] ; then + $ECHO "*** Error copying $1 to $2" + $ECHO "*** Quitting." + exit 1 + fi +} + +$ECHO "Welcome to the Roaring Penguin ADSL client setup. First, I will run" +$ECHO "some checks on your system to make sure the PPPoE client is installed" +$ECHO "properly..." +$ECHO "" + +# Must be root +if [ "`@ID@ -u`" != 0 ] ; then + $ECHO "$0: Sorry, you must be root to run this script" + exit 1 +fi + +# Prototype config file must exist +if [ ! -r "$CONFIG" ] ; then + $ECHO "Oh, dear, I don't see the file '$CONFIG' anywhere. Please" + $ECHO "re-install the PPPoE client." + exit 1 +fi + +# Must have pppd +if [ ! -x $PPPD ] ; then + $ECHO "Oops, I can't execute the program '$PPPD'. You" + $ECHO "must install the PPP software suite, version 2.3.10 or later." + exit 1 +fi + +. $CONFIG + +if [ "$DEMAND" = "" ] ; then + DEMAND=no +fi + +# pppoe must exist +if [ ! -x "$PPPOE" ] ; then + $ECHO "Oh, dear, I can't execute the program '$PPPOE'. Please" + $ECHO "re-install the rp-pppoe client." + exit 1 +fi + +$ECHO "Looks good! Now, please enter some information:" + +while [ true ] ; do + $ECHO "" + $ECHO "USER NAME" + $ECHO "" + $ECHO -n ">>> Enter your PPPoE user name (default $USER): " + read U + + if [ "$U" = "" ] ; then + U="$USER" + fi + + # Under Linux, "fix" the default interface if eth1 is not available + if test `uname -s` = "Linux" ; then + $IFCONFIG $ETH > /dev/null 2>&1 || ETH=eth0 + fi + $ECHO "" + $ECHO "INTERFACE" + $ECHO "" + $ECHO ">>> Enter the Ethernet interface connected to the ADSL modem" + $ECHO "For Solaris, this is likely to be something like /dev/hme0." + $ECHO "For Linux, it will be ethn, where 'n' is a number." + $ECHO -n "(default $ETH): " + read E + + if [ "$E" = "" ] ; then + E="$ETH" + fi + + $ECHO "" + $ECHO "Do you want the link to come up on demand, or stay up continuously?" + $ECHO "If you want it to come up on demand, enter the idle time in seconds" + $ECHO "after which the link should be dropped. If you want the link to" + $ECHO "stay up permanently, enter 'no' (two letters, lower-case.)" + $ECHO "NOTE: Demand-activated links do not interact well with dynamic IP" + $ECHO "addresses. You may have some problems with demand-activated links." + $ECHO -n ">>> Enter the demand value (default $DEMAND): " + read D + if [ "$D" = "" ] ; then + D=$DEMAND + fi + + $ECHO "" + $ECHO "DNS" + $ECHO "" + $ECHO "Please enter the IP address of your ISP's primary DNS server." + $ECHO "If your ISP claims that 'the server will provide DNS addresses'," + $ECHO "enter 'server' (all lower-case) here." + $ECHO "If you just press enter, I will assume you know what you are" + $ECHO "doing and not modify your DNS setup." + $ECHO -n ">>> Enter the DNS information here: " + + read DNS1 + + + if [ "$DNS1" != "" ] ; then + if [ "$DNS1" != "server" ] ; then + $ECHO "Please enter the IP address of your ISP's secondary DNS server." + $ECHO "If you just press enter, I will assume there is only one DNS server." + $ECHO -n ">>> Enter the secondary DNS server address here: " + read DNS2 + fi + fi + + while [ true ] ; do + $ECHO "" + $ECHO "PASSWORD" + $ECHO "" + stty -echo + $ECHO -n ">>> Please enter your PPPoE password: " + read PWD1 + $ECHO "" + $ECHO -n ">>> Please re-enter your PPPoE password: " + read PWD2 + $ECHO "" + stty echo + if [ "$PWD1" = "$PWD2" ] ; then + break + fi + + $ECHO -n ">>> Sorry, the passwords do not match. Try again? (y/n)" + read ANS + case "$ANS" in + N|No|NO|Non|n|no|non) + $ECHO "OK, quitting. Bye." + exit 1 + esac + done + + # Firewalling + $ECHO "" + $ECHO "FIREWALLING" + $ECHO "" + if test `uname -s` != "Linux" ; then + $ECHO "Sorry, firewalling is only supported under Linux. Consult" + $ECHO "your operating system manuals for details on setting up" + $ECHO "packet filters for your system." + FIREWALL=NONE + else + $ECHO "Please choose the firewall rules to use. Note that these rules are" + $ECHO "very basic. You are strongly encouraged to use a more sophisticated" + $ECHO "firewall setup; however, these will provide basic security. If you" + $ECHO "are running any servers on your machine, you must choose 'NONE' and" + $ECHO "set up firewalling yourself. Otherwise, the firewall rules will deny" + $ECHO "access to all standard servers like Web, e-mail, ftp, etc. If you" + $ECHO "are using SSH, the rules will block outgoing SSH connections which" + $ECHO "allocate a privileged source port." + $ECHO "" + while [ true ] ; do + $ECHO "The firewall choices are:" + $ECHO "0 - NONE: This script will not set any firewall rules. You are responsible" + $ECHO " for ensuring the security of your machine. You are STRONGLY" + $ECHO " recommended to use some kind of firewall rules." + $ECHO "1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation" + $ECHO "2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway" + $ECHO " for a LAN" + $ECHO -n ">>> Choose a type of firewall (0-2): " + read a + if [ "$a" = 0 -o "$a" = 1 -o "$a" = 2 ] ; then + break + fi + $ECHO "Please enter a number from 0 to 2" + done + + case "$a" in + 0) + FIREWALL=NONE + ;; + 1) + FIREWALL=STANDALONE + ;; + 2) + FIREWALL=MASQUERADE + ;; + esac + fi + + $ECHO "" + $ECHO "** Summary of what you entered **" + $ECHO "" + $ECHO "Ethernet Interface: $E" + $ECHO "User name: $U" + if [ "$D" = "no" ] ; then + $ECHO "Activate-on-demand: No" + else + $ECHO "Activate-on-demand: Yes; idle timeout = $D seconds" + fi + + if [ "$DNS1" != "" ] ; then + if [ "$DNS1" = "server" ] ; then + $ECHO "DNS addresses: Supplied by ISP's server" + else + $ECHO "Primary DNS: $DNS1" + if [ "$DNS2" != "" ] ; then + $ECHO "Secondary DNS: $DNS2" + fi + fi + else + $ECHO "DNS: Do not adjust" + fi + $ECHO "Firewalling: $FIREWALL" + $ECHO "" + while [ true ] ; do + $ECHO -n '>>> Accept these settings and adjust configuration files (y/n)? ' + read ANS + case "ANS" in + Y|y|yes|Yes|oui|Oui) + ANS=y + ;; + N|n|no|No|non|Non) + ANS=n + ;; + esac + if [ "$ANS" = "y" -o "$ANS" = "n" ] ; then + break + fi + done + if [ "$ANS" = "y" ] ; then + break + fi +done + +# Adjust configuration files. First to $CONFIG + +$ECHO "Adjusting $CONFIG" + +copy $CONFIG $CONFIG-bak +if [ "$DNS1" = "server" ] ; then + DNSTYPE=SERVER + DNS1="" + USEPEERDNS=yes +else + USEPEERDNS=no + if [ "$DNS1" = "" ] ; then + DNSTYPE=NOCHANGE + else + DNSTYPE=SPECIFY + fi +fi + +# Where is pppd likely to put its pid? +if [ -d /var/run ] ; then + VARRUN=/var/run +else + VARRUN=/etc/ppp +fi + +# Some #$(*& ISP's use a slash in the user name... +sed -e "s&^USER=.*&USER='$U'&" \ + -e "s&^ETH=.*Ð='$E'&" \ + -e "s&^PIDFILE=.*&PIDFILE=\"$VARRUN/\$CF_BASE-adsl.pid\"&" \ + -e "s/^FIREWALL=.*/FIREWALL=$FIREWALL/" \ + -e "s/^DEMAND=.*/DEMAND=$D/" \ + -e "s/^DNSTYPE=.*/DNSTYPE=$DNSTYPE/" \ + -e "s/^DNS1=.*/DNS1=$DNS1/" \ + -e "s/^DNS2=.*/DNS2=$DNS2/" \ + -e "s/^USEPEERDNS=.*/USEPEERDNS=$USEPEERDNS/" \ + < $CONFIG-bak > $CONFIG + +if [ $? != 0 ] ; then + $ECHO "** Error modifying $CONFIG" + $ECHO "** Quitting" + exit 1 +fi + +if [ "$DNS1" != "" ] ; then + if [ "$DNS1" != "server" ] ; then + $ECHO "Adjusting /etc/resolv.conf" + if [ -r /etc/resolv.conf ] ; then + grep -s "MADE-BY-RP-PPPOE" /etc/resolv.conf > /dev/null 2>&1 + if [ "$?" != 0 ] ; then + $ECHO " (But first backing it up to /etc/resolv.conf-bak)" + copy /etc/resolv.conf /etc/resolv.conf-bak + fi + fi + $ECHO "# MADE-BY-RP-PPPOE" > /etc/resolv.conf + $ECHO "nameserver $DNS1" >> /etc/resolv.conf + if [ "$DNS2" != "" ] ; then + $ECHO "nameserver $DNS2" >> /etc/resolv.conf + fi + fi +fi + +$ECHO "Adjusting /etc/ppp/pap-secrets and /etc/ppp/chap-secrets" +if [ -r /etc/ppp/pap-secrets ] ; then + $ECHO " (But first backing it up to /etc/ppp/pap-secrets-bak)" + copy /etc/ppp/pap-secrets /etc/ppp/pap-secrets-bak +else + cp /dev/null /etc/ppp/pap-secrets-bak +fi +if [ -r /etc/ppp/chap-secrets ] ; then + $ECHO " (But first backing it up to /etc/ppp/chap-secrets-bak)" + copy /etc/ppp/chap-secrets /etc/ppp/chap-secrets-bak +else + cp /dev/null /etc/ppp/chap-secrets-bak +fi + +egrep -v "^$U|^\"$U\"" /etc/ppp/pap-secrets-bak > /etc/ppp/pap-secrets +$ECHO "\"$U\" * \"$PWD1\"" >> /etc/ppp/pap-secrets +egrep -v "^$U|^\"$U\"" /etc/ppp/chap-secrets-bak > /etc/ppp/chap-secrets +$ECHO "\"$U\" * \"$PWD1\"" >> /etc/ppp/chap-secrets + +$ECHO "" +$ECHO "" +$ECHO "" +$ECHO "Congratulations, it should be all set up!" +$ECHO "" +$ECHO "Type 'adsl-start' to bring up your ADSL link and 'adsl-stop' to bring" +$ECHO "it down. Type 'adsl-status' to see the link status." +exit 0 |