Penguin
Diff: HowToDialdHOWTO
EditPageHistoryDiffInfoLikePages

Differences between version 4 and previous revision of HowToDialdHOWTO.

Other diffs: Previous Major Revision, Previous Author, or view the Annotated Edit History

Newer page: version 4 Last edited on Monday, October 25, 2004 5:16:25 am by AristotlePagaltzis Revert
Older page: version 3 Last edited on Thursday, August 14, 2003 3:09:32 pm by JohnMcPherson Revert
@@ -1,1497 +1 @@
-  
-  
-Diald Howto  
-  
-  
-  
-----  
-  
-!!!Diald Howto  
-  
-!!Andreacutes Seco  
-AndresSH@ctv.esv1.03, April 17, 2000  
-  
-  
-----  
-''This document shows some typical scenarios for easy start using  
-''Diald''.  
-These scenarios include a connection from a standalone computer to an ISP  
-using PPP over a modem without using pon/poff or  
-ppp-on/ppp-off to a proxy/firewall server with different Internet  
-connections through various ISPs.''  
-----  
-  
-  
-  
-  
-!!1. Introduction  
-  
-  
-*1.1 Objectives  
-  
-*1.2 New versions  
-  
-*1.3 Thanks  
-  
-  
-  
-  
-  
-!!2. Copyright and discharge of responsibility  
-  
-  
-  
-  
-!!3. Quick Diald operation description  
-  
-  
-  
-  
-!!4. Note about authentication  
-  
-  
-*4.1 Username and password - Login and password prompts.  
-  
-*4.2 PAP - Password Authentication Protocol  
-  
-*4.3 CHAP - Challenge Authentication Protocol  
-  
-  
-  
-  
-  
-!!5. Notes about DNS name resolution  
-  
-  
-  
-  
-!!6. Connecting a standalone computer to an ISP using a modem and PPP  
-  
-  
-*6.1 /etc/diald/diald.options or diald.conf file  
-  
-*6.2 Personal filters file  
-  
-*6.3 Making the call  
-  
-*6.4 Connection start script  
-  
-  
-  
-  
-  
-!!7. Conecting a computer to a group of different ISPs with a modem and PPP  
-  
-  
-*7.1 Note about sending mail using a relay host  
-  
-*7.2 Scripts to automate multiple connections and changing from one to another  
-  
-  
-  
-  
-  
-!!8. Connecting a proxy/firewall to an ISP using a modem and PPP  
-  
-  
-*8.1 Example for Debian 2.1  
-  
-*8.2 Example for Suse 6.1  
-  
-*8.3 Example for Slackware 3.6  
-  
-  
-  
-  
-  
-!!9. Programs and versions used  
-  
-  
-  
-  
-!!10. More information  
-----  
-  
-!!1. Introduction  
-  
-!!1.1 Objectives  
-  
-  
-  
-  
-  
-  
-This document shows some typical scenarios for easy start using  
-''Diald''.  
-These scenarios include a connection from a standalone computer to an ISP  
-using PPP over a modem without using pon/poff or  
-ppp-on/ppp-off to a proxy/firewall server with different Internet  
-connections through various ISPs.  
-  
-  
-In the present document, the following scenarios will be treated:  
-  
-  
-*Connecting a standalone computer to an ISP using a modem and PPP  
-*  
-  
-*Conecting a computer to a group of different ISPs with a modem and PPP  
-*  
-  
-*Connecting a proxy/firewall to an ISP using a modem and PPP  
-*  
-  
-  
-  
-In following versions of this document, other scenarios will be added, as  
-multiple instances of ''Diald'', ISDN lines and lines used to call and  
-receive calls.  
-  
-  
-Before this document, a Diald-mini-Howto exist, wrote by Harish Pillay  
-  
-h.pillay@ieee.org, that presented and example of connection  
-to an ISP using a chat based authentication scheme (login and password  
-previous to the pppd start, with no use of PAP or CHAP).  
-  
-  
-Example configuration files will be included in this document to serve as  
-starting point to get ''Diald'' up. To obtain maximum performance and all  
-programs attributes, it is necesary you read all documentation from the  
-programs and reconfigure the example configuration files included here.  
-  
-  
-Finally, configuration files can be in different directories depending on  
-what GNU/Linux distribution you are using. If you find a file commented  
-here in other directory, please, write me.  
-  
-  
-  
-  
-!!1.2 New versions  
-  
-  
-  
-  
-  
-  
-Latest version of this document can be found in my web page  
-http://www.ctv.es/USERS/andressh/linux, in SMGL and HTML  
-formats. Other versions and formats can be found in Spanish in the Insflug  
-web site,  
-http://www.insflug.org/documentos/Diald-Como/, and in other  
-languages in the LDP - Linux Documentation Project,  
-http://www.linuxdoc.org.  
-  
-  
-  
-  
-!!1.3 Thanks  
-  
-  
-  
-  
-  
-  
-I want to be grateful to the people that help me to get my first  
-''Diald'' up and running with their example files (somebody who's name i  
-forgot, Mr Cornish Rex, Hoo Kok Mun and John Dalbec), to the people that  
-have wrote me to send corrections and suggestions for this document (Tim  
-Coleman, Jacob Joseph, Paul Schmidt and Jordi Mallach), to the future  
-translators of this document to other languages, and, of course, to all  
-the people that have developed and develops ''Diald'' for us.  
-  
-  
-This document was originally wrote in Spanish. The own author translated  
-it, and some people made corrections.  
-  
-  
-  
-----  
-  
-!!2. Copyright and discharge of responsibility  
-  
-  
-  
-  
-  
-This document is Copyright (c) 2000 Andres Seco, and it's free. You can distribute it under the terms of the  
-__GNU General Public License__, which you can get at  
-http://www.gnu.org/copyleft/gpl.html. You can get unofficial  
-translated issues somewhere in the Internet.  
-  
-  
-Information and other contents in this document are the best of our  
-knowledge. However, we may have made errors. So you should determine if  
-you want to follow the instructions given in this document.  
-  
-  
-Nobody is responsible for any damage to your computer and any other loss  
-derived from the use of the information contained herein.  
-  
-  
-THE AUTHOR AND MAINTAINERS ARE NOT RESPONSIBLE FOR ANY DAMAGE INCURRED  
-DUE TO ACTIONS TAKEN BASED ON INFORMATION CONTAINED IN THIS DOCUMENT.  
-  
-  
-Of course, i am open to all type of suggestions and corrections on the  
-content of this document.  
-  
-  
-  
-----  
-  
-!!3. Quick Diald operation description  
-  
-  
-  
-  
-  
-In a few words, ''Diald'' creates a new network interface and sets it as  
-the default gateway. This interface is not real (in the original  
-documentation it is called proxy interface). ''Diald'' monitors this  
-interface, and, when packets arrive, makes a ppp connection, waits  
-for it to be stablished and changes the default gateway to this new  
-ppp interface (usually ppp0).  
-  
-  
-''Diald'' monitors the interface to determine which packets have been  
-received the interface and their types to decide if they are going to be  
-considered to set the ppp connection up, maintain the link, drop it  
-or do nothing, and how long the link should be help up after the packet is  
-transmitted.  
-  
-  
-Finally, if there is no more traffic and the last packet up time is over,  
-''Diald'' will close the link.  
-  
-  
-You can control days and hours when the link can go up and when it cannot,  
-so you can use the low cost hours/days or low trafic times.  
-  
-  
-This previous description is valid for ''Diald'' versions from .16.5 to  
-latest (.99.3 when this document was finished), but latest versions also  
-include aditional attributes such as user enabled list, advanced  
-accounting, better support for ISDN lines, better performance using an  
-ethertap device as proxy (this is like a network interface that  
-read/writes over a socket instead of a real network adapter) in place of  
-slip, backup connections and other functions.  
-  
-  
-  
-----  
-  
-!!4. Note about authentication  
-  
-  
-  
-  
-  
-When you connect to an Internet Services Provider, it is usually  
-necesary that you send an username and a password. This can be  
-accomplished using several methods; the exact method that you use is  
-determined by your provider.  
-  
-  
-Added to the three shown options, you can use a link without  
-authentication, (generally when the remote end is also yours).  
-  
-  
-  
-  
-!!4.1 Username and password - Login and password prompts.  
-  
-  
-  
-  
-  
-  
-Actually, this is not an usual authentication method to access the  
-Internet through an ISP.  
-  
-  
-Identification is made before pppd is started, and it is the dialer,  
-usually chat, who sends the login name and the password. This  
-data is sent in plaintext, so this method should not be considered secure.  
-  
-  
-An example script for chat where you can see how to specify username  
-and password to be sent before running pppd would look something like  
-this:  
-  
-  
-  
-  
-  
-ABORT BUSY  
-ABORT "NO CARRIER"  
-ABORT VOICE  
-ABORT "NO DIALTONE"  
-ABORT "NO ANSWER"  
-"" ATZ  
-OK ATDT_!TelephoneNumber_  
-CONNECT \d\c  
-ogin _Username_  
-assword _Password_  
-  
-  
-  
-  
-The last 2 lines define username and password, and when to send it (after  
-receiving ''ogin'' and ''assword'' respectively. The chat script only needs  
-to see parts of the words ''login'' and ''password'' and so we don't check the  
-first letter of each. This is so that we don't need to worry about  
-uppercase/lowercase characters.  
-  
-  
-Suppose that this script is called provider, and it is saved into  
-the /etc/chatscripts directory. Then, you can run it with:  
-  
-  
-  
-  
-  
-/usr/sbin/chat -v -f /etc/chatscripts/provider  
-  
-  
-  
-  
-  
-  
-!!4.2 PAP - Password Authentication Protocol  
-  
-  
-  
-  
-  
-  
-If the provider you are using requires PAP as the authentication protocol,  
-during the LCP negotiation in PPP this protocol will be asked to use this  
-protocol. When the phone call is connected after using chat,  
-pppd is started. In this scenario, pppd will send the username and  
-the password, which it will look for in the /etc/ppp/pap-secrets  
-file. This file must have read and write permissions only for root  
-only, so that nobody else can read the passwords inside it.  
-  
-  
-PAP is not very secure, as the password is sent in plaintext, so can be  
-read by somebody that monitors your transmission line.  
-  
-  
-Simple example of /etc/ppp/pap-secrets:  
-  
-  
-  
-  
-  
-_Username_ * _Password_  
-  
-  
-  
-  
-  
-  
-!!4.3 CHAP - Challenge Authentication Protocol  
-  
-  
-  
-  
-  
-  
-If the provider you are using requires CHAP as the authentication protocol,  
-during the LCP negotiation in PPP this protocol will be asked to use this  
-protocol. When the phone call is connected after using chat,  
-pppd is started. In this scenario, pppd will send the username and  
-the password, which it will look for in the /etc/ppp/chap-secrets  
-file. This file must have read and write permissions only for root  
-only, so that nobody else can read the passwords inside it.  
-  
-  
-CHAP is more secure than PAP, as the password is never sent through the  
-transmission line in plaintext. The authentication server sends a random  
-identifier (the challenge), that the client must encrypt with its  
-password, and then send back to the server.  
-  
-  
-Simple example of /etc/ppp/chap-secrets:  
-  
-  
-  
-  
-  
-_Username_ * _Password_  
-  
-  
-  
-  
-Sometimes an ISP uses PAP and other times CHAP, so it is common to define  
-your username and password in both files.  
-  
-  
-  
-----  
-  
-!!5. Notes about DNS name resolution  
-  
-  
-  
-  
-  
-Everytime you connect to an ISP, it is necesary to have configured DNS  
-name resolution, so your computer can find IP addresses associated to a  
-computer name.  
-  
-  
-IP addresses of your DNS servers are placed into the  
-/etc/resolv.conf file.  
-  
-  
-In a standalone computer connecting to Internet, this file usually  
-contains the IP addresses of your ISP's DNS servers:  
-  
-  
-  
-  
-  
-#/etc/resolv.conf file for ISPname  
-nameserver 111.222.333.444  
-nameserver 222.333.444.555  
-  
-  
-  
-  
-In a proxy/firewall computer, this file usually contains its own IP  
-address (or the loopback address, 127...1), and this computer includes a  
-DNS server that translates DNS names to IP addresses by querying external  
-DNS servers.  
-  
-  
-  
-  
-  
-#/etc/resolv.conf file for local DNS resolution  
-nameserver 127...1  
-  
-  
-  
-  
-Installation of a local DNS server is out of the scope of this document.  
-There is a lot of documentation about this, but a good and quick approach  
-can be found in the DNS-Howto (  
-http://www.linuxdoc.org/HOWTO/DNS-HOWTO.html).  
-  
-  
-  
-----  
-  
-!!6. Connecting a standalone computer to an ISP using a modem and PPP  
-  
-  
-  
-  
-  
-When configuring ''Diald'' to connect your computer to an ISP, the next  
-steps will be necesary:  
-  
-  
-*Getting the ''Diald'' package installed. The quickest way is to  
-install the package that comes with your GNU/Linux distribution.  
-*  
-  
-*Configure DNS resolver (/etc/resolv.conf file).  
-*  
-  
-*Check that you can call an ISP. If your GNU/Linux distribution  
-includes an utility to configure a connection, the quickest way will be to  
-use it (pppconfig in Debian, kppp if you use KDE, etc). If you are having  
-problems connecting to an ISP, the PPP-Howto (  
-http://www.linuxdoc.org/HOWTO/PPP-HOWTO.html), Modem-Howto  
-(  
-http://www.linuxdoc.org/HOWTO/Modem-HOWTO.html) and  
-Serial-Howto (  
-http://www.linuxdoc.org/HOWTO/Serial-HOWTO.html) documents  
-can help you.  
-*  
-  
-*Configure username and password in the /etc/ppp/pap-secrets  
-and /etc/ppp/chap-secrets files, as mentioned in previous  
-sections.  
-*  
-  
-  
-  
-And finally, going into ''Diald'':  
-  
-  
-  
-  
-  
-*Prepare the ''Diald'' configuration file  
-(/etc/diald/diald.options for version .16.5 and  
-/etc/diald/diald.conf for later versions).  
-*  
-  
-*Prepare filters file /etc/diald/standard.filter,  
-or better, leave that file as is, and modify a copy of it that you can  
-call /etc/diald/personal.filter.  
-*  
-  
-*Prepare the script to make the call  
-(/etc/diald/diald.connect with execute permissions for root) and  
-instruction file for chat (/etc/chatscripts/provider), that  
-will be used by the previous script.  
-*  
-  
-*Prepare scripts to be run when the link goes up and down  
-(/etc/diald/ip-up and /etc/diald/ip-down) if you want to  
-use it (both must have execute permissions for root).  
-*  
-  
-*Prepare script to set and delete routes  
-(/etc/diald/addroute and /etc/diald/delroute) if you  
-want (both must have execute permissions for root). This step is not necesary  
-if you only use a single ''Diald'' instance.  
-*  
-  
-*Finally, start the diald daemon  
-(''/etc/init.d/diald start'' in Debian,  
-''/etc/rc.d/init.d/diald start'' in !RedHat).  
-Normally, ''Diald'' package installation process prepares the scripts to  
-run ''Diald'' when the computer boot up in the /etc/rcX.d directories.  
-*  
-  
-  
-  
-If you make any change in the ''Diald'' config file when it is running,  
-it is necesary to restart it (''/etc/init.d/diald restart'' in  
-Debian, ''/etc/rc.d/init.d/diald restart'' in !RedHat).  
-  
-  
-  
-  
-!!6.1 /etc/diald/diald.options or diald.conf file  
-  
-  
-  
-  
-  
-  
-In this example file you must check for:  
-  
-  
-*Comm port where your modem is connected. Option device.  
-*  
-  
-*Comm port speed to talk with modem. Option speed.  
-*  
-  
-*User name to be used in ppp. Option pppd-options.  
-*  
-  
-*Retry counters and timers.  
-*  
-  
-*Enabled connection hours. Options restrict.  
-*  
-  
-*Decide if you want to use the ip-up and ip-down scripts.  
-Options ip-up and ip-down.  
-*  
-  
-*Decide if you want to use the addroute and delroute  
-scripts. Options addroute and delroute. Generally it is not  
-needed to modify this scripts, but if you use more than one instance of  
-''Diald'' or have a complex configuration, you need it.  
-*  
-  
-*Decide if you use the standar or personal filter file. Options  
-include.  
-*  
-  
-  
-  
-  
-  
-  
-##########################  
-# /etc/diald/diald.options  
-# Device where your modem is connected  
-device /dev/ttyS0  
-# Log file  
-accounting-log /var/log/diald.log  
-# Monitoring queue  
-#fifo /var/run/diald/diald.fifo  
-# Debug activation  
-# Activating debug reduces performance  
-#debug 31  
-# We use PPP as encapsulator  
-mode ppp  
-# Local IP (when you connect this address is automatically modified  
-# with the ip assigned by your ISP if you use the dinamic option).  
-local 127...5  
-# Remote IP (when you connect this address is automatically modified  
-# with the ip of the remote server that receives our call).  
-remote 127...4  
-# Subnet mask for the wan link  
-netmask 255.255.255.  
-# The IP addresses will be asigned when connection starts.  
-dynamic  
-# If link goes down by remote end, start it again only if there is  
-# outgoing packets.  
-two-way  
-# When link is up, route directly to the real ppp interface, not the proxy  
-# interface. Not to do this is a performance lost of about 20 per cent.  
-# There are old kernels that do not support reroute. See diald manual for  
-# more information  
-reroute  
-# Diald will set up the default route the the SLIP interface used as proxy  
-defaultroute  
-# Script to set up personalized routes  
-#addroute "/etc/diald/addroute"  
-#delroute "/etc/diald/delroute"  
-# Scripts to execute when the link is up and ready or down and closed.  
-# In Diald versions .9x there is another option called ip-goingdown that  
-# can be used to run commands when the link is going to be down but is  
-# still up.  
-ip-up /etc/diald/ip-up  
-#ip-down /etc/diald/ip-down  
-# Scripts used to connect or disconnect the interface  
-connect "/etc/diald/diald.connect"  
-#disconnect "/etc/diald/diald.disconnect"  
-# Use UUCP lock to signal the device is being used  
-#lock  
-# We connect over a modem. WARNING: Do not especify this options in the  
-# ppp options file, because they will conflict with the diald options. To  
-# see what ppp options that you can not use in the pppd-options option,  
-# see the diald man page and search for pppd-options  
-modem  
-crtscts  
-speed 115200  
-# Some timers and retry options  
-# See Diald man page for more information  
-connect-timeout 120  
-redial-timeout 60  
-start-pppd-timeout 120  
-died-retry-count  
-redial-backoff-start 4  
-redial-backoff-limit 300  
-dial-fail-limit 10  
-# Options to be passed to pppd  
-# This options can be included in the /etc/ppp/options file, that are the  
-# default options for pppd, but if you need to use different  
-# configurations of diald for more than one instance, you must put it here  
-# noauth - do not ask remote for authenticaion.  
-# "Infoviacutea Plus" (Spain) do not identify to our machine  
-# user - our username and isp. Ask your isp for the sintaxis. Some isps,  
-# do not need the @isp  
-pppd-options noauth user usuario@isp  
-# Hour restriccions.  
-# This section must be before filters.  
-# The restrict command is experimental, and can change in other versions  
-# of diald. Check the man page. (this example has been checked for .16,  
-# but i think it runs in later versions).  
-# Example: only use in the night from monday to friday, and all day in  
-# saturday and sunday.  
-restrict 8:00:00 18:00:00 1-5 * *  
-down  
-restrict * * * * *  
-# No special tarificaion considerations  
-# (first seconds included in the setup cost, tarify unit in seconds,  
-# time in seconds to check if it is good to go down)  
-#impulse ,,  
-# Bononet Noche (Spain-Telefoacutenica) is billed in seconds after the 160  
-# first seconds  
-impulse 160,,  
-# if it would be billed in minuttes and the first 10 will be billed  
-# always:  
-#impulse 600,60,10  
-# Standar filters  
-#include /etc/diald/standard.filter  
-# or personal filters  
-include /etc/diald/personal.filter  
-  
-  
-  
-  
-  
-  
-!!6.2 Personal filters file  
-  
-  
-  
-  
-  
-  
-Manipulation of this file must be done very carefully. This file is used  
-to decide when and why to start up the line, maintain it, bring down the  
-line or ignore a packet, depending on the traffic type.  
-  
-  
-Generally, the ''Diald'' standar filter file is sufficient for most  
-cases, but perhaps, it may be too restrictive or not restrictive enough in  
-some situations. The personal.filter file that is shown has some  
-corrections over the original from the .16 version.  
-  
-  
-In next versions of this document, other commented more restrictive  
-examples will be included.  
-  
-  
-  
-  
-  
-# /etc/diald/personal.filter  
-# Filter rules shown are the same as in the standard.filter with the  
-# following changes:  
-#  
-# Change 10 to 4 minuttes in "any other tcp conection".  
-# Added "ignore tcp tcp.fin" to ignore the FIN ACK packets.  
-# Ignore icmp packets (ping and traceroute don't fire up the interface).  
-#  
-# This is a pretty complicated set of filter rules.  
-# (These are the rules I use myself.)  
-#  
-# I've divided the rules up into four sections.  
-# TCP packets, UDP packets, ICMP packets and a general catch all rule  
-# at the end.  
-ignore icmp any  
-#------------------------------------------------------------------------------  
-# Rules for TCP packets.  
-#------------------------------------------------------------------------------  
-# General comments on the rule set:  
-#  
-# In general we would like to treat only data on a TCP link as significant  
-# for timeouts. Therefore, we try to ignore packets with no data.  
-# Since the shortest possible set of headers in a TCP/IP packet is 40 bytes,  
-# any packet with length 40 must have no data riding in it.  
-# We may miss some empty packets this way (optional routing information  
-# and other extras may be present in the IP header), but we should get  
-# most of them. Note that we don't want to filter out packets with  
-# tcp.live clear, since we use them later to speedup disconnects  
-# on some TCP links.  
-#  
-# We also want to make sure WWW packets live even if the TCP socket  
-# is shut down. We do this because WWW doesn't keep connections open  
-# once the data has been transfered, and it would be annoying to have the link  
-# keep bouncing up and down every time you get a document.  
-#  
-# Outside of WWW the most common use of TCP is for long lived connections,  
-# that once they are gone mean we no longer need the network connection.  
-# We don't neccessarily want to wait 10 minutes for the connection  
-# to go down when we don't have any telnet's or rlogin's running,  
-# so we want to speed up the timeout on TCP connections that have  
-# shutdown. We do this by catching packets that do not have the live flag set.  
-# --- start of rule set proper ---  
-# When initiating a connection we only give the link 15 seconds initially.  
-# The idea here is to deal with possibility that the network on the opposite  
-# end of the connection is unreachable. In this case you don't really  
-# want to give the link 10 minutes up time. With the rule below  
-# we only give the link 15 seconds initially. If the network is reachable  
-# then we will normally get a response that actually contains some  
-# data within 15 seconds. If this causes problems because you have a slow  
-# response time at some site you want to regularly access, you can either  
-# increase the timeout or remove this rule.  
-accept tcp 15 tcp.syn  
-# Keep named xfers from holding the link up  
-ignore tcp tcp.dest=tcp.domain  
-ignore tcp tcp.source=tcp.domain  
-# (Ack! SCO telnet starts by sending empty SYNs and only opens the  
-# connection if it gets a response. Sheesh..)  
-accept tcp 5 ip.tot_len=40,tcp.syn  
-# keep empty packets from holding the link up (other than empty SYN packets)  
-ignore tcp ip.tot_len=40,tcp.live  
-# Modification by Andres Seco to ignore the FIN ACK packets.  
-ignore tcp tcp.fin  
-# make sure http transfers hold the link for 2 minutes, even after they end.  
-# NOTE: Your /etc/services may not define the tcp service www, in which  
-# case you should comment out the following two lines or get a more  
-# up to date /etc/services file. See the FAQ for information on obtaining  
-# a new /etc/services file.  
-accept tcp 120 tcp.dest=tcp.www  
-accept tcp 120 tcp.source=tcp.www  
-# Same for https  
-accept tcp 120 tcp.dest=tcp.443  
-accept tcp 120 tcp.source=tcp.443  
-# Once the link is no longer live, we try to shut down the connection  
-# quickly. Note that if the link is already down, a state change  
-# will not bring it back up.  
-keepup tcp 5 !tcp.live  
-ignore tcp !tcp.live  
-# an ftp-data or ftp connection can be expected to show reasonably frequent  
-# traffic.  
-accept tcp 120 tcp.dest=tcp.ftp  
-accept tcp 120 tcp.source=tcp.ftp  
-#NOTE: ftp-data is not defined in the /etc/services file provided with  
-# the latest versions of NETKIT, so I've got this commented out here.  
-# If you want to define it add the following line to your /etc/services:  
-# ftp-data 20/tcp  
-# and uncomment the following two rules.  
-#accept tcp 120 tcp.dest=tcp.ftp-data  
-#accept tcp 120 tcp.source=tcp.ftp-data  
-# If we don't catch it above, give the link 10 minutes up time.  
-#accept tcp 600 any  
-# Modificacion de Andres Seco. Solo dejar 4 minutos mas.  
-accept tcp 240 any  
-# Rules for UDP packets  
-#  
-# We time out domain requests right away, we just want them to bring  
-# the link up, not keep it around for very long.  
-# This is because the network will usually come up on a call  
-# from the resolver library (unless you have all your commonly  
-# used addresses in /etc/hosts, in which case you will discover  
-# other problems.)  
-# Note that you should not make the timeout shorter than the time you  
-# might expect your DNS server to take to respond. Otherwise  
-# when the initial link gets established there might be a delay  
-# greater than this between the initial series of packets before  
-# any packets that keep the link up longer pass over the link.  
-# Don't bring the link up for rwho.  
-ignore udp udp.dest=udp.who  
-ignore udp udp.source=udp.who  
-# Don't bring the link up for RIP.  
-ignore udp udp.dest=udp.route  
-ignore udp udp.source=udp.route  
-# Don't bring the link up for NTP or timed.  
-ignore udp udp.dest=udp.ntp  
-ignore udp udp.source=udp.ntp  
-ignore udp udp.dest=udp.timed  
-ignore udp udp.source=udp.timed  
-# Don't bring up on domain name requests between two running nameds.  
-ignore udp udp.dest=udp.domain,udp.source=udp.domain  
-# Bring up the network whenever we make a domain request from someplace  
-# other than named.  
-accept udp 30 udp.dest=udp.domain  
-accept udp 30 udp.source=udp.domain  
-# Do the same for netbios-ns broadcasts  
-# NOTE: your /etc/services file may not define the netbios-ns service  
-# in which case you should comment out the next three lines.  
-ignore udp udp.source=udp.netbios-ns,udp.dest=udp.netbios-ns  
-accept udp 30 udp.dest=udp.netbios-ns  
-accept udp 30 udp.source=udp.netbios-ns  
-# keep routed and gated transfers from holding the link up  
-ignore udp tcp.dest=udp.route  
-ignore udp tcp.source=udp.route  
-# Anything else gest 2 minutes.  
-accept udp 120 any  
-# Catch any packets that we didn't catch above and give the connection  
-# 30 seconds of live time.  
-accept any 30 any  
-  
-  
-  
-  
-  
-  
-!!6.3 Making the call  
-  
-  
-  
-  
-  
-  
-/etc/diald/diald.connect file (it must have execute permission):  
-  
-  
-  
-  
-  
-/usr/sbin/chat -f /etc/chatscripts/provider  
-  
-  
-  
-  
-/etc/chatscripts/provider file. In this example file you must  
-check the destination phone number:  
-  
-  
-  
-  
-  
-ABORT BUSY  
-ABORT "NO CARRIER"  
-ABORT VOICE  
-ABORT "NO DIALTONE"  
-ABORT "NO ANSWER"  
-"" ATZ  
-OK ATDT123456789  
-CONNECT \d\c  
-  
-  
-  
-  
-  
-  
-!!6.4 Connection start script  
-  
-  
-  
-  
-  
-  
-It must have execute permission.  
-  
-  
-This script can be used to many tasks (synchronize time, send the queued  
-mail, get incoming mail, etc.).  
-  
-  
-In the example, a message is sent to root with data passed to the  
-script (interface, subnet mask, local ip address, remote ip address and  
-cost for routing):  
-  
-  
-  
-  
-  
-#!/bin/sh  
-iface=$1  
-netmask=$2  
-localip=$3  
-remoteip=$4  
-metric=$5  
-# Set the time and date  
-# netdate ntp.server.somecountry  
-# Run the mail queue  
-# runq  
-echo `date` $1 $2 $3 $4 $5 | mail -s "diald - conecting" root@localhost  
-  
-  
-  
-  
-  
-----  
-  
-!!7. Conecting a computer to a group of different ISPs with a modem and PPP  
-  
-  
-  
-  
-  
-Many times, one standalone computer does not only connect to just one  
-network. It is common to connect to different networks or to the Internet  
-using some different service providers. In this case, changing  
-configuration files each time you want to connect to a different site can  
-be annoying.  
-  
-  
-The solution i propose here consist in using different sets of  
-configuration files for each different connection. You can find here some  
-scripts to automate changing from one to another.  
-  
-  
-  
-  
-!!7.1 Note about sending mail using a relay host  
-  
-  
-  
-  
-  
-  
-If your email client program uses a local Message Transfer Agent with a  
-smtp relay host to send all messages, or if you use a email client  
-program that sends the messages directly to your provider's smtp  
-server, changing where you are connecting means you need to reconfigure  
-this option for the smtp relay server. This is because the providers  
-usually check if the receipt mailbox is local or to any domain directly  
-maintained by this provider or if the origin ip address is from the range  
-of ip addresses that this provider assigns, to avoid having an open relay  
-server that can be used to send spam, anonymous message and so on.  
-  
-  
-In the following examples, you will find how to change this parameter in  
-the ''Smail'' configuration files in a simple configuration where all  
-external messages are sent to a smtp relay server. If you use another  
-Message Transfer Agent (MTA) in your system, you can send me what you must  
-change in your MTA to include it here. If you use an email client program  
-that directly sends to the external smtp server (Kmail, Netscape,  
-etc.) send me your changes too.  
-  
-  
-  
-  
-!!7.2 Scripts to automate multiple connections and changing from one to another  
-  
-  
-!Starting up  
-  
-  
-  
-  
-  
-First of all, create a subdirectory of /etc/diald called  
-providers where you store your scripts to automatically change from  
-one to another provider and the subdirectories with the set of files to  
-configure each of the providers connections.  
-  
-  
-With the next script this directory is created and filled with the  
-current configuration files from ''Diald'', ''chat'', ''pppd'' and  
-''Smail'', that will be treated as a template for the next  
-configurations.  
-  
-  
-  
-  
-  
-#!/bin/sh  
-#File /etc/diald/providers/setupdialdmultiprovider  
-mkdir /etc/diald/providers  
-mkdir /etc/diald/providers/setup  
-cp /etc/ppp/pap-secrets /etc/diald/providers/setup  
-cp /etc/ppp/chap-secrets /etc/diald/providers/setup  
-cp /etc/resolv.conf /etc/diald/providers/setup  
-cp /etc/diald/diald.options /etc/diald/providers/setup  
-cp /etc/diald/standard.filter /etc/diald/providers/setup  
-cp /etc/diald/personal.filter /etc/diald/providers/setup  
-cp /etc/diald/diald.connect /etc/diald/providers/setup  
-cp /etc/chatscripts/provider /etc/diald/providers/setup  
-cp /etc/diald/ip-up /etc/diald/providers/setup  
-cp /etc/diald/ip-down /etc/diald/providers/setup  
-cp /etc/smail/routers /etc/diald/providers/setup  
-  
-  
-  
-  
-  
-  
-!New provider  
-  
-  
-  
-  
-  
-With the next script the template configuration will be copied to a new  
-directory to prepare it for a new provider connection or a new net  
-connection. This script (/etc/diald/providers/newdialdprovider)  
-will need a parameter with the provider or net name.  
-  
-  
-  
-  
-  
-#!/bin/sh  
-#File /etc/diald/providers/newdialdprovider  
-mkdir /etc/diald/providers/$1  
-cp /etc/diald/providers/setup/* /etc/diald/providers/$1  
-  
-  
-  
-  
-Now, you will modify as you need the new files in  
-/etc/diald/providers/provdidername, being providername  
-the parameter passed to newdialdprovider.  
-  
-  
-  
-  
-!Changing from one to another  
-  
-  
-  
-  
-  
-At the end, with this script you will change all your configuration files  
-related to ''Diald'' to connect to another provider or net. I use  
-symbolic links to avoid using duplicate files. Using symbolic links, if  
-you change any config file in its original location like  
-/etc/resolv.conf, the change is really made in the  
-/etc/diald/providers/providername/resolv.conf file.  
-  
-  
-  
-  
-  
-#!/bin/sh  
-#File /etc/diald/providers/setdialdprovider  
-/etc/init.d/diald stop  
-#wait for Diald to stop.  
-sleep 4  
-ln -sf /etc/diald/providers/$1/pap-secrets /etc/ppp  
-ln -sf /etc/diald/providers/$1/chap-secrets /etc/ppp  
-ln -sf /etc/diald/providers/$1/resolv.conf /etc  
-ln -sf /etc/diald/providers/$1/diald.options /etc/diald  
-ln -sf /etc/diald/providers/$1/standard.filter /etc/diald  
-ln -sf /etc/diald/providers/$1/personal.filter /etc/diald  
-ln -sf /etc/diald/providers/$1/diald.connect /etc/diald  
-ln -sf /etc/diald/providers/$1/provider /etc/chatscripts  
-ln -sf /etc/diald/providers/$1/ip-up /etc/diald  
-ln -sf /etc/diald/providers/$1/ip-down /etc/diald  
-ln -sf /etc/diald/providers/$1/routers /etc/smail  
-/etc/init.d/diald start  
-  
-  
-  
-  
-  
-----  
-  
-!!8. Connecting a proxy/firewall to an ISP using a modem and PPP  
-  
-  
-  
-  
-  
-Connecting a private net to the Internet with dedicated server which  
-handles packet routing from the local network to the Internet along with  
-proxy/caching services and security firewalling is a complex theme that is  
-beyond the scope of this document. There are other ''Howto'' documents that  
-handle these topics much more comprehensively. At the end of this  
-document you can find a list of links and references to such documents.  
-  
-  
-Here, we are only configuring ''Diald'' supposing that the computer  
-already uses IP-Masquerading, has a web proxy like ''Squid'' or similar  
-working, an ISP connection correctly configured and that access security  
-to TCP/UDP ports have been revised (/etc/inetd.conf file and  
-others like securetty, host.allow, etc).  
-  
-  
-Basically, the only need is to reconfigure the rules for  
-masquerading/filtering/accessing each time the set of interfaces change,  
-that is, when the interface ppp0 is stablished and when it is deleted. A  
-good location to do that are the ip-up and ip-down scripts from ''pppd''.  
-  
-  
-  
-  
-!!8.1 Example for Debian 2.1  
-  
-  
-  
-  
-  
-  
-With Debian, it is sufficient to install the ''ipmasq'' package answering  
-that you want to change rules sinchronously with ''pppd'' when seting it  
-up. Two scripts will be created inside /etc/ppp/ip-up.d and  
-/etc/ppp/ip-down.d directories to call /sbin/ipmasq, a  
-script that analizes existing interfaces and makes a simple configuration  
-that is valid in many cases, but you can personalize it using rule files  
-in /etc/ipmasq/rules.  
-  
-  
-The only correction after installing this package is to change when the  
-startup script for ''ipmasq'' is run, deleting the symbolic link from  
-/etc/rcS.d and creating a new one in /etc/rc2.d to run  
-it after S20diald. Now, when ipmasq is executed to analyze  
-interfaces sl0 already exist. S90ipmasq is a good name for this  
-symbolic link to /etc/init.d/ipmasq.  
-  
-  
-Using Debian there is no need to worry about the kernel version, as the  
-/sbin/ipmasq script uses ipfwadm or ipchains as  
-needed.  
-  
-  
-  
-  
-!!8.2 Example for Suse 6.1  
-  
-  
-  
-  
-  
-  
-This example is from Mr Cornish Rex,  
-troll@tnet.com.au.  
-  
-  
-The following ip-masp and routing control commands are for use with  
-version 2.2 kernels, using ipchains, but they are not valid for version  
-2.0 kernels.  
-  
-  
-We are going to supose that the ethernet interface has the 192.168.1.1 ip  
-address with 16 bit netmask, that is, 255.255...  
-  
-  
-This is the /etc/ppp/ip-up file:  
-  
-  
-  
-  
-  
-#!/bin/sh  
-# $1 = Interface  
-# $2 = Tty device  
-# $3 = speed  
-# $4 = local ip  
-# $5 = remote ip  
-# $6 = ipparam  
-/sbin/ipchains -F input  
-/sbin/ipchains -P input DENY  
-/sbin/ipchains -A input -j ACCEPT -i eth0 -s 192.168../16 -d .../  
-/sbin/ipchains -A input -j DENY -p udp -i $1 -s .../0 -d $4/32 :52 -l  
-/sbin/ipchains -A input -j DENY -p udp -i $1 -s .../0 -d $4/32 54:1023 -l  
-/sbin/ipchains -A input -j DENY -p tcp -i $1 -s .../0 -d $4/32 :112 -l  
-/sbin/ipchains -A input -j DENY -p tcp -i $1 -s .../0 -d $4/32 114:1023 -l  
-/sbin/ipchains -A input -j DENY -p tcp -i $1 -s .../0 -d $4/32 6000:6010 -l  
-/sbin/ipchains -A input -j DENY -p icmp --icmp-type echo-request \  
--i $1 -s .../0 -l  
-/sbin/ipchains -A input -j DENY -p icmp -f -i $1 -s .../0 -l  
-/sbin/ipchains -A input -j DENY -p udp -i $1 -s .../0 -d $4/32 5555 -l  
-/sbin/ipchains -A input -j DENY -p udp -i $1 -s .../0 -d $4/32 8000 -l  
-/sbin/ipchains -A input -j DENY -p tcp -i $1 -s .../0 -d $4/32 8000 -l  
-/sbin/ipchains -A input -j DENY -p udp -i $1 -s .../0 -d $4/32 6667 -l  
-/sbin/ipchains -A input -j DENY -p tcp -i $1 -s .../0 -d $4/32 6667 -l  
-/sbin/ipchains -A input -j DENY -p tcp -i $1 -s .../0 -d $4/32 4557 -l  
-/sbin/ipchains -A input -j DENY -p tcp -i $1 -s .../0 -d $4/32 4559 -l  
-/sbin/ipchains -A input -j DENY -p tcp -i $1 -s .../0 -d $4/32 4001 -l  
-/sbin/ipchains -A input -j DENY -p tcp -i $1 -s .../0 -d $4/32 2005 -l  
-/sbin/ipchains -A input -j DENY -p tcp -i $1 -s .../0 -d $4/32 6711 -l  
-/sbin/ipchains -A input -j DENY -i $1 -s 192.168../16 -d .../0 -l  
-/sbin/ipchains -A input -j ACCEPT -i $1 -s .../0 -d $4/32  
-/sbin/ipchains -A input -j ACCEPT -i lo -s .../0 -d .../  
-/sbin/ipchains -A input -j DENY -s .../0 -d .../0 -l  
-/sbin/ipchains -F output  
-/sbin/ipchains -P output DENY  
-/sbin/ipchains -A output -j ACCEPT -i eth0 -s .../0 -d 192.168../16  
-/sbin/ipchains -A output -j DENY -i $1 -s 192.168../16 -d .../0 -l  
-/sbin/ipchains -A output -j ACCEPT -i $1 -s $4/32 -d .../  
-/sbin/ipchains -A output -j ACCEPT -i lo -s .../0 -d .../  
-/sbin/ipchains -A output -j DENY -s .../0 -d .../  
-/sbin/ipchains -F forward  
-/sbin/ipchains -P forward DENY  
-/sbin/ipchains -M -S 120 120 120  
-/sbin/ipchains -A forward -j MASQ -s 192.168.1./24  
-/sbin/ipchains -A forward -j DENY -s .../0 -d .../  
-exit  
-  
-  
-  
-  
-This is the /etc/ppp/ip-down file:  
-  
-  
-  
-  
-  
-#!/bin/sh  
-# $1 = Interface  
-# $2 = Tty device  
-# $3 = Speed  
-# $4 = Local ip  
-# $5 = Remote ip  
-/sbin/ipchains -F input  
-/sbin/ipchains -F output  
-/sbin/ipchains -F forward  
-/sbin/ipchains-restore < /etc/ppp/orig.chains  
-  
-  
-  
-  
-Last file in last script, orig.chains, is the following file (original  
-status of ipchains):  
-  
-  
-  
-  
-  
-# orig.chains  
-# created with: ipchains-save > orig.chains  
-:input ACCEPT  
-:forward ACCEPT  
-:output ACCEPT  
--A input -s .../...0 -d 192.168.1.1/255.255.255.255  
--A output -s 192.168.1.1/255.255.255.255 -d .../...  
-  
-  
-  
-  
-  
-  
-!!8.3 Example for Slackware 3.6  
-  
-  
-  
-  
-  
-  
-This example is from Hoo Kok Mun,  
-hkmun@pacific.net.sg.  
-  
-  
-This is the most simple example i have seen, but fully functional. From  
-the beginning, this example configures masquerading, before the sl0  
-interface exists, and it does not change when the ppp0 interface  
-appears. If you need advanced security considerations, it may be a little  
-limited.  
-  
-  
-  
-  
-  
-#/etc/rc.d/rc.local  
-/sbin/ipfwadm -F -p deny  
-/sbin/ipfwadm -F -a m -S 192.168../24 -D .../  
-  
-  
-  
-  
-As you can see, it is for version 2.0 kernels.  
-  
-  
-  
-----  
-  
-!!9. Programs and versions used  
-  
-  
-  
-  
-  
-To write this document i have used the following diald versions:  
-  
-  
-  
-  
-  
-*Diald .16.5 - Last version maintained by the original diald autor.  
-*  
-  
-*Diald .99.3 - Last version until the first edition of this  
-document.  
-*  
-  
-  
-  
-And the following pppd versions:  
-  
-  
-  
-  
-  
-*pppd 2.3.5  
-*  
-  
-  
-  
-Diald .16.5 version is perhaps the most extended, and the one that many  
-Linux distributions include. It is suficient for many sites, and it is  
-very reliable, but, of course, later versions have many interesting  
-capabilites.  
-  
-  
-  
-----  
-  
-!! 10. More information  
-  
-  
-  
-  
-  
-Original information from where this document has been obtained can be  
-found in the man pages about diald, diald-examples,  
-diald-control, diald-monitor, dctrl, pppd, chat,  
-as well as from information in the /usr/doc directories and in web pages  
-of this packages:  
-  
-  
-  
-  
-  
-*New Diald Official Home Page:  
-http://diald.sourceforge.net/  
-*  
-  
-*Download of new versions:  
-ftp://diald.sourceforge.net/pub/diald/  
-*  
-  
-*Previous Diald home page:  
-http://diald.unix.ch  
-*  
-  
-*Old Diald home page until .16.5 version:  
-http://www.loonie.net/~erics/diald.html  
-*  
-  
-*pppd FTP site:  
-ftp://cs.anu.edu.au/pub/software/ppp/  
-*  
-  
-*Other site:  
-http://www.p2sel.com/diald  
-*  
-  
-*One more:  
-http://rufus.w3.org/linux/RPM/  
-*  
-  
-  
-  
-There is a mailing list for discussion about diald on David S. Miller's  
-mailing list server at vger.rutgers.edu. To subscribe, send a message to  
-  
-Majordomo@vger.rutgers.edu with the text ''subscribe  
-linux-diald'' IN THE MESSAGE BODY.  
-  
-  
-An archive of the list can be found in  
-http://www.geocrawler.com.  
-  
-  
-There are also multiple RFC documents (Request For Comments) that define  
-how the PPP encapsulated lines and its associated protocols (LCP, IPCP,  
-PAP, CHAP, ...) must work. You can find these documents in the  
-/usr/doc/doc-rfc directory and some World Wide Web sites, like  
-  
-http://metalab.unc.edu and  
-http://nic.mil/RFC. You can ask for  
-information about RFCs in  
-RFC-INFO@ISI.EDU.  
-  
-  
-The following ''Howtos'' can help you:  
-  
-  
-  
-  
-  
-*DNS-HOWTO -  
-http://www.linuxdoc.org/HOWTO/DNS-HOWTO.html  
-  
-*  
-  
-*Firewall-HOWTO -  
-http://www.linuxdoc.org/HOWTO/Firewall-HOWTO.html  
-  
-*  
-  
-*IP-Masquerade-HOWTO -  
-http://www.linuxdoc.org/HOWTO/IP-Masquerade-HOWTO.html  
-  
-*  
-  
-*IPCHAINS-HOWTO -  
-http://www.linuxdoc.org/HOWTO/IPCHAINS-HOWTO.html  
-  
-*  
-  
-*Modem-HOWTO -  
-http://www.linuxdoc.org/HOWTO/Modem-HOWTO.html  
-  
-*  
-  
-*NET3-4-HOWTO -  
-http://www.linuxdoc.org/HOWTO/NET3-4-HOWTO.html  
-  
-*  
-  
-*PPP-HOWTO -  
-http://www.linuxdoc.org/HOWTO/PPP-HOWTO.html  
-  
-*  
-  
-*Serial-HOWTO -  
-http://www.linuxdoc.org/HOWTO/Serial-HOWTO.html  
-  
-*  
-  
-  
-  
-  
-----  
+Describe [HowToDialdHOWTO] here.