| .\" manual page [] for pppd 2.4 |
| .\" $Id: pppd.8,v 1.83 2004/11/13 12:22:49 paulus Exp $ |
| .\" SH section heading |
| .\" SS subsection heading |
| .\" LP paragraph |
| .\" IP indented paragraph |
| .\" TP hanging label |
| .\" |
| .\" Copyright (c) 1993-2003 Paul Mackerras <paulus@samba.org> |
| .\" |
| .\" Permission to use, copy, modify, and distribute this software for any |
| .\" purpose with or without fee is hereby granted, provided that the above |
| .\" copyright notice and this permission notice appear in all copies. |
| .\" |
| .\" THIS SOFTWARE IS PROVIDED "AS IS" AND THE AUTHORS DISCLAIM ALL WARRANTIES |
| .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
| .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
| .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
| .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
| .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
| .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
| .\" |
| .TH PPPD 8 |
| .SH NAME |
| pppd \- Point-to-Point Protocol Daemon |
| .SH SYNOPSIS |
| .B pppd |
| [ |
| .I options |
| ] |
| .SH DESCRIPTION |
| .LP |
| PPP is the protocol used for establishing internet links over dial-up |
| modems, DSL connections, and many other types of point-to-point |
| links. The \fIpppd\fR daemon works together with the kernel PPP |
| driver to establish and maintain a PPP link with another system |
| (called the \fIpeer\fR) and to negotiate Internet Protocol (IP) |
| addresses for each end of the link. Pppd can also authenticate the |
| peer and/or supply authentication information to the peer. PPP can be |
| used with other network protocols besides IP, but such use is becoming |
| increasingly rare. |
| .SH FREQUENTLY USED OPTIONS |
| .TP |
| .I ttyname |
| Use the serial port called \fIttyname\fR to communicate with the |
| peer. The string "/dev/" is prepended to \fIttyname\fR to form the |
| name of the device to open. If no device name is given, or if the |
| name of the terminal |
| connected to the standard input is given, pppd will use that terminal, |
| and will not fork to put itself in the background. A value for this |
| option from a privileged source cannot be overridden by a |
| non-privileged user. |
| .TP |
| .I speed |
| An option that is a decimal number is taken as the desired baud rate |
| for the serial device. On systems such as |
| 4.4BSD and NetBSD, any speed can be specified. Other systems |
| (e.g. Linux, SunOS) only support the commonly-used baud rates. |
| .TP |
| .B asyncmap \fImap |
| This option sets the Async-Control-Character-Map (ACCM) for this end |
| of the link. The ACCM is a set of 32 bits, one for each of the |
| ASCII control characters with values from 0 to 31, where a 1 bit |
| indicates that the corresponding control character should not be used |
| in PPP packets sent to this system. The map is encoded as a |
| hexadecimal number (without a leading 0x) where the least significant |
| bit (00000001) represents character 0 and the most significant bit |
| (80000000) represents character 31. |
| Pppd will ask the peer to send these characters as a 2-byte |
| escape sequence. |
| If multiple \fIasyncmap\fR options are given, the values are ORed |
| together. If no \fIasyncmap\fR option is given, the default is zero, |
| so pppd will ask the peer not to escape any control characters. |
| To escape transmitted characters, use the \fIescape\fR option. |
| .TP |
| .B auth |
| Require the peer to authenticate itself before allowing network |
| packets to be sent or received. This option is the default if the |
| system has a default route. If neither this option nor the |
| \fInoauth\fR option is specified, pppd will only allow the peer to use |
| IP addresses to which the system does not already have a route. |
| .TP |
| .B call \fIname |
| Read options from the file /etc/ppp/peers/\fIname\fR. This file may |
| contain privileged options, such as \fInoauth\fR, even if pppd |
| is not being run by root. The \fIname\fR string may not begin with / |
| or include .. as a pathname component. The format of the options file |
| is described below. |
| .TP |
| .B connect \fIscript |
| Usually there is something which needs to be done to prepare the link |
| before the PPP protocol can be started; for instance, with a dial-up |
| modem, commands need to be sent to the modem to dial the appropriate |
| phone number. This option specifies an command for pppd to execute |
| (by passing it to a shell) before attempting to start PPP negotiation. |
| The chat (8) program is often useful here, as it provides a way to |
| send arbitrary strings to a modem and respond to received characters. |
| A value |
| for this option from a privileged source cannot be overridden by a |
| non-privileged user. |
| .TP |
| .B crtscts |
| Specifies that pppd should set the serial port to use hardware flow |
| control using the RTS and CTS signals in the RS-232 interface. |
| If neither the \fIcrtscts\fR, the |
| \fInocrtscts\fR, the \fIcdtrcts\fR nor the \fInocdtrcts\fR option |
| is given, the hardware flow control setting for the serial port is |
| left unchanged. |
| Some serial ports (such as Macintosh serial ports) lack a true |
| RTS output. Such serial ports use this mode to implement |
| unidirectional flow control. The serial port will |
| suspend transmission when requested by the modem (via CTS) |
| but will be unable to request the modem to stop sending to the |
| computer. This mode retains the ability to use DTR as |
| a modem control line. |
| .TP |
| .B defaultroute |
| 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. This option |
| is privileged if the \fInodefaultroute\fR option has been specified. |
| .TP |
| .B disconnect \fIscript |
| Execute the command specified by \fIscript\fR, by passing it to a |
| shell, after |
| pppd has terminated the link. This command could, for example, issue |
| commands to the modem to cause it to hang up if hardware modem control |
| signals were not available. The disconnect script is not run if the |
| modem has already hung up. A value for this option from a privileged |
| source cannot be overridden by a non-privileged user. |
| .TP |
| .B escape \fIxx,yy,... |
| 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 \fIescape\fR option, |
| unlike the \fIasyncmap\fR 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. |
| .TP |
| .B file \fIname |
| Read options from file \fIname\fR (the format is described below). |
| The file must be readable by the user who has invoked pppd. |
| .TP |
| .B init \fIscript |
| Execute the command specified by \fIscript\fR, by passing it to a shell, to |
| initialize the serial line. This script would typically use the |
| chat(8) program to configure the modem to enable auto answer. A value |
| for this option from a privileged source cannot be overridden by a |
| non-privileged user. |
| .TP |
| .B lock |
| Specifies that pppd should create a UUCP-style lock file for the |
| serial device to ensure exclusive access to the device. |
| .TP |
| .B mru \fIn |
| Set the MRU [Maximum Receive Unit] value to \fIn\fR. Pppd |
| will ask the peer to send packets of no more than \fIn\fR bytes. |
| The value of \fIn\fR must be between 128 and 16384; the default is 1500. |
| A value of |
| 296 works well on very slow links (40 bytes for TCP/IP header + 256 |
| bytes of data). |
| Note that for the IPv6 protocol, the MRU must be at least 1280. |
| .TP |
| .B mtu \fIn |
| Set the MTU [Maximum Transmit Unit] value to \fIn\fR. 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 \fIn\fR bytes through the PPP network interface. Note that for |
| the IPv6 protocol, the MTU must be at least 1280. |
| .TP |
| .B passive |
| 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 would without this option. |
| .SH OPTIONS |
| .TP |
| .I <local_IP_address>\fB:\fI<remote_IP_address> |
| Set the local and/or remote interface IP addresses. Either one may be |
| omitted. The IP addresses can be specified with a host name or in |
| decimal dot notation (e.g. 150.234.56.78). The default local |
| address is the (first) IP address of the system (unless the |
| \fInoipdefault\fR |
| option is given). The remote address will be obtained from the peer |
| if not specified in any option. Thus, in simple cases, this option is |
| not required. If a local and/or remote IP address is specified with |
| this option, pppd |
| will not accept a different value from the peer in the IPCP |
| negotiation, unless the \fIipcp\-accept\-local\fR and/or |
| \fIipcp\-accept\-remote\fR options are given, respectively. |
| .TP |
| .B ipv6 \fI<local_interface_identifier>\fR,\fI<remote_interface_identifier> |
| Set the local and/or remote 64-bit interface identifier. Either one may be |
| omitted. The identifier must be specified in standard ascii notation of |
| IPv6 addresses (e.g. ::dead:beef). If the |
| \fIipv6cp\-use\-ipaddr\fR |
| option is given, the local identifier is the local IPv4 address (see above). |
| On systems which supports a unique persistent id, such as EUI\-48 derived |
| from the Ethernet MAC address, \fIipv6cp\-use\-persistent\fR option can be |
| used to replace the \fIipv6 <local>,<remote>\fR option. Otherwise the |
| identifier is randomized. |
| .TP |
| .B active\-filter \fIfilter\-expression |
| Specifies a packet filter to be applied to data packets to determine |
| which packets are to be regarded as link activity, and therefore reset |
| the idle timer, or cause the link to be brought up in demand-dialling |
| mode. This option is useful in conjunction with the |
| \fBidle\fR option if there are packets being sent or received |
| regularly over the link (for example, routing information packets) |
| which would otherwise prevent the link from ever appearing to be idle. |
| The \fIfilter\-expression\fR syntax is as described for tcpdump(1), |
| except that qualifiers which are inappropriate for a PPP link, such as |
| \fBether\fR and \fBarp\fR, are not permitted. Generally the filter |
| expression should be enclosed in single-quotes to prevent whitespace |
| in the expression from being interpreted by the shell. This option |
| is currently only available under Linux, and requires that the kernel |
| was configured to include PPP filtering support (CONFIG_PPP_FILTER). |
| Note that it |
| is possible to apply different constraints to incoming and outgoing |
| packets using the \fBinbound\fR and \fBoutbound\fR qualifiers. |
| .TP |
| .B allow\-ip \fIaddress(es) |
| Allow peers to use the given IP address or subnet without |
| authenticating themselves. The parameter is parsed as for each |
| element of the list of allowed IP addresses in the secrets files (see |
| the AUTHENTICATION section below). |
| .TP |
| .B allow\-number \fInumber |
| Allow peers to connect from the given telephone number. A trailing |
| `*' character will match all numbers beginning with the leading part. |
| .TP |
| .B bsdcomp \fInr,nt |
| Request that the peer compress packets that it sends, using the |
| BSD-Compress scheme, with a maximum code size of \fInr\fR bits, and |
| agree to compress packets sent to the peer with a maximum code size of |
| \fInt\fR bits. If \fInt\fR is not specified, it defaults to the value |
| given for \fInr\fR. Values in the range 9 to 15 may be used for |
| \fInr\fR and \fInt\fR; larger values give better compression but |
| consume more kernel memory for compression dictionaries. |
| Alternatively, a value of 0 for \fInr\fR or \fInt\fR disables |
| compression in the corresponding direction. Use \fInobsdcomp\fR or |
| \fIbsdcomp 0\fR to disable BSD-Compress compression entirely. |
| .TP |
| .B cdtrcts |
| Use a non-standard hardware flow control (i.e. DTR/CTS) to control |
| the flow of data on the serial port. If neither the \fIcrtscts\fR, |
| the \fInocrtscts\fR, the \fIcdtrcts\fR nor the \fInocdtrcts\fR |
| option is given, the hardware flow control setting for the serial |
| port is left unchanged. |
| Some serial ports (such as Macintosh serial ports) lack a true |
| RTS output. Such serial ports use this mode to implement true |
| bi-directional flow control. The sacrifice is that this flow |
| control mode does not permit using DTR as a modem control line. |
| .TP |
| .B chap\-interval \fIn |
| If this option is given, pppd will rechallenge the peer every \fIn\fR |
| seconds. |
| .TP |
| .B chap\-max\-challenge \fIn |
| Set the maximum number of CHAP challenge transmissions to \fIn\fR |
| (default 10). |
| .TP |
| .B chap\-restart \fIn |
| Set the CHAP restart interval (retransmission timeout for challenges) |
| to \fIn\fR seconds (default 3). |
| .TP |
| .B child\-timeout \fIn |
| When exiting, wait for up to \fIn\fR seconds for any child processes |
| (such as the command specified with the \fBpty\fR command) to exit |
| before exiting. At the end of the timeout, pppd will send a SIGTERM |
| signal to any remaining child processes and exit. A value of 0 means |
| no timeout, that is, pppd will wait until all child processes have |
| exited. |
| .TP |
| .B connect\-delay \fIn |
| Wait for up to \fIn\fR milliseconds after the connect script finishes for |
| a valid PPP packet from the peer. At the end of this time, or when a |
| valid PPP packet is received from the peer, pppd will commence |
| negotiation by sending its first LCP packet. The default value is |
| 1000 (1 second). This wait period only applies if the \fBconnect\fR |
| or \fBpty\fR option is used. |
| .TP |
| .B debug |
| Enables connection debugging facilities. |
| 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 \fIdaemon\fR and level |
| \fIdebug\fR. This information can be directed to a file by setting up |
| /etc/syslog.conf appropriately (see syslog.conf(5)). |
| .TP |
| .B default\-asyncmap |
| Disable asyncmap negotiation, forcing all control characters to be |
| escaped for both the transmit and the receive direction. |
| .TP |
| .B default\-mru |
| Disable MRU [Maximum Receive Unit] negotiation. With this option, |
| pppd will use the default MRU value of 1500 bytes for both the |
| transmit and receive direction. |
| .TP |
| .B deflate \fInr,nt |
| Request that the peer compress packets that it sends, using the |
| Deflate scheme, with a maximum window size of \fI2**nr\fR bytes, and |
| agree to compress packets sent to the peer with a maximum window size |
| of \fI2**nt\fR bytes. If \fInt\fR is not specified, it defaults to |
| the value given for \fInr\fR. Values in the range 9 to 15 may be used |
| for \fInr\fR and \fInt\fR; larger values give better compression but |
| consume more kernel memory for compression dictionaries. |
| Alternatively, a value of 0 for \fInr\fR or \fInt\fR disables |
| compression in the corresponding direction. Use \fInodeflate\fR or |
| \fIdeflate 0\fR to disable Deflate compression entirely. (Note: pppd |
| requests Deflate compression in preference to BSD-Compress if the peer |
| can do either.) |
| .TP |
| .B demand |
| Initiate the link only on demand, i.e. when data traffic is present. |
| With this option, the remote IP address must be specified by the user |
| on the command line or in an options file. Pppd will initially |
| configure the interface and enable it for IP traffic without |
| connecting to the peer. When traffic is available, pppd will |
| connect to the peer and perform negotiation, authentication, etc. |
| When this is completed, pppd will commence passing data packets |
| (i.e., IP packets) across the link. |
| |
| The \fIdemand\fR option implies the \fIpersist\fR option. If this |
| behaviour is not desired, use the \fInopersist\fR option after the |
| \fIdemand\fR option. The \fIidle\fR and \fIholdoff\fR |
| options are also useful in conjuction with the \fIdemand\fR option. |
| .TP |
| .B domain \fId |
| Append the domain name \fId\fR 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 could |
| specify \fIdomain Quotron.COM\fR. Pppd would then use the name |
| \fIporsche.Quotron.COM\fR for looking up secrets in the secrets file, |
| and as the default name to send to the peer when authenticating itself |
| to the peer. This option is privileged. |
| .TP |
| .B dryrun |
| With the \fBdryrun\fR option, pppd will print out all the option |
| values which have been set and then exit, after parsing the command |
| line and options files and checking the option values, but before |
| initiating the link. The option values are logged at level info, and |
| also printed to standard output unless the device on standard output |
| is the device that pppd would be using to communicate with the peer. |
| .TP |
| .B dump |
| With the \fBdump\fR option, pppd will print out all the option values |
| which have been set. This option is like the \fBdryrun\fR option |
| except that pppd proceeds as normal rather than exiting. |
| .TP |
| .B endpoint \fI<epdisc> |
| Sets the endpoint discriminator sent by the local machine to the peer |
| during multilink negotiation to \fI<epdisc>\fR. The default is to use |
| the MAC address of the first ethernet interface on the system, if any, |
| otherwise the IPv4 address corresponding to the hostname, if any, |
| provided it is not in the multicast or locally-assigned IP address |
| ranges, or the localhost address. The endpoint discriminator can be |
| the string \fBnull\fR or of the form \fItype\fR:\fIvalue\fR, where |
| type is a decimal number or one of the strings \fBlocal\fR, \fBIP\fR, |
| \fBMAC\fR, \fBmagic\fR, or \fBphone\fR. The value is an IP address in |
| dotted-decimal notation for the \fBIP\fR type, or a string of bytes in |
| hexadecimal, separated by periods or colons for the other types. For |
| the MAC type, the value may also be the name of an ethernet or similar |
| network interface. This option is currently only available under |
| Linux. |
| .TP |
| .B eap\-interval \fIn |
| If this option is given and pppd authenticates the peer with EAP |
| (i.e., is the server), pppd will restart EAP authentication every |
| \fIn\fR seconds. For EAP SRP\-SHA1, see also the \fBsrp\-interval\fR |
| option, which enables lightweight rechallenge. |
| .TP |
| .B eap\-max\-rreq \fIn |
| Set the maximum number of EAP Requests to which pppd will respond (as |
| a client) without hearing EAP Success or Failure. (Default is 20.) |
| .TP |
| .B eap\-max\-sreq \fIn |
| Set the maximum number of EAP Requests that pppd will issue (as a |
| server) while attempting authentication. (Default is 10.) |
| .TP |
| .B eap\-restart \fIn |
| Set the retransmit timeout for EAP Requests when acting as a server |
| (authenticator). (Default is 3 seconds.) |
| .TP |
| .B eap\-timeout \fIn |
| Set the maximum time to wait for the peer to send an EAP Request when |
| acting as a client (authenticatee). (Default is 20 seconds.) |
| .TP |
| .B hide\-password |
| When logging the contents of PAP packets, this option causes pppd to |
| exclude the password string from the log. This is the default. |
| .TP |
| .B holdoff \fIn |
| Specifies how many seconds to wait before re-initiating the link after |
| it terminates. This option only has any effect if the \fIpersist\fR |
| or \fIdemand\fR option is used. The holdoff period is not applied if |
| the link was terminated because it was idle. |
| .TP |
| .B idle \fIn |
| Specifies that pppd should disconnect if the link is idle for \fIn\fR |
| seconds. The link is idle when no data packets (i.e. IP packets) are |
| being sent or received. Note: it is not advisable to use this option |
| with the \fIpersist\fR option without the \fIdemand\fR option. |
| If the \fBactive\-filter\fR |
| option is given, data packets which are rejected by the specified |
| activity filter also count as the link being idle. |
| .TP |
| .B ipcp\-accept\-local |
| 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. |
| .TP |
| .B ipcp\-accept\-remote |
| 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. |
| .TP |
| .B ipcp\-max\-configure \fIn |
| Set the maximum number of IPCP configure-request transmissions to |
| \fIn\fR (default 10). |
| .TP |
| .B ipcp\-max\-failure \fIn |
| Set the maximum number of IPCP configure-NAKs returned before starting |
| to send configure-Rejects instead to \fIn\fR (default 10). |
| .TP |
| .B ipcp\-max\-terminate \fIn |
| Set the maximum number of IPCP terminate-request transmissions to |
| \fIn\fR (default 3). |
| .TP |
| .B ipcp\-restart \fIn |
| Set the IPCP restart interval (retransmission timeout) to \fIn\fR |
| seconds (default 3). |
| .TP |
| .B ipparam \fIstring |
| Provides an extra parameter to the ip\-up and ip\-down scripts. If this |
| option is given, the \fIstring\fR supplied is given as the 6th |
| parameter to those scripts. |
| .TP |
| .B ipv6cp\-max\-configure \fIn |
| Set the maximum number of IPv6CP configure-request transmissions to |
| \fIn\fR (default 10). |
| .TP |
| .B ipv6cp\-max\-failure \fIn |
| Set the maximum number of IPv6CP configure-NAKs returned before starting |
| to send configure-Rejects instead to \fIn\fR (default 10). |
| .TP |
| .B ipv6cp\-max\-terminate \fIn |
| Set the maximum number of IPv6CP terminate-request transmissions to |
| \fIn\fR (default 3). |
| .TP |
| .B ipv6cp\-restart \fIn |
| Set the IPv6CP restart interval (retransmission timeout) to \fIn\fR |
| seconds (default 3). |
| .TP |
| .B ipx |
| Enable the IPXCP and IPX protocols. This option is presently only |
| supported under Linux, and only if your kernel has been configured to |
| include IPX support. |
| .TP |
| .B ipx\-network \fIn |
| Set the IPX network number in the IPXCP configure request frame to |
| \fIn\fR, a hexadecimal number (without a leading 0x). There is no |
| valid default. If this option is not specified, the network number is |
| obtained from the peer. If the peer does not have the network number, |
| the IPX protocol will not be started. |
| .TP |
| .B ipx\-node \fIn\fB:\fIm |
| Set the IPX node numbers. The two node numbers are separated from each |
| other with a colon character. The first number \fIn\fR is the local |
| node number. The second number \fIm\fR is the peer's node number. Each |
| node number is a hexadecimal number, at most 10 digits long. The node |
| numbers on the ipx\-network must be unique. There is no valid |
| default. If this option is not specified then the node numbers are |
| obtained from the peer. |
| .TP |
| .B ipx\-router\-name \fI<string> |
| Set the name of the router. This is a string and is sent to the peer |
| as information data. |
| .TP |
| .B ipx\-routing \fIn |
| Set the routing protocol to be received by this option. More than one |
| instance of \fIipx\-routing\fR may be specified. The '\fInone\fR' |
| option (0) may be specified as the only instance of ipx\-routing. The |
| values may be \fI0\fR for \fINONE\fR, \fI2\fR for \fIRIP/SAP\fR, and |
| \fI4\fR for \fINLSP\fR. |
| .TP |
| .B ipxcp\-accept\-local |
| Accept the peer's NAK for the node number specified in the ipx\-node |
| option. If a node number was specified, and non-zero, the default is |
| to insist that the value be used. If you include this option then you |
| will permit the peer to override the entry of the node number. |
| .TP |
| .B ipxcp\-accept\-network |
| Accept the peer's NAK for the network number specified in the |
| ipx\-network option. If a network number was specified, and non-zero, the |
| default is to insist that the value be used. If you include this |
| option then you will permit the peer to override the entry of the node |
| number. |
| .TP |
| .B ipxcp\-accept\-remote |
| Use the peer's network number specified in the configure request |
| frame. If a node number was specified for the peer and this option was |
| not specified, the peer will be forced to use the value which you have |
| specified. |
| .TP |
| .B ipxcp\-max\-configure \fIn |
| Set the maximum number of IPXCP configure request frames which the |
| system will send to \fIn\fR. The default is 10. |
| .TP |
| .B ipxcp\-max\-failure \fIn |
| Set the maximum number of IPXCP NAK frames which the local system will |
| send before it rejects the options. The default value is 3. |
| .TP |
| .B ipxcp\-max\-terminate \fIn |
| Set the maximum nuber of IPXCP terminate request frames before the |
| local system considers that the peer is not listening to them. The |
| default value is 3. |
| .TP |
| .B kdebug \fIn |
| Enable debugging code in the kernel-level PPP driver. The argument |
| values depend on the specific kernel driver, but in general a value of |
| 1 will enable general kernel debug messages. (Note that these |
| messages are usually only useful for debugging the kernel driver |
| itself.) For the Linux 2.2.x kernel driver, the value is a sum of |
| bits: 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. On most systems, messages printed by |
| the kernel are logged by syslog(1) to a file as directed in the |
| /etc/syslog.conf configuration file. |
| .TP |
| .B ktune |
| Enables pppd to alter kernel settings as appropriate. Under Linux, |
| pppd will enable IP forwarding (i.e. set /proc/sys/net/ipv4/ip_forward |
| to 1) if the \fIproxyarp\fR option is used, and will enable the |
| dynamic IP address option (i.e. set /proc/sys/net/ipv4/ip_dynaddr to |
| 1) in demand mode if the local address changes. |
| .TP |
| .B lcp\-echo\-failure \fIn |
| If this option is given, pppd will presume the peer to be dead |
| if \fIn\fR 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 |
| \fIlcp\-echo\-interval\fR 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. |
| .TP |
| .B lcp\-echo\-interval \fIn |
| If this option is given, pppd will send an LCP echo\-request frame to |
| the peer every \fIn\fR seconds. Normally the peer should respond to |
| the echo\-request by sending an echo\-reply. This option can be used |
| with the \fIlcp\-echo\-failure\fR option to detect that the peer is no |
| longer connected. |
| .TP |
| .B lcp\-max\-configure \fIn |
| Set the maximum number of LCP configure-request transmissions to |
| \fIn\fR (default 10). |
| .TP |
| .B lcp\-max\-failure \fIn |
| Set the maximum number of LCP configure-NAKs returned before starting |
| to send configure-Rejects instead to \fIn\fR (default 10). |
| .TP |
| .B lcp\-max\-terminate \fIn |
| Set the maximum number of LCP terminate-request transmissions to |
| \fIn\fR (default 3). |
| .TP |
| .B lcp\-restart \fIn |
| Set the LCP restart interval (retransmission timeout) to \fIn\fR |
| seconds (default 3). |
| .TP |
| .B linkname \fIname\fR |
| Sets the logical name of the link to \fIname\fR. Pppd will create a |
| file named \fBppp\-\fIname\fB.pid\fR in /var/run (or /etc/ppp on some |
| systems) containing its process ID. This can be useful in determining |
| which instance of pppd is responsible for the link to a given peer |
| system. This is a privileged option. |
| .TP |
| .B local |
| Don't use the modem control lines. With this option, pppd will ignore |
| the state of the CD (Carrier Detect) signal from the modem and will |
| not change the state of the DTR (Data Terminal Ready) signal. |
| .TP |
| .B logfd \fIn |
| Send log messages to file descriptor \fIn\fR. Pppd will send log |
| messages to at most one file or file descriptor (as well as sending |
| the log messages to syslog), so this option and the \fBlogfile\fR |
| option are mutually exclusive. The default is for pppd to send log |
| messages to stdout (file descriptor 1), unless the serial port is |
| already open on stdout. |
| .TP |
| .B logfile \fIfilename |
| Append log messages to the file \fIfilename\fR (as well as sending the |
| log messages to syslog). The file is opened with the privileges of |
| the user who invoked pppd, in append mode. |
| .TP |
| .B login |
| Use the system password database for authenticating the peer using |
| PAP, and record the user in the system wtmp file. Note that the peer |
| must have an entry in the /etc/ppp/pap\-secrets file as well as the |
| system password database to be allowed access. |
| .TP |
| .B maxconnect \fIn |
| Terminate the connection when it has been available for network |
| traffic for \fIn\fR seconds (i.e. \fIn\fR seconds after the first |
| network control protocol comes up). |
| .TP |
| .B maxfail \fIn |
| Terminate after \fIn\fR consecutive failed connection attempts. A |
| value of 0 means no limit. The default value is 10. |
| .TP |
| .B modem |
| Use the modem control lines. This option is the default. With this |
| option, pppd will wait for the CD (Carrier Detect) signal from the |
| modem to be asserted when opening the serial device (unless a connect |
| script is specified), and it will drop the DTR (Data Terminal Ready) |
| signal briefly when the connection is terminated and before executing |
| the connect script. On Ultrix, this option implies hardware flow |
| control, as for the \fIcrtscts\fR option. |
| .TP |
| .B mp |
| Enables the use of PPP multilink; this is an alias for the `multilink' |
| option. This option is currently only available under Linux. |
| .TP |
| .B mppe\-stateful |
| Allow MPPE to use stateful mode. Stateless mode is still attempted first. |
| The default is to disallow stateful mode. |
| .TP |
| .B mpshortseq |
| Enables the use of short (12-bit) sequence numbers in multilink |
| headers, as opposed to 24-bit sequence numbers. This option is only |
| available under Linux, and only has any effect if multilink is |
| enabled (see the multilink option). |
| .TP |
| .B mrru \fIn |
| Sets the Maximum Reconstructed Receive Unit to \fIn\fR. The MRRU is |
| the maximum size for a received packet on a multilink bundle, and is |
| analogous to the MRU for the individual links. This option is |
| currently only available under Linux, and only has any effect if |
| multilink is enabled (see the multilink option). |
| .TP |
| .B ms\-dns \fI<addr> |
| If pppd is acting as a server for Microsoft Windows clients, this |
| option allows pppd to supply one or two DNS (Domain Name Server) |
| addresses to the clients. The first instance of this option specifies |
| the primary DNS address; the second instance (if given) specifies the |
| secondary DNS address. (This option was present in some older |
| versions of pppd under the name \fBdns\-addr\fR.) |
| .TP |
| .B ms\-wins \fI<addr> |
| If pppd is acting as a server for Microsoft Windows or "Samba" |
| clients, this option allows pppd to supply one or two WINS (Windows |
| Internet Name Services) server addresses to the clients. The first |
| instance of this option specifies the primary WINS address; the second |
| instance (if given) specifies the secondary WINS address. |
| .TP |
| .B multilink |
| Enables the use of the PPP multilink protocol. If the peer also |
| supports multilink, then this link can become part of a bundle between |
| the local system and the peer. If there is an existing bundle to the |
| peer, pppd will join this link to that bundle, otherwise pppd will |
| create a new bundle. See the MULTILINK section below. This option is |
| currently only available under Linux. |
| .TP |
| .B name \fIname |
| Set the name of the local system for authentication purposes to |
| \fIname\fR. This is a privileged option. With this option, pppd will |
| use lines in the secrets files which have \fIname\fR as the second |
| field when looking for a secret to use in authenticating the peer. In |
| addition, unless overridden with the \fIuser\fR option, \fIname\fR |
| will be used as the name to send to the peer when authenticating the |
| local system to the peer. (Note that pppd does not append the domain |
| name to \fIname\fR.) |
| .TP |
| .B noaccomp |
| Disable Address/Control compression in both directions (send and |
| receive). |
| .TP |
| .B noauth |
| Do not require the peer to authenticate itself. This option is |
| privileged. |
| .TP |
| .B nobsdcomp |
| Disables BSD-Compress compression; \fBpppd\fR will not request or |
| agree to compress packets using the BSD-Compress scheme. |
| .TP |
| .B noccp |
| Disable CCP (Compression Control Protocol) negotiation. This option |
| should only be required if the peer is buggy and gets confused by |
| requests from pppd for CCP negotiation. |
| .TP |
| .B nocrtscts |
| Disable hardware flow control (i.e. RTS/CTS) on the serial port. |
| If neither the \fIcrtscts\fR nor the \fInocrtscts\fR nor the |
| \fIcdtrcts\fR nor the \fInocdtrcts\fR option is given, the hardware |
| flow control setting for the serial port is left unchanged. |
| .TP |
| .B nocdtrcts |
| This option is a synonym for \fInocrtscts\fR. Either of these options will |
| disable both forms of hardware flow control. |
| .TP |
| .B nodefaultroute |
| Disable the \fIdefaultroute\fR option. The system administrator who |
| wishes to prevent users from creating default routes with pppd |
| can do so by placing this option in the /etc/ppp/options file. |
| .TP |
| .B nodeflate |
| Disables Deflate compression; pppd will not request or agree to |
| compress packets using the Deflate scheme. |
| .TP |
| .B nodetach |
| Don't detach from the controlling terminal. Without this option, if a |
| serial device other than the terminal on the standard input is |
| specified, pppd will fork to become a background process. |
| .TP |
| .B noendpoint |
| Disables pppd from sending an endpoint discriminator to the peer or |
| accepting one from the peer (see the MULTILINK section below). This |
| option should only be required if the peer is buggy. |
| .TP |
| .B noip |
| Disable IPCP negotiation and IP communication. This option should |
| only be required if the peer is buggy and gets confused by requests |
| from pppd for IPCP negotiation. |
| .TP |
| .B noipv6 |
| Disable IPv6CP negotiation and IPv6 communication. This option should |
| only be required if the peer is buggy and gets confused by requests |
| from pppd for IPv6CP negotiation. |
| .TP |
| .B noipdefault |
| 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). |
| .TP |
| .B noipx |
| Disable the IPXCP and IPX protocols. This option should only be |
| required if the peer is buggy and gets confused by requests from pppd |
| for IPXCP negotiation. |
| .TP |
| .B noktune |
| Opposite of the \fIktune\fR option; disables pppd from changing system |
| settings. |
| .TP |
| .B nolog |
| Do not send log messages to a file or file descriptor. This option |
| cancels the \fBlogfd\fR and \fBlogfile\fR options. |
| .TP |
| .B nomagic |
| Disable magic number negotiation. With this option, pppd cannot |
| detect a looped-back line. This option should only be needed if the |
| peer is buggy. |
| .TP |
| .B nomp |
| Disables the use of PPP multilink. This option is currently only |
| available under Linux. |
| .TP |
| .B nomppe |
| Disables MPPE (Microsoft Point to Point Encryption). This is the default. |
| .TP |
| .B nomppe\-40 |
| Disable 40-bit encryption with MPPE. |
| .TP |
| .B nomppe\-128 |
| Disable 128-bit encryption with MPPE. |
| .TP |
| .B nomppe\-stateful |
| Disable MPPE stateful mode. This is the default. |
| .TP |
| .B nompshortseq |
| Disables the use of short (12-bit) sequence numbers in the PPP |
| multilink protocol, forcing the use of 24-bit sequence numbers. This |
| option is currently only available under Linux, and only has any |
| effect if multilink is enabled. |
| .TP |
| .B nomultilink |
| Disables the use of PPP multilink. This option is currently only |
| available under Linux. |
| .TP |
| .B nopcomp |
| Disable protocol field compression negotiation in both the receive and |
| the transmit direction. |
| .TP |
| .B nopersist |
| Exit once a connection has been made and terminated. This is the |
| default unless the \fIpersist\fR or \fIdemand\fR option has been |
| specified. |
| .TP |
| .B nopredictor1 |
| Do not accept or agree to Predictor\-1 compression. |
| .TP |
| .B noproxyarp |
| Disable the \fIproxyarp\fR option. The system administrator who |
| wishes to prevent users from creating proxy ARP entries with pppd can |
| do so by placing this option in the /etc/ppp/options file. |
| .TP |
| .B notty |
| Normally, pppd requires a terminal device. With this option, pppd |
| will allocate itself a pseudo-tty master/slave pair and use the slave |
| as its terminal device. Pppd will create a child process to act as a |
| `character shunt' to transfer characters between the pseudo-tty master |
| and its standard input and output. Thus pppd will transmit characters |
| on its standard output and receive characters on its standard input |
| even if they are not terminal devices. This option increases the |
| latency and CPU overhead of transferring data over the ppp interface |
| as all of the characters sent and received must flow through the |
| character shunt process. An explicit device name may not be given if |
| this option is used. |
| .TP |
| .B novj |
| Disable Van Jacobson style TCP/IP header compression in both the |
| transmit and the receive direction. |
| .TP |
| .B novjccomp |
| Disable the connection-ID compression option in Van Jacobson style |
| TCP/IP header compression. With this option, pppd will not omit the |
| connection-ID byte from Van Jacobson compressed TCP/IP headers, nor |
| ask the peer to do so. |
| .TP |
| .B papcrypt |
| Indicates that all secrets in the /etc/ppp/pap\-secrets file which are |
| used for checking the identity of the peer are encrypted, and thus |
| pppd should not accept a password which, before encryption, is |
| identical to the secret from the /etc/ppp/pap\-secrets file. |
| .TP |
| .B pap\-max\-authreq \fIn |
| Set the maximum number of PAP authenticate-request transmissions to |
| \fIn\fR (default 10). |
| .TP |
| .B pap\-restart \fIn |
| Set the PAP restart interval (retransmission timeout) to \fIn\fR |
| seconds (default 3). |
| .TP |
| .B pap\-timeout \fIn |
| Set the maximum time that pppd will wait for the peer to authenticate |
| itself with PAP to \fIn\fR seconds (0 means no limit). |
| .TP |
| .B pass\-filter \fIfilter\-expression |
| Specifies a packet filter to applied to data packets being sent or |
| received to determine which packets should be allowed to pass. |
| Packets which are rejected by the filter are silently discarded. This |
| option can be used to prevent specific network daemons (such as |
| routed) using up link bandwidth, or to provide a very basic firewall |
| capability. |
| The \fIfilter\-expression\fR syntax is as described for tcpdump(1), |
| except that qualifiers which are inappropriate for a PPP link, such as |
| \fBether\fR and \fBarp\fR, are not permitted. Generally the filter |
| expression should be enclosed in single-quotes to prevent whitespace |
| in the expression from being interpreted by the shell. Note that it |
| is possible to apply different constraints to incoming and outgoing |
| packets using the \fBinbound\fR and \fBoutbound\fR qualifiers. This |
| option is currently only available under Linux, and requires that the |
| kernel was configured to include PPP filtering support (CONFIG_PPP_FILTER). |
| .TP |
| .B password \fIpassword\-string |
| Specifies the password to use for authenticating to the peer. Use |
| of this option is discouraged, as the password is likely to be visible |
| to other users on the system (for example, by using ps(1)). |
| .TP |
| .B persist |
| Do not exit after a connection is terminated; instead try to reopen |
| the connection. The \fBmaxfail\fR option still has an effect on |
| persistent connections. |
| .TP |
| .B plugin \fIfilename |
| Load the shared library object file \fIfilename\fR as a plugin. This |
| is a privileged option. If \fIfilename\fR does not contain a slash |
| (/), pppd will look in the \fB/usr/lib/pppd/\fIversion\fR directory |
| for the plugin, where |
| \fIversion\fR is the version number of pppd (for example, 2.4.2). |
| .TP |
| .B predictor1 |
| Request that the peer compress frames that it sends using Predictor-1 |
| compression, and agree to compress transmitted frames with Predictor-1 |
| if requested. This option has no effect unless the kernel driver |
| supports Predictor-1 compression. |
| .TP |
| .B privgroup \fIgroup\-name |
| Allows members of group \fIgroup\-name\fR to use privileged options. |
| This is a privileged option. Use of this option requires care as |
| there is no guarantee that members of \fIgroup\-name\fR cannot use pppd |
| to become root themselves. Consider it equivalent to putting the |
| members of \fIgroup\-name\fR in the kmem or disk group. |
| .TP |
| .B proxyarp |
| 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. This will have the effect of making the peer appear to other |
| systems to be on the local ethernet. |
| .TP |
| .B pty \fIscript |
| Specifies that the command \fIscript\fR is to be used to communicate |
| rather than a specific terminal device. Pppd will allocate itself a |
| pseudo-tty master/slave pair and use the slave as its terminal |
| device. The \fIscript\fR will be run in a child process with the |
| pseudo-tty master as its standard input and output. An explicit |
| device name may not be given if this option is used. (Note: if the |
| \fIrecord\fR option is used in conjuction with the \fIpty\fR option, |
| the child process will have pipes on its standard input and output.) |
| .TP |
| .B receive\-all |
| With this option, pppd will accept all control characters from the |
| peer, including those marked in the receive asyncmap. Without this |
| option, pppd will discard those characters as specified in RFC1662. |
| This option should only be needed if the peer is buggy. |
| .TP |
| .B record \fIfilename |
| Specifies that pppd should record all characters sent and received to |
| a file named \fIfilename\fR. This file is opened in append mode, |
| using the user's user-ID and permissions. This option is implemented |
| using a pseudo-tty and a process to transfer characters between the |
| pseudo-tty and the real serial device, so it will increase the latency |
| and CPU overhead of transferring data over the ppp interface. The |
| characters are stored in a tagged format with timestamps, which can be |
| displayed in readable form using the pppdump(8) program. |
| .TP |
| .B remotename \fIname |
| Set the assumed name of the remote system for authentication purposes |
| to \fIname\fR. |
| .TP |
| .B remotenumber \fInumber |
| Set the assumed telephone number of the remote system for authentication |
| purposes to \fInumber\fR. |
| .TP |
| .B refuse\-chap |
| With this option, pppd will not agree to authenticate itself to the |
| peer using CHAP. |
| .TP |
| .B refuse\-mschap |
| With this option, pppd will not agree to authenticate itself to the |
| peer using MS\-CHAP. |
| .TP |
| .B refuse\-mschap\-v2 |
| With this option, pppd will not agree to authenticate itself to the |
| peer using MS\-CHAPv2. |
| .TP |
| .B refuse\-eap |
| With this option, pppd will not agree to authenticate itself to the |
| peer using EAP. |
| .TP |
| .B refuse\-pap |
| With this option, pppd will not agree to authenticate itself to the |
| peer using PAP. |
| .TP |
| .B require\-chap |
| Require the peer to authenticate itself using CHAP [Challenge |
| Handshake Authentication Protocol] authentication. |
| .TP |
| .B require\-mppe |
| Require the use of MPPE (Microsoft Point to Point Encryption). This |
| option disables all other compression types. This option enables |
| both 40-bit and 128-bit encryption. In order for MPPE to successfully |
| come up, you must have authenticated with either MS\-CHAP or MS\-CHAPv2. |
| This option is presently only supported under Linux, and only if your |
| kernel has been configured to include MPPE support. |
| .TP |
| .B require\-mppe\-40 |
| Require the use of MPPE, with 40-bit encryption. |
| .TP |
| .B require\-mppe\-128 |
| Require the use of MPPE, with 128-bit encryption. |
| .TP |
| .B require\-mschap |
| Require the peer to authenticate itself using MS\-CHAP [Microsoft Challenge |
| Handshake Authentication Protocol] authentication. |
| .TP |
| .B require\-mschap\-v2 |
| Require the peer to authenticate itself using MS\-CHAPv2 [Microsoft Challenge |
| Handshake Authentication Protocol, Version 2] authentication. |
| .TP |
| .B require\-eap |
| Require the peer to authenticate itself using EAP [Extensible |
| Authentication Protocol] authentication. |
| .TP |
| .B require\-pap |
| Require the peer to authenticate itself using PAP [Password |
| Authentication Protocol] authentication. |
| .TP |
| .B show\-password |
| When logging the contents of PAP packets, this option causes pppd to |
| show the password string in the log message. |
| .TP |
| .B silent |
| 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 ancient versions of pppd). |
| .TP |
| .B srp\-interval \fIn |
| If this parameter is given and pppd uses EAP SRP\-SHA1 to authenticate |
| the peer (i.e., is the server), then pppd will use the optional |
| lightweight SRP rechallenge mechanism at intervals of \fIn\fR |
| seconds. This option is faster than \fBeap\-interval\fR |
| reauthentication because it uses a hash\-based mechanism and does not |
| derive a new session key. |
| .TP |
| .B srp\-pn\-secret \fIstring |
| Set the long-term pseudonym-generating secret for the server. This |
| value is optional and if set, needs to be known at the server |
| (authenticator) side only, and should be different for each server (or |
| poll of identical servers). It is used along with the current date to |
| generate a key to encrypt and decrypt the client's identity contained |
| in the pseudonym. |
| .TP |
| .B srp\-use\-pseudonym |
| When operating as an EAP SRP\-SHA1 client, attempt to use the pseudonym |
| stored in ~/.ppp_psuedonym first as the identity, and save in this |
| file any pseudonym offered by the peer during authentication. |
| .TP |
| .B sync |
| Use synchronous HDLC serial encoding instead of asynchronous. |
| The device used by pppd with this option must have sync support. |
| Currently supports Microgate SyncLink adapters |
| under Linux and FreeBSD 2.2.8 and later. |
| .TP |
| .B unit \fInum |
| Sets the ppp unit number (for a ppp0 or ppp1 etc interface name) for outbound |
| connections. |
| .TP |
| .B updetach |
| With this option, pppd will detach from its controlling terminal once |
| it has successfully established the ppp connection (to the point where |
| the first network control protocol, usually the IP control protocol, |
| has come up). |
| .TP |
| .B usehostname |
| Enforce the use of the hostname (with domain name appended, if given) |
| as the name of the local system for authentication purposes (overrides |
| the \fIname\fR option). This option is not normally needed since the |
| \fIname\fR option is privileged. |
| .TP |
| .B usepeerdns |
| Ask the peer for up to 2 DNS server addresses. The addresses supplied |
| by the peer (if any) are passed to the /etc/ppp/ip\-up script in the |
| environment variables DNS1 and DNS2, and the environment variable |
| USEPEERDNS will be set to 1. In addition, pppd will create an |
| /etc/ppp/resolv.conf file containing one or two nameserver lines with |
| the address(es) supplied by the peer. |
| .TP |
| .B user \fIname |
| Sets the name used for authenticating the local system to the peer to |
| \fIname\fR. |
| .TP |
| .B vj\-max\-slots \fIn |
| Sets the number of connection slots to be used by the Van Jacobson |
| TCP/IP header compression and decompression code to \fIn\fR, which |
| must be between 2 and 16 (inclusive). |
| .TP |
| .B welcome \fIscript |
| Run the executable or shell command specified by \fIscript\fR before |
| initiating PPP negotiation, after the connect script (if any) has |
| completed. A value for this option from a privileged source cannot be |
| overridden by a non-privileged user. |
| .TP |
| .B xonxoff |
| Use software flow control (i.e. XON/XOFF) to control the flow of data on |
| the serial port. |
| .SH OPTIONS FILES |
| Options can be taken from files as well as the command line. Pppd |
| reads options from the files /etc/ppp/options, ~/.ppprc and |
| /etc/ppp/options.\fIttyname\fR (in that order) before processing the |
| options on the command line. (In fact, the command-line options are |
| scanned to find the terminal name before the options.\fIttyname\fR |
| file is read.) In forming the name of the options.\fIttyname\fR file, |
| the initial /dev/ is removed from the terminal name, and any remaining |
| / characters are replaced with dots. |
| .PP |
| An options file is parsed into a series of words, delimited by |
| whitespace. Whitespace can be included in a word by enclosing the |
| word in double-quotes ("). A backslash (\\) quotes the following character. |
| A hash (#) starts a comment, which continues until the end of the |
| line. There is no restriction on using the \fIfile\fR or \fIcall\fR |
| options within an options file. |
| .SH SECURITY |
| .I pppd |
| provides system administrators with sufficient access control that PPP |
| access to a server machine can be provided to legitimate users without |
| fear of compromising the security of the server or the network it's |
| on. This control is provided through restrictions on which IP |
| addresses the peer may use, based on its authenticated identity (if |
| any), and through restrictions on which options a non-privileged user |
| may use. Several of pppd's options are privileged, in particular |
| those which permit potentially insecure configurations; these options |
| are only accepted in files which are under the control of the system |
| administrator, or if pppd is being run by root. |
| .PP |
| The default behaviour of pppd is to allow an unauthenticated peer to |
| use a given IP address only if the system does not already have a |
| route to that IP address. For example, a system with a |
| permanent connection to the wider internet will normally have a |
| default route, and thus all peers will have to authenticate themselves |
| in order to set up a connection. On such a system, the \fIauth\fR |
| option is the default. On the other hand, a system where the |
| PPP link is the only connection to the internet will not normally have |
| a default route, so the peer will be able to use almost any IP address |
| without authenticating itself. |
| .PP |
| As indicated above, some security-sensitive options are privileged, |
| which means that they may not be used by an ordinary non-privileged |
| user running a setuid-root pppd, either on the command line, in the |
| user's ~/.ppprc file, or in an options file read using the \fIfile\fR |
| option. Privileged options may be used in /etc/ppp/options file or in |
| an options file read using the \fIcall\fR option. If pppd is being |
| run by the root user, privileged options can be used without |
| restriction. |
| .PP |
| When opening the device, pppd uses either the invoking user's user ID |
| or the root UID (that is, 0), depending on whether the device name was |
| specified by the user or the system administrator. If the device name |
| comes from a privileged source, that is, /etc/ppp/options or an |
| options file read using the \fIcall\fR option, pppd uses full root |
| privileges when opening the device. Thus, by creating an appropriate |
| file under /etc/ppp/peers, the system administrator can allow users to |
| establish a ppp connection via a device which they would not normally |
| have permission to access. Otherwise pppd uses the invoking user's |
| real UID when opening the device. |
| .SH AUTHENTICATION |
| Authentication is the process whereby one peer convinces the other of |
| its identity. This involves the first peer sending its name to the |
| other, together with some kind of secret information which could only |
| come from the genuine authorized user of that name. In such an |
| exchange, we will call the first peer the "client" and the other the |
| "server". The client has a name by which it identifies itself to the |
| server, and the server also has a name by which it identifies itself |
| to the client. Generally the genuine client shares some secret (or |
| password) with the server, and authenticates itself by proving that it |
| knows that secret. Very often, the names used for authentication |
| correspond to the internet hostnames of the peers, but this is not |
| essential. |
| .LP |
| At present, pppd supports three authentication protocols: the Password |
| Authentication Protocol (PAP), Challenge Handshake Authentication |
| Protocol (CHAP), and Extensible Authentication Protocol (EAP). PAP |
| involves the client sending its name and a cleartext password to the |
| server to authenticate itself. In contrast, the server initiates the |
| CHAP authentication exchange by sending a challenge to the client (the |
| challenge packet includes the server's name). The client must respond |
| with a response which includes its name plus a hash value derived from |
| the shared secret and the challenge, in order to prove that it knows |
| the secret. EAP supports CHAP-style authentication, and also includes |
| the SRP\-SHA1 mechanism, which is resistant to dictionary-based attacks |
| and does not require a cleartext password on the server side. |
| .LP |
| The PPP protocol, being symmetrical, allows both peers to require the |
| other to authenticate itself. In that case, two separate and |
| independent authentication exchanges will occur. The two exchanges |
| could use different authentication protocols, and in principle, |
| different names could be used in the two exchanges. |
| .LP |
| The default behaviour of pppd is to agree to authenticate if |
| requested, and to not require authentication from the peer. However, |
| pppd will not agree to authenticate itself with a particular protocol |
| if it has no secrets which could be used to do so. |
| .LP |
| Pppd stores secrets for use in authentication in secrets |
| files (/etc/ppp/pap\-secrets for PAP, /etc/ppp/chap\-secrets for CHAP, |
| MS\-CHAP, MS\-CHAPv2, and EAP MD5-Challenge, and /etc/ppp/srp\-secrets |
| for EAP SRP\-SHA1). |
| All secrets files have the same format. The secrets files can |
| contain secrets for pppd to use in authenticating itself to other |
| systems, as well as secrets for pppd to use when authenticating other |
| systems to itself. |
| .LP |
| Each line in a secrets file contains one secret. A given secret is |
| specific to a particular combination of client and server - it can |
| only be used by that client to authenticate itself to that server. |
| Thus each line in a secrets file has at least 3 fields: the name of |
| the client, the name of the server, and the secret. These fields may |
| be followed by a list of the IP addresses that the specified client |
| may use when connecting to the specified server. |
| .LP |
| A secrets file is parsed into words as for a options file, so the |
| client name, server name and secrets fields must each be one word, |
| with any embedded spaces or other special characters quoted or |
| escaped. Note that case is significant in the client and server names |
| and in the secret. |
| .LP |
| If the secret starts with an `@', what follows is assumed to be the |
| name of a file from which to read the secret. A "*" as the client or |
| server name matches any name. When selecting a secret, pppd takes the |
| best match, i.e. the match with the fewest wildcards. |
| .LP |
| Any following words on the same line are taken to be a list of |
| acceptable IP addresses for that client. If there are only 3 words on |
| the line, or if the first word is "\-", then all IP addresses are |
| disallowed. To allow any address, use "*". A word starting with "!" |
| indicates that the specified address is \fInot\fR acceptable. An |
| address may be followed by "/" and a number \fIn\fR, to indicate a |
| whole subnet, i.e. all addresses which have the same value in the most |
| significant \fIn\fR bits. In this form, the address may be followed |
| by a plus sign ("+") to indicate that one address from the subnet is |
| authorized, based on the ppp network interface unit number in use. |
| In this case, the host part of the address will be set to the unit |
| number plus one. |
| .LP |
| Thus a secrets file contains both secrets for use in authenticating |
| other hosts, plus secrets which we use for authenticating ourselves to |
| others. When pppd is authenticating the peer (checking the peer's |
| identity), it chooses a secret with the peer's name in the first |
| field and the name of the local system in the second field. The |
| name of the local system defaults to the hostname, with the domain |
| name appended if the \fIdomain\fR option is used. This default can be |
| overridden with the \fIname\fR option, except when the |
| \fIusehostname\fR option is used. (For EAP SRP\-SHA1, see the |
| srp\-entry(8) utility for generating proper validator entries to be |
| used in the "secret" field.) |
| .LP |
| When pppd is choosing a secret to use in authenticating itself to the |
| peer, it first determines what name it is going to use to identify |
| itself to the peer. This name can be specified by the user with the |
| \fIuser\fR option. If this option is not used, the name defaults to |
| the name of the local system, determined as described in the previous |
| paragraph. Then pppd looks for a secret with this name in the first |
| field and the peer's name in the second field. Pppd will know the |
| name of the peer if CHAP or EAP authentication is being used, because |
| the peer will have sent it in the challenge packet. However, if PAP |
| is being used, pppd will have to determine the peer's name from the |
| options specified by the user. The user can specify the peer's name |
| directly with the \fIremotename\fR option. Otherwise, if the remote |
| IP address was specified by a name (rather than in numeric form), that |
| name will be used as the peer's name. Failing that, pppd will use the |
| null string as the peer's name. |
| .LP |
| When authenticating the peer with PAP, the supplied password is first |
| compared with the secret from the secrets file. If the password |
| doesn't match the secret, the password is encrypted using crypt() and |
| checked against the secret again. Thus secrets for authenticating the |
| peer can be stored in encrypted form if desired. If the |
| \fIpapcrypt\fR option is given, the first (unencrypted) comparison is |
| omitted, for better security. |
| .LP |
| Furthermore, if the \fIlogin\fR option was specified, the username and |
| password are also checked against the system password database. Thus, |
| the system administrator can set up the pap\-secrets file to allow PPP |
| access only to certain users, and to restrict the set of IP addresses |
| that each user can use. Typically, when using the \fIlogin\fR option, |
| the secret in /etc/ppp/pap\-secrets would be "", which will match any |
| password supplied by the peer. This avoids the need to have the same |
| secret in two places. |
| .LP |
| Authentication must be satisfactorily completed before IPCP (or any |
| other Network Control Protocol) can be started. If the peer is |
| required to authenticate itself, and fails to do so, pppd will |
| terminated the link (by closing LCP). If IPCP negotiates an |
| unacceptable IP address for the remote host, IPCP will be closed. IP |
| packets can only be sent or received when IPCP is open. |
| .LP |
| In some cases it is desirable to allow some hosts which can't |
| authenticate themselves to connect and use one of a restricted set of |
| IP addresses, even when the local host generally requires |
| authentication. If the peer refuses to authenticate itself when |
| requested, pppd takes that as equivalent to authenticating with PAP |
| using the empty string for the username and password. Thus, by adding |
| a line to the pap\-secrets file which specifies the empty string for |
| the client and password, it is possible to allow restricted access to |
| hosts which refuse to authenticate themselves. |
| .SH ROUTING |
| .LP |
| When IPCP negotiation is completed successfully, pppd will inform the |
| kernel of the local and remote IP addresses for the ppp interface. |
| This is sufficient to create a host route to the remote end of the |
| link, which will enable the peers to exchange IP packets. |
| Communication with other machines generally requires further |
| modification to routing tables and/or ARP (Address Resolution |
| Protocol) tables. In most cases the \fIdefaultroute\fR and/or |
| \fIproxyarp\fR options are sufficient for this, but in some cases |
| further intervention is required. The /etc/ppp/ip\-up script can be |
| used for this. |
| .LP |
| Sometimes it is desirable to add a default route through the remote |
| host, as in the case of a machine whose only connection to the |
| Internet is through the ppp interface. The \fIdefaultroute\fR option |
| causes pppd to create such a default route when IPCP comes up, and |
| delete it when the link is terminated. |
| .LP |
| In some cases it is desirable to use proxy ARP, for example on a |
| server machine connected to a LAN, in order to allow other hosts to |
| communicate with the remote host. The \fIproxyarp\fR option causes |
| pppd to look for a network interface on the same subnet as the remote |
| host (an interface supporting broadcast and ARP, which is up and not a |
| point-to-point or loopback interface). If found, pppd creates a |
| permanent, published ARP entry with the IP address of the remote host |
| and the hardware address of the network interface found. |
| .LP |
| When the \fIdemand\fR option is used, the interface IP addresses have |
| already been set at the point when IPCP comes up. If pppd has not |
| been able to negotiate the same addresses that it used to configure |
| the interface (for example when the peer is an ISP that uses dynamic |
| IP address assignment), pppd has to change the interface IP addresses |
| to the negotiated addresses. This may disrupt existing connections, |
| and the use of demand dialling with peers that do dynamic IP address |
| assignment is not recommended. |
| .SH MULTILINK |
| Multilink PPP provides the capability to combine two or more PPP links |
| between a pair of machines into a single `bundle', which appears as a |
| single virtual PPP link which has the combined bandwidth of the |
| individual links. Currently, multilink PPP is only supported under |
| Linux. |
| .LP |
| Pppd detects that the link it is controlling is connected to the same |
| peer as another link using the peer's endpoint discriminator and the |
| authenticated identity of the peer (if it authenticates itself). The |
| endpoint discriminator is a block of data which is hopefully unique |
| for each peer. Several types of data can be used, including |
| locally-assigned strings of bytes, IP addresses, MAC addresses, |
| randomly strings of bytes, or E\-164 phone numbers. The endpoint |
| discriminator sent to the peer by pppd can be set using the endpoint |
| option. |
| .LP |
| In some circumstances the peer may send no endpoint discriminator or a |
| non-unique value. The bundle option adds an extra string which is |
| added to the peer's endpoint discriminator and authenticated identity |
| when matching up links to be joined together in a bundle. The bundle |
| option can also be used to allow the establishment of multiple bundles |
| between the local system and the peer. Pppd uses a TDB database in |
| /var/run/pppd2.tdb to match up links. |
| .LP |
| Assuming that multilink is enabled and the peer is willing to |
| negotiate multilink, then when pppd is invoked to bring up the first |
| link to the peer, it will detect that no other link is connected to |
| the peer and create a new bundle, that is, another ppp network |
| interface unit. When another pppd is invoked to bring up another link |
| to the peer, it will detect the existing bundle and join its link to |
| it. |
| .LP |
| If the first link terminates (for example, because of a hangup or a |
| received LCP terminate-request) the bundle is not destroyed unless |
| there are no other links remaining in the bundle. Rather than |
| exiting, the first pppd keeps running after its link terminates, until |
| all the links in the bundle have terminated. If the first pppd |
| receives a SIGTERM or SIGINT signal, it will destroy the bundle and |
| send a SIGHUP to the pppd processes for each of the links in the |
| bundle. If the first pppd receives a SIGHUP signal, it will terminate |
| its link but not the bundle. |
| .LP |
| Note: demand mode is not currently supported with multilink. |
| .SH EXAMPLES |
| .LP |
| The following examples assume that the /etc/ppp/options file contains |
| the \fIauth\fR option (as in the default /etc/ppp/options file in the |
| ppp distribution). |
| .LP |
| Probably the most common use of pppd is to dial out to an ISP. This |
| can be done with a command such as |
| .IP |
| pppd call isp |
| .LP |
| where the /etc/ppp/peers/isp file is set up by the system |
| administrator to contain something like this: |
| .IP |
| ttyS0 19200 crtscts |
| .br |
| connect '/usr/sbin/chat \-v \-f /etc/ppp/chat\-isp' |
| .br |
| noauth |
| .LP |
| In this example, we are using chat to dial the ISP's modem and go |
| through any logon sequence required. The /etc/ppp/chat\-isp file |
| contains the script used by chat; it could for example contain |
| something like this: |
| .IP |
| ABORT "NO CARRIER" |
| .br |
| ABORT "NO DIALTONE" |
| .br |
| ABORT "ERROR" |
| .br |
| ABORT "NO ANSWER" |
| .br |
| ABORT "BUSY" |
| .br |
| ABORT "Username/Password Incorrect" |
| .br |
| "" "at" |
| .br |
| OK "at&d0&c1" |
| .br |
| OK "atdt2468135" |
| .br |
| "name:" "^Umyuserid" |
| .br |
| "word:" "\\qmypassword" |
| .br |
| "ispts" "\\q^Uppp" |
| .br |
| "~\-^Uppp\-~" |
| .LP |
| See the chat(8) man page for details of chat scripts. |
| .LP |
| Pppd can also be used to provide a dial-in ppp service for users. If |
| the users already have login accounts, the simplest way to set up the |
| ppp service is to let the users log in to their accounts and run pppd |
| (installed setuid-root) with a command such as |
| .IP |
| pppd proxyarp |
| .LP |
| To allow a user to use the PPP facilities, you need to allocate an IP |
| address for that user's machine and create an entry in |
| /etc/ppp/pap\-secrets, /etc/ppp/chap\-secrets, or /etc/ppp/srp\-secrets |
| (depending on which authentication method the PPP implementation on |
| the user's machine supports), so that the user's machine can |
| authenticate itself. For example, if Joe has a machine called |
| "joespc" that is to be allowed to dial in to the machine called |
| "server" and use the IP address joespc.my.net, you would add an entry |
| like this to /etc/ppp/pap\-secrets or /etc/ppp/chap\-secrets: |
| .IP |
| joespc server "joe's secret" joespc.my.net |
| .LP |
| (See srp\-entry(8) for a means to generate the server's entry when |
| SRP\-SHA1 is in use.) |
| Alternatively, you can create a username called (for example) "ppp", |
| whose login shell is pppd and whose home directory is /etc/ppp. |
| Options to be used when pppd is run this way can be put in |
| /etc/ppp/.ppprc. |
| .LP |
| If your serial connection is any more complicated than a piece of |
| wire, you may need to arrange for some control characters to be |
| escaped. In particular, it is often useful to escape XON (^Q) and |
| XOFF (^S), using \fIasyncmap a0000\fR. If the path includes a telnet, |
| you probably should escape ^] as well (\fIasyncmap 200a0000\fR). If |
| the path includes an rlogin, you will need to use the \fIescape ff\fR |
| option on the end which is running the rlogin client, since many |
| rlogin implementations are not transparent; they will remove the |
| sequence [0xff, 0xff, 0x73, 0x73, followed by any 8 bytes] from the |
| stream. |
| .SH DIAGNOSTICS |
| .LP |
| Messages are sent to the syslog daemon using facility LOG_DAEMON. |
| (This can be overridden by recompiling pppd with the macro |
| LOG_PPP defined as the desired facility.) See the syslog(8) |
| documentation for details of where the syslog daemon will write the |
| messages. On most systems, the syslog daemon uses the |
| /etc/syslog.conf file to specify the destination(s) for syslog |
| messages. You may need to edit that file to suit. |
| .LP |
| The \fIdebug\fR option causes the contents of all control packets sent |
| or received to be logged, that is, all LCP, PAP, CHAP, EAP, or IPCP packets. |
| This can be useful if the PPP negotiation does not succeed or if |
| authentication fails. |
| If debugging is enabled at compile time, the \fIdebug\fR option also |
| causes other debugging messages to be logged. |
| .LP |
| Debugging can also be enabled or disabled by sending a SIGUSR1 signal |
| to the pppd process. This signal acts as a toggle. |
| .SH EXIT STATUS |
| The exit status of pppd is set to indicate whether any error was |
| detected, or the reason for the link being terminated. The values |
| used are: |
| .TP |
| .B 0 |
| Pppd has detached, or otherwise the connection was successfully |
| established and terminated at the peer's request. |
| .TP |
| .B 1 |
| An immediately fatal error of some kind occurred, such as an essential |
| system call failing, or running out of virtual memory. |
| .TP |
| .B 2 |
| An error was detected in processing the options given, such as two |
| mutually exclusive options being used. |
| .TP |
| .B 3 |
| Pppd is not setuid-root and the invoking user is not root. |
| .TP |
| .B 4 |
| The kernel does not support PPP, for example, the PPP kernel driver is |
| not included or cannot be loaded. |
| .TP |
| .B 5 |
| Pppd terminated because it was sent a SIGINT, SIGTERM or SIGHUP |
| signal. |
| .TP |
| .B 6 |
| The serial port could not be locked. |
| .TP |
| .B 7 |
| The serial port could not be opened. |
| .TP |
| .B 8 |
| The connect script failed (returned a non-zero exit status). |
| .TP |
| .B 9 |
| The command specified as the argument to the \fIpty\fR option could |
| not be run. |
| .TP |
| .B 10 |
| The PPP negotiation failed, that is, it didn't reach the point where |
| at least one network protocol (e.g. IP) was running. |
| .TP |
| .B 11 |
| The peer system failed (or refused) to authenticate itself. |
| .TP |
| .B 12 |
| The link was established successfully and terminated because it was |
| idle. |
| .TP |
| .B 13 |
| The link was established successfully and terminated because the |
| connect time limit was reached. |
| .TP |
| .B 14 |
| Callback was negotiated and an incoming call should arrive shortly. |
| .TP |
| .B 15 |
| The link was terminated because the peer is not responding to echo |
| requests. |
| .TP |
| .B 16 |
| The link was terminated by the modem hanging up. |
| .TP |
| .B 17 |
| The PPP negotiation failed because serial loopback was detected. |
| .TP |
| .B 18 |
| The init script failed (returned a non-zero exit status). |
| .TP |
| .B 19 |
| We failed to authenticate ourselves to the peer. |
| .SH SCRIPTS |
| Pppd invokes scripts at various stages in its processing which can be |
| used to perform site-specific ancillary processing. These scripts are |
| usually shell scripts, but could be executable code files instead. |
| Pppd does not wait for the scripts to finish. The scripts are |
| executed as root (with the real and effective user-id set to 0), so |
| that they can do things such as update routing tables or run |
| privileged daemons. Be careful that the contents of these scripts do |
| not compromise your system's security. Pppd runs the scripts with |
| standard input, output and error redirected to /dev/null, and with an |
| environment that is empty except for some environment variables that |
| give information about the link. The environment variables that pppd |
| sets are: |
| .TP |
| .B DEVICE |
| The name of the serial tty device being used. |
| .TP |
| .B IFNAME |
| The name of the network interface being used. |
| .TP |
| .B IPLOCAL |
| The IP address for the local end of the link. This is only set when |
| IPCP has come up. |
| .TP |
| .B IPREMOTE |
| The IP address for the remote end of the link. This is only set when |
| IPCP has come up. |
| .TP |
| .B PEERNAME |
| The authenticated name of the peer. This is only set if the peer |
| authenticates itself. |
| .TP |
| .B SPEED |
| The baud rate of the tty device. |
| .TP |
| .B ORIG_UID |
| The real user-id of the user who invoked pppd. |
| .TP |
| .B PPPLOGNAME |
| The username of the real user-id that invoked pppd. This is always set. |
| .P |
| For the ip-down and auth-down scripts, pppd also sets the following |
| variables giving statistics for the connection: |
| .TP |
| .B CONNECT_TIME |
| The number of seconds from when the PPP negotiation started until the |
| connection was terminated. |
| .TP |
| .B BYTES_SENT |
| The number of bytes sent (at the level of the serial port) during the |
| connection. |
| .TP |
| .B BYTES_RCVD |
| The number of bytes received (at the level of the serial port) during |
| the connection. |
| .TP |
| .B LINKNAME |
| The logical name of the link, set with the \fIlinkname\fR option. |
| .TP |
| .B DNS1 |
| If the peer supplies DNS server addresses, this variable is set to the |
| first DNS server address supplied. |
| .TP |
| .B DNS2 |
| If the peer supplies DNS server addresses, this variable is set to the |
| second DNS server address supplied. |
| .P |
| Pppd invokes the following scripts, if they exist. It is not an error |
| if they don't exist. |
| .TP |
| .B /etc/ppp/auth\-up |
| A program or script which is executed after the remote system |
| successfully authenticates itself. It is executed with the parameters |
| .IP |
| \fIinterface\-name peer\-name user\-name tty\-device speed\fR |
| .IP |
| Note that this script is not executed if the peer doesn't authenticate |
| itself, for example when the \fInoauth\fR option is used. |
| .TP |
| .B /etc/ppp/auth\-down |
| A program or script which is executed when the link goes down, if |
| /etc/ppp/auth\-up was previously executed. It is executed in the same |
| manner with the same parameters as /etc/ppp/auth\-up. |
| .TP |
| .B /etc/ppp/ip\-up |
| A program or script which is executed when the link is available for |
| sending and receiving IP packets (that is, IPCP has come up). It is |
| executed with the parameters |
| .IP |
| \fIinterface\-name tty\-device speed local\-IP\-address |
| remote\-IP\-address ipparam\fR |
| .TP |
| .B /etc/ppp/ip\-down |
| A program or script which is executed when the link is no longer |
| available for sending and receiving IP packets. This script can be |
| used for undoing the effects of the /etc/ppp/ip\-up script. It is |
| invoked in the same manner and with the same parameters as the ip\-up |
| script. |
| .TP |
| .B /etc/ppp/ipv6\-up |
| Like /etc/ppp/ip\-up, except that it is executed when the link is available |
| for sending and receiving IPv6 packets. It is executed with the parameters |
| .IP |
| \fIinterface\-name tty\-device speed local\-link\-local\-address |
| remote\-link\-local\-address ipparam\fR |
| .TP |
| .B /etc/ppp/ipv6\-down |
| Similar to /etc/ppp/ip\-down, but it is executed when IPv6 packets can no |
| longer be transmitted on the link. It is executed with the same parameters |
| as the ipv6\-up script. |
| .TP |
| .B /etc/ppp/ipx\-up |
| A program or script which is executed when the link is available for |
| sending and receiving IPX packets (that is, IPXCP has come up). It is |
| executed with the parameters |
| .IP |
| \fIinterface\-name tty\-device speed network\-number local\-IPX\-node\-address |
| remote\-IPX\-node\-address local\-IPX\-routing\-protocol remote\-IPX\-routing\-protocol |
| local\-IPX\-router\-name remote\-IPX\-router\-name ipparam pppd\-pid\fR |
| .IP |
| The local\-IPX\-routing\-protocol and remote\-IPX\-routing\-protocol field |
| may be one of the following: |
| .IP |
| NONE to indicate that there is no routing protocol |
| .br |
| RIP to indicate that RIP/SAP should be used |
| .br |
| NLSP to indicate that Novell NLSP should be used |
| .br |
| RIP NLSP to indicate that both RIP/SAP and NLSP should be used |
| .TP |
| .B /etc/ppp/ipx\-down |
| A program or script which is executed when the link is no longer |
| available for sending and receiving IPX packets. This script can be |
| used for undoing the effects of the /etc/ppp/ipx\-up script. It is |
| invoked in the same manner and with the same parameters as the ipx\-up |
| script. |
| .SH FILES |
| .TP |
| .B /var/run/ppp\fIn\fB.pid \fR(BSD or Linux), \fB/etc/ppp/ppp\fIn\fB.pid \fR(others) |
| Process-ID for pppd process on ppp interface unit \fIn\fR. |
| .TP |
| .B /var/run/ppp\-\fIname\fB.pid \fR(BSD or Linux), |
| \fB/etc/ppp/ppp\-\fIname\fB.pid \fR(others) |
| Process-ID for pppd process for logical link \fIname\fR (see the |
| \fIlinkname\fR option). |
| .TP |
| .B /var/run/pppd2.tdb |
| Database containing information about pppd processes, interfaces and |
| links, used for matching links to bundles in multilink operation. May |
| be examined by external programs to obtain information about running |
| pppd instances, the interfaces and devices they are using, IP address |
| assignments, etc. |
| .B /etc/ppp/pap\-secrets |
| Usernames, passwords and IP addresses for PAP authentication. This |
| file should be owned by root and not readable or writable by any other |
| user. Pppd will log a warning if this is not the case. |
| .TP |
| .B /etc/ppp/chap\-secrets |
| Names, secrets and IP addresses for CHAP/MS\-CHAP/MS\-CHAPv2 authentication. |
| As for /etc/ppp/pap\-secrets, this file should be owned by root and not |
| readable or writable by any other user. Pppd will log a warning if |
| this is not the case. |
| .TP |
| .B /etc/ppp/srp\-secrets |
| Names, secrets, and IP addresses for EAP authentication. As for |
| /etc/ppp/pap\-secrets, this file should be owned by root and not |
| readable or writable by any other user. Pppd will log a warning if |
| this is not the case. |
| .TP |
| .B ~/.ppp_pseudonym |
| Saved client-side SRP\-SHA1 pseudonym. See the \fIsrp\-use\-pseudonym\fR |
| option for details. |
| .TP |
| .B /etc/ppp/options |
| System default options for pppd, read before user default options or |
| command-line options. |
| .TP |
| .B ~/.ppprc |
| User default options, read before /etc/ppp/options.\fIttyname\fR. |
| .TP |
| .B /etc/ppp/options.\fIttyname |
| System default options for the serial port being used, read after |
| ~/.ppprc. In forming the \fIttyname\fR part of this |
| filename, an initial /dev/ is stripped from the port name (if |
| present), and any slashes in the remaining part are converted to |
| dots. |
| .TP |
| .B /etc/ppp/peers |
| A directory containing options files which may contain privileged |
| options, even if pppd was invoked by a user other than root. The |
| system administrator can create options files in this directory to |
| permit non-privileged users to dial out without requiring the peer to |
| authenticate, but only to certain trusted peers. |
| .SH SEE ALSO |
| .TP |
| .B RFC1144 |
| Jacobson, V. |
| \fICompressing TCP/IP headers for low-speed serial links.\fR |
| February 1990. |
| .TP |
| .B RFC1321 |
| Rivest, R. |
| .I The MD5 Message-Digest Algorithm. |
| April 1992. |
| .TP |
| .B RFC1332 |
| McGregor, G. |
| .I PPP Internet Protocol Control Protocol (IPCP). |
| May 1992. |
| .TP |
| .B RFC1334 |
| Lloyd, B.; Simpson, W.A. |
| .I PPP authentication protocols. |
| October 1992. |
| .TP |
| .B RFC1661 |
| Simpson, W.A. |
| .I The Point-to-Point Protocol (PPP). |
| July 1994. |
| .TP |
| .B RFC1662 |
| Simpson, W.A. |
| .I PPP in HDLC-like Framing. |
| July 1994. |
| .TP |
| .B RFC2284 |
| Blunk, L.; Vollbrecht, J., |
| .I PPP Extensible Authentication Protocol (EAP). |
| March 1998. |
| .TP |
| .B RFC2472 |
| Haskin, D. |
| .I IP Version 6 over PPP |
| December 1998. |
| .TP |
| .B RFC2945 |
| Wu, T., |
| .I The SRP Authentication and Key Exchange System |
| September 2000. |
| .TP |
| .B draft\-ietf\-pppext\-eap\-srp\-03.txt |
| Carlson, J.; et al., |
| .I EAP SRP\-SHA1 Authentication Protocol. |
| July 2001. |
| .SH NOTES |
| Some limited degree of control can be exercised over a running pppd |
| process by sending it a signal from the list below. |
| .TP |
| .B SIGINT, SIGTERM |
| These signals cause pppd to terminate the link (by closing LCP), |
| restore the serial device settings, and exit. |
| .TP |
| .B SIGHUP |
| This signal causes pppd to terminate the link, restore the serial |
| device settings, and close the serial device. If the \fIpersist\fR or |
| \fIdemand\fR option has been specified, pppd will try to reopen the |
| serial device and start another connection (after the holdoff period). |
| Otherwise pppd will exit. If this signal is received during the |
| holdoff period, it causes pppd to end the holdoff period immediately. |
| .TP |
| .B SIGUSR1 |
| This signal toggles the state of the \fIdebug\fR option. |
| .TP |
| .B SIGUSR2 |
| This signal causes pppd to renegotiate compression. This can be |
| useful to re-enable compression after it has been disabled as a result |
| of a fatal decompression error. (Fatal decompression errors generally |
| indicate a bug in one or other implementation.) |
| |
| .SH AUTHORS |
| Paul Mackerras (paulus@samba.org), based on earlier work by |
| Drew Perkins, |
| Brad Clements, |
| Karl Fox, |
| Greg Christy, |
| and |
| Brad Parker. |
| |
| .SH COPYRIGHT |
| Pppd is copyrighted and made available under conditions which provide |
| that it may be copied and used in source or binary forms provided that |
| the conditions listed below are met. Portions of pppd are covered by |
| the following copyright notices: |
| .LP |
| Copyright (c) 1984-2000 Carnegie Mellon University. All rights |
| reserved. |
| .br |
| Copyright (c) 1993-2004 Paul Mackerras. All rights reserved. |
| .br |
| Copyright (c) 1995 Pedro Roque Marques. All rights reserved. |
| .br |
| Copyright (c) 1995 Eric Rosenquist. All rights reserved. |
| .br |
| Copyright (c) 1999 Tommi Komulainen. All rights reserved. |
| .br |
| Copyright (C) Andrew Tridgell 1999 |
| .br |
| Copyright (c) 2000 by Sun Microsystems, Inc. All rights reserved. |
| .br |
| Copyright (c) 2001 by Sun Microsystems, Inc. All rights reserved. |
| .br |
| Copyright (c) 2002 The Android Open Source Project |
| .LP |
| The copyright notices contain the following statements. |
| .LP |
| Redistribution and use in source and binary forms, with or without |
| modification, are permitted provided that the following conditions |
| are met: |
| .LP |
| 1. Redistributions of source code must retain the above copyright |
| notice, this list of conditions and the following disclaimer. |
| .LP |
| 2. Redistributions in binary form must reproduce the above copyright |
| notice, this list of conditions and the following disclaimer in |
| the documentation and/or other materials provided with the |
| distribution. |
| .LP |
| 3. The name "Carnegie Mellon University" must not be used to |
| endorse or promote products derived from this software without |
| prior written permission. For permission or any legal |
| details, please contact |
| .br |
| Office of Technology Transfer |
| .br |
| Carnegie Mellon University |
| .br |
| 5000 Forbes Avenue |
| .br |
| Pittsburgh, PA 15213-3890 |
| .br |
| (412) 268-4387, fax: (412) 268-7395 |
| .br |
| tech-transfer@andrew.cmu.edu |
| .LP |
| 3b. The name(s) of the authors of this software must not be used to |
| endorse or promote products derived from this software without |
| prior written permission. |
| .LP |
| 4. Redistributions of any form whatsoever must retain the following |
| acknowledgments: |
| .br |
| "This product includes software developed by Computing Services |
| at Carnegie Mellon University (http://www.cmu.edu/computing/)." |
| .br |
| "This product includes software developed by Paul Mackerras |
| <paulus@samba.org>". |
| .br |
| "This product includes software developed by Pedro Roque Marques |
| <pedro_m@yahoo.com>". |
| .br |
| "This product includes software developed by Tommi Komulainen |
| <Tommi.Komulainen@iki.fi>". |
| .LP |
| CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO |
| THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY |
| AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE |
| FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
| WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN |
| AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING |
| OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
| .LP |
| THE AUTHORS OF THIS SOFTWARE DISCLAIM ALL WARRANTIES WITH REGARD TO |
| THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY |
| AND FITNESS, IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY |
| SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
| WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN |
| AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING |
| OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |