<!doctype linuxdoc system>
<!-- 

************************** begin comment *****************************
     The following is the HOW-TO for setting up Modem to Dial-Up 
	 Networking the Remote Access Server like NT RAS or Linux RAS.
	 This document is in the SGML format. You must use sgml package to 
	 process this document
************************* end of comment *****************************

-->
<!--
************************** SGML USER GUIDE *****************************
	The SGML user guide on linux is located at /usr/doc/sgml-tools
	Read the example.sgml and guide.html documents.
	Usage:
		HTML	  	sgml2html foo  (Do not give extension .sgml here!!)
		Text	 	sgml2txt foo.sgml
		Latex	  	sgml2latex foo.sgml

		Note: Use 2 dashes - before language, error while compiling
		Postscript 	sgml2latex -language=english -o ps foo.sgml
		DVI  		sgml2latex -d foo.sgml
		Lyx		sgml2lyx foo.sgml
		Richtext 	sgml2rtf foo.sgml
		gnuinfo  	sgml2info foo.sgml
		man		sgml2txt -man foo.sgml
		SGML	 	sgmlcheck foo.sgml
************************* end of comment *****************************
-->

<article>

<!-- Title information -->

<title>Modem-Dialup-NT HOW-TO

<!-- chapt change
Modem-Dialup-NT HOW-TO



-->
<author>Al Dev (Alavoor Vasudevan) 
		<htmlurl url="mailto:
			alavoor[AT]yahoo.com"
			name="
			alavoor[AT]yahoo.com">
<date>v1.7, 22 June 2002
<abstract>
This document will help you to setup the Modem to do 
Dial-up Networking with remote server like Windows NT RAS or
Linux RAS (Remote Access Server). You can use the Modem to
do Dial-Up Networking on Linux very similar to that of MS Windows dialup networking.
</abstract>

<!-- Table of contents -->
<toc>

<!-- Begin the document -->

<sect>Introduction
<p>
<bf>
(The latest version of this document is 
at <url url="http://www.milkywaygalaxy.freeservers.com">. You may
want to check there for changes).
</bf>

Most of the companies in USA and Europe provide "Remote Access Servers"  (RAS), so
that their employees can dial-in from remote locations either from home or from field.
RAS servers are generally Linux RAS servers or MS Windows NT RAS servers.

Nowadays, Virtual Private Network (VPN) is becoming quite popular because it supports
broadband and may eventually replace dial-up networking which is very slow running at 56KB/sec.
See the 
<url name="VPN HOWTO" url="http://linuxdoc.org/HOWTO/VPN-HOWTO.html"> 
and
<url name="VPN-Masquerade howto" url="http://linuxdoc.org/HOWTO/VPN-Masquerade-HOWTO.html">
and java based
<url name="MindTerm-SSH-HOWTO" url="http://linuxdoc.org/HOWTO/MindTerm-SSH-HOWTO/index.html">.

Configuring a dial-up connection on Linux is about as simple as it is in Windows.
We will use PPP.

<bf>Definition: <it>PPP ('Point to Point Protocol') is a protocol,
that makes it possible to make IP-Links (Internet Protocol) between two 
computers with a modem. </it> </bf>


The operating system Linux has this protocol in the kernel (If you compiled it into the kernel). For a ppp-link you need to start a daemon called pppd.

With PPP you can make a link between two hosts which understand the protocol. A link between a Linux host, acting as client and a Windows NT server, acting as server, is called a (Microsoft term)
<bf>'Remote Access Service'</bf> (RAS) link.

First, see if your modem is supported by linux.
Internal Modems (WinModems) may work with Linux because they need extra
software drivers to make it work with Linux. 
Test your WinModem to see if it works under Linux.
Some WinModems require special tweaking to make it work in Linux.
<sect1> Preparations <label id="preparations">
<p>
Check if you have all the needed hardware, software and data and hand:

<itemize>
<item>   A modem supported by Linux. Some modems, like most internal PCI modems or some external USB modems are so-called WinModems. Which means
   that they rely on Windows-only software to work.
   Read 
   <url name="Winmodems are not modems" url="http://www.idir.net/~gromitkc/winmodem.html">
   for more information and a compability list and check out 
   <url name="Linmodems.org" url="http://linmodems.org">
   for (a few) drivers.

<p>
<item>   The modem's init-string. GNU/Linux does not have an equivalent to the Windows hardware information file (.inf) mechanism. You may have to find out
   the init-string for your modem yourself. It should(TM) be listed in your hardware's documentation or in the modem's INF file, but there are also online
   sources like this 
   <url name="list of modem init-strings" url="http://www.spy.net/~dustin/modem/">
   . If you have no clue at all, use ATZ, that works with many modems.

<p>
<item>   Provider data. You'll need your login name, password and the telephone number. DNS addresses would be fine, too, but are optional for recent
   versions of pppd.
<p>
<item> Check if your modem is connected correctly to the system or properly recognized by it.
With an external modem, that's pretty easy. As 'root' do <bf>echo >/dev/ttyS0</bf> 
and watch the modem LEDs. You should see them flicker for a moment. If not, try
<bf>echo >/dev/ttyS1</bf> in case your modem is connected to the second serial port.
With an internal modem, use HardDrake to check if the system sees the modem. Or use this command to query the PCI list directly: <bf>cat /proc/pci</bf>. If it's an
ISA bus modem, check '/etc/isapnp.conf' if it is listed there. If you don't have that file, you'll have to generate it. Read isapnpfaq.txt in the isapnptools doc
directory or <bf>man isapnp</bf> or <bf>man isapnp.conf</bf>.
</itemize>



<sect> Dial-up ISP Internet Connection
<p>
Follow these steps to connect to your ISP via dial-up modem:
<itemize>
<item> You should have installed the packages kdenetwork-ppp*.rpm and ppp*.rpm
<item> At bash prompt type '/usr/bin/kppp'. This will bring up the KPPP dialog boxes.
<item> On 'Accounts' tab setup the 'New Connection', and click the following tabs:
	<enum>
	<item> On 'Dial' tab use Authentication='PAP/CHAP', yes to 'Store Password'
	<item> On 'IP' tab select 'Dyanamic IP Address' and uncheck 'Auto-configure hostname'
	<item> On 'Gateway' tab select 'Default Gateway' and check 'Assign the Default Route'
	<item> On 'DNS' tab select 'Configuration Automatic' and check 'Disable existing DNS'
	<item> On 'Login Script' tab - do nothing here
	<item> On 'Execute' tab - do nothing here
	<item> On 'Accounting' tab - do nothing here
	</enum>
<item> On 'Device' tab select the proper modem device like ttyS1(com1), ttyS2 (com2)
<item> On 'Modem' tab 'Query Modem' to see the results. If no results come up, go to device
tab and pick the proper device.
<item> Enter login ID and password and connect.
</itemize>
After doing the above steps, you would have connected to internet. To test do:
<code>
bash$ ping www.yahoo.com
PING www.yahoo.com(66.218.71.83) from 64.152.245.119 : 56(84) bytes of data.
64 bytes from www.yahoo.com (66.218.71.83): icmp_seq=0 ttl=58 time=236.931 msec
64 bytes from www.yahoo.com (66.218.71.83): icmp_seq=1 ttl=58 time=229.074 msec

bash$ ping www.google.com

bash$ su - root
# ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
ppp0      Link encap:Point-to-Point Protocol
          inet addr:64.158.37.63  P-t-P:209.244.43.188  Mask:255.255.255.255

# netstat -nr
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
209.244.43.183  0.0.0.0         255.255.255.255 UH       40 0          0 ppp0
127.0.0.0       0.0.0.0         255.0.0.0       U        40 0          0 lo
0.0.0.0         209.244.43.183  0.0.0.0         UG       40 0          0 ppp0
</code>
You will see the listing like above. If you are not able to do 'ping www.yahoo.com' or
'ping www.google.com' then there is some trouble. See the next section 'Troubleshooting'

<sect1> Troubleshooting ISP Connection
<p>
If you are getting the connection and getting the local IP address and Remote IP address
from KPPP dialer but you are not able to do ping on a remote host like 'ping www.yahoo.com'
then do:
<code>
bash$ su - root
# ifconfig

See the listing above and temporarily disable other interfaces like eth0, eth1
# ifconfig eth0 down
# ifconfig eth1 down
# ifconfig eth2 down

# ifconfig
This should list only ppp0 and lo
</code>
Once other interfaces like eth0, eth1, eth2 are disabled, now disconnect and reconnect
with KPPP dialer. After the connection to internet is successful, you can re-enable
other interfaces as below:
<code>
bash$ ping www.yahoo.com
If connection is okay, then do:
bash$ su - root
# ifconfig eth0 up
# ifconfig eth1 up
# ifconfig eth2 up
# ifconfig
</code>

If you still have problems then refer to the KPPP user guides and FAQs as below:
<code>
$ rpm -ql kdenetwork-ppp
$ cd /usr/share/doc/HTML/en/kppp
$ docbook2html kppp-faq.docbook 1> kppp-faq.html
$ docbook2html index.docbook 1> index.html
</code>


<sect> Quick Steps to Dialup Networking
<p>
These quick steps will enable you to setup dial-up networking on Linux in just five minutes.

You need the following packages:
<itemize>
<item> wvdial*.rpm
<item> ppp*.rpm
</itemize>
You can check with <bf>rpm -qa | grep -i  wvdial</bf> for 
the installed packages on redhat linux. Use equivalent package commands in case of
other distributions like Debian or Slackware.

The steps below are for MS Windows NT RAS server. The NT RAS requires
<bf>noauth</bf> in wvdial file. The Linux RAS may need different settings.
In the sample example given below, you should replace username <bf>john</bf> with the 
user ID given to you to login into remote RAS server.

<enum>
<item> Edit the file /etc/wvdial.conf and insert lines like
<code>
[Dialer myconnection]
Username = john
Password = passwordofjohn
Phone = 982 1956
Area Code = 713
Inherits = Dialer Defaults
Stupid mode = 1
</code>
Change john with whatever.

<p>
<item> Edit /etc/ppp/pap-secrets and insert lines like
<code>
# Secrets for authentication using PAP
# client	server	secret			IP addresses
john		ppp0    passwordofjohn
john		*       passwordofjohn
</code>
Change john with whatever.

<p>
<item> Edit /etc/ppp/chap-secrets and insert lines like
<code>
# Secrets for authentication using CHAP
# client	server	secret			IP addresses
john    	ppp0    passwordofjohn
john    	*       passwordofjohn
</code>
Change john with whatever.

<p>
<item> Edit /etc/ppp/options and insert lines like
<code>
lock
defaultroute
noipdefault
idle 1200
usepeerdns
proxyarp
</code>

<p>
<item> Create a new file /etc/ppp/ip-up and insert lines like
<code>
#!/bin/bash
 
# This file /etc/ppp/ip-up should not be modified -- make local changes to
# /etc/ppp/ip-up.local instead
 
LOGDEVICE=$6
REALDEVICE=$1
 
export PATH=/sbin:/usr/sbin:/bin:/usr/bin
 
[ -f /etc/sysconfig/network-scripts/ifcfg-${LOGDEVICE} ] && /etc/sysconfig/network-scripts/ifup-post ifcfg-${LOGDEVICE}
 
[ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local "$@"
 
exit 0
</code>

<p>
<item> Create a new file /etc/ppp/ip-up.local and insert lines like
<code>
#!/bin/sh
 
echo "  "
echo "Before doing route add......"
echo "Output from netstat -nr is : "
netstat -nr
echo "  "
 
echo " Doing route add now....  "
# You should change the lines below and add the networks where 
# your remote machines are ...
route add -net 156.15.24.0 netmask 255.255.255.0 dev ppp0
route add -net 172.28.36.0 netmask 255.255.255.0 dev ppp0
route add -net 172.28.39.0 netmask 255.255.255.0 dev ppp0
route add -net 172.28.26.0 netmask 255.255.255.0 dev ppp0
 
echo "After doing route add......"
echo "Output from netstat -nr is : "
netstat -nr
 
echo "  "
</code>
When <bf>wvdial</bf> is started it automatically starts the <bf>pppd</bf> 
which automatically calls this script to 
add route to your remote networks via the PPP link.
See 'man pppd'.
In the example above I have to connect to remote networks 156.15.24, 172.28.36,
172.28.39 via the PPP link. You should replace these with your settings.

You can also manually add or delete the route after starting the PPP.
<code>
bash$ su - root
bash# route add -net 172.28.26.0 netmask 255.255.255.0 dev ppp0
bash# route del -net 172.23.2.0 netmask 255.255.255.0 dev ppp0
</code>

<p>
<item> Create a new file /etc/ppp/ip-down and insert lines like
<code>
#!/bin/bash
 
# This file /etc/ppp/ip-down should not be modified -- make local changes to
# /etc/ppp/ip-down.local instead
 
LOGDEVICE=$6
REALDEVICE=$1
 
export PATH=/sbin:/usr/sbin:/bin:/usr/bin
 
[ -x /etc/ppp/ip-down.local ] && /etc/ppp/ip-down.local "$@"
 
/etc/sysconfig/network-scripts/ifdown-post ifcfg-${LOGDEVICE}
 
exit 0
</code>

<p>
<item> Create a new file /etc/ppp/ip-down.local and insert lines like
<code>
#!/bin/sh
 
echo "  "
echo "Before doing route delete ......"
echo "Output from netstat -nr is : "
netstat -nr
echo "  "
 
echo " Doing route delete now....  "
# Lines below should be same as in ip-up.local but with delete
route del -net 156.15.24.0 netmask 255.255.255.0 dev ppp0
route del -net 172.28.36.0 netmask 255.255.255.0 dev ppp0
route del -net 172.23.2.0 netmask 255.255.255.0 dev ppp0
 
echo "After doing route delete ......"
echo "Output from netstat -nr is : "
netstat -nr
 
echo "  "
</code>
When <bf>pppd</bf> is stopped it automatically calls this script to clean up
whatever ip-up script did. 
See 'man pppd'.

<p>
<item> Edit /etc/ppp/peers/wvdial and insert lines like
<code>
noauth user john
name wvdial
</code>
Change john with whatever.

<p>
<item> If you have an external modem, then just before dialing, 
switch off/on the power to modem to reset it.
<code>
bash$ su - root
bash# tail -f /var/log/messages

Bring up another xterm shell window and 
bash$ su - root
bash# man pppd
bash# man wvdial
bash# cd /etc/ppp
bash# nohup wvdial myconnection &
bash# tail -f nohup.out

Bring up another xterm shell window and 
bash$ su - root
bash# ifconfig -a
And you should see ppp device listed and up and running.
bash# netstat -nr
And you should see ppp device listed along with other interfaces.
</code>

<p>
<item> By this step the <bf>pppd</bf> should have established the routes
to remote networks with ip-up.local script. Also <bf>pppd</bf> should
have created the /etc/ppp/resolv.conf for DNS servers. Now, try connect to remote host
and verify connections.
<code>
bash$ su - root
bash# tail -100 /var/log/messages | less
bash# cat /etc/ppp/resolv.conf
bash# ifconfig -a
bash# netstat -nr
I looked for route to network 156.15.24.0 (You should see your 
network as per /etc/ppp/ip-up.local)
bash# ping 156.15.24.68
bash# telnet 156.15.24.68

You can also edit /etc/hosts and add these hosts
156.15.24.64    starship
172.28.36.131   gemstone
bash# ping starship
bash# ping gemstone
bash# telnet gemstone
bash# ftp gemstone
</code>

<p>
<item> To stop the PPP :
<code>
bash$ su - root
bash# killall wvdial
bash# killall pppd
bash# man killall
</code>

<p>
<item> Now enable non-root user to do dial-up networking with PPP.
Make sure that the user belongs to the groups `uucp' and `dialout'.
<code>
bash$ su - root
bash# su - someuser
bash$ id
uid=501(someuser) gid=501(maingid) groups=501(maingid),503(staroffice),505(staff)
This shows the groups 'someuser' belongs.

bash$ exit
bash# usermod --help
bash# usermod -g maingid -G staroffice,staff,uucp,dialout someuser
bash# chgrp -R uucp /etc/ppp
bash# chmod -R ug+r /etc/ppp
bash# chmod -R o-rwx /etc/ppp
bash# chmod go-rwx /etc/ppp/*secrets
bash# chmod u+s /usr/sbin/pppd
bash# su - someuser
bash$ id
This will display groups someuser belongs and you should see uucp.
bash$ nohup wvdial myconnection &
bash$ tail -f nohup.out
</code>
It is very strongly recommended that you use wvdial as `normal' user, and make 
sure that the user belongs to the groups `uucp' and `dialout'.

<p>
<item> See also the frontend tool for wvdial at <url name="X-wvdial" url="http://console-newsletter.hypermart.net/x-wvdial">.

<p>
<item> If you do not have any other interface ethernet cards for Cable modem or
DSL modem then you can setup telephone dial-up modem as the default route for all outside
conections to internet. Assuming you only have modem connection via POTS (Plain Old Telephone
System) you can do -
<code>
bash$ su - root
bash# man route
bash# ifconfig -a
And look for the IP address of the ppp device, and use it below
bash# route add default gw  IP_of_ppp_device
For example -
bash# route add default gw  172.28.36.3
</code>

</enum>
<sect1> Troubleshooting<label id="troubleshoot">
<p>
In case you have problems:
<code>
bash$ su - root
bash# tail -f /var/log/messages
And then start myconnection in /etc/wvdial.conf
bash# wvdial myconnection

bash# ifconfig -a
Should list ppp

bash# netstat -nr
Should list ppp

If you have multiple interfaces, like ethernet cards to DSL or Cable modem,
to check which route is being used, do:
bash# traceroute www.yahoo.com
bash# traceroute remotehostname
</code>
<sect1> Graphical Tools <label id="graphictools">
<p>
Preference should be given the console line commands as in previous section, but
some people prefer GUI interface.
You can use graphical tools like Linuxconf, KPPP, GnomePPP and many others.

<it><bf>Note: I very strongly recommend using command-line console 
commands 'wvdial' as demonstrated
in previous sections, as they are lot simpler and easy to use.
</bf></it> 

<code>
bash$ su - root
bash# linuxconf &
And select Networking->Client Tasks->Routing & Gateways->Set Other Routes to networks->Add network
. Also select Networking->PPP

bash# rp3 &
bash# rp3-config &
</code>




<sect> Remote connection with VNC
<p>
Once you have connection through PPP to remote machines, 
you can use the VNC to display remote machines on your local display.
<itemize>
<item> The VNC is at  <url url="http://www.uk.research.att.com/vnc"> 
<p>
<item> Get VNC rpms from <url name="rpmfind" url="http://rpmfind.net/linux/rpm2html/search.php?query=vnc">.
<p>
<item> The best Window manager for VNC is QVWM which is like MS Windows 98/NT/2000 interface, get
it from <url url="http://www.qvwm.org">.
<p>
<item> After starting vncserver, you can start the <bf>vncviewer</bf> program on clients
like MS Windows, Mac or Linux.
<p>
<item> See also the
<url name="List of X11 Windows Managers" url="http://www.dlhoffman.com/publiclibrary/RPM/X11_Window_Managers.html">.
</itemize>

<bf>Compiling qvwm on Solaris : </bf>
On Solaris you should install the following packages which you can get 
from <url url="http://sun.freeware.com"> - xpm, imlib, jpeg, libungif, giflib, libpng, tiff.
And you can download the binary package for solaris from
<url url="http://www.qvwm.org">.

Or you can download the qvwm source for solaris from
<url url="http://www.qvwm.org"> and compile it using gcc.

Troubleshooting compile:
You should put unsigned long before arg in usleep()
usleep((unsigned long) 10000)
<sect1> Microsoft "MS Outlook" Email from PPP <label id="msoutlook">
<p>
Method 1 :
<enum>
<item> At office, start VNC server on your Windows NT/2000 desktop.
<item> Connect from home using modem via PPP.
<item> Once the PPP is established, you can start the <bf>vncviewer</bf> program.
Just type <it>/usr/bin/vncviewer</it>.
<item> Enter your office Windows NT/2000 desktop's hostname and vnc password
<item> The entire desktop of your remote office Windows NT/2000 is displayed.
Now you can read your MS Outlook email.
</enum>

Method 2 :
<itemize>
<item><url url="http://www.bynari.net" name="Bynari InsightClient"> Go here click 
on products->Insight Connector Outlook. Client for MS Exchange server and MS Outlook,
<item><url url="http://www.codeweavers.com/products/office" name="CrossOver Office"> has MS Outlook,
<item><url url="http://www.ximian.com/products/connector" name="Ximian Connector"> for MS Outlook/Exchange,
<item><url url="http://www.ximian.com" name="Ximian Evolution"> MS Outlook killer,
<item><url url="http://mahogany.sourceforge.net/index.html" name="Mahogany"> rated best
<item><url url="http://www.balsa.net/main.html" name="GNOME Balsa"> mail client rated 2nd best
<item><url url="http://devel-home.kde.org/~kmail" name="KDE KMail"> rated 3rd best
<item><url url="http://www.washington.edu/pine" name="PINE"> rated 4th
</itemize>

Method 3 : Web based
<itemize>
<item><url url="http://www.trlinux.com" name="POSTACI"> rated best
<item><url url="http://www.squirrelmail.org" name="SquirrelMail"> rated 2nd best
<item><url url="http://www.horde.org/imp" name="IMP Horde"> rated 3rd best
(<url url="http://rpmfind.net/linux/rpm2html/search.php?query=horde" name="horde rpm"> rated 4th best
<item><url url="http://rpmfind.net/linux/rpm2html/search.php?query=imp" name="imp rpm">)
<item><url url="http://sixxmailer.sourceforge.net" name="6XMailer">
<item><url url="http://www.netmania.org" name="Netmania mail">
<item><url url="http://nocc.sourceforge.net" name="NOCC">
</itemize>




<sect>Setup RAS server
<p>
For details on RAS please see <url url="http://www.cyclades.com/solutions/techtalk/techtalk03.php" name="RAS Buyer's Guide">
and the RAS product <url url="http://www.cyclades.com/products/stdalone/pr4000.php" name="Cyclades PR4000">

A Remote Access Server (RAS) is a network box that connects remote dialup clients to a Local Area Network (LAN. RAS are used by
Internet Service Providers (ISP) and Corporate Network Managers to allow home users, small offices, and telecommuters to connect to
the Internet or the corporate LAN from remote sites using analog phone lines or ISDN lines.

Since the mid-90's, with the popularization of the Internet, the demand for dialup remote access has been growing exponentially. Until
faster options are broadly available, analog phone lines and ISDN lines are the more common media to remotely connect personal
computers or home offices to the LAN or to the Internet.

A RAS is a box that attaches to the LAN at the central site and provides connection to dialup lines. It allows remote clients to access the
LAN (and possibly the Internet) by using modems or ISDN terminal adapters.

In the past, RS-232 Terminal Servers were used to provide remote access. A server-based or stand-alone box would attach to the LAN
and provide multiple RS-232 serial interfaces. Those serial ports were connected to a modem bank, which on its turn, connected to the
analog phone lines coming into the building.

With the crescent demand, the number of required phone lines started to grow to a point where it was impractical to increase their number
at the central site. The phone company, instead of delivering individual phone lines to you, bundle 23 or 30 channels in one T1 or E1
ISDN-PRI line.

Typically, a RAS will have one or more Ethernet ports for connection to the LAN and one or more T1/E1/ISDN-PRI ports for the incoming
calls (a T1/ISDN-PRI line is equivalent to 23 phone lines, while an E1/ISDN-PRI line is equivalent to 30 phone lines).

A RAS will typically have internal digital modems and will be able to terminate both analog and digital calls and connect to remote clients
using Point-to-Point (PPP) protocol.
<sect1>
Stand-alone or Server-Based ?
<p>
Traditionally, RAS are stand-alone, integrated and self-contained boxes running an Internetworking Operating System on a proprietary
hardware specifically designed for Remote Access. They connect to the LAN and to the income dialup lines and all you need to do is to
configure them properly to get them working.

But there is also the possibility of building a RAS using standard server hardware (usually a PC) with a Networking Operating System
(typically, Linux or Windows). The user installs PCI RAS adapter (with digital modems and ISDN-PRI interfaces) in a PC server, install
the OS and the proper device drivers and configure the system to work as a Remote Access Server.

So, maybe the first question you face when selecting a RAS solution is this: Stand-alone or server-based?

In general, stand-alone solutions are better for the average user because of the following factors:

Integration: 
The RAS solution is complete and there is no need for software or hardware integration. That eliminates the possibility of hardware and
software incompatibilities and installation problems and gives you a single point of contact for technical support and problem solving.

Reliability:
Stand-alone solutions run on hardware and software that was specifically designed for remote access. They are more integrated, more
compact, dissipate less power, and, because of that, are more reliable than a solution based on general-purpose components.

Cost: 
Usually, commodity PC hardware and open source software tend to drive costs down, making server-based solutions attractive for
technical users who already have the PC and are willing to face the potential problems of integrating the solution from standard
components. But, the PCI adapters for RAS available in the market today still carry a price tag that makes it difficult to justify a
server-based solution.





<sect>Related URLs
<p>
<itemize>
<item> The <bf>best document</bf> is : <url name="Mandrake Dial up networking" url="http://www.mandrakeuser.org/docs/connect/cppp.html">
<item> <url name="Suse PPP wvdial document" url="http://sdb.suse.de/sdb/en/html/daniel_wvdial.html"> and <url name="PPP categories" url="http://sdb.suse.de/sdb/en/html/katlist.INETPPP.html">
<p>
<item> <url name="PPP HOWTO" url="http://www.linuxdoc.org/HOWTO/PPP-HOWTO/index.html">
<item> <url name="PPP-NT-HOWTO" url="http://www.van-dijk.net/PPP-NT-HOWTO/PPP-NT-HOWTO.html">
<item> <url name="Modem HOWTO" url="http://www.linuxdoc.org/HOWTO/Modem-HOWTO/index.html">
<item> <url name="ISP Hookup HOWTO: Chapter 6" url="http://www.linuxdoc.org/HOWTO/ISP-Hookup-HOWTO-6.html">
<item> Simple RAS server to provide internet connectivity <url url="http://simpleras.sourceforge.net">
<p>
<item> <url name="Linux PPP FAQ" url="http://sunsite.unc.edu/pub/Linux/docs/faqs/PPP-FAQ/PPP-FAQ">
<item> <url name="PPP Design & Debugging" url="http://people.ne.mediaone.net/carlson/ppp/index.html">
<item> <url name="Suomeksi PPP page" url="http://oh3tr.ele.tut.fi/~oh3fg/index.html">
<item> <url name="Unix Serial Port Resources" url="http://www.stokely.com/unix.serial.port.resources/ppp.slip.html">
<item> <url name="Linux Dial-in server" url="http://www.swcp.com/~jgentry/dialin2.html"> - Setup guide.
<p>
<item> <url name="List of PPP utilities" url="http://freshmeat.net/search.php3?query=ppp"> 
go here and type "ppp" in the search box.
<item> <url name="General PPP and IPX over PPP" url="http://www.tartu.customs.ee/linux/index.shtml">
<p>
<item> <url name="VPN HOWTO" url="http://linuxdoc.org/HOWTO/VPN-HOWTO.html"> 
<item> <url name="VPN-Masquerade howto" url="http://linuxdoc.org/HOWTO/VPN-Masquerade-HOWTO.html">
<item> Java based <url name="MindTerm-SSH-HOWTO" url="http://linuxdoc.org/HOWTO/MindTerm-SSH-HOWTO/index.html">
</itemize>

<p>
Linux goodies main site is at <url url="http://24.221.230.253">
and secondary site at <url url="http://www.milkywaygalaxy.freeservers.com"> 
Mirror sites are at -
<url name="angelfire" url="http://www.angelfire.com/country/aldev0">,
<url name="geocities" url="http://www.geocities.com/alavoor/index.html">,
<url name="virtualave" url="http://aldev0.virtualave.net">,
<url name="Fortunecity" url="http://members.fortunecity.com/aldev">,
<url name="Freewebsites" url="http://aldev.freewebsites.com">,
<url name="Tripod" url="http://members.tripod.lycos.com/aldev">,
<url name="101xs"  url="http://www.101xs.com/101xs/aldev">,
<url name="50megs" url="http://aldev0.50megs.com">,




<sect> Other Formats of this Document
<p>
This document is published in 14 different formats namely: DVI, Postscript, 
Latex, Adobe Acrobat PDF,
LyX, GNU-info, HTML, RTF(Rich Text Format), Plain-text, Unix man pages, single 
HTML file, SGML (Linuxdoc format), SGML (Docbook format), and MS WinHelp format.

This howto document is located at:
<itemize>
<item> <url url="http://www.linuxdoc.org"> and click on HOWTOs and search 
for the howto document name using CTRL+f or ALT+f within the web-browser.
</itemize>

You can also find this document at the following mirrors sites: 
<itemize>
<item> <url url="http://www.caldera.com/LDP/HOWTO">
<item> <url url="http://www.linux.ucla.edu/LDP">
<item> <url url="http://www.cc.gatech.edu/linux/LDP">
<item> <url url="http://www.redhat.com/mirrors/LDP">

<item> Other mirror sites near you (network-address-wise) can be found at
<url url="http://www.linuxdoc.org/mirrors.html">
select a site and go to directory /LDP/HOWTO/xxxxx-HOWTO.html
</itemize>


<itemize>
<item>
You can get this HOWTO document as a single file tar ball in HTML, DVI, 
Postscript or SGML formats from -
<url url="ftp://www.linuxdoc.org/pub/Linux/docs/HOWTO/other-formats/">
and <url url="http://www.linuxdoc.org/docs.html#howto">
<p>
<item>Plain text format is in: <url url="ftp://www.linuxdoc.org/pub/Linux/docs/HOWTO">
and <url url="http://www.linuxdoc.org/docs.html#howto">
<p>
<item>Single HTML file format is in: 
<url url="http://www.linuxdoc.org/docs.html#howto">
<p> A single HTML file can be created with the command (see man sgml2html) - 
sgml2html -split 0   xxxxhowto.sgml
<p>
<item>Translations to other languages like French, German, Spanish, 
Chinese, and Japanese are in
<url url="ftp://www.linuxdoc.org/pub/Linux/docs/HOWTO">
and <url url="http://www.linuxdoc.org/docs.html#howto">
Any help from you to translate to other languages is welcome.
</itemize>
The document is written using a tool called "SGML-Tools" which can be got from: 
<url url="http://www.sgmltools.org">
Compiling the source you will get the following commands like:
<itemize>
<item>sgml2html xxxxhowto.sgml     (to generate html file)
<item>sgml2html -split 0   xxxxhowto.sgml (to generate a single page html file)
<item>sgml2rtf  xxxxhowto.sgml     (to generate RTF file)
<item>sgml2latex xxxxhowto.sgml    (to generate latex file)
</itemize>
<sect1> Acrobat PDF format <label id="acrobatpdf">
<p>
A PDF file can be generated from postscript file using 
either acrobat <bf>distill</bf> or <bf>Ghostscript</bf>.
And a postscript file is generated
from DVI which in turn is generated from a LaTex file.
You can download distill software from <url url="http://www.adobe.com">
and from <url name="unix" url="http://www.adobe.com/support/downloads/acdunix.htm">
and from <url name="windows" url="http://www.adobe.com:80/support/downloads/acdwin.htm">
. Given below 
is a sample session:
<code>
bash$ man sgml2latex
bash$ sgml2latex filename.sgml
bash$ man dvips
bash$ dvips -o filename.ps filename.dvi
bash$ distill filename.ps
bash$ man ghostscript
bash$ man ps2pdf
bash$ ps2pdf input.ps output.pdf
bash$ acroread output.pdf &
</code>
Or you can use the Ghostscript command <bf>ps2pdf</bf>.
ps2pdf is a work-alike for nearly all the functionality of 
Adobe's Acrobat Distiller product: it
converts PostScript files to Portable Document Format (PDF) files. 
<bf>ps2pdf</bf> is implemented as a very small command script 
(batch file) that invokes Ghostscript, selecting a special "output device"
called <bf>pdfwrite</bf>. In order to use ps2pdf, the pdfwrite 
device must be included in the makefile when Ghostscript was compiled;
see the documentation on building Ghostscript for details.
<sect1> Convert Linuxdoc to Docbook format <label id="linuxdoc2docbook">
<p>
This document is written in linuxdoc SGML format. The Docbook SGML format
supercedes the linuxdoc format and has a lot more features than linuxdoc.
The linuxdoc is very simple and easy to use. To convert linuxdoc SGML 
file to Docbook SGML use the program <bf>ld2db.sh</bf> and some Perl scripts.
The ld2db output is not 100% clean and you need to use the <bf>clean_ld2db.pl</bf>
Perl script. You may need to manually correct a few lines in the document.
<itemize>
<item> Download the ld2db program from <url url="http://www.dcs.gla.ac.uk/~rrt/docbook.html">
or from <url name="Milkyway Galaxy site" url="http://www.milkywaygalaxy.freeservers.com">
<item> Download the cleanup_ld2db.pl perl script from
from <url name="Milkyway Galaxy site" url="http://www.milkywaygalaxy.freeservers.com">
</itemize>
The ld2db.sh is not 100% clean, so you will get some errors when you run it.
<code>
	bash$ ld2db.sh file-linuxdoc.sgml db.sgml
	bash$ cleanup.pl db.sgml > db_clean.sgml
	bash$ gvim db_clean.sgml 
	bash$ docbook2html db.sgml
</code>
And you may have to manually edit some of the minor errors after 
running the Perl script. For example you may need to put closing tag <
/Para> for each <
Listitem>
<sect1> Convert to MS WinHelp format <label id="mswinhelp">
<p>
You can convert the SGML howto document to a Microsoft Windows Help file, 
First convert the sgml to html using:
<code>
	bash$ sgml2html xxxxhowto.sgml     (to generate html file)
	bash$ sgml2html -split 0   xxxxhowto.sgml (to generate a single page html file)
</code>
Then use the tool <url name="HtmlToHlp" url="http://javadocs.planetmirror.com/htmltohlpe.html">.
You can also use sgml2rtf and then use the RTF files for generating winhelp files.
<sect1> Reading various formats <label id="readformats">
<p>
In order to view the document in dvi format, use the xdvi program. The xdvi
program is located in tetex-xdvi*.rpm package in Redhat Linux which can be
located through ControlPanel | Applications | Publishing | TeX menu buttons.
	To read a dvi document give the command:
<tscreen><verb>
	xdvi -geometry 80x90 howto.dvi
	man xdvi
</verb></tscreen>
	And resize the window with the mouse.
	To navigate use Arrow keys, Page Up, Page Down keys, also
	you can use 'f', 'd', 'u', 'c', 'l', 'r', 'p', 'n' letter
	keys to move up, down, center, next page, previous page etc.
	To turn off expert menu press 'x'.

You can read a postscript file using the program 'gv' (ghostview) or 
'ghostscript'.
The ghostscript program is in the ghostscript*.rpm package and the gv 
program is in the gv*.rpm package in Redhat Linux
which can be located through ControlPanel | Applications | Graphics menu 
buttons. The gv program is much more user friendly than ghostscript.
Also ghostscript and gv are available on other platforms like OS/2,
Windows 95 and NT. You  can view this document even on those platforms.
 
<itemize>
<item>Get ghostscript for Windows 95, OS/2, and for 
all OSes from <url url="http://www.cs.wisc.edu/~ghost">
</itemize>

To read a postscript document give the command:
<tscreen><verb>
		gv howto.ps
		ghostscript howto.ps
</verb></tscreen>

You can read an HTML format document using Netscape Navigator, Microsoft Internet
explorer, Redhat Baron Web browser or any of the 10 other web browsers.

You can read the latex, LyX output using LyX an X Window front end to LaTex.
<sect1> Convert HTML to SGML html2sgml <label id="html2sgml">
<p>
To convert any HTML document to Linuxdoc SGML use the tool 'html2sgml'
from <url url="http://www.abc.se/~m9339/prog/html2sgml.html">.




<sect> Copyright
<p>
Copyright policy is GNU/GPL as per LDP (Linux Documentation project).
LDP is a GNU/GPL project.
Additional restrictions are - you must retain the author's name, email address
and this copyright notice on all the copies. If you make any changes 
or additions to this document then you should 
intimate all the authors of this document.




<sect> Appendix A Connecting Linux + PPP &lt -- &gt  NT + RAS...
<p>
This section is written by
John Newbigin, Email: 
<htmlurl url="mailto:
jn@it.swin.edu.au"
name="
jn@it.swin.edu.au">
Below is extract from
<url url="http://uranus.it.swin.edu.au/~jn/linux/ppp/linuxppp.htm">

See also 
<url name="PPP HOWTO" url="http://www.linuxdoc.org/HOWTO/PPP-HOWTO/index.html">

<itemize>
<item> <bf>Part 1... The easy bit : </bf>
Use minicom or your favourite terminal program to dial the NT RAS 
Server. Once you have a connection you
can proceed to Part 2. Make sure you can quit your terminal without resetting the modem.

<p>
<item> <bf>Part 2... The harder bit : </bf>
Setting up the /etc/ppp/options file may be a bit tricky. The important things to do are...
Make sure you do not have any of the following entries:
	<itemize>
	<item>auth #This will demand that the NT machine authenticate it's self to your machine, this is generally not
	possible, or needed

<p>
	<item>+pap #This will demand that the NT machine authenticates it's self using PAP, see above

<p>
	<item>-pap #This says that you won't agree to use PAP

<p>
	<item>+chap #This will demand that the NT machine authenticates it's self using CHAP, see above
<p>
	</itemize>
Make sure the RAS server will accept plain text passwords. You need this to use PAP authentication. This can be
set by going to Control Panel -> Network -> Services -> Remote Access Service -> Properties. Select the
modem or dial up device, go to Network -> Server Settings -> Encryption Settings and select "allow any
authentication including plain text". Then hit OK, Save etc. to close it all.

<p>
<item> <bf>Part 3... The hardest bit (without this document) : </bf>
NOTE: If you use my pppd patch, you will not have to do this

In the /etc/ppp/pap-secretes file, add the following lines:

<code>
"" * ""
"jn" * "MyPassword"
</code>

Where jn is your user name on the NT machine. But what if you are a member of a
domain? Then use this instead (where csse-mm is replaced with your domain name)
<code>
"" * ""
"csse-mm\\jn" * "MyPassword"
</code>

Note that you must escape the "\" character as "\\". then, back 
to the /etc/ppp/options file and add the following line:

<code>
name "jn"
or
name "csse-mm\\jn"
</code>

depending what you put in the pap-secretes file.

<p>
<item> <bf>Part 4... Another easy bit : </bf>
Dial in to the server, like in step one, or using your 
custom script. Start ppp with the following line:

pppd 115200 /dev/cua1

or whatever your settings might be.

You may want to enable debug information if something does not 
work, but everything should.

Run "ifconfig" and you should see an entry for ppp0. If you do then you 
are cooking with gas. Restart pppd
using the "defaultroute" option and start surfing the internet.

If you are still having trouble, or can't understand any of 
these instructions, drop me an e-mail

John Newbigin (
<htmlurl url="mailto:
	jn@it.swin.edu.au"
	name="
	jn@it.swin.edu.au">
	).
</itemize>
</article>
