Differences between version 3 and previous revision of HowToPPPHOWTO.
Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 3 | Last edited on Sunday, October 31, 2004 1:35:54 am | by AristotlePagaltzis | Revert |
Older page: | version 2 | Last edited on Friday, June 7, 2002 1:07:16 am | by perry | Revert |
@@ -1,5643 +1 @@
-Linux PPP HOWTO
-!!!Linux PPP HOWTO
-!Corwin Light-Williams
-!Joshua Drake
-
-Copyright (c) 2000 by Commandprompt, Inc
-
-
-
-Copyright (c) 1997 by Robert Hart
-
-
-
-
-
-
-
-This is a !LinuxPorts.Com Document for the Linux Documentation Project.
-
-
-
-
-
-----; __Table of Contents__; About This Document; 1. How can I help?; 2. Introduction: ; 2.1. Clients and Servers; 2.2. Differences between Linux distributions; 2.3. PPP configuration tools; 3. IP Numbers; 4. Aims of this Document: ; 4.1. Setting up a PPP Client; 4.2. Linking two LANs or a LAN to the Internet using PPP; 4.3. Using intuitive configuration tools to set up PPP; 4.4. Setting up a PPP server; 4.5. Using PPP over a direct null modem connection; 4.6. This document at present does NOT cover...; 5. Software versions covered; 6. Other Useful/Important Documents: ; 6.1. Useful Linux Mailing Lists; 7. Easy Configuration Utilities for PPP: ; 7.1. KPPP - The KDE PPP Dialer; 7.2. !WvDial - A command-line pppd driver; 7.3. rp3 - !RedHat PPP dialer; 7.4. Linuxconf - Universal (almost) Linux PPP dialer; 8. Debugging: ; 8.1. I have compiled PPP support into the kernel, but...; 8.2. My modem connects but ppp never starts up; 8.3. The syslog says "serial line is not 8 bit clean"; 8.4. Default route not set; 8.5. Other Problems; 9. Overview of what has to be done to get PPP working as a client: ; 9.1. Obtaining/Installing the software; 9.2. Compiling PPP support into the kernel; 9.3. Obtaining information from your ISP; 9.4. Configuring your modem and serial port; 9.5. Setting up Name to Address Resolution (DNS); 9.6. PPP and root Privileges; 9.7. Checking your distribution PPP Files and setting up the PPP Options; 9.8. If your PPP server uses PAP (Password Authentication Protocol); 9.9. Connecting to the PPP server by hand; 9.10. Automating your PPP Connection; 9.11. Shutting down the link; 9.12. If you have problems; 9.13. After the link comes up; 9.14. Problems with standard IP services on a Dynamic IP number PPP link; 9.15. Maintaining a permanent connection to the net with ''pppd''.; 10. Configuring your Linux Kernel: ; 10.1. Installing the Linux Kernel source; 10.2. Knowing your hardware; 10.3. Kernel compilation - the Linux 1.2.13 kernel; 10.4. Kernel compilation - the Linux 1.3.x, 2..x, and 2.2.x kernels; 10.5. Note on PPP-2.x and /proc/net/dev; 10.6. General kernel config considerations for PPP; 11. Getting the Information you need about the PPP server; 12. Configuring your modem and serial port: ; 12.1. A note about serial ports and speed capabilities; 12.2. Serial Port Names; 12.3. Configuring your modem; 12.4. Note on Serial Flow Control; 12.5. Testing your modem for dial out; 13. Setting up Name to Address Resolution (DNS): ; 13.1. The /etc/resolv.conf file; 13.2. The /etc/host.conf file; 14. Using PPP and root privileges; 15. Setting up the PPP connection files: ; 15.1. The supplied options.tpl file; 15.2. What options should I use? (No PAP/CHAP); 15.3. Other options to consider adding; 16. If your PPP server uses PAP (Password Authentication
-Protocol): ; 16.1. Using MSCHAP; 16.2. The PAP/CHAP secrets file; 16.3. The PAP secrets file; 16.4. The CHAP secrets file; 16.5. Handling multiple PAP-authenticated connections; 17. Setting up the PPP connection manually; 18. Automating your connections - Creating the connection scripts: ; 18.1. Connection scripts for User name/Password Authentication; 18.2. The ppp-on script; 18.3. Editing the supplied PPP startup scripts; 18.4. What a Chat script means...; 18.5. A chat script for PAP/CHAP authenticated connections; 18.6. The pppd debug and file option_file options; 19. Testing your connection script; 20. Shutting down the PPP link; 21. Getting Help when totally stuck; 22. Common Problems once the link is working: ; 22.1. I can't see beyond the PPP server I connect to; 22.2. I can send email, but not receive it; 22.3. Why can't people finger, WWW, gopher, talk, etc. to my machine?; 23. Using Internet services with Dynamic IP numbers: ; 23.1. Setting up email; 23.2. Setting Up a local Name server; 24. Linking two networks using PPP: ; 24.1. Setting up the IP numbers; 24.2. Setting up the routing; 24.3. Network security; 25. After the link comes up - the /etc/ppp/ip-up script: ; 25.1. Special routing; 25.2. Handling email queues; 25.3. A sample /etc/ppp/ip-up script; 25.4. Handling email; 26. Using /etc/ppp/ip-down; 27. Routing issues on a LAN: ; 27.1. Note on Security; 28. Setting up a PPP server: ; 28.1. Kernel compilation; 28.2. Overview of the server system; 28.3. Getting the software together; 28.4. Setting up standard (shell access) dialup.; 28.5. Setting up the PPP options files; 28.6. Setting pppd up to allow users to (successfully) run it; 28.7. Setting up the global alias for pppd; 29. Using PPP across a null modem (direct serial) connection; 30. PPPoE or PPP over Ethernet----
-!!!About This Document
-
-This document was updated via assistance from the
-Open Source Documentation Fund.
-This is a !LinuxPorts.Com Document for the
-Linux Documentation Project
-
-
-
-This document shows how to connect your Linux PC to a PPP server, how to
-use PPP to link two LANs together and provides one method of setting up
-your Linux computer as a PPP server.The document also provides help in
-debugging non-functional PPP connections.
-
-
-
-This document is distributed under the terms of the GPL (GNU Public
-License).
-
-----
-!!!Chapter 1. How can I help?
-
-We will try to provide comprehensive coverage for all Linux PPP implementations. However
-time is of the essence and this document is not a revenue maker. We provide this information
-in hopes that it will be useful to the Linux Community and newly converted Linux users.
-We are always interested in feedback and will implement every relevant topic possible to
-this HOWTO.
-
-
-
-If you would like to assist with this document, there are two primary avenues that are extremely
-helpful.
-
-
-
-
-
-
-*
-
-Purchase an !OpenBook! If you purchase
-!OpenDocs books, !OpenDocs Publishing will donate a portion of the proceeds back to the
-Open Source Documentation Fund. This
-fund assists authors financially while they continue to write documentation for Open Source
-projects.
-
-
-*
-*
-
-''Provide a monetary contribution to the document''. By doing so you can even request what
-you would like to have updated, written, or expanded with in the document. If it is a
-major revision (such as writing sections specifically for Mandrake or Caldera) please
-contact Command Prompt, Inc.
-
-
-*
-*
-
-If you have written something that you would like to contribute just email it to
-poet@linuxports.com
-
-
-*----
-!!!Chapter 2. Introduction
-
-PPP (the Point to Point Protocol) is a mechanism for creating and
-running IP (the Internet Protocol) and other network protocols over a
-serial link - be that a direct serial connection (using a null-modem
-cable), over a telnet established link, or a link made using modems and
-telephone lines (and of course using digital lines such as ISDN).
-
-
-
-Using PPP, you can connect your Linux PC to a PPP server and access the
-resources of the network to which the server is connected (almost) as if
-you were directly connected to that network.
-
-
-
-You can also set up your Linux PC as a PPP server, so that other
-computers can dial into your computer and access the resources on your
-local PC and/or network.
-
-
-
-As PPP is a peer-to-peer system, you can also use PPP on two Linux PCs
-to link together two networks (or a local network to the Internet),
-creating a Wide Area Network (WAN).
-
-
-
-One major difference between serial based PPP and an Ethernet connection is of course
-speed - a standard Ethernet connection operates at 10 Mbs (Mega - million bits
-per second) or 100 Mbs maximum theoretical throughput, whereas an analogue modem
-operates at speeds up to 56 kbps (kilo - thousand bits per second).
-
-
-
-Also, depending on the type of PPP connection, there may be some
-limitations in usage of some applications and services.
-
-----
-!!!2.1. Clients and Servers
-
-PPP is strictly a ''peer to peer'' protocol; there is (technically) no
-difference between the machine that dials in and the machine that is
-dialed into. However, for clarity's sake, it is useful to think in terms
-of ''servers'' and ''clients''.
-
-
-
-When you dial into a site to establish a PPP connection, you are a
-''client''. The machine to which you connect is the ''server''.
-
-
-
-When you are setting up a Linux box to receive and handle dial-in PPP
-connections, you are setting up a PPP ''server''.
-
-
-
-Any Linux PC can be both a PPP server and client - even
-simultaneously if you have more than one serial port (and modem if
-necessary). As stated above, there is no real difference between clients
-and servers as far as PPP is concerned, once the connection is made.
-
-
-
-This document refers to the machine that initiates the call (that dials
-in) as the ''CLIENT'', whilst the machine that answers the telephone,
-checks the authentication of the dial in request (using user names,
-passwords and possibly other mechanisms) is referred to as the
-''SERVER''.
-
-
-
-The use of PPP as a client to link one or more machines at a location
-into the Internet is, probably, the one in which most people are
-interested - that is using their Linux PC as a client.
-
-
-
-The procedure described in this document will allow you to
-establish and automate your Internet connection.
-
-
-
-This document will also give you guidance in setting up your Linux PC as
-a PPP ''server'' and in linking two LANs together (with full routing)
-using PPP (this is frequently characterized as establishing a WAN - wide
-area network - link).
-
-----
-!!!2.2. Differences between Linux distributions
-
-There are many different Linux distributions and they all have their own
-idiosyncrasies and ways of doing things.
-
-
-
-In particular, there are two different ways a Linux (and Unix) computer
-actually starts up, configures its interfaces, and so forth.
-
-
-
-These are ''BSD system initialization'' and ''System V system
-initialization''. If you dip into some of the Unix news groups, you
-will find occasional religious wars between proponents of these two
-systems. If that sort of thing amuses you, have fun burning bandwidth
-and join in!
-
-
-
-Possibly the most widely used distributions are
-
-
-
-
-
-
-
-
-*
-
-Slackware
-which uses BSD style system initialization
-
-
-*
-*
-
-Red Hat (and its former associate Caldera)
-which use SysV system initialization (although in a slightly modified form)
-
-
-*
-*
-
-Debian
-which uses SysV system initialization
-
-
-*
-
-
-
-BSD style initialization typically keeps its initialization files in
-/etc/... and these files are:-
-
-
-
-
- /etc/rc
-/etc/rc.local
-/etc/rc.serial
-(and possibly other files)
-
-
-
-Of recent times, some BSD system initialization schemes use a /etc/rc.d...
-directory to hold the start up file rather than putting everything into /etc.
-
-
-
-System V initialization keeps its initialization files in directories under
-/etc/... or /etc/rc.d/... and a number of
-subdirectories under there:-
-
-
-
-
-drwxr-xr-x 2 root root 1024 Jul 6 15:12 init.d
--rwxr-xr-x 1 root root 1776 Feb 9 05:01 rc
--rwxr-xr-x 1 root root 820 Jan 2 1996 rc.local
--rwxr-xr-x 1 root root 2567 Jul 5 20:30 rc.sysinit
-drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc0.d
-drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc1.d
-drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc2.d
-drwxr-xr-x 2 root root 1024 Jul 18 18:07 rc3.d
-drwxr-xr-x 2 root root 1024 May 27 1995 rc4.d
-drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc5.d
-drwxr-xr-x 2 root root 1024 Jul 6 15:12 rc6.d
-
-
-
-If you are trying to track down where your Ethernet interface and
-associated network routes are actually configured, you will need to
-track through these files to actually find where the commands are
-that do this.
-
-----
-!!!2.3. PPP configuration tools
-
-There are many good tools available for configuring and using PPP
-on Linux. This document will try to cover some of the more popular
-ones, including:
-
-
-
-
-
-
-*
-
-kppp
-A PPP setup and dialer tool for KDE.
-
-
-*
-*
-
-!WvDial
-Another PPP driver for Linux, with an emphasis on simplicity.
-
-
-*
-*
-
-RP3...(short for !RedHat PPP). It is a simple configuration program
-with a "wizard" interface- it asks a series of questions.
-
-
-*
-*
-
-Linuxconf
-A generalized tool for configuring and managing your Linux machine,
-it has a section that helps configure PPP.
-
-
-*----
-!!!Chapter 3. IP Numbers
-
-Every device that connects to the Internet must have its own, unique IP
-number. These are assigned centrally by a designated authority for each
-country.
-
-
-
-If you are connecting a local area network (LAN) to the Internet,
-''YOU MUST'' use an IP number from your own assigned network range for
-all the computers and devices you have on your LAN. You ''MUST NOT''
-pick IP numbers out of the air and use these whilst connecting to
-another LAN (let alone the Internet). At worst this will simply not work
-at all and could cause total havoc as your 'stolen' IP number starts
-interfering with the communications of another computer that is already
-using the IP number you have picked out of the air.
-
-
-
-Please note that the IP numbers used throughout this document (with some
-exceptions) are from the 'unconnected network numbers' series that are
-reserved for use by networks that are not (ever) connected to the
-Internet.
-
-
-
-There are IP numbers that are specifically dedicated to LANs that do not
-connect to the Internet. The IP number sequences are:-
-
-
-
-
-
-
-
-
-*
-
-One A Class Network Address
-10...0 (netmask 255...)
-
-
-*
-*
-
-16 B Class Network Addresses
-172.16..0 - 172.31..0 (netmask 255.255..)
-
-
-*
-*
-
-256 C Class Network Addresses
-192.168..0 - 192.168.255.0 (netmask 255.255.255.)
-
-
-*
-
-
-
-If you have a LAN for which you have ''not'' been allocated IP
-numbers by the responsible authority in your country, you should use one
-of the network numbers from the above sequences for your machines.
-
-
-
-These numbers should ''never'' be used on the Internet.
-
-
-
-However, they can be used for the local Ethernet on a machine that is
-connecting to the Internet. This is because IP numbers are actually
-allocated to a network interface, not to a computer. So whilst your
-Ethernet interface may use 10...1 (for example), when you hook onto
-the Internet using PPP, your PPP interface will be given another (and
-valid) IP number by the server. Your PC will have Internet connectivity,
-but the other computers on your LAN will not.
-
-
-
-However, using Linux and the IP Masquerade (also known as NAT - Network
-address Translation) capabilities of the Linux and the ipfwadm
-software, you can connect your LAN to the Internet (with some
-restriction of services), even if you do not have valid IP numbers for the
-machines on your Ethernet.
-
-
-
-For more information on how to do this see the IP Masquerade mini-HOWTO
-at Linux IP Masquerade mini HOWTO
-
-
-
-For most users, who are connecting a single machine to an Internet
-service provider via PPP, obtaining an IP number (or more accurately, a
-network number) will not be necessary.
-
-
-
-If you wish to connect a small LAN to the Internet, many Internet
-Service Providers (ISPs) can provide you with a dedicated subnet (a specific
-sequence of IP numbers) from their existing IP address space.
-Alternatively, use IP Masquerading.
-
-
-
-For users, who are connecting a single PC to the Internet via an ISP,
-most providers use ''dynamic'' IP number assignment. That is, as part
-of the connection process, the PPP service you contact will tell your
-machine what IP number to use for the PPP interface during the current
-session. This number will not be the same every time you connect to your
-ISP.
-
-
-
-With dynamic IP numbers, you are ''not'' necessarily
-given the same IP number each time you connect. This has implications for
-server type applications on your Linux machine such as sendmail, ftpd, httpd
-and so forth. These services are based on the premise that the computer
-offering the service is accessible at the same IP number all the time
-(or at least the same fully qualified domain name - FQDN - and that DNS
-resolution of the name to IP address is available).
-
-
-
-The limitations of service due to dynamic IP number assignment (and ways
-to work around these, where possible) are discussed later in the
-document.
-
-----
-!!!Chapter 4. Aims of this Document
-!!!4.1. Setting up a PPP Client
-
-This document provides guidance to people who wish to use Linux and PPP to
-dial into a PPP server and set up an IP connection using PPP. It assumes
-that PPP has been compiled and installed on your Linux machine (but does
-briefly cover reconfiguring/recompiling your kernel to include PPP support).
-
-
-
-Whilst DIP (the standard way of creating a SLIP connection) can be used
-to set up a PPP connection, DIP scripts are generally quite complex. For
-this reason, this document does NOT cover using DIP to set up a PPP
-connection.
-
-
-
-Instead, this document describes the standard Linux PPP software
-(chat/pppd).
-
-----
-!!!4.2. Linking two LANs or a LAN to the Internet using PPP
-
-This document provides (basic) information on linking two LANs or a LAN
-to the Internet using PPP.
-
-----
-!!!4.3. Using intuitive configuration tools to set up PPP
-
-There are many tools used for configuring your PPP connection.
-This document will try to cover the most common and easiest to
-use of said programs.
-
-----
-!!!4.4. Setting up a PPP server
-
-This document provides guidance on how to configure your Linux PC
-as a PPP server (allowing other people to dial into your Linux PC and
-establish a PPP connection).
-
-
-
-You should note that there are a myriad of ways of setting up Linux as a
-PPP server. This document gives one method - that used by
-the author to set up several small PPP servers (each of 16 modems).
-
-
-
-This method is known to work well. However, it is not necessarily
-the best method.
-
-----
-!!!4.5. Using PPP over a direct null modem connection
-
-This document provides a brief overview of using PPP to link two Linux
-PCs via a null modem cable. It is possible to link other OS's to Linux
-this way as well. To do so, you will need to consult the documentation
-for the operating system you are interested in.
-
-----
-!!!4.6. This document at present does NOT cover...
-
-
-
-
-
-
-*
-
-Compiling the PPP daemon software
-See the documentation that comes with the version of pppd you are using.
-
-
-*
-*
-
-Connecting and configuring a modem to Linux (in detail)
-See the Serial-HOWTO and for modem specific initialization, see Modem Setup Information for information that may help you to configure your modem.
-
-
-*
-*
-
-Using DIP to make PPP connections.
-Use chat instead...
-
-
-*
-*
-
-Using socks or IP Masquerade.
-There are perfectly good documents already covering these two packages.
-
-
-*
-*
-
-Using EQL to gang together two modems into a single PPP link. This is covered in the
-Networking-HOWTO.
-
-
-*
-
-----
-!!!Chapter 5. Software versions covered
-
-This HOWTO assumes that you are using a Linux 1.2.x kernel with the
-PPP 2.1.2 software or 1.3.x/2..x/2.2.x kernel with the PPP 2.4.0 software.
-
-
-
-This HOWTO will cover version 1.6.18 of KPPP.
-
-
-
-This HOWTO will cover version 1.41 of !WvDial.
-
-
-
-This HOWTO will cover version .03 of PPPoE.
-
-
-
-This HOWTO will cover version 1.18 of Linuxconf.
-
-
-
-''Please try to use the latest versions of software, as many bugs are fixed
-as time goes on.''
-
-----
-!!!Chapter 6. Other Useful/Important Documents
-
-Users are advised to read :-
-
-
-
-
-
-*
-
-The documentation that comes with the PPP package.
-
-
-*
-*
-
-The pppd and chat man pages;
-(use man chat and man pppd to explore these.)
-
-
-*
-*
-
-The Linux Network Administration Guide (NAG);
-see The Network Administrators' Guide.
-
-
-*
-*
-
-The Net-2/3 HOWTO;
-see Linux Networking-HOWTO.
-
-
-*
-*
-
-Linux kernel documentation installed in
-/usr/src/linux/Documentation when you install the Linux source
-code.
-
-
-*
-*
-
-The modem setup information page - see Modem Setup Information.
-
-
-*
-*
-
-The excellent Unix/Linux books published by O'Reilly and
-Associates. See (O'Reilly and Associates On-Line Catalogue). If you are new
-to Unix/Linux, ''run'' (don't walk) to your nearest computer book shop
-and invest in a number of these immediately!
-
-
-*
-*
-
-The PPP-FAQ maintained by Al Longyear, available from Linux PPP-FAQ.
-This contains a great deal of useful information in question/answer
-format that is very useful when working out why PPP is not working
-(properly).
-
-
-*
-*
-
-The growing number of Linux books from various publishing houses and
-authors;
-You are actively encouraged to check the currency of these
-books. Linux development and distributions tend to evolve fairly
-rapidly, whilst the revision of books move (generally) much more slowly!
-Buying an excellent book (and there are many) that is now out of date
-will cause new users considerable confusion and frustration.
-
-
-*
-*
-
-The documentation associated with the PPP tool(s) you are using
-The package specific documentation, usually easily available, is
-often the most useful when dealing with a specific tool.
-
-
-*
-
-
-
-The best general starting point for Linux documentation is The Linux Documentation Project Home Page. The HOWTO's tend to be revised reasonably regularly.
-
-
-
-Whilst you can use this document to create your PPP link without reading
-any of these documents, you will have a far better understanding of what
-is going on if you do so! You will also be able to address problems
-yourself (or at least ask more intelligent questions on the
-comp.os.linux... newsgroups or Linux mailing lists).
-
-
-
-These documents (as well as various others, including the relevant RFCs)
-provide additional and more detailed explanation than is possible in
-this HOWTO.
-
-
-
-If you are connecting a LAN to the Internet using PPP, you will need
-to know a reasonable amount about TCP/IP networking. In addition to the
-documents above, you will find the O'Reilly books "TCP/IP Network Administration"
-and "Building Internet Firewalls" of considerable benefit!
-
-----
-!!!6.1. Useful Linux Mailing Lists
-
-There are many Linux mailing lists that operate as a means of communication
-between users of many levels of ability. By all means subscribe to those
-that interest you and contribute your expertise and views.
-
-
-
-''A word to the wise'': some lists are specifically aimed at "high powered"
-users and/or specific topics. Whilst no-one will complain if you 'lurk'
-(subscribe but don't post messages), you are likely to earn heated
-comments (if not outright flames) if you post 'newbie' questions to
-inappropriate lists.
-
-
-
-This is not because guru level users hate new users, but because these
-lists are there to handle the specific issues at particular levels of
-difficulty.
-
-
-
-By all means join the lists that offer open subscription, but keep your
-comments relevant to the subject of the list!
-
-
-
-A good starting point for Linux mailing lists is
-Linux Mailing List Directory
-
-----
-!!!Chapter 7. Easy Configuration Utilities for PPP
-!!!7.1. KPPP - The KDE PPP Dialer
-
-http://devel-home.kde.org/~kppp/index.html
-
-
-
-KPPP is an easy tool for configuring your PPP links. It comes with the
-default installation of KDE, and is quite well integrated into that
-environment.
-
-
-
-KPPP also has a good help system built in. If you just right click
-on the majority of the buttons in the application, a menu will pop
-up with an item called "Quickhelp". Clicking it will give a quick
-summary of whatever item you clicked on.
-
-
-
-The opening screen of kppp will list any available connections, and
-allow you to specify a Login ID and password for the connection.
-There is also a "Show Log Window" option. Selecting this will show
-a log window. This can be handy if you are trying to debug a connection.
-
-
-
-
-
-
-
-For now, click on the "Setup" button. This will bring up the setup
-window. It has a series of tabs across the top. Select the one called
-"Accounts". There will be a list of Accounts, if any.
-
-
-
-
-
-
-
-Select "New" from the right hand side. Another menu will pop up.
-
-
-
-
-
-
-
-First, specify a name for this connection in the "Connection Name" box.
-A good name would be the name of your ISP. Then enter the phone number.
-Select the type of authentication. If your ISP hasn't specified otherwise,
-leave it as "PAP". You can optionally store your password between sessions,
-but this may be a security risk.
-
-
-
-Click on the tab marked "IP". Here you have the option to configure your
-IP address, either a Dynamic or Static address. You should know what kind
-you want, specified by your ISP. You can also optionally specify that
-you wish to configure the hostname for this IP, which means that kppp will
-name your machine according to the name given to it by your ISP.
-
-
-
-
-
-
-
-Click on the tab marked "DNS". Here you can set up DNS. Fill in the appropriate
-fields with the information supplied from your ISP.
-
-
-
-
-
-
-
-Click on the "Gateway" tab. Here you can configure your gateway, or router
-address. If a gateway or router address was specified by your ISP, select
-"Static Gateway" and enter it in the box below. Otherwise leave this alone.
-The box marked "Assign the Default Route" should be checked.
-
-
-
-
-
-
-
-The "Login Script" tag is only useful if you specified "Login Script"
-authentication under the "Dial" tab. If you need to use a Login Script,
-you can enter it here, as a series of commands. Select the type of command
-you wish to use, followed by the argument, then click "Add". Click "Remove"
-to remove a selected command.
-
-
-
-
-
-
-
-The "Accounting" tab allows you to track the number of bytes that you
-have sent and recieved for a given connection. This can be useful if your
-ISP tracks the amount of data that you use, and perhaps charges you based
-on that. If you wish to use accounting, click on the "Enable accounting" box.
-You can then select a country, if you live in a country that has taxes,
-tariffs, or other charges based on data transfer. Otherwise, just select
-either "Bytes in", "Bytes in and out", or "Bytes out". For more information,
-consult the KPPP manual.
-
-
-
-
-
-
-
-Click OK to finish the creation of this new account.
-
-
-
-Now we'll cover the other tabs in the kppp configuration window.
-
-
-
-The next one is "Device". It contains configuration information about
-your modem. You can select the device, flow control, line termination,
-and connection speed. It is recommended that you leave these alone unless
-otherwise specified by your ISP. You can also specify values for using
-a lock file for your modem device(recommended) and a modem timeout.
-Modem timeout refers to the amount of time that kppp will wait for your
-modem to respond.
-
-
-
-
-
-
-
-The "Modem" tab is mainly useful for debugging your modem. You can also
-adjust your modem volume. For more information on these commands, consult
-the kppp documentation.
-
-
-
-
-
-
-
-Next is the "PPP" tag. It contains many useful items for making kppp tailor
-fit to your needs. The "pppd Timeout" field specifies how long kppp should
-wait for pppd to bring up a connection. The "Dock" option states that kppp
-should recede into the KDE dock when it is connected. The "Automatic redial"
-specifies that kppp should redial if it is disconnected. The "show clock"
-option will display how time you have been connected. The "Disconnect on
-X-server shutdown" means that if you leave KDE, PPP should shut down.
-The "Quit on Disconnect" option will close kppp if you disconnect from your
-ISP. Finally, the "Minimize window on connect" option will minimize kppp
-when it connects.
-
-
-
-
-
-
-
-The "Graph" tab is useful for kppp's throughput graphing. For more information
-on this feature, see kppp's documentation.
-
-
-
-Click Ok to leave this menu. Now ensure your connection is selected in
-the "Connect to:" box, and click "connect". You're all set!
-
-----
-!!!7.2. !WvDial - A command-line pppd driver
-
-The !WvDial homepage is here
-
-
-
-!WvDial is a command-line pppd driver. It has two main components, wvdialconf
-and wvdial. Both must be run as root.
-
-
-
-First you must run wvdialconf. wvdialconf is generates a configuration
-file containing information on your modem and ISP information. Running
-wvdialconf will probe your comm ports, looking for a modem, and determine
-the capabilities of any modems it finds.
-
-
-
-wvdialconf is invoked with the name of your wvdial configuration file-
-which is always /etc/wvdial.conf. Here's what the output should look like.
-
-
-
[[root@blah /root
]# wvdialconf newconffile
-Scanning your serial ports for a modem.
-ttyS1`*1b: ATQ0 V1 E1 -- OK
-ttyS1`*1b: ATQ0 V1 E1 Z -- OK
-ttyS1`*1b: ATQ0 V1 E1 S0=0 -- OK
-ttyS1`*1b: ATQ0 V1 E1 S0=0 8C1 -- OK
-ttyS1`*1b: ATQ0 V1 E1 S0=0 8C1 8D2 -- OK
-ttyS1`*1b: ATQ0 V1 E1 S0=0 8C1 8D2 S11=55 -- OK
-ttyS1`*1b: ATQ0 V1 E1 S0=0 8C1 8D2 S11=55 +FCLASS=0 -- OK
-ttyS1`*1b: Modem Identifier: ATI -- 28800
-ttyS1`*1b: Speed 2400: AT -- OK
-ttyS1`*1b: Speed 4800: AT -- OK
-ttyS1`*1b: Speed 9600: AT -- OK
-ttyS1`*1b: Speed 19200: AT -- OK
-ttyS1`*1b: Speed 38400: AT -- OK
-ttyS1`*1b: Speed 57600: AT -- OK
-ttyS1`*1b: Speed 115200: AT -- OK
-ttyS1`*1b: Max speed is 115200; that should be safe.
-ttyS1`*1b: ATQ0 V1 E1 S0=0 8C1 8D2 S11=55 +FCLASS=0 -- OK
-ttyS0`*1b: ATQ0 V1 E1 -- ATQ0 V1 E1 -- ATQ0 V1 E1 -- nothing.
-Port Scan`*1b: S2 S3
-Found a modem on /dev/ttyS1.
-
-If your output looks different, check that your modem is plugged in,
-turned on, and connected to a com port.
-
-
-
-Once you have run wvdialconf, you need to edit the /etc/wvdial.conf file
-to reflect the phone number to dial, and your username and password.
-Open up /etc/wvdial.conf in your favorite text editor. It should look
-something like this:
-
-
-[[Dialer Defaults]
-Modem = /dev/ttyS1
-Baud = 115200
-Init1 = ATZ
-Init2 = ATQ0 V1 E1 S0=0 8C1 8D2 S11=55 +FCLASS=
-; Phone = 555-1212
-; Username = my_login_name
-; Password = my_login_password
-
-Remove the ';' and fill in the appropriate fields- phone number,
-login name and password. Now you should be all set to run wvdial.
-
-
-
-Run wvdial. Assuming that you filled in your phone number, username,
-and password correctly, wvdial will now dial your ISP. wvdial will not
-exit until the connection is terminated- you can do a Ctrl-C to terminate
-it.
-
-
-
-wvdial is fairly new and untested software, so if you run into any
-problems along the way, you should contact the authors. You can find
-their contact info on the homepage listed above.
-
-----
-!!!7.3. rp3 - !RedHat PPP dialer
-
-A good page about rp3 is located
here.
-
-
-
-rp3 is available on any !RedHat system running !RedHat 6.2 or later.
-It is located on your GNOME menu under Internet- called
-"Dialup Configuration Tool". It is perhaps the simplest to use
-of the tools this HOWTO covers. When you start it up, it presents
-you with a screen that looks like this:
-
-
-
-
-
-
-
-Click "Next". If rp3 can't find a modem, it will try to confiugre one.
-Select your modem from the list and click next if this happens. You should
-see a screen asking for an "Account name" and a phone number. Enter your
-ISP's name and number in the appropriate fields. Click "Next".
-
-
-
-rp3 will then ask you for your username and password. Enter them
-in the appropriate fields and click "Next". Next rp3 will ask you
-if your ISP is named in a list. If it is, select it and click
-next. If not, select "Normal ISP" and click next.
-
-
-
-That's it! Click "Finish" to complete account creation.
-
-
-
-To initiate a connection, go to the GNOME menu again, and look under Internet
-for "RH PPP Dialer". Click on it. When asked for an interface, select
-"ppp0". This should bring up a small window. Right click on the window,
-then on "Connect to ppp0". Wait a few seconds, and you're online! To
-disconnect, right click on the window again, and then click "Disconnect".
-That's it.
-
-----
-!!!7.4. Linuxconf - Universal (almost) Linux PPP dialer
-
-Linuxconf homepage
-
-
-
-For help at any time while using Linuxconf, just hit the help key. Linuxconf
-has contextual help menus for most its functionality.
-
-
-
-Linuxconf's PPP section is fairly simple. First of all, open up Linuxconf.
-This must be done as root. Here's a shot of Linuxconf in action:
-
-
-
-
-
-
-
-Click on the box next to "Config", then the box on "Networking", then the
-box next to "Client tasks". You should see an entry called "PPP/SLIP/PLIP".
-Click on that. On the right hand side of Linuxconf, you should now see
-a box called "PPP/Slip/Plip configurations". There should be an area
-below that, listing existing PPP devices(if any) and three buttons below
-that.
-
-
-
-
-
-
-
-Click "Add" to add a new connection. It will then ask you to
-select a type of interface. Make sure "PPP" is selected, then press
-Accept.
-
-
-
-
-
-
-
-In this box, there are fields for phone number, modem, username and password.
-Enter the appropriate information into the appropriate fields, and
-you should be configured.
-
-
-
-To bring up the PPP link, open the "Control" tab on the left hand side,
-then go to "Control Panels", then "Control PPP/SLIP/PLIP Link".
-You should see a list of PPP devices. Click on the one you just made.
-A question will pop up, asking you if you wish to activate the connection.
-Click "Yes".
-
-
-
-
-
-
-
-There are also advanced configuration options, such as modem speed,
-connect scripts and etc. If you need to configure any of that, go
-back to the place where you originally configured the link, and click
-on the link you wish to customize. It should bring up a screen with
-four tabs: Hardware, Communication, Networking,and PAP.
-
-
-
-It is advisable to not change any of these options unless you are specifically
-told to do so by your ISP or modem vendor. Most of them will work just fine
-without any additional configuration.
-
-
-
-Linuxconf also has command line tools for use in bringing your
-PPP connection up and down:
-
-
-
-
-
-
-*
-
-netconf --connect pppsetup [[--fore]
-This will bring the link up. The optional --fore means that it remains
-in the foreground. Otherwise it will terminate either if the connection is
-successful or if it fails. It will return 0 if successful, higher if otherwise.
-
-
-
-
-
-
-*
-*
-
-netconf --dialctl
-This will display all the available connections and their status.
-
-
-*
-*
-
-netconf --disconnect pppsetup
-This will disconnect the link.
-
-
-*----
-!!!Chapter 8. Debugging
-
-There are any number of reasons that your connection does not work -
-chat has failed to complete correctly, you have a dirty line, etc. So
-check your syslog for indications.
-
-----
-!!!8.1. I have compiled PPP support into the kernel, but...
-
-A very common problem is that people compile PPP support into the kernel
-and yet when they try to run pppd, the kernel complains that it does not
-support ppp! There are a variety of reasons this can occur.
-
-----
-!!8.1.1. Are you booting the right kernel?
-
-Whilst you ''have'' recompiled your kernel to support ppp, you
-are not booting the new kernel. This can happen if you do not update
-/etc/lilo.conf and rerun lilo.
-
-
-
-A good check on the kernel can be obtained by issuing the command
-uname -a, which should produce a line like:-
-
-
-
-
-Linux archenland 2..28 #2 Thu Feb 13 12:31:37 EST 1997 i586
-
-
-
-This gives the kernel version and the date on which this kernel was
-compiled - which should give you a pretty good idea of what is going on.
-
-----
-!!8.1.2. Did you compile ppp kernel support as a module?
-
-If you compiled your kernel ppp support as a module, but did not make
-and install the modules, then you can get this error. Check the
-kernel-HOWTO and the README file in /usr/src/linux!
-
-
-
-Another module connected possibility is that you are expecting required
-modules to be automatically loaded, but are not running the kerneld
-daemon (which auto-loads and unloads modules on the fly). Check the
-kerneld mini-HOWTO for information on setting up kerneld.
-
-----
-!!8.1.3. Are you using the correct version of PPP for your kernel?
-
-You ''must'' use ppp-2.2 with kernel version 2..x. You can use ppp-2.2
-with kernel version 1.2.x (if you patch the kernel), otherwise you must
-use ppp-2.1.2.
-
-----
-!!8.1.4. Are you running pppd as root?
-
-If you are not running pppd as the root user (and pppd is not suid to
-root), you can receive this message.
-
-----
-!!!8.2. My modem connects but ppp never starts up
-
-There are innumerable variations on this (take a look in comp.os.linux...).
-
-
-
-A ''VERY'' common mistake is that you have mistyped something in your
-scripts. The only thing to do here is to make sure you are logging the
-chat conversation between you Linux PC and the server into your syslog
-(/var/log/messages) and then go through this ''line by line'' to make
-sure there are no mistakes.You may need to dial into the ppp server manually to check
-things out again.
-
-
-
-You need to check the log against the actual prompts very carefully -
-and bear in mind that we humans have a tendency to read what we THINK we
-have typed - not what is actually there!
-
-----
-!!!8.3. The syslog says "serial line is not 8 bit clean"
-
-There are variations on this too - such as serial line looped back
-etc., and the cause can be one (or a sequence) of a number of things.
-
-
-
-To understand what is going on here, it is necessary to grasp a bit of
-what is going on behind the scenes in pppd itself.
-
-
-
-When pppd starts up, it sends LCP (link control protocol) packets to the
-remote machine. If it receives a valid response it then goes on to the
-next stage (using IPCP - IP control protocol packets) and only when
-this negotiation completes is the actual IP layer started so that you
-can use the PPP link.
-
-
-
-If there is no ppp server operating at the remote end when your PC sends
-lcp packets, these get reflected by the login process at the far end. As
-these packets use 8 bits, reflecting them strips the 8th bit (remember,
-ASCII is a 7 bit code). PPP sees this and complains accordingly.
-
-
-
-There are several reasons this reflection can occur.
-
-----
-!!8.3.1. You are not correctly logging into the server
-
-When your chat script completes, pppd starts on your PC. However, if you
-have not completed the log in process to the server (including sending
-any command required to start PPP on the server), PPP will not start.
-
-
-
-So, the lcp packets are reflected and you receive this error.
-
-
-
-You need to carefully check and correct (if necessary) your chat script
-(see above).
-
-----
-!!8.3.2. You are not starting PPP on the server
-
-Some PPP servers require you to enter a command and/or a RETURN after
-completing the log in process before the remote end starts ppp.
-
-
-
-Check your chat script (see above).
-
-
-
-If you log in manually and find you need to send a RETURN after this to
-start PPP, simply add a blank expect/send pair to the end of your chat
-script (an empty send string actually sends a RETURN).
-
-----
-!!8.3.3. The remote PPP process is slow to start
-
-This one is a bit tricksy!
-
-
-
-By default, your Linux pppd is compiled to send a maximum of 10 lcp
-configuration requests. If the server is a bit slow to start up, all 10
-such requests can be sent before the remote PPP is ready to receive
-them.
-
-
-
-On your machine, pppd sees all 10 requests reflected back (with the 8th
-bit stripped) and exits.
-
-
-
-There are two ways round this:-
-
-
-
-Add "lcp-max-configure 30" to your ppp options. This increases
-the maximum number of lcp configure packets pppd sends before giving up.
-For really slow server, you may need even more than this.
-
-
-
-Alternatively, you can get a bit tricksy in return. You may have noticed
-that when you logged in by hand to the PPP server and PPP started there,
-the ''first'' character of the ppp garbage that appears was always the
-tilde character (#732).
-
-
-
-Using this knowledge we can add a new expect/send pair to the
-end of the chat script which expects a tilde and sends nothing. This
-would look like:-
-
-
-
-
-\~ ''
-
-
-
-Note: as the tilde character has a special meaning in the shell, it must
-be escaped (and hence the leading backslash).
-
-----
-!!!8.4. Default route not set
-
-If pppd refuses to set up a default route, it is because (quite
-correctly) it refuses to remove/replace an existing default route.
-
-
-
-The usual reason that this error occurs is that some distributions set
-up a default route via your Ethernet card as opposed to setting up a
-specific network route.
-
-
-
-See the Linux NAG and the Net2/3 HOWTOs for information on correctly
-setting up your Ethernet card and associated routes.
-
-
-
-An alternative to this is that your LAN uses a gateway/router already and your
-routing table has been set up to point the default route at this.
-
-
-
-Fixing up this last situation can require a fair bit of IP networking knowledge
-and is beyond the scope of this HOWTO. It is suggested you obtain some
-expert advice (via the news groups of from someone locally you can ask).
-
-----
-!!!8.5. Other Problems
-
-There are many reasons apart from these that ppp fails to connect and/or
-operate properly.
-
-
-
-Look in the PPP FAQ (which is really a series of questions and
-answers). This is a very comprehensive document and the answers ARE
-there! From my own (sad) experience, if the answer to your
-problems is not there, the problem is NOT ppp's fault! In my case I was
-using an ELF kernel that I had not upgraded to the appropriate
-kernel modules. I only wasted about 2 days (and most of one night)
-cursing what had been a perfect PPP server before the light dawned!
-
-----
-!!!Chapter 9. Overview of what has to be done to get PPP working as a client
-
-This document contains a great deal of information - and with each
-version it grows!
-
-
-
-As a consequence, this section aims to provide a concise overview of the
-actions you will need to take to get your Linux system connected as a
-client to a PPP server.
-
-----
-!!!9.1. Obtaining/Installing the software
-
-If your Linux distribution does not include the PPP software, you will
-need to obtain this from the Linux PPP daemon.
-
-
-
-Select the latest possible version(2.4.0 at the time of this writing.)
-
-
-
-The PPP package contains instructions on how to compile and install the
-software ''so this HOWTO does not''!
-
-----
-!!!9.2. Compiling PPP support into the kernel
-
-Linux PPP operations come in two parts
-
-
-
-
-
-*
-
-the PPP daemon mentioned above
-
-
-*
-*
-
-kernel support for PPP
-
-
-*
-
-
-
-Most distributions seem to provide PPP kernel support in their default
-installation kernels, but others do not.
-
-
-
-If at boot your kernel reports messages like
-
-
-
-
-PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.
-PPP line discipline registered.
-
-
-
-your kernel does have PPP support compiled in.
-
-
-
-That said, you may want to compile your own kernel, whatever
-your distribution, to provide the most efficient use of system resources
-given your particular hardware configuration. It is worth remembering
-that the kernel cannot be swapped out of memory and so keeping the
-kernel as small as possible has advantages on a memory limited machine.
-
-
-
-This document provides minimal kernel re-compilation instructions at
-section Chapter 10.
-
-
-
-For greater detail, see the Kernel-HOWTO at The Linux Kernel HOWTO
-
-----
-!!!9.3. Obtaining information from your ISP
-
-There are an almost infinite number of ways in which a PPP server can be
-set up. In order to connect to your ISP (or corporate PPP server to access
-your intranet), you will need to obtain information on how the PPP
-server operates.
-
-
-
-Because you are using Linux, you may have some difficulty with some ISP
-help desks (and work site based PPP intranet servers) which know only
-about MS Windows clients.
-
-
-
-However, a rapidly growing number of ISPs use Linux to provide their
-service - and Linux is also penetrating the corporate environment as
-well, so you may be lucky if you do strike problems.
-
-
-
-Section Chapter 11 tells you what you need to know about the PPP server
-to which you are going to connect - and how to find out the information
-you need to know.
-
-----
-!!!9.4. Configuring your modem and serial port
-
-In order to connect to a PPP server and to obtain the best possible
-data transfer rate, your modem needs to be configured correctly.
-
-
-
-Similarly, the serial ports on your modem and computer need to be set up
-correctly.
-
-
-
-Section Chapter 12
-provides information on this.
-
-----
-!!!9.5. Setting up Name to Address Resolution (DNS)
-
-In addition to the files that run PPP and perform the automated log in
-to the PPP server, there are a number of text configuration files that
-have to be set up for your computer to be able to resolve names like
-www.interweft.com.au to the IP address
-that is actually used to contact that computer. These are:-
-
-
-
-
-
-
-
-
-*
-
-/etc/resolv.conf
-
-
-*
-*
-
-/etc/host.conf
-
-
-*
-
-
-
-Section Chapter 13
-for details on setting this up.
-
-
-
-In particular, you do ''NOT'' need to run a name server on your Linux
-PC in order to connect to the Internet (although you may wish to). All
-you need is to know the IP number of at least one name server that you
-can use (preferably one at your ISPs site).
-
-----
-!!!9.6. PPP and root Privileges
-
-As establishing a PPP link between you Linux computer and another PPP
-server requires manipulation of network devices (the PPP interface is a
-network interface) and the kernel routing table, pppd requires root
-privileges.
-
-
-
-For details on this, see section Chapter 14.
-
-----
-!!!9.7. Checking your distribution PPP Files and setting up the PPP Options
-
-There are a number of configuration and dialer files that need to be set up
-to get PPP operational. There are examples as part of the PPP
-distribution and this section shows what files you should have:-
-
-
-
-
-/etc/ppp/options
-/etc/ppp/scripts/ppp-on
-/etc/ppp/scripts/ppp-on-dialer
-/etc/ppp/options.tpl
-
-
-
-You may need to create some additional files depending on exactly what
-you are aiming to achieve with PPP:-
-
-
-
-
-/etc/ppp/options.ttyXX
-/etc/ppp/ip-up
-/etc/ppp/pap-secrets
-/etc/ppp/chap-secrets
-
-
-
-In addition, the PPP daemon can use a large number of command line
-options and it is important to use the right ones; so this section takes
-you through the standard PPP options and helps you choose the options
-you should use.
-
-
-
- For details on this, see Chapter 15.
-
-----
-!!!9.8. If your PPP server uses PAP (Password Authentication Protocol)
-
-Many ISPs and corporate PPP servers use PAP. If your server does
-''not'' require you to use PAP (if you can log in manually and receive
-the standard user name/password text based prompts it does not use PAP),
-you can safely ignore this section.
-
-
-
-Instead of logging into such a server using a user name and password
-when prompted to enter them by the server, a PPP server using PAP does
-not require a text based login.
-
-
-
-The user authentication information instead is exchanged as part of the
-link control protocol (LCP), which is the first part of establishing a
-PPP link.
-
-
-
-Section Chapter 16 provides information on the files you need to set up to
-establish a PPP link using PAP.
-
-----
-!!!9.9. Connecting to the PPP server by hand
-
-Having set up the basic files, it is a good idea to test these by
-connecting (using minicom or seyon) and starting pppd on your Linux PC
-by hand.
-
-
-
-See Section Chapter 17 for
-full details of setting this up.
-
-----
-!!!9.10. Automating your PPP Connection
-
-Once you are able to log in by hand, you can now move to setting up a
-set of scripts that will automate the establishment of the connection.
-
-
-
-Section Chapter 18 covers setting up the necessary scripts, with
-considerable attention paid to chat and scripting the login process
-to the PPP server.
-
-
-
-This section discusses scripts for user name/password authentication as
-well as scripts for PAP/CHAP authenticating servers.
-
-----
-!!!9.11. Shutting down the link
-
-Once your link is up and working, you need to be able to deactivate the
-link.
-
-
-
-This is covered in Section Chapter 20.
-
-----
-!!!9.12. If you have problems
-
-Many people have problems getting PPP to work straight away. The
-variation in PPP servers and how they require you to set up the
-connection is enormous. Similarly, there are many options to PPP - and
-some combinations of these just do not work together, ever.
-
-
-
-In addition to the problems of logging in and starting the PPP service,
-there are problems with the modems and the actual telephone lines as well!
-
-
-
-Section Chapter 8 provides some basic
-information about common errors, how to isolate these and fix them.
-
-
-
-This is ''NOT'' intended to provide more than just the basics. Al
-Longyear maintains the PPP-FAQ which contains much more information on
-this topic!
-
-----
-!!!9.13. After the link comes up
-
-Once a PPP link is operational (specifically, once the IP layer is
-operational), Linux PPP can automatically run (as the root user), a script
-to perform ''any'' function you can write a script to accomplish.
-
-
-
-Section Chapter 25 provides information on the
-/etc/ppp/ip-up script, the parameters it receives from PPP, and
-how to use it to do things like, acquire your email from your ISP
-account, send any queued email waiting transmission on your machine and
-such.
-
-----
-!!!9.14. Problems with standard IP services on a Dynamic IP number PPP link
-
-As noted in the introduction, dynamic IP numbers affect the
-ability of your Linux PC to act as a server on the Internet.
-
-
-
-Section Chapter 23 provides information on the (main) services
-affected and what you can do (if anything) to overcome this.
-
-----
-!!!9.15. Maintaining a permanent connection to the net with ''pppd''.
-
-If you are fortunate enough to have a semi permanent connection to the net and
-would like to have your machine automatically redial your PPP connection if it
-is lost then here is a simple trick to do so.
-
-
-
-Configure PPP such that it can be started by the root user by issuing the
-command:
-
-# pppd
-''Be sure'' that you have the `-detach' option configured in your
-/etc/ppp/options file. Then, insert the following line into your
-/etc/inittab file, down with the ''getty'' definitions:
-
-pd:23:respawn:/usr/sbin/pppd
-This will cause the ''init'' program to spawn and monitor the
-''pppd''
-program and automatically restart it if it dies.
-
-----
-!!!Chapter 10. Configuring your Linux Kernel
-
-In order to use PPP, your Linux kernel must be compiled to include PPP
-support. Obtain the Linux source code for your kernel if you do not
-already have this - it belongs in /usr/src/linux on Linux's standard
-file system.
-
-
-
-Check out this directory - many Linux distributions install the source
-tree (the files and subdirectories) as part of their installation process.
-
-
-
-At bootup, your Linux kernel prints out a great deal of information.
-Amongst this is information about PPP support and if the kernel includes
-it. To view this information, look at your syslog file or use
-
-dmesg | less
-to display the information to the screen. If your kernel includes
-PPP support, you will see lines like
-
-
-
-
-PPP Dynamic channel allocation code copyright 1995 Caldera, Inc.
-PPP line discipline registered.
-
-
-
-(this is for the Linux 2.x.x kernel series).
-
-
-
-Linux kernel sources can be obtained by ftp from sunsite.unc.edu or its
-mirror sites.
-
-----
-!!!10.1. Installing the Linux Kernel source
-
-The following are brief instructions for obtaining and installing the
-Linux kernel sources. Full information can be obtained from The Linux Kernel HOWTO.
-
-
-
-In order to install and compile the Linux kernel, you need to be logged
-in as root.
-
-
-
-
-
-
-
-
-#
-
-Change directory to the /usr/src directory
-cd /usr/src.
-
-
-#
-#
-
-Check in /usr/src/linux to see if you already have the
-sources installed.
-
-
-#
-#
-
-If you don't have the sources, get them from Linux kernel source directory or your nearest mirror.
-Select the appropriate directory- v2.0 if you are running a 2..x
-kernel, or v2.2 if you are running a 2.2.x kernel.
-If you are looking for earlier versions of the kernel (such as 1.2.X),
-these are kept in Old Linux kernel source directory.
-
-
-#
-#
-
-Choose the appropriate kernel - usually the most recent one
-available is what you are looking for. Retrieve this and put the source
-tar file in /usr/src.
-''Note'': a 'tar' file is an archive - possibly compressed (as are the
-Linux kernel source tar files) containing many files in a number of
-directories. It is the Linux equivalent of a DOS multi-directory zip file.
-
-
-#
-#
-
-If you already have the Linux sources installed but are upgrading
-to a new kernel, you must remove the old sources. Use the
-command
-rm -rf /usr/src/linux.
-
-
-#
-#
-
-Now uncompress and extract the sources using the command
-tar xzf linux-X.X.XX.tar.gz
-where "X.X.XX" is the version of the kernel you downloaded.
-
-
-#
-#
-
-Now, cd /usr/src/linux and read the README file. This contains
-an excellent explanation of how to go about configuring and compiling a
-new kernel. Read this file, (it's a good idea to print it out and have a
-copy handy whilst you are compiling until you have done this enough
-times to know your way around).
-
-
-#
-
-----
-!!!10.2. Knowing your hardware
-
-You ''MUST'' know what cards/devices you have inside your PC if you are
-going to recompile your kernel!!! For some devices (such as sound cards)
-you will also need to know various settings (such as IRQ's, I/O
-addresses and such).
-
-----
-!!!10.3. Kernel compilation - the Linux 1.2.13 kernel
-
-To start the configuration process, follow the instructions in the
-README file to properly install the sources. You start the kernel
-configuration process with...
-
-
-
-
-make config
-
-
-
-In order to use PPP, you must configure the kernel to include PPP
-support (PPP requires BOTH pppd AND kernel support for PPP).
-
-
-
-
- PPP (point-to-point) support (CONFIG_PPP) [[n] y
-
-
-
-Answer the other make config questions according to the
-hardware in your PC and the features of the Linux operating system you
-want. Then continue to follow the README to compile and install your new
-kernel.
-
-
-
-The 1.2.13 kernel creates only 4 PPP devices. For multi-
-port serial cards, you will need to edit the kernel PPP
-sources to obtain more ports. (See the README.linux file that comes as
-part of the PPP-2.1.2 distribution for full details of the simple edits
-you need to make).
-
-
-
-Note: the 1.2.13 configuration dialogue does NOT allow you to go
-backwards - so if you make a mistake in answering one of the questions
-in the make config dialogue, exit by typing CTRL C and start again.
-
-----
-!!!10.4. Kernel compilation - the Linux 1.3.x, 2..x, and 2.2.x kernels
-
-For Linux 1.3.x, 2..x, and 2.2.x you can use a similar process as for Linux
-1.2.13. Again, follow the instructions in the README file to properly
-install the sources. You start the kernel configuration process with...
-
-
-
-
-make config
-
-
-
-However, you also have the choice of...
-
-make menuconfig
-
-
-
-This provides a menu based configuration system with online help that
-allows you to move backwards and forwards in the configuration process.
-
-
-
-There is also a highly recommended X windows based configuration interface...
-
-make xconfig
-
-
-
-You can compile PPP support directly into your kernel or as a
-loadable module.
-
-
-
-If you only use PPP some of the time that your Linux machine is
-operating, then compiling PPP support as a loadable module is
-recommended. Using 'kerneld', your kernel will automatically load the
-module(s) required to provide PPP support when you start your PPP link
-process. This saves valuable memory space: no part of the kernel can be
-swapped out of memory, but loadable modules are automatically removed if
-they are not in use.
-
-
-
-To do this, you need to enable loadable module support:-
-
- Enable loadable module support (CONFIG_MODULES) [[Y/n/?] y
-
-
-
-To add PPP kernel support, answer the following question:-
-
- PPP (point-to-point) support (CONFIG_PPP) [[M/n/y/?]
-
-
-
-For a PPP loadable module, answer ''M'', otherwise for PPP compiled in as
-part of the kernel, answer ''Y''.
-
-
-
-Unlike kernel 1.2.13, kernel 2..x creates PPP devices on the fly as
-needed and it is not necessary to hack the sources to increase available
-PPP device numbers at all.
-
-----
-!!!10.5. Note on PPP-2.x and /proc/net/dev
-
-If you are using PPP-2.x, you will find that a side effect of the 'on
-the fly' creation of the PPP devices is that no devices show up if you
-look in the /proc/net file system until a device is created by
-starting up pppd:-
-
-
-
-
-[[hartr@archenland hartr]$ cat /proc/net/dev
-Inter-| Receive | Transmit
-face |packets errs drop fifo frame|packets errs drop fifo colls carrier
-lo: 92792 0 0 0 0 92792 0 0 0 0
-eth0: 621737 13 13 0 23 501621 0 0 0 1309
-
-
-
-Once you have one (or more) ppp services started, you will see entries
-such as this (from a ppp server):-
-
-
-
-
-[[root@kepler /root]# cat /proc/net/dev
-Inter-| Receive | Transmit
-face |packets errs drop fifo frame|packets errs drop fifo colls carrier
-lo: 428021 0 0 0 0 428021 0 0 0 0
-eth0:4788257 648 648 319 650 1423836 0 0 0 4623 5
-ppp0: 2103 3 3 0 0 2017 0 0 0 0
-ppp1: 10008 0 0 0 0 8782 0 0 0 0
-ppp2: 305 0 0 0 0 297 0 0 0 0
-ppp3: 6720 7 7 0 0 7498 0 0 0 0
-ppp4: 118231 725 725 0 0 117791 0 0 0 0
-ppp5: 38915 5 5 0 0 28309 0 0 0 0
-
-----
-!!!10.6. General kernel config considerations for PPP
-
-If you are setting up your Linux PC as a PPP server, you must compile in
-IP forwarding support. This is also necessary if you want to use Linux
-to link to LANs together or your LAN to the Internet.
-
-
-
-If you are linking a LAN to the Internet (or linking together two LANs), you
-should be concerned about security. Adding support for IP fire walls to
-the kernel is probably a MUST!
-
-
-
-You will also need this if you want to use IP masquerade to connect a
-LAN that uses any of the above mentioned 'unconnected' IP network
-numbers.
-
-
-
-To enable IP Masquerade and IP fire walling, you ''MUST'' answer yes to the
-first question in the make config process:-
-
-Prompt for development and/or incomplete code/drivers (CONFIG_EXPERIMENTAL)?
-
-
-
-Whilst this may sound a bit off-putting to new users, many users are
-actively using the IP Masquerade and IP fire walling features of the
-Linux 2..x or 2.2.x kernels with no problems.
-
-
-
-Once you have installed and rebooted your new kernel, you can start
-configuring and testing your PPP link(s).
-
-----
-!!!Chapter 11. Getting the Information you need about the PPP server
-
-Before you can establish a PPP connection with a server, you need to
-obtain the following information (from the sysadmin/user support people
-of the PPP server):-
-
-
-
-
-
-*
-
-The telephone number(s) to dial for the service
-If you are behind a PABX. You also need the PABX number that gives you
-an outside dial tone - this is frequently digit zero () or nine (9).
-
-
-*
-*
-
- Does the server use DYNAMIC or STATIC IP numbers?
-If the server uses STATIC IP numbers, then you may need to know what IP
-number to use for your end of the PPP connection. If your ISP is
-providing you with a subnet of valid IP numbers, you will need to know
-the IP numbers you can use and the network mask (netmask).
-Most Internet Service Providers use DYNAMIC IP numbers. As mentioned
-above, this has some implications in terms of the services you can
-use.
-However, even if you are using STATIC IP numbers, most PPP servers will
-never (for security reasons) allow the client to specify an IP number as
-this is a security risk. You ''do'' still need to know this information!
-
-
-*
-*
-
-What are the IP numbers of the ISPs Domain Name Servers?
-There should be at least two, although only one is needed.
-There could be a problem here. The MS Windows 95 PPP setup allows the
-DNS address to be passed to the client as part of its connection
-process. So your ISP (or corporate help desk) may well tell you you
-don't need the IP address of the DNS server(s).
-For Linux, you ''DO'' need the address of at least one DNS. The linux
-implementation of PPP does not allow the setting of the DNS IP number
-dynamically at connection time - and quite possibly will never do
-so.
-''Note'': whilst Linux (as a PPP client) cannot accept the DNS address
-from a server, it can, when acting as a server, pass this information to
-clients using the dns-addr pppd option.
-
-
-*
-*
-
-Does the server require the use of PAP/CHAP?
-If this is the case you need to know the "id" and "secret" you are to
-use in connecting. (These are probably your user name and
-password at your ISP).
-
-
-*
-*
-
-Does the server automatically start PPP, or do you need to issue any
-commands to start PPP on the server once you are logged in?
-If you must issue a command to start PPP, what is it?
-
-
-*
-*
-
-Is the server a Microsoft Windows NT system and, if so, is it
-using the MS PAP/CHAP system?
-Many corporate LANs seem to use MS Windows NT this way for increased security.
-
-
-*
-
-
-
-Carefully note down this information - you are going to use it!
-
-----
-!!!Chapter 12. Configuring your modem and serial port
-
-You should make sure that your modem is correctly set up and that you
-know which serial port it is connected to.
-
-
-
-''Remember''...
-
-
-
-
-
-*
-
-DOS com1: = Linux /dev/cua0 (and /dev/ttyS0)
-
-
-*
-*
-
-DOS com2: = Linux /dev/cua1 (and /dev/ttyS1)
-et cetera
-
-
-*
-
-
-
-It is also worth remembering that if you have 4 serial ports, the
-standard PC set up is to have com1 and com3 share IRQ4 and com2 and com4
-share IRQ3.
-
-
-
-If you have devices on standard serial ports that share an IRQ with your
-modem you are going to have problems. You need to make sure that your
-modem serial port is on its own, unique IRQ. Many modern serial cards
-(and better quality motherboard serial ports) allow you to move the IRQ
-of the serial ports around.
-
-
-
-If you are running Linux kernel 2, you can check the in-use IRQs using
-cat /proc/interrupts, which will produce output like
-
- : 6766283 timer
-1: 91545 keyboard
-2: 0 cascade
-4: 156944 + serial
-7: 101764 WD8013
-10: 134365 + !BusLogic BT-958
-13: 1 math error
-15: 3671702 + serial
-
-
-
-This shows a serial port on IRQ4 (a mouse) and a serial port
-on IRQ15 (the permanent modem based PPP link to the Internet. (There is
-also a serial port on com2, IRQ3 and com4 is on IRQ14, but as they are
-not in use, they do not show up).
-
-
-
-Be warned - you need to know what you are doing if you are going to play
-with your IRQs! Not only do you have to open up you computer, pull out
-cards and play with jumpers, but you need to know what is on which IRQ.
-In my case, this is a totally SCSI based PC, and so I can disable the "on
-motherboard" IDE interfaces that normally use IRQ14 and 15!
-
-
-
-You should also remember that if your PC boots other operating systems,
-moving IRQs around may well mean that OS cannot boot properly - or at all!
-
-
-
-If you do move your serial ports to non-standard IRQs, then you need to
-tell Linux which IRQ each port is using. This is done using "
-setserial" and is best done as part of the boot process in
-rc.local or rc.serial which is called from rc.local or as
-part of the SysV initialization. For the machine illustrated above, the
-commands used are...
-
-/bin/setserial -b /dev/ttyS2 IRQ 11
-/bin/setserial -b /dev/ttyS3 IRQ 15
-
-
-
-However, if you are using serial modules dynamically loaded, when
-required by the kerneld process, you cannot set and forget the IRQs,
-(etc.) once at boot time. This is because if the serial module is unloaded,
-Linux forgets the special settings.
-
-
-
-So, if you are loading the serial module on demand, you will need to
-reconfigure the IRQs, (etc.) each time the module is loaded.
-
-----
-!!!12.1. A note about serial ports and speed capabilities
-
-If you are using a high speed (external) modem (14,400 Baud or above),
-your serial port needs to be capable of handling the throughput that
-such a modem is capable of producing, particularly when the modems are
-compressing the data.
-
-
-
-This requires your serial port to use a modern UART (Universal
-Asynchronous Receiver Transmitter) such as a 16550(A). If you are using
-an old machine (or old serial card), it is quite possible that your
-serial port has only an 8250 UART, which will cause you considerable
-problems when used with a high speed modem.
-
-
-
-Use the command...
-
-setserial -a /dev/ttySx
-
-
-
-to get Linux to report to you the type of UART you have. If you
-do not have a 16550A type UART, invest in a new serial card (available
-for under $50). When you purchase a new card, make sure you can
-move the IRQs around on it!
-
-
-
-Note: the first versions of the 16550 UART chip had an error. This was
-rapidly discovered and a revision of the chip was released - the 16550A
-UART. A relatively small number of the faulty chips did however get into
-circulation. It is unlikely that you will encounter one of these but you
-should look for a response that says 16550A, particularly on serial
-cards of some vintage.
-
-----
-!!!12.2. Serial Port Names
-
-Historically, Linux used cuaX devices for dial-out and ttySx
-devices for dial-in.
-
-
-
-The kernel code that required this was changed in kernel version 2..x
-and you should now use ttySx for both dial in and dial out. I
-understand that the cuaX device names may well disappear in future
-kernel versions.
-
-----
-!!!12.3. Configuring your modem
-
-You will need to configure your modem correctly for PPP - to do this ''READ
-YOUR MODEM MANUAL''! Most modems come with a ''factory default setting''
-that selects the options required for PPP. The minimum configuration
-specifies:-
-
-
-
-
-
-*
-
-Hardware flow control (RTS/CTS) (8K3 on many Hayes modems)
-
-
-*
-
-
-
-Other settings (in standard Hayes commands) you should investigate are:
-
-
-
-
-
-*
-
-E1 Command/usr/src/linux-2..27/include/linux/serial.h Echo ON (required for chat to operate).
-
-
-*
-*
-
-Q0 Report result codes (required for chat to operate).
-
-
-*
-*
-
-S0=0 Auto Answer OFF (unless you want your modem to answer the phone).
-
-
-*
-*
-
-8C1 Carrier Detect ON only after connect.
-
-
-*
-*
-
-8S0 Data Set Ready (DSR) always ON.
-
-
-*
-*
-
-(depends) Data Terminal Ready.
-
-
-*
-
-
-
-There is a site offering modem setups for a growing variety of modems,
-makes and models at Modem setup information which may assist you in this.
-
-
-
-It is also worth while investigating how the modem's serial interface
-between your computer and modem operates. Most modern modems allow you
-to run the serial interface at a FIXED speed whilst allowing the
-telephone line interface to change its speed to the highest speed it and
-the remote modem can both handle.
-
-
-
-This is known as split speed operation. If your modem supports this,
-lock the modem's serial interface to its highest available speed
-(usually 115,200 baud but maybe 38,400 baud for 14,400 baud modems).
-
-
-
-Use your communications software (e.g. minicom or seyon) to find out
-about your modem configuration and set it to what is required for PPP.
-Many modems report their current settings in response to
-AT8V, but you should consult your modem manual.
-
-
-
-If you completely mess up the settings, you can return to sanity
-(usually) by issuing an AT8F - return to factory settings.
-(For most modem modems I have encountered, the factory settings include
-all you need for PPP - but you should check).
-
-
-
-Once you have worked out the modem setup string required, write it down.
-You now have a decision: you can store these settings in your modem
-non-volatile memory so they can be recalled by issuing the appropriate
-AT command, or you can pass the correct settings to your
-modem as part of the PPP dialing process.
-
-
-
-If you only use your modem from Linux to call into your ISP or corporate
-server, the simplest set up will have you save your modem configuration
-in non-volatile RAM.
-
-
-
-If on the other hand, you modem is used by other applications and
-operating systems, it is safest to pass this information to the modem as
-each call is made so that the modem is guaranteed to be in the correct
-state for the call. (This has the added advantage also of recording the modem
-setup string in case the modem looses the contents of its NV-RAM, which
-can indeed happen).
-
-----
-!!!12.4. Note on Serial Flow Control
-
-When data is traveling on serial communication lines, it can happen
-that data arrives faster than a computer can handle it (the computer may
-be busy doing something else - remember, Linux is a multi-user, multi-
-tasking operating system). In order to ensure that data is not lost
-(data does not over run in the input buffer and hence get lost), some
-method of controlling the flow of data is necessary.
-
-
-
-There are two ways of doing this on serial lines:-
-
-
-
-
-
-*
-
-Using hardware signals (Clear To Send/Request to Send - CTS/RTS).
-
-
-*
-*
-
-Using software signals (control S and control Q, also known as XON/XOFF).
-
-
-*
-
-
-
-Whilst the latter may be fine for a terminal (text) link, data on a
-PPP link uses all 8 bits - and it is quite probable that somewhere in
-the data there will be data bytes that translate as control S and
-control Q. So, if a modem is set up to use software flow control, things
-can rapidly go berserk!
-
-
-
-For high speed links using PPP (which uses 8 bits of data) hardware flow
-control is vital and it is for this reason that you must use hardware
-flow control.
-
-----
-!!!12.5. Testing your modem for dial out
-
-Now that you have sorted out the serial port and modem settings it is a
-good idea to make sure that these setting do indeed work by dialing you
-ISP and seeing if you can connect.
-
-
-
-Using you terminal communications package (such as minicom), set up the
-modem initialisation required for PPP and dial into the PPP server you
-want to connect to with a PPP session.
-
-
-
-(Note: at this stage we are ''NOT'' trying to make a PPP connection
-- just establishing that we have the right phone number and also to find
-out ''exactly'' what the server sends to us in order to get logged in and
-start PPP).
-
-
-
-During this process, either capture (log to a file) the entire login
-process or carefully (''very carefully'') write down ''exactly'' what
-prompts the server gives to let you know it is time to enter your
-user name and password (and any other commands needed to establish the
-PPP connection).
-
-
-
-If your server uses PAP, you should not see a login prompt, but should
-instead see the (text representation) of the link control protocol
-(which looks like garbage) starting on your screen.
-
-
-
-A few words of warning:-
-
-
-
-
-
-
-
-
-*
-
-some servers are quite intelligent: you can log in
-using text based user name/passwords OR using PAP. So if your ISP or
-corporate site uses PAP but you do not see the garbage start up
-immediately, this may not mean you have done something wrong.
-
-
-*
-*
-
-some servers require you to enter some text initially and ''then''
-start a standard PAP sequence.
-
-
-*
-*
-
-Some PPP servers are passive - that is they simply sit there
-sending nothing until the client that is dialing in sends them a valid
-lcp packet. If the ppp server you are connecting to operates in passive
-mode, you will never see the garbage!
-
-
-*
-*
-
-Some servers do not start PPP until you press ENTER - so it is
-worth trying this if you correctly log in and do not see the garbage!
-
-
-*
-
-
-
-It is worth dialing in at least twice - some servers change their
-prompts (e.g. with the time!) every time you log in. The two critical
-prompts your Linux box needs to be able to identify every time you dial
-in are:-
-
-
-
-
-
-*
-
-the prompt that requests you to enter your user name;
-
-
-*
-*
-
-the prompt that requests you to enter your password;
-
-
-*
-
-
-
-If you have to issue a command to start PPP on the server, you will also
-need to find out the prompt the server gives you once you are logged in
-to tell you that you can now enter the command to start ppp.
-
-
-
-If your server automatically starts PPP, once you have logged in,
-you will start to see garbage on your screen - this is the PPP server
-sending your machine information to start up and configure the PPP
-connection.
-
-
-
-This should look something like this :-
-
-
-
-
-~y}#.!}!}!} }8}!}$}%U}"}8} } } } }%}8 ...}'}"}(}"} .~~y}
-
-
-
-(and it just keeps on coming!)
-
-
-
-On some systems PPP must be explicitly started on the server. This
-is usually because the server has been set up to allow PPP logins and
-shell logins using the same user name/password pair. If this is the case,
-issue this command once you have logged in. Again, you will see the
-garbage as the server end of the PPP connection starts up.
-
-
-
-If you do not see this immediately after connecting (and logging in and
-starting the PPP server if required), press ''Enter'' to see if this
-starts the PPP server.
-
-
-
-At this point, you can hang up your modem (usually, type +++
-quickly and then issue the ATHO command once your modem responds with
-OK).
-
-
-
-If you can't get your modem to work, read your modem manual, the man
-pages for your communications software and the Serial HOWTO! Once you
-have this sorted out, carry on as above.
-
-----
-!!!Chapter 13. Setting up Name to Address Resolution (DNS)
-
-Whilst we humans like to give names to things, computers really like
-numbers. On a TCP/IP network (which is what the Internet is), we call
-machines by a particular name - and every machine lives in a
-particular domain. For example, my Linux workstation is called
-''archenland'' and it resides in the ''interweft.com.au''
-domain. Its human readable address is thus archenland.interweft.com.au (which is known as
-the FQDN - fully qualified domain name).
-
-
-
-However, for this machine to be found by other computers on the
-Internet, it is actually known by its IP number when computers are
-communicating across the Internet.
-
-
-
-Translating (resolving) machine (and domain) names into the numbers
-actually used on the Internet is the business of machines that offer the
-Domain Name Service.
-
-
-
-What happens is this:-
-
-
-
-
-
-
-
-
-*
-
- your machine needs to know the
-IP address of a particular computer. The application requiring this
-information asks the 'resolver' on your Linux PC to provide this
-information;
-
-
-*
-*
-
-the resolver queries the local host file (/etc/hosts
-and/or the domain name servers it knows about (the exact behaviour of
-the resolver is determined by /etc/host.conf);
-
-
-*
-*
-
-if the answer is found in the host file, this answer is returned;
-
-
-*
-*
-
-if a domain name server is specified, your PC queries this
-machine;
-
-
-*
-*
-
-if the DNS machine already knows the IP number for the required
-name, it returns it. If it does not, it queries other name servers across
-the Internet to find the information. The name server than passes this
-information back to the requesting resolver - which gives the
-information to the requesting application.
-
-
-*
-
-
-
-When you make a PPP connection, you need to tell your Linux machine
-where it can get host name to IP number (address resolution) information
-so that ''you'' can use the machine names but your ''computer'' can
-translate these to the IP numbers it needs to do its work.
-
-
-
-One way is to enter every host that you want to talk to into the
-/etc/hosts file (which is in reality totally impossible if you are
-connecting to the Internet); another is to use the machine IP numbers as
-opposed to the names (an impossible memory task for all but the smallest
-LANs).
-
-
-
-The best way is to set up Linux so that it knows where to go to get this
-name to number information - automatically. This service is provided by
-the Domain Name Server (DNS) system. All that is necessary is to enter
-the IP number(s) for the domain name servers into your /etc/resolv.conf file.
-
-----
-!!!13.1. The /etc/resolv.conf file
-
-Your PPP server sysadmin/user support people should provide you with two
-DNS IP numbers (only one is necessary - but two gives some
-redundancy in the event of failure).
-
-
-
-As previously mentioned, Linux cannot set its name server IP number
-in the way that MS Windows 95 does. So you must ''insist'' (politely) that
-your ISP provide you with this information!
-
-
-
-Your /etc/resolv.conf should look something like :-
-
-
-
-
-domain your.isp.domain.name
-nameserver 10.25..1
-nameserver 10.25.1.2
-
-
-
-Edit this file (creating it if necessary) to represent the information
-that your ISP has provided. It should have ownership and permissions as
-follows :-
-
-
-
-
--rw-r--r-- 1 root root 73 Feb 19 01:46 /etc/resolv.conf
-
-
-
-If you have already set up a /etc/resolv.conf because you are on a
-LAN, simply add the IP numbers of the PPP DNS servers to your
-existing file.
-
-----
-!!!13.2. The /etc/host.conf file
-
-You should also check that your /etc/host.conf file is
-correctly set up. This should look like
-
-order hosts,bind
-multi on
-
-
-
-This tells the resolver to use information in the host file before it
-sends queries to the DNS for resolution.
-
-----
-!!!Chapter 14. Using PPP and root privileges
-
-Because PPP needs to set up networking devices, change the kernel
-routing table and so forth, it requires root privileges to do this.
-
-
-
- If users other than root are to set up PPP connections, the pppd
-program should be setuid root :-
-
-
-
-
--rwsr-xr-x 1 root root 95225 Jul 11 00:27 /usr/sbin/pppd
-
-
-
-If /usr/sbin/pppd is not set up this way, then ''as root'' issue
-the command:-
-
-
-
-
-chmod u+s /usr/sbin/pppd
-
-
-
-What this does is make pppd run with root privileges ''even'' if the
-binary is run by an ordinary user. This allows a normal user to run pppd
-with the necessary privileges to set up the network interfaces and the
-kernel routing table.
-
-
-
-Programs that run 'set uid root' are potential security holes and you
-should be extremely cautious about making programs 'suid root'. A number
-of programs (including pppd) have been carefully written to minimise the
-danger of running suid root, so you should be safe with this one, (but no
-guarantees).
-
-
-
-Depending on how you want your system to operate - specifically if you
-want ANY user on your system to be able to initiate a PPP link, you should
-make your ppp-on/off scripts world read/execute. (This is probably fine if
-your PC is used ONLY by you).
-
-
-
-However, if you do NOT want just anyone to be able to start up a PPP
-connection (for example, your children have accounts on your Linux PC
-and you do not want them hooking into the Internet without your
-supervision), you will need to establish a PPP group (as root, edit
-/etc/group) and :-
-
-
-
-
-
-*
-
-Make pppd suid root, owned by user root and group PPP, with the 'other'
-permissions on this file empty. It should then look like:-
-
--rwsr-x--- 1 root PPP 95225 Jul 11 00:27 /usr/sbin/pppd
-
-
-*
-*
-
-Make the ppp-on/off scripts owned by user root and group PPP.
-
-
-*
-*
-
-Make the ppp-on/off scripts read/executable by group PPP.
-
- -rwxr-x--- 1 root PPP 587 Mar 14 1995 /usr/sbin/ppp-on
--rwxr-x--- 1 root PPP 631 Mar 14 1995 /usr/sbin/ppp-off
-
-
-
-*
-*
-
-Make the other access rights for ppp-on/off nill.
-
-
-*
-*
-
-add the users who will be firing up PPP to the PPP group in /etc/group.
-
-
-*
-
-
-
-Even if you do this, ordinary users will STILL not be able to shut down
-the link under software control! Running the ppp-off script
-requires root privileges. However, any user can just turn off the modem
-(or disconnect the telephone line from an internal modem).
-
-
-
-An alternative (and better method) to this set up is to use the
-sudo program. This offers superior security and will allow you to
-set things up so that any (authorised) user can activate/deactivate the
-link using the scripts. Using sudo will allow an authorised user to
-activate/deactivate the PPP link cleanly and securely.
-
-----
-!!!Chapter 15. Setting up the PPP connection files
-
-You now need to be logged in as ''root'' to create the directories and
-edit the files needed to set up PPP, even if you want PPP to be
-accessible to all users.
-
-
-
-PPP uses a number of files to connect and set up a PPP connection. These
-differ in name and location between PPP 2.1.2 and 2.2+.
-
-
-
-For PPP 2.1.2 the files are:-
-
-
-
-
-/usr/sbin/pppd # the PPP binary
-/usr/sbin/ppp-on # the dialer/connection script
-/usr/sbin/ppp-off # the disconnection script
-/etc/ppp/options # the options pppd uses for all connections
-/etc/ppp/options.ttyXX # the options specific to a connection on this port
-
-
-
-For PPP 2.2 the files are:-
-
-
-
-
-/usr/sbin/pppd # the PPP binary
-/etc/ppp/scripts/ppp-on # the dialer/connection script
-/etc/ppp/scripts/ppp-on-dialer # part 1 of the dialer script
-/etc/ppp/scripts/ppp-off # the actual chat script itself
-/etc/ppp/options # the options pppd uses for all connections
-/etc/ppp/options.ttyXX # the options specific to a connection on this port
-
-
-
-Red Hat Linux users should note that the standard Red Hat 4.X installation
-places these scripts in /usr/doc/ppp-2.2.0f-2/scripts.
-
-
-
-In your /etc directory there should be a ppp directory:-
-
-
-
-
-drwxrwxr-x 2 root root 1024 Oct 9 11:01 ppp
-
-
-
-If it does not exist - create it with these ownerships and permissions.
-
-
-
-If the directory already existed, it should contain a template options
-file called ''options.tpl''. This file is included below in case it
-does not.
-
-
-
-Print it out as it contains an explanation of nearly all the PPP options
-(these are useful to read in conjunction with the pppd man pages).
-Whilst you can use this file as the basis of your
-/etc/ppp/options file, it is probably better to create your own
-options file that does not include all the comments in the template - it
-will be much shorter and easier to read/maintain.
-
-
-
-If you have multiple serial lines/modems, (typically the case for PPP
-servers), create a general /etc/ppp/options file containing the
-options that are common for all the serial ports on which you are
-supporting dial in/out and set up individual option files for each serial
-line on which you will be establishing a PPP connection with the
-individual settings required for each port.
-
-
-
-These port specific option files are named options.ttyx1,
-options.ttyx2 and so forth (where x is the appropriate letter for
-your serial ports).
-
-
-
-However, for a single PPP connection, you can happily use the
-/etc/ppp/options file. Alternatively, you can put all the
-options as arguments in the pppd command itself.
-
-
-
-It is easier to maintain a setup that uses
-/etc/ppp/options.ttySx files. If you use PPP to connect to a
-number of different sites, you can create option files for each site in
-/etc/ppp/options.site and then specify the option file as a
-parameter to the PPP command as you connect (using the file
-option-file pppd option to pppd on the command line).
-
-----
-!!!15.1. The supplied options.tpl file
-
-Some distributions of PPP seem to have lost the options.tpl file, so
-here is the complete file. I suggest that you do NOT edit this file to
-create your /etc/ppp/options file(s). Rather, copy this to a
-new file and then edit that. If you mess up your edits, you can then go
-back to the original and start again.
-
-
-
-
-# /etc/ppp/options -*- sh -*- general options for pppd
-# created 13-Jul-1995 jmk
-# autodate: 01-Aug-1995
-# autotime: 19:45
-# Use the executable or shell command specified to set up the serial
-# line. This script would typically use the "chat" program to dial the
-# modem and start the remote ppp session.
-#connect "echo You need to install a connect command."
-# Run the executable or shell command specified after pppd has
-# terminated the link. This script could, for example, issue commands
-# to the modem to cause it to hang up if hardware modem control signals
-# were not available.
-#disconnect "chat -- \d+++\d\c OK ath0 OK"
-# async character map -- 32-bit hex; each bit is a character
-# that needs to be escaped for pppd to receive it. 0x00000001
-# represents '\x01', and 0x80000000 represents '\x1f'.
-#asyncmap
-# Require the peer to authenticate itself before allowing network
-# packets to be sent or received.
-#auth
-# Use hardware flow control (i.e. RTS/CTS) to control the flow of data
-# on the serial port.
-#crtscts
-# Use software flow control (i.e. XON/XOFF) to control the flow of data
-# on the serial port.
-#xonxoff
-# Add a default route to the system routing tables, using the peer as
-# the gateway, when IPCP negotiation is successfully completed. This
-# entry is removed when the PPP connection is broken.
-#defaultroute
-# Specifies that certain characters should be escaped on transmission
-# (regardless of whether the peer requests them to be escaped with its
-# async control character map). The characters to be escaped are
-# specified as a list of hex numbers separated by commas. Note that
-# almost any character can be specified for the escape option, unlike
-# the asyncmap option which only allows control characters to be
-# specified. The characters which may not be escaped are those with hex
-# values 0x20 - 0x3f or 0x5e.
-#escape 11,13,ff
-# Don't use the modem control lines.
-#local
-# Specifies that pppd should use a UUCP-style lock on the serial device
-# to ensure exclusive access to the device.
-#lock
-# Use the modem control lines. On Ultrix, this option implies hardware
-# flow control, as for the crtscts option. (This option is not fully
-# implemented.)
-#modem
-# Set the MRU [[Maximum Receive Unit] value to `nb for negotiation. pppd
-# will ask the peer to send packets of no more than `nb bytes. The
-# minimum MRU value is 128. The default MRU value is 1500. A value of
-# 296 is recommended for slow links (40 bytes for TCP/IP header + 256
-# bytes of data).
-#mru 542
-# Set the interface netmask to `nb, a 32 bit netmask in "decimal dot"
-# notation (e.g. 255.255.255.).
-#netmask 255.255.255.
-# Disables the default behaviour when no local IP address is specified,
-# which is to determine (if possible) the local IP address from the
-# hostname. With this option, the peer will have to supply the local IP
-# address during IPCP negotiation (unless it specified explicitly on the
-# command line or in an options file).
-#noipdefault
-# Enables the "passive" option in the LCP. With this option, pppd will
-# attempt to initiate a connection; if no reply is received from the
-# peer, pppd will then just wait passively for a valid LCP packet from
-# the peer (instead of exiting, as it does without this option).
-#passive
-# With this option, pppd will not transmit LCP packets to initiate a
-# connection until a valid LCP packet is received from the peer (as for
-# the "passive" option with old versions of pppd).
-#silent
-# Don't request or allow negotiation of any options for LCP and IPCP
-# (use default values).
-#-all
-# Disable Address/Control compression negotiation (use default, i.e.
-# address/control field disabled).
-#-ac
-# Disable asyncmap negotiation (use the default asyncmap, i.e. escape
-# all control characters).
-#-am
-# Don't fork to become a background process (otherwise pppd will do so
-# if a serial device is specified).
-#-detach
-# Disable IP address negotiation (with this option, the remote IP
-# address must be specified with an option on the command line or in an
-# options file).
-#-ip
-# Disable magic number negotiation. With this option, pppd cannot
-# detect a looped-back line.
-#-mn
-# Disable MRU [[Maximum Receive Unit] negotiation (use default, i.e.
-# 1500).
-#-mru
-# Disable protocol field compression negotiation (use default, i.e.
-# protocol field compression disabled).
-#-pc
-# Require the peer to authenticate itself using PAP.
-# This requires TWO WAY authentication - do NOT use this for a standard
-# PAP authenticated link to an ISP as this will require the ISP machine
-# to authenticate itself to your machine (and it will not be able to).
-#+pap
-# Don't agree to authenticate using PAP.
-#-pap
-# Require the peer to authenticate itself using CHAP [[Cryptographic
-# Handshake Authentication Protocol] authentication.
-# This requires TWO WAY authentication - do NOT use this for a standard
-# CHAP authenticated link to an ISP as this will require the ISP machine
-# to authenticate itself to your machine (and it will not be able to).
-#+chap
-# Don't agree to authenticate using CHAP.
-#-chap
-# Disable negotiation of Van Jacobson style IP header compression (use
-# default, i.e. no compression).
-#-vj
-# Increase debugging level (same as -d). If this option is given, pppd
-# will log the contents of all control packets sent or received in a
-# readable form. The packets are logged through syslog with facility
-# daemon and level debug. This information can be directed to a file by
-# setting up /etc/syslog.conf appropriately (see syslog.conf(5)). (If
-# pppd is compiled with extra debugging enabled, it will log messages
-# using facility local2 instead of daemon).
-#debug
-# Append the domain name `db to the local host name for authentication
-# purposes. For example, if gethostname() returns the name porsche,
-# but the fully qualified domain name is porsche.Quotron.COM, you would
-# use the domain option to set the domain name to Quotron.COM.
-#domain `db
-# Enable debugging code in the kernel-level PPP driver. The argument n
-# is a number which is the sum of the following values: 1 to enable
-# general debug messages, 2 to request that the contents of received
-# packets be printed, and 4 to request that the contents of transmitted
-# packets be printed.
-#kdebug n
-# Set the MTU [[Maximum Transmit Unit] value to `nb. Unless the peer
-# requests a smaller value via MRU negotiation, pppd will request that
-# the kernel networking code send data packets of no more than n bytes
-# through the PPP network interface.
-#mtu `nb
-# Set the name of the local system for authentication purposes to `nb.
-# This will probably have to be set to your ISP user name if you are
-# using PAP/CHAP.
-#name `nb
-# Set the user name to use for authenticating this machine with the peer
-# using PAP to `ub.
-# Do NOT use this if you are using 'name' above!
-#user `ub
-# Enforce the use of the host name as the name of the local system for
-# authentication purposes (overrides the name option).
-#usehostname
-# Set the assumed name of the remote system for authentication purposes
-# to `nb.
-#remotename `nb
-# Add an entry to this system's ARP [[Address Resolution Protocol]
-# table with the IP address of the peer and the Ethernet address of this
-# system.
-#proxyarp
-# Use the system password database for authenticating the peer using
-# PAP.
-#login
-# If this option is given, pppd will send an LCP echo-request frame to
-# the peer every n seconds. Under Linux, the echo-request is sent when
-# no packets have been received from the peer for n seconds. Normally
-# the peer should respond to the echo-request by sending an echo-reply.
-# This option can be used with the lcp-echo-failure option to detect
-# that the peer is no longer connected.
-#lcp-echo-interval `nb
-# If this option is given, pppd will presume the peer to be dead if n
-# LCP echo-requests are sent without receiving a valid LCP echo-reply.
-# If this happens, pppd will terminate the connection. Use of this
-# option requires a non-zero value for the lcp-echo-interval parameter.
-# This option can be used to enable pppd to terminate after the physical
-# connection has been broken (e.g., the modem has hung up) in
-# situations where no hardware modem control lines are available.
-#lcp-echo-failure `nb
-# Set the LCP restart interval (retransmission timeout) to `nb seconds
-# (default 3).
-#lcp-restart `nb
-# Set the maximum number of LCP terminate-request transmissions to `nb
-# (default 3).
-#lcp-max-terminate `nb
-# Set the maximum number of LCP configure-request transmissions to `nb
-# (default 10).
-# Some PPP servers are slow to start up. You may need to increase this
-# if you keep getting 'serial line looped back' errors and your are SURE
-# that you have logged in correctly and PPP should be starting on the server.
-#lcp-max-configure `nb
-# Set the maximum number of LCP configure-NAKs returned before starting
-# to send configure-Rejects instead to `nb (default 10).
-#lcp-max-failure `nb
-# Set the IPCP restart interval (retransmission timeout) to `nb
-# seconds (default 3).
-#ipcp-restart `nb
-# Set the maximum number of IPCP terminate-request transmissions to `nb
-# (default 3).
-#ipcp-max-terminate `nb
-# Set the maximum number of IPCP configure-request transmissions to `nb
-# (default 10).
-#ipcp-max-configure `nb
-# Set the maximum number of IPCP configure-NAKs returned before starting
-# to send configure-Rejects instead to `nb (default 10).
-#ipcp-max-failure `nb
-# Set the PAP restart interval (retransmission timeout) to `nb seconds
-# (default 3).
-#pap-restart `nb
-# Set the maximum number of PAP authenticate-request transmissions to
-# `nb (default 10).
-#pap-max-authreq `nb
-# Set the CHAP restart interval (retransmission timeout for
-# challenges) to `nb seconds (default 3).
-#chap-restart `nb
-# Set the maximum number of CHAP challenge transmissions to `nb
-# (default 10).
-#chap-max-challenge
-# If this option is given, pppd will re-challenge the peer every `nb
-# seconds.
-#chap-interval `nb
-# With this option, pppd will accept the peer's idea of our local IP
-# address, even if the local IP address was specified in an option.
-#ipcp-accept-local
-# With this option, pppd will accept the peer's idea of its (remote) IP
-# address, even if the remote IP address was specified in an option.
-#ipcp-accept-remote
-
-----
-!!!15.2. What options should I use? (No PAP/CHAP)
-
-Well, as in all things, that depends, (sigh). The options specified here
-should work with most servers.
-
-
-
-However, if it does NOT work, READ THE TEMPLATE FILE
-(/etc/ppp/options.tpl) ''and'' the pppd man pages ''and''
-speak to the sysadmin/user support people who run the server to which
-you are connecting.
-
-
-
-You should also note that the connect scripts presented here also use
-some command line options to pppd to make things a bit easier to change.
-
-
-
-
-# /etc/ppp/options (NO PAP/CHAP)
-#
-# Prevent pppd from forking into the background
--detach
-#
-# use the modem control lines
-modem
-# use uucp style locks to ensure exclusive access to the serial device
-lock
-# use hardware flow control
-crtscts
-# create a default route for this connection in the routing table
-defaultroute
-# do NOT set up any "escaped" control sequences
-asyncmap
-# use a maximum transmission packet size of 552 bytes
-mtu 552
-# use a maximum receive packet size of 552 bytes
-mru 552
-#
-#-------END OF SAMPLE /etc/ppp/options (no PAP/CHAP)
-
-----
-!!!15.3. Other options to consider adding
-
-There are a couple useful things you might want to add to the /etc/ppp/options
-file.
-
-
-
-One is an idle time. Pppd can terminate the connection if it has been idle for
-too long. This could be nice if your isp charges by time, or if you don't
-want to keep your phone line tied up. To use this feature, simply add the
-line:
-
-
-# Idle after X seconds
-idle X
-
-Replace 'X' with the number of seconds you wish the connection to terminate
-after.
-
-
-
-The next feature is "dial on demand". This means that every time
-you attempt to open an interent connection, pppd will try to open
-a PPP connection to your ISP.
-In order to do this, add the following lines to /etc/ppp/options
-
-
-# dial on demand
-demand
-
-This should make pppd dial out when necessary.
-
-----
-!!!Chapter 16. If your PPP server uses PAP (Password Authentication
-Protocol)
-
-If the server to which you are connecting requires PAP or CHAP
-authentication, you have a little bit more work.
-
-
-
-To the above options file, add the following lines
-
-#
-# force pppd to use your ISP user name as your 'host name' during the
-# authentication process
-name `your ISP user nameb # you need to edit this line
-#
-# If you are running a PPP *server* and need to force PAP or CHAP
-# uncomment the appropriate one of the following lines. Do NOT use
-# these is you are a client connecting to a PPP server (even if it uses PAP
-# or CHAP) as this tells the SERVER to authenticate itself to your
-# machine (which almost certainly can't do - and the link will fail).
-#+chap
-#+pap
-#
-# If you are using ENCRYPTED secrets in the /etc/ppp/pap-secrets
-# file, then uncomment the following line.
-# Note: this is NOT the same as using MS encrypted passwords as can be
-# set up in MS RAS on Windows NT.
-#+papcrypt
-
-----
-!!!16.1. Using MSCHAP
-
-Microsoft Windows NT RAS can be set up to use a variation on CHAP
-(Challenge/Handshake Authentication Protocol). In your PPP sources tar
-ball, you will find a file called README.MSCHAP80 that discusses this.
-
-
-
-You can determine if the server is requesting authentication using this
-protocol by enabling debugging for pppd. If the server is requesting MS
-CHAP authentication, you will see lines like:-
-
-
-
-
-rcvd [[LCP !ConfReq id=0x2 `asyncmap 0x0b `auth chap 80b `magic 0x46a3b]
-
-
-
-The critical information here is ''auth chap 80''.
-
-
-
-In order to use MS CHAP, you will need to recompile pppd to support
-this. Please see the instructions in the README.MSCHAP80 file in the PPP
-source file for instructions on how to compile and use this variation.
-
-
-
-You should note that at present this code supports only Linux PPP
-clients connecting to an MS Windows NT server. It does ''NOT'' support
-setting up a Linux PPP server to use MSCHAP80 authentication from clients.
-
-----
-!!!16.2. The PAP/CHAP secrets file
-
-If you are using pap or chap authentication, then you also need to
-create the secrets file. These are:
-
-/etc/ppp/pap-secrets
-/etc/ppp/chap-secrets
-
-
-
-They must be owned by user root, group root and have file permissions
-740 for security.
-
-
-
-The first point to note about PAP and CHAP is that they are designed to
-authenticate ''computer systems'' not ''users''.
-
-
-
-Huh? What's the difference? I hear you ask.
-
-
-
-Well now, once your computer has made its PPP connection to the server,
-''ANY'' user on your system can use that connection - not just you.
-This is why you can set up a WAN (wide area network) link that joins two
-LANs (local area networks) using PPP.
-
-
-
-PAP can (and for CHAP ''DOES'') require ''bidirectional''
-authentication - that is a valid name and secret is required on each
-computer for the other computer involved. However, this is ''NOT'' the
-way most PPP servers offering dial-up PPP PAP-authenticated connections
-operate.
-
-
-
-That being said, your ISP will probably have given you a user name and
-password to allow you to connect to their system and thence the
-Internet. Your ISP is not interested in your computer's name at all, so
-you will probably need to use the user name at your ISP as the name for
-your computer.
-
-
-
-This is done using the name user name option to pppd. So, if you are
-to use the user name given you by your ISP, add the line
-
-name your_user name_at_your_ISP
-
-
-
-to your /etc/ppp/options file.
-
-
-
-Technically, you should really use user our_user name_at_your_ISP
-for PAP, but pppd is sufficiently intelligent to interpret name as
-user if it is required to use PAP. The advantage of using the name
-option is that this is also valid for CHAP.
-
-
-
-As PAP is for authenticating ''computers'', technically you need
-also to specify a remote computer name. However, as most people only
-have one ISP, you can use a wild card (*) for the remote host name in
-the secrets file.
-
-
-
-It is also worth noting that many ISPs operate multiple modem banks
-connected to different terminal servers - each with a different name,
-but ACCESSED from a single (rotary) dial in number. It can therefore be
-quite difficult in some circumstances to know ahead of time what the
-name of the remote computer is, as this depends on which terminal server
-you connect to!
-
-----
-!!!16.3. The PAP secrets file
-
-The /etc/ppp/pap-secrets file looks like
-
-# Secrets for authentication using PAP
-# client server secret acceptable_local_IP_addresses
-
-
-
-The four fields are white space delimited and the last one can be blank (which is
-what you want for a dynamic and probably static IP allocation from your ISP).
-
-
-
-Suppose your ISP gave you a user name of fred and a password of
-flintstone you would set the name fred option in
-/etc/ppp/options[[.ttySx] and set up your
-/etc/ppp/pap-secrets file as follows
-
-
-
-
-# Secrets for authentication using PAP
-# client server secret acceptable local IP addresses
-fred * flintstone
-
-
-
-This says for the local machine name fred (which we have told pppd
-to use even though it is not our local machine name) and for ''ANY''
-server, use the password (secret) of flintstone.
-
-
-
-Note that we do not need to specify a local IP address, unless we are
-required to FORCE a particular local, static IP address. Even if you try
-this, it is unlikely to work as most PPP servers (for security reasons)
-do not allow the remote system to set the IP number they are to be given.
-
-----
-!!!16.4. The CHAP secrets file
-
-This requires that you have mutual authentication
-methods - that is you must allow for both your machine to authenticate
-the remote server ''AND'' the remote server to authenticate your
-machine.
-
-
-
-So, if your machine is fred and the remote is barney, your
-machine would set name fred remotename barney and the remote
-machine would set name barney remotename fred in their respective
-/etc/ppp/options.ttySx files.
-
-
-
-The /etc/chap-secrets file for fred would look like
-
-# Secrets for authentication using CHAP
-# client server secret acceptable local IP addresses
-fred barney flintstone
-barney fred wilma
-
-
-
-and for barney
-
-
-
-
-# Secrets for authentication using CHAP
-# client server secret acceptable local IP addresses
-barney fred flintstone
-fred barney wilma
-
-
-
-Note in particular that both machines must have entries for
-bidirectional authentication. This allows the local machine to
-authenticate itself to the remote ''AND'' the remote machine to
-authenticate itself to the local machine.
-
-----
-!!!16.5. Handling multiple PAP-authenticated connections
-
-Some users have more than one server to which they connect that use PAP.
-Provided that your user name is different on each machine to which you
-want to connect, this is not a problem.
-
-
-
-However, many users have the same user name on two (or more - even all)
-systems to which they connect. This then presents a problem in correctly
-selecting the appropriate line from /etc/ppp/pap-secrets.
-
-
-
-As you might expect, PPP provides a mechanism for overcoming this. PPP
-allows you to set an 'assumed name' for the remote (server) end of the
-connection using the ''remotename'' option to pppd.
-
-
-
-Let us suppose that you connect to two PPP servers using the username
-fred. You set up your /etc/ppp/pap-secrets something like
-
-
-
-
-fred pppserver1 barney
-fred pppserver2 wilma
-
-
-
-Now, to set connect to pppserver1 you would use name fred remotename
-pppserver1 in your ppp-options and for pppserver2 name fred
-remotename pppserver2.
-
-
-
-As you can select the ppp options file to use with pppd using the
-file filename option, you can set up a script to connect to each of
-your PPP servers, correctly picking the options file to use and hence
-selecting the right remotename option.
-
-----
-!!!Chapter 17. Setting up the PPP connection manually
-
-Now that you have created your /etc/ppp/options and
-/etc/resolv.conf files (and, if necessary, the
-/etc/ppp/pap|chap-secrets file), you can test the settings by
-manually establishing a PPP connection. (Once we have the manual
-connection working, we will automate the process).
-
-
-
-To do this, your communications software must be capable of quitting
-WITHOUT resetting the modem. Minicom can do this - ALT Q (or in older
-version of minicom CTRL A Q)
-
-
-
-Make sure you are logged in as root.
-
-
-
-Fire up you communications software, (such as minicom), dial into the PPP
-server and log in as normal. If you need to issue a command to start up
-PPP on the server, do so. You will now see the garbage you saw before.
-
-
-
-If you are using pap or chap, then merely connecting to the remote system
-should start ppp on the remote and you will see the garbage without
-logging in, (although this may not happen for some servers - try pressing
-''Enter'' and see if the garbage starts up).
-
-
-
-Now quit the communications software ''without resetting the modem'' (ALT Q
-or CTL A Q in minicom) and at the Linux prompt (as root) type...
-
-
-
-
-pppd -d -detach /dev/ttySx 38400 8
-
-
-
-The -d option turns on debugging - the ppp connection start up
-conversation will be logged to your system log - which is useful if
-you are having trouble.
-
-
-
-Your modem lights should now flash as the PPP connection is established.
-It will take a short while for the PPP connection to be made.
-
-
-
-At this point you can look at the PPP interface, by issuing the command:-
-
-
-
-
-ifconfig
-
-
-
-In addition to any Ethernet and loop back devices you have, you
-should see something like :-
-
-
-
-
-ppp0 Link encap:Point-Point Protocol
-inet addr:10.144.153.104 P-t-P:10.144.153.51 Mask:255.255.255.
-UP POINTOPOINT RUNNING MTU:552 Metric:1
-RX packets:0 errors:0 dropped:0 overruns:
-TX packets:0 errors:0 dropped:0 overruns:
-
-
-
-Where
-
-
-
-
-
-*
-
-inet addr:10.144.153.10 is the IP number of your end of the link.
-
-
-*
-*
-
-P-t-P:10.144.153.5 is the SERVER's IP number.
-
-
-*
-
-
-
-(Naturally, ifconfig will not report these IP numbers, but the ones used
-by your PPP server.)
-
-
-
-Note: ifconfig also tells you that the link is UP and RUNNING!
-
-
-
-If you get no ppp device listed or something like:-
-
-
-
-
-ppp0 Link encap:Point-Point Protocol
-inet addr:...0 P-t-P:...0 Mask:...
-POINTOPOINT MTU:1500 Metric:1
-RX packets:0 errors:0 dropped:0 overruns:
-TX packets:0 errors:0 dropped:0 overruns:
-
-
-
-Your PPP connection has not been made...see the later section on
-debugging!
-
-
-
-You should also be able to see a route to the the remote host (and
-beyond). To do this, issue the command
-
-
-
-
-route -n
-
-
-
-You should se something like:-
-
-
-
-
-Kernel routing table
-Destination Gateway Genmask Flags MSS Window Use Iface
-10.144.153.3 * 255.255.255.255 UH 1500 0 1 ppp0
-127...0 * 255...0 U 3584 0 11 lo
-10...0 * 255...0 U 1500 0 35 eth0
-default 10.144.153.3 * UG 1500 0 5 ppp0
-
-
-
-Of particular importance here, notice we have TWO entries pointing to our
-ppp interface.
-
-
-
-The first is a HOST route, (indicated by the H flag) and
-that allows us to see the host to which we are connected to - but no
-further.
-
-
-
-The second is the default route, (established by giving pppd the option
-defaultroute. This is the route that tells our
-Linux PC to send any packets NOT destined for the local Ethernet(s) - to
-which we have specific network routes - to the PPP server itself. The
-PPP server then is responsible for routing our packets out onto the
-Internet and routing the return packets back to us.
-
-
-
-If you do not see a routing table with two entries, something is wrong.
-In particular if your syslog shows a message telling you pppd is not
-replacing an existing default route, then you have a default route
-pointing at your Ethernet interface - which ''MUST'' be replaced by a
-specific network route: ''YOU CAN ONLY HAVE ONE DEFAULT ROUTE!!!''
-
-
-
-You will need to explore your system initialization files to find out
-where this default route is being set up (it will use a route add
-default... command). Change this command to something like route
-add net....
-
-
-
-Now test the link by 'pinging' the server at its IP number as reported
-by the ifconfig output, i.e.
-
-
-
-
-ping 10.144.153.51
-
-
-
-You should receive output like
-
-
-
-
-PING 10.144.153.51 (10.144.153.51): 56 data bytes
-64 bytes from 10.144.153.51: icmp_seq=0 ttl=255 time=328.3 ms
-64 bytes from 10.144.153.51: icmp_seq=1 ttl=255 time=190.5 ms
-64 bytes from 10.144.153.51: icmp_seq=2 ttl=255 time=187.5 ms
-64 bytes from 10.144.153.51: icmp_seq=3 ttl=255 time=170.7 ms
-
-
-
-This listing will go on for ever - to stop it press CTRL C, at which
-point you will receive some more information :-
-
-
-
-
---- 10.144.153.51 ping statistics ---
-4 packets transmitted, 4 packets received, % packet loss
-round-trip min/avg/max = 170.7/219.2/328.3 ms
-
-
-
-So far so good.
-
-
-
-Now try pinging a host by name (not the name of the PPP server itself)
-but a host at another site that you KNOW is probably going to be up and
-running...). For example
-
-
-
-
-ping sunsite.unc.edu
-
-
-
-This time there will be a bit of a pause as Linux obtains the IP number
-for the fully qualified host name you have 'ping'ed from the DNS you
-specified in /etc/resolv.conf - so don't worry (but you will
-see your modem lights flash). Shortly you will receive output like
-
-
-
-
- PING sunsite.unc.edu (152.2.254.81): 56 data bytes
-64 bytes from 152.2.254.81: icmp_seq=0 ttl=254 time=190.1 ms
-64 bytes from 152.2.254.81: icmp_seq=1 ttl=254 time=180.6 ms
-64 bytes from 152.2.254.81: icmp_seq=2 ttl=254 time=169.8 ms
-64 bytes from 152.2.254.81: icmp_seq=3 ttl=254 time=170.6 ms
-64 bytes from 152.2.254.81: icmp_seq=4 ttl=254 time=170.6 ms
-
-
-
-Again, stop the output by pressing CTRL C and get the statistics...
-
-
-
-
---- sunsite.unc.edu ping statistics ---
-5 packets transmitted, 5 packets received, % packet loss
-round-trip min/avg/max = 169.8/176.3/190.1 ms
-
-
-
-If you don't get any response, try pinging the IP address of the DNS
-server at your ISP's site. If you get a result from this, then it looks
-like you have a problem with /etc/resolv.conf.
-
-
-
-If this doesn't work, you have a routing problem, or your ISP has a
-problem routing packets back to you. Check your routing table as shown
-above and if that is OK, contact your ISP. A good test of the ISP is to
-use another operating system to connect. If you can get beyond your ISP
-with that, then the problem is at your end.
-
-
-
-If everything works, shut down the connection by typing:-
-
-
-
-
-ppp-off
-
-
-
-After a short pause, the modem should hang itself up.
-
-
-
-If that does not work, either turn off your modem or fire up your
-communications software and interrupt the modem with +++ and then hang
-up with ATH0 when you receive the modem's OK prompt.
-
-
-
-You may also need to clean up the lock file created by pppd.
-
-rm -f /var/lock/LCK..ttySx
-
-----
-!!!Chapter 18. Automating your connections - Creating the connection scripts
-
-Whilst you can continue to log in by hand as shown above, it is much
-neater to set up some scripts to do this automatically for you.
-
-
-
-A set of scripts automates the log in and PPP start up so all you have to
-do (as root or as a member of the PPP group) is issue a single command
-to fire up your connection.
-
-----
-!!!18.1. Connection scripts for User name/Password Authentication
-
-If your ISP does NOT require the use of PAP/CHAP, these are the scripts
-for you!
-
-
-
-If the ppp package installed correctly, you should have two example files.
-For PPP 2.1.2 they are in /usr/sbin and for PPP 2.2 they are in
-/etc/ppp/scripts. They are called
-
-
-
-for PPP-2.1.2
-
-
-
-
-ppp-on
-ppp-off
-
-
-
-and for PPP-2.2
-
-
-
-
-ppp-off
-ppp-on
-ppp-on-dialer
-
-
-
-Now, if you are using PPP 2.1.2, I strongly urge you to delete the
-sample files. There are potential problems with these - and don't tell
-me they work fine - I used them for ages too (and recommended them in
-the first version of this HOWTO)!
-
-
-
-For the benefit of PPP 2.1.2 users, here are BETTER template versions,
-taken from the PPP 2.2 distribution. I suggest you copy and use these
-scripts ''instead of'' the old PPP-2.1.2 scripts.
-
-----
-!!!18.2. The ppp-on script
-
-This is the first of a PAIR of scripts that actually fire up the
-connection.
-
-
-
-
-#!/bin/sh
-#
-# Script to initiate a PPP connection. This is the first part of the
-# pair of scripts. This is not a secure pair of scripts as the codes
-# are visible with the 'ps' command. However, it is simple.
-#
-# These are the parameters. Change as needed.
-TELEPHONE=555-1212 # The telephone number for the connection
-ACCOUNT=george # The account name for logon (as in 'George Burns')
-PASSWORD=gracie # The password for this account (and 'Gracie Allen')
-LOCAL_IP=...0 # Local IP address if known. Dynamic = ...
-REMOTE_IP=...0 # Remote IP address if desired. Normally ...
-NETMASK=255.255.255.0 # The proper netmask if needed
-#
-# Export them so that they will be available to 'ppp-on-dialer'
-export TELEPHONE ACCOUNT PASSWORD
-#
-# This is the location of the script which dials the phone and logs
-# in. Please use the absolute file name as the $PATH variable is not
-# used on the connect option. (To do so on a 'root' account would be
-# a security hole so don't ask.)
-#
-DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
-#
-# Initiate the connection
-#
-#
-exec /usr/sbin/pppd debug /dev/ttySx 38400 \
-$LOCAL_IP:$REMOTE_IP \
-connect $DIALER_SCRIPT
-
-
-
-Here is the ppp-on-dialer script:-
-
-
-
-
-#!/bin/sh
-#
-# This is part 2 of the ppp-on script. It will perform the connection
-# protocol for the desired connection.
-#
-/usr/sbin/chat -v \
-TIMEOUT 3 \
-ABORT '\nBUSY\r' \
-ABORT '\nNO ANSWER\r' \
-ABORT '\nRINGING\r\n\r\nRINGING\r' \
-'' \rAT \
-'OK-+++\c-OK' ATH0 \
-TIMEOUT 30 \
-OK ATDT$TELEPHONE \
-CONNECT '' \
-ogin:--ogin: $ACCOUNT \
-assword: $PASSWORD
-
-
-
-For PPP-2.2, the ppp-off script looks like:-
-
-
-
-
-#!/bin/sh
-######################################################################
-#
-# Determine the device to be terminated.
-#
-if [[ "$1" = "" ]; then
-DEVICE=ppp0
-else
-DEVICE=$1
-fi
-######################################################################
-#
-# If the ppp0 pid file is present then the program is running. Stop it.
-if [[ -r /var/run/$DEVICE.pid ]; then
-kill -INT `cat /var/run/$DEVICE.pid`
-#
-# If the kill did not work then there is no process running for this
-# pid. It may also mean that the lock file will be left. You may wish
-# to delete the lock file at the same time.
-if [[ ! "$?" = "" ]; then
-rm -f /var/run/$DEVICE.pid
-echo "ERROR: Removed stale pid file"
-exit 1
-fi
-#
-# Success. Let pppd clean up its own junk.
-echo "PPP link to $DEVICE terminated."
-exit
-fi
-#
-# The ppp process is not running for ppp0
-echo "ERROR: PPP link is not active on $DEVICE"
-exit 1
-
-----
-!!!18.3. Editing the supplied PPP startup scripts
-
-As the new scripts come in two parts, we will edit them in turn.
-
-----
-!!18.3.1. The ppp-on script
-
-You will need to edit the script to reflect YOUR user name at your ISP,
-YOUR password at your ISP, and the telephone number of your ISP.
-
-
-
-Each of the lines like "TELEPHONE=" actually set up shell variables that
-contain the information to the right of the '=' (excluding the comments
-of course). So edit each of these lines so it is correct for your ISP
-and connection.
-
-
-
-Also, as you are setting the IP number (if you need to) in the
-/etc/ppp/options file, DELETE the line that says
-
-
-
-
-$LOCAL_IP:$REMOTE_IP \
-
-
-
-Also, make sure that the shell variable DIALER_SCRIPT points at
-the full path and name of the dialer script that you are actually going
-to use. So, if you have moved this or renamed the script,
-make sure you edit this line correctly in the ppp-on script!
-
-----
-!!18.3.2. The ppp-on-dialer script
-
-This is the second of the scripts that actually brings
-up our ppp link.
-
-
-
-Note: a chat script is normally all on one line. the backslashes are
-used to allow line continuations across several physical lines (for
-human readability) and do not form part of the script itself.
-
-
-
-However, it is very useful to look at it in detail so
-that we understand what it is actually (supposed) to be doing!
-
-----
-!!!18.4. What a Chat script means...
-
-A chat script is a sequence of expect
-string, send string pairs. In particular, note that we ''ALWAYS''
-expect ''something''
-before we send something.
-
-
-
-If we are to send something ''WITHOUT'' receiving anything first, we
-must use an empty expect string (indicated by " ") and similarly for expecting something
-without sending anything! Also, if a string consists of several words,
-(e.g. NO CARRIER), you must quote the string so that it is seen as a
-single entity by chat.
-
-
-
-The chat line in our template is:-
-
-
-
-
-exec /usr/sbin/chat -v
-
-
-
-Invoke chat, the -v tells chat to copy ALL its I/O into the system log
-(usually /var/log/messages). Once you are happy that the chat script is
-working reliably, edit this line to remove the -v to save unnecessary
-clutter in your syslog.
-
-
-
-
-TIMEOUT 3
-This sets the timeout for the receipt of expected input to three
-seconds. You may need to increase this to say 5 or 10 seconds if you are
-using a really slow modem!
-
-
-
-
-ABORT '\nBUSY\r'
-
-
-
-If the string BUSY is received, abort the operation.
-
-
-
-
-ABORT '\nNO ANSWER\r'
-
-
-
-If the string NO ANSWER is received, abort the operation
-
-
-
-
-ABORT '\nRINGING\r\n\r\nRINGING\r'
-
-
-
-If the (repeated) string RINGING is received, abort the
-operation. This is because someone is ringing your phone line!
-
-
-
-
-\rAT
-
-
-
-Expect nothing from the modem and send the string AT.
-
-
-
-
-OK-+++\c-OK ATH0
-
-
-
-This one is a bit more complicated as it uses some of chat's error
-recovery capabilities.
-
-
-
-What is says is...Expect OK, if it is NOT received (because the modem is
-not in command mode) then send +++ (the standard Hayes-compatible modem
-string that returns the modem to command mode) and expect OK. Then send
-ATH0 (the modem hang up string). This allows your script to
-cope with the situation of your modem being stuck on-line!
-
-
-
-
-TIMEOUT 30
-
-
-
-Set the timeout to 30 seconds for the remainder of the script. If you
-experience trouble with the chat script aborting due to timeouts,
-increase this to 45 seconds or more.
-
-
-
-
-OK ATDT$TELEPHONE
-
-
-
-Expect OK (the modem's response to the ATH0 command) and dial the number
-we want to call.
-
-
-
-
-CONNECT ''
-
-
-
-Expect CONNECT (which our modem sends when the remote modem answers) and
-send nothing in reply.
-
-
-
-
-ogin:--ogin: $ACCOUNT
-
-
-
-Again, we have some error recovery built in here. Expect the login
-prompt (...ogin:) but if we don't receive it by the timeout, send a
-return and then look for the login prompt again. When the prompt is
-received, send the username (stored in the shell variable $ACCOUNT).
-
-
-
-
-assword: $PASSWORD
-
-
-
-Expect the password prompt and send our password (again, stored in a
-shell variable).
-
-
-
-This chat script has reasonable error recovery capability. Chat has
-considerably more features than demonstrated here. For more information
-consult the chat manual page (man 8 chat).
-
-----
-!!18.4.1. Starting PPP at the server end
-
-Whilst the ppp-on-dialer script is fine for servers that automatically
-start pppd at the server end once you have logged in, some servers
-require that you explicitly start PPP on the server.
-
-
-
-If you need to issue a command to start up PPP on the server, you DO need
-to edit the ppp-on-dialer script.
-
-
-
- At the END of the script (after the password line) add an additional
-''expect send'' pair - this one would look for your login prompt (beware
-of characters that have a special meaning in the Bourne shell - such as
-$ and [[ or ] (open and close square brackets).
-
-
-
-Once chat has found the shell prompt, chat must issue the ppp
-start up command required for your ISPs PPP server.
-
-
-
-In my case, my PPP server uses the standard Linux Bash prompt
-
-[[hartr@kepler hartr]$
-
-
-
-and requires that I type
-
-
-
-
-ppp
-
-
-
-to start up PPP on the server.
-
-
-
-It is a good idea to allow for a bit of error recovery here, so in my
-case I use
-
- hartr--hartr ppp
-
-
-
-This says, if we don't receive the prompt within the timeout, send a
-carriage return and looks for the prompt again.
-
-
-
-Once the prompt is received, then send the string ppp.
-
-
-
-Note: don't forget to add a \ to the end of the previous line so chat
-still thinks the entire chat script is on one line!
-
-
-
-Unfortunately, some servers produce a very variable set of prompts! You
-may need to log in several times using minicom to understand what is
-going on and pick the stable "expect" strings.
-
-----
-!!!18.5. A chat script for PAP/CHAP authenticated connections
-
-If your ISP is using PAP/CHAP, then your chat script is much simpler.
-All your chat script needs to do is dial the telephone, wait for a
-connect and then let pppd handle the logging in!
-
-
-
-
-#!/bin/sh
-#
-# This is part 2 of the ppp-on script. It will perform the connection
-# protocol for the desired connection.
-#
-exec /usr/sbin/chat -v \
-TIMEOUT 3 \
-ABORT '\nBUSY\r' \
-ABORT '\nNO ANSWER\r' \
-ABORT '\nRINGING\r\n\r\nRINGING\r' \
-'' \rAT \
-'OK-+++\c-OK' ATH0 \
-TIMEOUT 30 \
-OK ATDT$TELEPHONE \
-CONNECT '' \
-
-----
-!!!18.6. The pppd debug and file option_file options
-
-As we have already seen, you can turn on debug information logging
-with the -d option to pppd. The 'debug' option is equivalent to this.
-
-
-
-As we are establishing a new connection with a new script, leave in the
-debug option for now. (Warning: if your disk space is tight, logging
-pppd exchanges can rapidly extend your syslog file and run you into
-trouble - but to do this you must fail to connect and keep on trying for
-quite a few minutes).
-
-
-
-Once you are happy that all is working properly, then you can remove
-this option.
-
-
-
-If you have called your ppp options file anything other than
-/etc/ppp/options or /etc/ppp/options.ttySx, specify
-the file name with the file option to pppd - e.g.
-
-
-
-
-exec /usr/sbin/pppd debug file options.myserver /dev/ttyS0 38400 \
-
-----
-!!!Chapter 19. Testing your connection script
-
-Open a new root Xterm (if you are in X) or open a new virtual console
-and log in as root.
-
-
-
-In this new session, issue the command
-
-
-
-
-tail -f /var/log/messages
-
-
-
-(or whatever your system log file is).
-
-
-
-In the first window (or virtual console) issue the command
-
-
-
-
-ppp-on 8
-
-
-
-(or whatever name you have called your edited version of /usr/sbin/ppp-
-on). If you do not put the script into the background by specifying 8
-at the end of the command, you will not get your terminal prompt back
-until ppp exits (when the link terminates).
-
-
-
-Now switch back to the window that is tracking your system log.
-
-
-
-You will see something like the following (provided you specified -v to
-chat and -d to pppd)....this is the chat script and responses being
-logged to the system log file followed by the start up information for
-pppd :-
-
-
-
-
-Oct 21 16:09:58 hwin chat[[19868]: abort on (NO CARRIER)
-Oct 21 16:09:59 hwin chat[[19868]: abort on (BUSY)
-Oct 21 16:09:59 hwin chat[[19868]: send (ATZ^M)
-Oct 21 16:09:59 hwin chat[[19868]: expect (OK)
-Oct 21 16:10:00 hwin chat[[19868]: ATZ^M^M
-Oct 21 16:10:00 hwin chat[[19868]: OK -- got it
-Oct 21 16:10:00 hwin chat[[19868]: send (ATDT722298^M)
-Oct 21 16:10:00 hwin chat[[19868]: expect (CONNECT)
-Oct 21 16:10:00 hwin chat[[19868]: ^M
-Oct 21 16:10:22 hwin chat[[19868]: ATDT722298^M^M
-Oct 21 16:10:22 hwin chat[[19868]: CONNECT -- got it
-Oct 21 16:10:22 hwin chat[[19868]: send (^M)
-Oct 21 16:10:22 hwin chat[[19868]: expect (ogin:)
-Oct 21 16:10:23 hwin chat[[19868]: kepler login: -- got it
-Oct 21 16:10:23 hwin chat[[19868]: send (hartr^M)
-Oct 21 16:10:23 hwin chat[[19868]: expect (ssword:)
-Oct 21 16:10:23 hwin chat[[19868]: hartr^M
-Oct 21 16:10:23 hwin chat[[19868]: Password: -- got it
-Oct 21 16:10:23 hwin chat[[19868]: send (??????^M)
-Oct 21 16:10:23 hwin chat[[19868]: expect (hartr)
-Oct 21 16:10:24 hwin chat[[19868]: [[hartr -- got it
-Oct 21 16:10:24 hwin chat[[19868]: send (ppp^M)
-Oct 21 16:10:27 hwin pppd[[19872]: pppd 2.1.2 started by root, uid
-Oct 21 16:10:27 hwin pppd[[19873]: Using interface ppp0
-Oct 21 16:10:27 hwin pppd[[19873]: Connect: ppp0 `--b /dev/cua1
-Oct 21 16:10:27 hwin pppd[[19873]: fsm_sdata(LCP): Sent code 1, id 1.
-Oct 21 16:10:27 hwin pppd[[19873]: LCP: sending Configure-Request, id 1
-Oct 21 16:10:27 hwin pppd[[19873]: fsm_rconfreq(LCP): Rcvd id 1.
-Oct 21 16:10:27 hwin pppd[[19873]: lcp_reqci: rcvd MRU
-Oct 21 16:10:27 hwin pppd[[19873]: (1500)
-Oct 21 16:10:27 hwin pppd[[19873]: (ACK)
-Oct 21 16:10:27 hwin pppd[[19873]: lcp_reqci: rcvd ASYNCMAP
-Oct 21 16:10:27 hwin pppd[[19873]: ()
-Oct 21 16:10:27 hwin pppd[[19873]: (ACK)
-Oct 21 16:10:27 hwin pppd[[19873]: lcp_reqci: rcvd MAGICNUMBER
-Oct 21 16:10:27 hwin pppd[[19873]: (a098b898)
-Oct 21 16:10:27 hwin pppd[[19873]: (ACK)
-Oct 21 16:10:27 hwin pppd[[19873]: lcp_reqci: rcvd PCOMPRESSION
-Oct 21 16:10:27 hwin pppd[[19873]: (ACK)
-Oct 21 16:10:27 hwin pppd[[19873]: lcp_reqci: rcvd ACCOMPRESSION
-Oct 21 16:10:27 hwin pppd[[19873]: (ACK)
-Oct 21 16:10:27 hwin pppd[[19873]: lcp_reqci: returning CONFACK.
-Oct 21 16:10:27 hwin pppd[[19873]: fsm_sdata(LCP): Sent code 2, id 1.
-Oct 21 16:10:27 hwin pppd[[19873]: fsm_rconfack(LCP): Rcvd id 1.
-Oct 21 16:10:27 hwin pppd[[19873]: fsm_sdata(IPCP): Sent code 1, id 1.
-Oct 21 16:10:27 hwin pppd[[19873]: IPCP: sending Configure-Request, id 1
-Oct 21 16:10:27 hwin pppd[[19873]: fsm_rconfreq(IPCP): Rcvd id 1.
-Oct 21 16:10:27 hwin pppd[[19873]: ipcp: received ADDR
-Oct 21 16:10:27 hwin pppd[[19873]: (10.144.153.51)
-Oct 21 16:10:27 hwin pppd[[19873]: (ACK)
-Oct 21 16:10:27 hwin pppd[[19873]: ipcp: received COMPRESSTYPE
-Oct 21 16:10:27 hwin pppd[[19873]: (45)
-Oct 21 16:10:27 hwin pppd[[19873]: (ACK)
-Oct 21 16:10:27 hwin pppd[[19873]: ipcp: returning Configure-ACK
-Oct 21 16:10:28 hwin pppd[[19873]: fsm_sdata(IPCP): Sent code 2, id 1.
-Oct 21 16:10:30 hwin pppd[[19873]: fsm_sdata(IPCP): Sent code 1, id 1.
-Oct 21 16:10:30 hwin pppd[[19873]: IPCP: sending Configure-Request, id 1
-Oct 21 16:10:30 hwin pppd[[19873]: fsm_rconfreq(IPCP): Rcvd id 255.
-Oct 21 16:10:31 hwin pppd[[19873]: ipcp: received ADDR
-Oct 21 16:10:31 hwin pppd[[19873]: (10.144.153.51)
-Oct 21 16:10:31 hwin pppd[[19873]: (ACK)
-Oct 21 16:10:31 hwin pppd[[19873]: ipcp: received COMPRESSTYPE
-Oct 21 16:10:31 hwin pppd[[19873]: (45)
-Oct 21 16:10:31 hwin pppd[[19873]: (ACK)
-Oct 21 16:10:31 hwin pppd[[19873]: ipcp: returning Configure-ACK
-Oct 21 16:10:31 hwin pppd[[19873]: fsm_sdata(IPCP): Sent code 2, id 255.
-Oct 21 16:10:31 hwin pppd[[19873]: fsm_rconfack(IPCP): Rcvd id 1.
-Oct 21 16:10:31 hwin pppd[[19873]: ipcp: up
-Oct 21 16:10:31 hwin pppd[[19873]: local IP address 10.144.153.104
-Oct 21 16:10:31 hwin pppd[[19873]: remote IP address 10.144.153.51
-
-
-
-(Note - I am using STATIC IP numbers - hence my machine sent that to the
-PPP server - you won't see this if you are using DYNAMIC IP numbers.)
-Also, this server requires a specific command to start ppp at its end.
-
-
-
-This looks OK - so test it out as before with pings to IP numbers and
-host names.
-
-
-
-Fire up you web browser or whatever and go surfing - you are connected!
-
-----
-!!!Chapter 20. Shutting down the PPP link
-
-When you have finished with the PPP link, use the standard ppp-off
-command to shut it down (remember - you need to be root or a member of
-the PPP group!).
-
-
-
-In your system log you will see something like:-
-
-
-
-
-Oct 21 16:10:45 hwin pppd[[19873]: Interrupt received: terminating link
-Oct 21 16:10:45 hwin pppd[[19873]: ipcp: down
-Oct 21 16:10:45 hwin pppd[[19873]: default route ioctl(SIOCDELRT): Bad address
-Oct 21 16:10:45 hwin pppd[[19873]: fsm_sdata(LCP): Sent code 5, id 2.
-Oct 21 16:10:46 hwin pppd[[19873]: fsm_rtermack(LCP).
-Oct 21 16:10:46 hwin pppd[[19873]: Connection terminated.
-Oct 21 16:10:46 hwin pppd[[19873]: Exit.
-
-
-
-Don't worry about the SIOCDELRT - this is just pppd noting that it
-is terminating and is nothing to worry about.
-
-----
-!!!Chapter 21. Getting Help when totally stuck
-
-If you can't get your PPP link to work, go back through this document and
-check everything - in conjunction with the output created by "chat-v..."
-and "pppd -d" in you system log.
-
-
-
-Also consult the PPP documentation and FAQ plus the other documents
-mention herein!
-
-
-
-If you are still stuck, try the comp.os.linux.misc and
-comp.os.linux.networking newsgroups are reasonably regularly scanned by
-people that can help you with PPP as is comp.protocols.ppp
-
-
-
-You can try sending me personal email, but I do have a day job (and a
-life) and I do not guarantee to respond quickly (if at all) as this
-depends on my current work load and the state of my private life!
-
-
-
-In particular - ''DO NOT POST REAMS OF DEBUGGING OUTPUT TO THE NEWS GROUPS
-NOR SEND IT TO ME BY EMAIL'' - the former wastes huge amounts of network
-bandwidth and the latter will be consigned to /dev/null (unless I have
-specifically requested it).
-
-----
-!!!Chapter 22. Common Problems once the link is working
-
-One problem you will find is that many service providers will only
-support the connection software package that they distribute to new
-accounts. This is (typically) for Microsoft Windows :-( - and many service
-provider help desks seem to know nothing about Unix (or Linux). So, be
-prepared for limited assistance from them!
-
-
-
-You could of course do the individual a favour and educate then about
-Linux (any ISP help desk person should be reasonably 'with it' in
-Internet terms and that means they should have a home Linux box - of
-course it does)!
-
-----
-!!!22.1. I can't see beyond the PPP server I connect to
-
-OK - your PPP connection is up and running and you can ping the PPP
-server by IP number (the second or "remote" IP number shown by ifconfig
-ppp0), but you can't reach anything beyond this.
-
-
-
-First of all, try pinging the IP numbers you have specified in
-/etc/resolv.conf as name servers. If this works, you ''can'' see beyond your
-PPP server (unless this has the same IP number as the "remote" IP number
-of your connection). So now try pinging the full Internet name of your
-service provider - eg
-
-
-
-
-ping my.provider.net.au
-
-
-
-If this does NOT work, you have a problem with the name resolution. This
-is probably because of a typo in your /etc/resolv.conf file. Check this
-carefully against the information you acquired by ringing your service
-provider. If all looks OK, ring your service provider and check that you
-wrote down the IP numbers correctly.
-
-
-
-If it STILL doesn't work (and your service provider confirms that his
-name servers are up and running), you have a problem somewhere else -
-and I suggest you check carefully through your Linux installation
-(looking particularly for file permissions).
-
-
-
-If you STILL can't ping your service provider's IP name servers by IP number,
-either they are down (give them a voice call and check) or there is a
-routing problem at your service provider's end. Again, ring them and
-check this out.
-
-
-
-One possibility is that the "remote end" is a Linux PPP server where the
-IP forwarding option has not been specified in the kernel!
-
-
-
-A good general test is to try connecting to your service provider using
-the software that most supply for (gulp) Microsoft Windows. If
-everything works from another operating system to exactly the same
-account, then the problem is with your Linux system and NOT your service
-provider.
-
-----
-!!!22.2. I can send email, but not receive it
-
-If you are using dynamic IP numbers, this is perfectly normal. See
-"Setting up Services" below.
-
-----
-!!!22.3. Why can't people finger, WWW, gopher, talk, etc. to my machine?
-
-Again, if you are using dynamic IP numbers, this is perfectly normal.
-See "Setting up Services" below.
-
-----
-!!!Chapter 23. Using Internet services with Dynamic IP numbers
-
-If you are using dynamic IP numbers (and many service providers will only
-give you a dynamic IP number unless you pay significantly more for your
-connection), then you have to recognize the limitations this imposes.
-
-
-
-First of all, outbound service requests will work just fine. That is,
-you can send email using sendmail (provided you have correctly set up
-sendmail), ftp files from remote sites, finger users on other machines,
-browse the web etc.
-
-
-
-In particular, you can answer email that you have brought down to your
-machine whilst you are off line. Mail will simply sit in your mail queue
-until you dial back into your ISP.
-
-
-
-However, your machine is NOT connected to the Internet 24 hours a day,
-nor does it have the same IP number every time it is connected. So it is
-impossible for you to receive email directed to your machine, and very
-difficult to set up a web or ftp server that your friends can access! As
-far as the Internet is concerned your machine does not exist as a
-unique, permanently contactable machine as it does not have a unique IP
-number (remember - other machines will be using the IP number when they
-are allocated it on dial-in).
-
-
-
-If you set up a WWW, (or any other server), it is totally unknown by any
-user on the Internet UNLESS they know that your machine is connected AND
-its actual (current) IP number. There are a number of ways they can get
-this info, ranging from you ringing them, sending them email to tell
-them or cunning use of ".plan" files on a shell account at your service
-provider (assuming that your provider allows shell and finger access).
-
-
-
-Now, for most users, this is not a problem - all that most people want
-is to send and receive email (using your account on your service
-provider) and make outbound connections to WWW, ftp and other servers on
-the Internet. If you MUST have inbound connections to your server, you
-should really get a static IP number. Alternatively you can explore the
-methods hinted at above...
-
-----
-!!!23.1. Setting up email
-
-Even for dynamic IP numbers, you can certainly configure sendmail on your
-machine to send out any email that you compose locally. Configuration of
-sendmail can be obscure and difficult - so this document does not
-attempt to tell you how to do this. However, you should probably
-configure sendmail so that your Internet service provider is designated
-as your "smart relay" host (the sendmail.cf ''DS'' option). (For more
-sendmail configuration info, see the sendmail documents - and look at the
-m4 configurations that come with sendmail. There is almost certain to be
-one there that will meet your needs).
-
-
-
-There are also excellent books on Sendmail (notably the 'bible' from
-O'Reilly and Associates), but these are almost certainly overkill for
-most users!
-
-
-
-Once you have sendmail configured, you will probably want to have
-sendmail dispatch any messages that have been sitting in the outbound
-mail queue as soon as the PPP connection comes up. To do this, add the
-command
-
-
-
-
-sendmail -q 8
-
-
-
-to your /etc/ppp/ip-up script (see below).
-
-
-
-Inbound email is a problem for dynamic IP numbers. The way to handle
-this is to:-
-
-
-
-
-
-*
-
-configure your mail user agent so that all mail is sent out with a
-"reply to" header giving your email address at your Internet Service
-provider.
-If you can, you should also set your FROM address to be your email
-address at your ISP as well.
-
-
-*
-*
-
-use the popclient, fetchmail programs to retrieve your email from your
-service provider. Alternatively, if your ISP is using IMAP, use an IMAP
-enabled mail user agent, (such as pine).
-
-
-*
-
-
-
-You can automate this process at dial up time by putting the necessary
-commands in the /etc/ppp/ip-up script (see below).
-
-----
-!!!23.2. Setting Up a local Name server
-
-Whilst you can quite happily use the domain name servers located at your
-ISP, you can also set up a local caching only (secondary) name server
-that is brought up by the ip-up script. The advantage of running a local
-(caching only) name server is that it will save you time (and bandwidth)
-if you frequently contact the same sites during a long on-line session.
-
-
-
-DNS configuration for a caching only nameserver (that uses a
-"forwarders' line in the named.boot file pointing at your ISPs DNS) is
-relatively simple. The O'Reilly book (DNS and Bind) explains all you
-want to know about this.
-
-
-
-There is also a DNS-HOWTO available.
-
-
-
-If you are running a small LAN that can access the Internet through you
-Linux PC (using IP Masquerade for example), it is probably a good idea
-to run a local name server (with a forwarders directive) whilst the link
-is up as this will minimise the bandwidth and delays associated with
-name resolution.
-
-
-
-One point of Nettiquette: ask permission from your ISP before you start
-using a secondary, caching only name server in your ISP's domain.
-Properly configured, your DNS will not cause any problems to your ISP at
-all, but if you get things wrong, it can cause problems.
-
-----
-!!!Chapter 24. Linking two networks using PPP
-
-There is basically no difference between linking a single Linux PC to a
-PPP server and linking two LANs using PPP on a machine on each LAN.
-Remember, PPP is a ''peer to peer'' protocol.
-
-
-
-However, you ''DEFINITELY'' need to understand about how routing is
-established. Read the NET-2 howto and the Linux Network Administrator
-Guide (NAG). You will also find TCP/IP Network
-Administration (published by O'Reilly and Assoc - ISBN
--937175-82-X) to be of invaluable assistance.
-
-
-
-If you are going to be sub networking an IP network number on either side
-of the link, you will also find the Linux (draft) sub networking
-mini-howto) to be of use. This is available at Linux Sub networking mini-HOWTO.
-
-
-
-In order to link two LANs, you ''must'' be using different IP network
-numbers (or subnets of the same network number) and you will need to use
-static IP numbers - or use IP masquerade. If you want to use IP
-masquerade, see the IP masquerade mini-howto for instructions on setting
-that up.
-
-----
-!!!24.1. Setting up the IP numbers
-
-Arrange with the network administrator of the other LAN the IP numbers
-that will be used for each end of the PPP interface. If you are using
-static IP numbers, this will also probably require you to dial into a
-specific telephone number.
-
-
-
-Now edit the appropriate /etc/ppp/options[[.ttyXX] file - it's a
-good idea to have a specific modem and port at your end for this
-connection. This may well require you to change your
-/etc/ppp/options file - and create appropriate
-options.ttyXX files for any other connections!
-
-
-
-Specify the IP numbers for your end of the PPP link in
-the appropriate options file exactly as shown above for static IP
-numbers.
-
-----
-!!!24.2. Setting up the routing
-
-You must arrange that packets on your local LAN are routed across the
-interface that the PPP link establishes. This is a two stage process.
-
-
-
-First of all, you need to establish a route from the machine running the
-PPP link to the network(s) at the far end of the link. If the link is to
-the Internet, this can be handled by a default route established by pppd
-itself at your end of the connection using the 'defaultroute' option to pppd.
-
-
-
-If however, the link is only linking two LANs, then a specific network
-route must be added for each network that is accessible across the link.
-This is done using a 'route' command for each network in the
-/etc/ppp/ip-up script (see "After the link comes up"...) for instructions
-on doing this.
-
-
-
-The second thing you need to do is to tell the other computers on your
-LAN that your Linux computer is actually the 'gateway' for the network(s)
-at the far end of the ppp link.
-
-
-
-Of course, the network administrator at the other end of the link has to
-do all this too! However, as s/he will be routing packets to your specific
-networks, a ''specific network route'' will be required, not a default
-route (unless the LANs at the far and of the link are linking into you
-to access the Internet across your connection).
-
-----
-!!!24.3. Network security
-
-If you are linking you LAN to the Internet using PPP - or even just to a
-"foreign" LAN, you need to think about security issues. I
-strongly urge you to think about setting up a firewall!
-
-
-
-You should also speak to the LAN administrator at your site ''BEFORE''
-you start linking to foreign LANs or the Internet this way. Failure to
-do so could earn you anything from no reaction to really serious trouble!
-
-----
-!!!Chapter 25. After the link comes up - the /etc/ppp/ip-up script
-
-Once the PPP link is established, pppd looks for
-/etc/ppp/ip-up. If this script exists and is executable, the
-PPP daemon executes the script. This allows you to automate any special
-routing commands that may be necessary and any other actions that you
-want to occur every time the PPP link is activated.
-
-
-
-This is just a shell script and can do anything that a shell script can
-do (i.e. virtually anything you want).
-
-
-
-For example, you can get sendmail to dispatch any waiting outbound
-messages in the mail queue.
-
-
-
-Similarly, you can insert the commands into ip-up to collect (using pop)
-any email waiting for you at your ISP.
-
-
-
-There are restrictions on /etc/ppp/ip-up:-
-
-
-
-
-
-
-
-
-*
-
-It runs in a deliberately restricted environment to enhance
-security. This means you must give a full path to binaries etc.
-
-
-*
-*
-
-Technically, /etc/ppp/ip-up is a ''program'' not a
-script. This means it can be directly executed - and hence it requires
-the standard file magic (#!/bin/bash) at the start of the first line and must be
-readable and executable by root.
-
-
-*
-
-----
-!!!25.1. Special routing
-
-If you are linking two LANs, you will need to set up specific routes
-to the 'foreign' LANs. This is easily done using the /etc/ppp/ip-up
-script. The only difficulty arises if your machine handles multiple PPP
-links.
-
-
-
-This is because the /etc/ppp/ip-up is executed for EVERY ppp
-connection that comes up, so you need to carefully execute the correct
-routing commands for the particular link that comes up - and not when
-any other link comes up!
-
-----
-!!!25.2. Handling email queues
-
-When the link between two LANs comes up, you may well want to make sure
-that email that is queued at either end is ''flushed'' - sent out to
-its destination. This is done by adding the appropriate sendmail
-invocation.
-
-
-
-Using the bash 'case' statement on an appropriate parameter that pppd
-passes into the script accomplishes this. For example, this is
-the /etc/ppp/ip-up script I use to handle our WAN links and the
-link to my home Ethernet (also handled on the same ppp server).
-
-----
-!!!25.3. A sample /etc/ppp/ip-up script
-
-The example below provides a variety of example uses.
-
-
-
-
-#!/bin/bash
-#
-# Script which handles the routing issues as necessary for pppd
-# Only the link to Newman requires this handling.
-#
-# When the ppp link comes up, this script is called with the following
-# parameters
-# $1 the interface name used by pppd (e.g. ppp3)
-# $2 the tty device name
-# $3 the tty device speed
-# $4 the local IP address for the interface
-# $5 the remote IP address
-# $6 the parameter specified by the 'ipparam' option to pppd
-#
-case "$5" in
-# Handle the routing to the Newman Campus server
-202.12.126.1)
-/sbin/route add -net 202.12.126.0 gw 202.12.126.1
-# and flush the mail queue to get their email there asap!
-/usr/sbin/sendmail -q 8
-;;
-139.130.177.2)
-# Our Internet link
-# When the link comes up, start the time server and synchronise to the world
-# provided it is not already running
-if [[ ! -f /var/lock/subsys/xntpd ]; then
-/etc/rc.d/init.d/xntpd.init start 8
-fi
-# Start the news server (if not already running)
-if [[ ! -f /var/lock/subsys/news ]; then
-/etc/rc.d/init.d/news start 8
-fi
-;;
-203.18.8.104)
-# Get the email down to my home machine as soon as the link comes up
-# No routing is required as my home Ethernet is handled by IP
-# masquerade and proxyarp routing.
-/usr/sbin/sendmail -q 8
-;;
-*)
-esac
-exit
-
-
-
-As a result of bringing up the ppp link to our Newman campus and this
-script, we end up with the following routing table entries (this machine
-also is our general dial up PPP server AND handles our Internet link). I
-have interspersed comments in the output to help explain what each entry
-is) :-
-
-
-
-
-[[root@kepler /root]# route -n
-Kernel routing table
-Destination Gateway Genmask Flags MSS Window Use Iface
-# the HOST route to our remote internet gateway
-139.130.177.2 * 255.255.255.255 UH 1500 0 134 ppp4
-# the HOST route to our Newman campus server
-202.12.126.1 * 255.255.255.255 UH 1500 0 82 ppp5
-# the HOST route to my home ethernet
-203.18.8.104 * 255.255.255.255 UH 1500 0 74 ppp3
-# two of our general dial up PPP lines
-203.18.8.64 * 255.255.255.255 UH 552 0 0 ppp2
-203.18.8.62 * 255.255.255.255 UH 552 0 1 ppp1
-# the specific network route to the Newman campus LAN
-202.12.126.0 202.12.126.1 255.255.255.0 UG 1500 0 0 ppp5
-# the route to our local Ethernet (super-netting two adjacent C classes)
-203.18.8.0 * 255.255.254.0 U 1500 0 1683 eth0
-# the route to the loop back device
-127...0 * 255...0 U 3584 0 483 lo
-# the default route to the Internet
-default 139.130.177.2 * UG 1500 0 3633 ppp4
-
-----
-!!!25.4. Handling email
-
-The previous section shows how to handle the outgoing mail - simply by
-flushing the mail queue once the link is up.
-
-
-
-If you are running a WAN link, you can arrange with the network
-administrator of the remote LAN to do exactly the same thing. For
-example, at the Newman Campus end of our WAN link, the
-/etc/ppp/ip-up script looks like :-
-
-
-
-
-#!/bin/bash
-#
-# Script which handles the routing issues as necessary for pppd
-# Only the link to Hedland requires this handling.
-#
-# When the ppp link comes up, this script is called with the following
-# parameters
-# $1 the interface name used by pppd (e.g. ppp3)
-# $2 the tty device name
-# $3 the tty device speed
-# $4 the local IP address for the interface
-# $5 the remote IP address
-# $6 the parameter specified by the 'ipparam' option to pppd
-#
-case "$5" in
-203.18.8.4)
-/usr/sbin/sendmail -q
-;;
-*)
-esac
-exit
-
-
-
-If however you have only a dynamic IP PPP link to your ISP, you need to
-get your email from the account on your ISPs machine. This is usually
-done using the POP (Post Office Protocol). This process can be handled
-using the 'popclient' program - and the ip-up script can automate this
-process for you too!
-
-
-
-Simply create a /etc/ppp/ip-up script that contains the
-appropriate invocation of popclient. For my laptop that runs Red Hat Linux
-(which I take on any travels), this is...
-
-
-
-
-popclient -3 -c -u hartr -p `passwordb kepler.hedland.edu.au |formail -s procmail
-
-
-
-You could use slurp or whatever to do the same for news, and so forth.
-Remember, the ip-up script is just a standard bash script and so can be
-used to automate ANY function that needs to be accomplished every time
-the appropriate PPP link comes up.
-
-----
-!!!Chapter 26. Using /etc/ppp/ip-down
-
-You can create a script that will be executed once the
-link has been terminated. This is stored in /etc/ppp/ip-down. It can be
-used to undo anything special that you did in the corresponding
-/etc/ppp/ip-up script.
-
-----
-!!!Chapter 27. Routing issues on a LAN
-
-If you are connected to a LAN but still want to use PPP on your personal
-Linux machine , you need to address some issues of the routes packets
-need to take from your machine to reach your LAN (through your Ethernet
-interface) and also to the remote PPP server and beyond.
-
-
-
-This section does NOT attempt to teach you about routing - it deals only
-with a simple, special case of (static) routing!
-
-
-
-I strongly urge you to read the Linux Network Administrator Guide (NAG)
-if you are NOT familiar with routing. Also the O'Reilly book "TCP/IP
-Network Administration" covers this topic in a very understandable form.
-
-
-
-The basic rule of static routing is that the DEFAULT route should be the
-one that points to the MOST number of network addresses. For other
-networks, enter specific routes to the routing table.
-
-
-
-The ONLY situation I am going to cover here is where your Linux box is
-on a LAN that is not connected to the Internet - and you want to dial
-out to the Internet for personal use whilst still connected to the LAN.
-
-
-
-First of all, make sure that your Ethernet route is set up to the
-specific network addresses available across your LAN - NOT set to the
-default route!
-
-
-
-Check this by issuing a route command, you should see something like the
-following:-
-
-
-
-
-[[root@hwin /root]# route -n
-Kernel routing table
-Destination Gateway Genmask Flags MSS Window Use Iface
-loopback * 255.255.255.0 U 1936 0 50 lo
-10...0 * 255.255.255.0 U 1436 0 565 eth0
-
-
-
-If your Ethernet interface (eth0) is pointing at the default route, (the
-first column will show "default" in the eth0 line) you need to change
-your Ethernet initialization scripts to make it point at the specific
-network numbers rather than the default route (consult the Net2 HOWTO
-and NAG).
-
-
-
-This will allow pppd to set up your default route as shown below:-
-
-
-
-
-[[root@hwin /root]# route -n
-Kernel routing table
-Destination Gateway Genmask Flags MSS Window Use Iface
-10.144.153.51 * 255.255.255.255 UH 488 0 0 ppp0
-127...0 * 255.255.255.0 U 1936 0 50 lo
-10.1..0 * 255.255.255.0 U 1436 0 569 eth0
-default 10.144.153.51 * UG 488 0 3 ppp0
-
-
-
-As you can see, we have a host route to the PPP server ( 10.144.153.51)
-via ppp0 and also a default network route that uses the PPP server as
-its gateway.
-
-
-
-If your set up needs to be more complex than this - read the routing
-documents already mentioned and consult an expert at your site!
-
-
-
-If your LAN already has routers on it, you will already have gateways
-established to the wider networks available at your site. You should
-STILL point your default route at the PPP interface - and make the other
-routes specific to the networks they serve.
-
-----
-!!!27.1. Note on Security
-
-When you set up a Linux box on an existing LAN to link into the
-Internet, you are potentially opening your entire LAN to the Internet -
-and the hackers that reside there. Before you do this, I strongly urge
-you to consult your network administrator and site security policy. If
-your PPP connection to the Internet is used to successfully attack your
-site, you will at the very least earn the intense anger of your fellow
-users, network and system administrators. You may also find yourself in
-very much more serious trouble!
-
-
-
-Before you connect a LAN to the Internet, you should consider the
-security implications of even a DYNAMIC connection - hence the earlier
-reference to the O'Reilly "Building Internet Firewalls"!
-
-----
-!!!Chapter 28. Setting up a PPP server
-
-As already mentioned, there are many ways to do this. What I present
-here is the way I do it, (using a Cyclades multi-port serial card), and a
-rotary dial in set of telephone lines.
-
-
-
-If you don't like the method I present here, please feel free to go your
-own way. I would however, be pleased to include additional methods in
-future versions of the HOWTO. So, please send me your comments and
-methods!
-
-
-
-Please note, this section only concerns setting up Linux as a PPP
-server. I do not (ever) intend to include information on setting up
-special terminal servers and such.
-
-
-
-Also, I have yet to experiment with shadow passwords (but will be doing
-so sometime). Information currently presented does NOT therefore include any
-bells and whistles that are required by the shadow suite.
-
-----
-!!!28.1. Kernel compilation
-
-All the earlier comments regarding kernel compilation and kernel
-versions versus pppd versions apply. This section assumes that you have
-read the earlier sections of this document!
-
-
-
-For a PPP server, you ''MUST'' include IP forwarding in your kernel.
-You may also wish to include other capabilities (such as IP fire walls,
-accounting etc etc).
-
-
-
-If you are using a multi-port serial card, then you must obviously
-include the necessary drivers in your kernel too!
-
-----
-!!!28.2. Overview of the server system
-
-We offer dial up PPP (and SLIP) accounts and shell accounts using the
-same user name/password pair. This has the advantages (for us) that a
-user requires only one account and can use it for all types of
-connectivity.
-
-
-
-As we are an educational organization, we do not charge our staff and
-students for access, and so do not have to worry about accounting and
-charging issues.
-
-
-
-We operate a firewall between our site and the Internet, and this
-restricts some user access as the dial up lines are inside our
-(Internet) firewall (for fairly obvious reasons, details of our other
-internal fire walls are not presented here and are irrelevant in any
-case).
-
-
-
-The process a user goes through to establish a PPP link to our site
-(once they have a valid account of course) is :-
-
-
-
-
-
-*
-
-Dial into our rotary dialer (this is a single phone number that
-connects to a bank of modems - the first free modem is then used).
-
-
-*
-*
-
-Log in using a valid user name and password pair.
-
-
-*
-*
-
-At the shell prompt, issue the command ppp to start PPP on
-the server.
-
-
-*
-*
-
-Start PPP on their PC (be it running Windows, DOS, Linux MAC OS or
-whatever - that is their problem).
-
-
-*
-
-
-
-The server uses individual /etc/ppp/options.ttyXX files for each
-dial in port that set the remote IP number for dynamic IP allocation.
-The server users proxyarp routing for the remote clients (set via the
-appropriate option to pppd). This obviates the need for routed or gated.
-
-
-
-When the user hangs up at their end, pppd detects this and tells the modem
-to hang up, bringing down the PPP link at the same time.
-
-----
-!!!28.3. Getting the software together
-
-You will need the following software:-
-
-
-
-
-
-*
-
-Linux, properly compiled to include the necessary options.
-
-
-*
-*
-
-The appropriate version of pppd for your kernel.
-
-
-*
-*
-
-A 'getty' program that intelligently handles modem
-communications.
-We use getty_ps2..7h, but mgetty is highly thought of. I understand
-that mgetty can detect a call that is using pap/chap (pap is the
-standard for Windows95) and invoke pppd automatically, but I have yet to
-explore this.
-
-
-*
-*
-
-An operational domain name server (DNS) that is accessible to your
-dial up users.
-You should really be running your own DNS if possible...
-
-
-*
-
-----
-!!!28.4. Setting up standard (shell access) dialup.
-
-Before you can set up your PPP server, your Linux box must be capable of
-handling standard dial up access.
-
-
-
-''This howto does NOT cover setting this up. Please see the
-documentation of the getty of your choice and serial HOWTO for
-information on this.''
-
-----
-!!!28.5. Setting up the PPP options files
-
-You will need to set up the overall /etc/ppp/options with the
-common options for all dial up ports. The options we use are:-
-
-
-
-
-asyncmap
-netmask 255.255.254.
-proxyarp
-lock
-crtscts
-modem
-
-
-
-Note - we do NOT use any (obvious) routing - and in particular there is
-no defaultroute option. The reason for this is that all you (as a PPP
-server) are required to do is to route packets ''from'' the ppp client
-out across your LAN/Internet and route packets ''to'' the client from
-your LAN and beyond.
-
-
-
-All that is necessary for this is a host route to the client machine and
-the use of the 'proxyarp' option to pppd.
-
-
-
-The 'proxyarp' option sets up (surprise) a proxy ARP entry in the PPP
-server's ARP table that basically says 'send all packets destined for
-the PPP client to me'. This is the easiest way to set up routing to a
-single PPP client - but you cannot use this if you are routing between
-two LANs - you must add proper network routes which can't use proxy ARP.
-
-
-
-You will almost certainly wish to provide dynamic IP number allocation
-to your dial up users. You can accomplish this by allocating an IP
-number to each dial up port. Now, create a /etc/ppp/options.ttyXX
-for each dial up port.
-
-
-
-In this, simply put the local (server) IP number and the IP number that
-is to be used for that port. For example
-
-
-
-
-kepler:slip01
-
-
-
-In particular, note that you can use valid host names in this file (I
-find that I only remember the IP numbers of critical machines and
-devices on my networks - names are more meaningful)!
-
-----
-!!!28.6. Setting pppd up to allow users to (successfully) run it
-
-As starting a ppp link implies configuring a kernel device (a network
-interface) and manipulating the kernel routing tables, special
-privileges are required - in fact full root privileges.
-
-
-
-Fortunately, pppd has been designed to be 'safe' to run set uid to root.
-So you will need to...
-
-chmod u+s /usr/sbin/pppd
-
-
-
-When you list the file, it should then appear as...
-
--rwsr-xr-x 1 root root 74224 Apr 28 07:17 /usr/sbin/pppd
-
-
-
-If you do not do this, users will be unable to set up their ppp link.
-
-----
-!!!28.7. Setting up the global alias for pppd
-
-In order to simplify things for our dial up PPP users, we create a
-global alias (in /etc/bashrc) so that one simple command will start ppp
-on the server once they are logged in.
-
-
-
-This looks like...
-
-alias ppp="exec /usr/sbin/pppd -detach"
-
-
-
-What this does is
-
-
-
-
-
-*
-
-exec : this means replace the running program (in this case the
-shell) with the program that is run.
-
-
-*
-*
-
-pppd -detach : start up pppd and do NOT fork into the background.
-This ensures that when pppd exits there is no process hanging around.
-
-
-*
-
-
-
-When a user logs in like this, they will appear in the output of 'w' as...
-
- 6:24pm up 3 days, 7:00, 4 users, load average: .05, .03, .00
-User tty login@ idle JCPU PCPU what
-hartr ttyC0 3:05am 9:14 -
-
-
-
-And that is it...I told you this was a simple, basic PPP server system!
-
-----
-!!!Chapter 29. Using PPP across a null modem (direct serial) connection
-
-This is very simple - there is no modem in the way so things are much
-simpler.
-
-
-
-First of all, choose one of the machines as a 'server', setting up a
-getty on the serial port so you can test that you do have connectivity
-using minicom to access the serial port on the 'client'.
-
-
-
-Once you have this functioning, you can remove the getty UNLESS you want
-to make sure that the connection is validated using user name/password
-pairs as for a dial up connection. As you have 'physical control' of
-both machines, I will presume that you do NOT want to do this.
-
-
-
-Now, on the server, remove the getty and make sure that you have the serial
-ports on both machines configured correctly using 'setserial'.
-
-
-
-All you need to do now is to start pppd on both systems. I will assume
-that the connection uses /dev/ttyS34 on both machines. So, on both
-machines execute the command:-
-
-
-
-
-pppd -detach crtscts lock `local IPb:`remote IPb /dev/ttyS3 38400 8
-
-
-
-This will bring up the link - but as yet you have no routing specified.
-You can test the link by pinging to and fro to each machine. If this
-works, bring down the link by killing one of the pppd processes.
-
-
-
-The routing you need will of course depend on exactly what you are
-trying to do. Generally, one of the machines will be connected
-to an Ethernet (and beyond) and so the routing required is exactly the
-same as for a PPP server and client.
-
-
-
-So on the Ethernet equipped machine, the pppd command would be...
-
-
-
-
-pppd -detach crtscts lock proxyarp `local IPb:`remote IPb /dev/ttyS3 38400 8
-
-
-
-and on the other machine
-...
-
-
-
-
-pppd -detach crtscts lock defaultroute `local IPb:`remote IPb /dev/ttyS3 38400 8
-
-
-
-If you are linking two networks (using a serial link!) or have more
-complex routing requirements, you can use /etc/ppp/ip-up in exactly the
-same way as mentioned earlier in this document.
-
-----
-!!!Chapter 30. PPPoE or PPP over Ethernet
-
-This document does not currently cover PPoE as it appears to NOT (for Linux anyway) be under active development.
-For those who have interest or need of PPPoE we do include the following links.
-
-
-
-We have heard rumors that the 2.4 series of kernels will have PPoE but we are unable to confirm this
-at this time. If you know differently please contact us.
-
-
-
-
-
-
-*
-
-pppoe: a PPP-over-Ethernet redirector for pppd
-
-
-
-This program can be used to enable PPPoE support using the pppd
-daemon. PPPoE is a technique for the encapsulation of PPP streams
-inside of Ethernet frames. This technology is being deployed by
-high-speed Internet access providers (cable modems, xDSL, etc.) in
-order to decouple the supply of bandwidth from ISP services. In
-particular, in Canada, the Bell Sympatico ADSL service is moving from
-DHCP-based access control to PPPoE. Further details on PPPoE can be
-found in RFC2516.
-
-
-*
-*
-
-Roaring Penguin PPoE Client.
-
-
-
-The client is a user-mode program and does not require any kernel modifications. It is
-fully compliant with RFC 2516, the official PPPoE specification.
-
-
-*
-*
-
-A PPoE FAQ Page. This
-page includes comprehensive information on what PPoE is, what it is used for, and
-implementations of the protocol. If you are looking for a good all around resource on
-PPoE this is an excellent page to start with.
-
-
-*
-*
-
-The actual RFC. This is for
-the technically minded only and usually only of help to those wishing to program with or
-for the protocol.
-
-
-*
+Describe
[HowToPPPHOWTO
] here.