Modem-Dialup-NT HOW-TO


Al Dev (Alavoor Vasudevan) alavoor[AT]yahoo.com

v1.7, 22 June 2002
-------------------------------------------------------------------------------
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.
-------------------------------------------------------------------------------

1. Introduction

(The latest version of this document is at http://
www.milkywaygalaxy.freeservers.com. You may want to check there for changes).
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 VPN_HOWTO and VPN-Masquerade_howto and java
based MindTerm-SSH-HOWTO.
Configuring a dial-up connection on Linux is about as simple as it is in
Windows. We will use PPP.
Definition: PPP ('Point to Point Protocol') is a protocol, that makes it
possible to make IP-Links (Internet Protocol) between two computers with a
modem.
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) 'Remote Access Service' (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.

 1.1 Preparations

Check if you have all the needed hardware, software and data and hand:

* 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 Winmodems_are_not_modems for more
  information and a compability list and check out Linmodems.org for (a few)
  drivers.
* 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 list_of_modem_init-strings . If you have no clue at
  all, use ATZ, that works with many modems.
* 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.
* 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
  echo >/dev/ttyS0 and watch the modem LEDs. You should see them flicker for a
  moment. If not, try echo >/dev/ttyS1 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:
  cat /proc/pci. 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 man isapnp or man
  isapnp.conf.


2. Dial-up ISP Internet Connection

Follow these steps to connect to your ISP via dial-up modem:

* You should have installed the packages kdenetwork-ppp*.rpm and ppp*.rpm
* At bash prompt type '/usr/bin/kppp'. This will bring up the KPPP dialog
  boxes.
* On 'Accounts' tab setup the 'New Connection', and click the following tabs:

    1. On 'Dial' tab use Authentication='PAP/CHAP', yes to 'Store Password'
    2. On 'IP' tab select 'Dyanamic IP Address' and uncheck 'Auto-configure
       hostname'
    3. On 'Gateway' tab select 'Default Gateway' and check 'Assign the Default
       Route'
    4. On 'DNS' tab select 'Configuration Automatic' and check 'Disable
       existing DNS'
    5. On 'Login Script' tab - do nothing here
    6. On 'Execute' tab - do nothing here
    7. On 'Accounting' tab - do nothing here

* On 'Device' tab select the proper modem device like ttyS1(com1), ttyS2 (com2)
* On 'Modem' tab 'Query Modem' to see the results. If no results come up, go to
  device tab and pick the proper device.
* Enter login ID and password and connect.

After doing the above steps, you would have connected to internet. To test do:
-------------------------------------------------------------------------------

  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

-------------------------------------------------------------------------------
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'

2.1 Troubleshooting ISP Connection

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:
-------------------------------------------------------------------------------

  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

-------------------------------------------------------------------------------
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:
-------------------------------------------------------------------------------

  bash$ ping www.yahoo.com
  If connection is okay, then do:
  bash$ su - root
  # ifconfig eth0 up
  # ifconfig eth1 up
  # ifconfig eth2 up
  # ifconfig

-------------------------------------------------------------------------------
If you still have problems then refer to the KPPP user guides and FAQs as
below:
-------------------------------------------------------------------------------

  $ 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

-------------------------------------------------------------------------------

3. Quick Steps to Dialup Networking

These quick steps will enable you to setup dial-up networking on Linux in just
five minutes.
You need the following packages:

* wvdial*.rpm
* ppp*.rpm

You can check with rpm -qa | grep -i wvdial 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 noauth in
wvdial file. The Linux RAS may need different settings. In the sample example
given below, you should replace username john with the user ID given to you to
login into remote RAS server.

  1. Edit the file /etc/wvdial.conf and insert lines like
     --------------------------------------------------------------------------

       [Dialer myconnection]
       Username = john
       Password = passwordofjohn
       Phone = 982 1956
       Area Code = 713
       Inherits = Dialer Defaults
       Stupid mode = 1

     --------------------------------------------------------------------------
     Change john with whatever.
  2. Edit /etc/ppp/pap-secrets and insert lines like
     --------------------------------------------------------------------------

       # Secrets for authentication using PAP
       # client        server  secret                  IP addresses
       john            ppp0    passwordofjohn
       john            *       passwordofjohn

     --------------------------------------------------------------------------
     Change john with whatever.
  3. Edit /etc/ppp/chap-secrets and insert lines like
     --------------------------------------------------------------------------

       # Secrets for authentication using CHAP
       # client        server  secret                  IP addresses
       john            ppp0    passwordofjohn
       john            *       passwordofjohn

     --------------------------------------------------------------------------
     Change john with whatever.
  4. Edit /etc/ppp/options and insert lines like
     --------------------------------------------------------------------------

       lock
       defaultroute
       noipdefault
       idle 1200
       usepeerdns
       proxyarp

     --------------------------------------------------------------------------
  5. Create a new file /etc/ppp/ip-up and insert lines like
     --------------------------------------------------------------------------

       #!/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

     --------------------------------------------------------------------------
  6. Create a new file /etc/ppp/ip-up.local and insert lines like
     --------------------------------------------------------------------------

       #!/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 "  "

     --------------------------------------------------------------------------
     When wvdial is started it automatically starts the pppd 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.
     --------------------------------------------------------------------------

       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

     --------------------------------------------------------------------------
  7. Create a new file /etc/ppp/ip-down and insert lines like
     --------------------------------------------------------------------------

       #!/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

     --------------------------------------------------------------------------
  8. Create a new file /etc/ppp/ip-down.local and insert lines like
     --------------------------------------------------------------------------

       #!/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 "  "

     --------------------------------------------------------------------------
     When pppd is stopped it automatically calls this script to clean up
     whatever ip-up script did. See 'man pppd'.
  9. Edit /etc/ppp/peers/wvdial and insert lines like
     --------------------------------------------------------------------------

       noauth user john
       name wvdial

     --------------------------------------------------------------------------
     Change john with whatever.
 10. If you have an external modem, then just before dialing, switch off/on the
     power to modem to reset it.
     --------------------------------------------------------------------------

       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.

     --------------------------------------------------------------------------
 11. By this step the pppd should have established the routes to remote
     networks with ip-up.local script. Also pppd should have created the /etc/
     ppp/resolv.conf for DNS servers. Now, try connect to remote host and
     verify connections.
     --------------------------------------------------------------------------

       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

     --------------------------------------------------------------------------
 12. To stop the PPP :
     --------------------------------------------------------------------------

       bash$ su - root
       bash# killall wvdial
       bash# killall pppd
       bash# man killall

     --------------------------------------------------------------------------
 13. Now enable non-root user to do dial-up networking with PPP. Make sure that
     the user belongs to the groups `uucp' and `dialout'.
     --------------------------------------------------------------------------

       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

     --------------------------------------------------------------------------
     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'.
 14. See also the frontend tool for wvdial at X-wvdial.
 15. 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 -
     --------------------------------------------------------------------------

       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

     --------------------------------------------------------------------------


 3.1 Troubleshooting

In case you have problems:
-------------------------------------------------------------------------------

  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

-------------------------------------------------------------------------------

 3.2 Graphical Tools

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.
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.
-------------------------------------------------------------------------------

  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 &

-------------------------------------------------------------------------------

4. Remote connection with VNC

Once you have connection through PPP to remote machines, you can use the VNC to
display remote machines on your local display.

* The VNC is at http://www.uk.research.att.com/vnc
* Get VNC rpms from rpmfind.
* The best Window manager for VNC is QVWM which is like MS Windows 98/NT/2000
  interface, get it from http://www.qvwm.org.
* After starting vncserver, you can start the vncviewer program on clients like
  MS Windows, Mac or Linux.
* See also the List_of_X11_Windows_Managers.

Compiling qvwm on Solaris : On Solaris you should install the following
packages which you can get from http://sun.freeware.com - xpm, imlib, jpeg,
libungif, giflib, libpng, tiff. And you can download the binary package for
solaris from http://www.qvwm.org.
Or you can download the qvwm source for solaris from http://www.qvwm.org and
compile it using gcc.
Troubleshooting compile: You should put unsigned long before arg in usleep()
usleep((unsigned long) 10000)

 4.1 Microsoft "MS Outlook" Email from PPP

Method 1 :

  1. At office, start VNC server on your Windows NT/2000 desktop.
  2. Connect from home using modem via PPP.
  3. Once the PPP is established, you can start the vncviewer program. Just
     type /usr/bin/vncviewer.
  4. Enter your office Windows NT/2000 desktop's hostname and vnc password
  5. The entire desktop of your remote office Windows NT/2000 is displayed. Now
     you can read your MS Outlook email.

Method 2 :

* Bynari_InsightClient Go here click on products->Insight Connector Outlook.
  Client for MS Exchange server and MS Outlook,
* CrossOver_Office has MS Outlook,
* Ximian_Connector for MS Outlook/Exchange,
* Ximian_Evolution MS Outlook killer,
* Mahogany rated best
* GNOME_Balsa mail client rated 2nd best
* KDE_KMail rated 3rd best
* PINE rated 4th

Method 3 : Web based

* POSTACI rated best
* SquirrelMail rated 2nd best
* IMP_Horde rated 3rd best ( horde_rpm rated 4th best
* imp_rpm)
* 6XMailer
* Netmania_mail
* NOCC


5. Setup RAS server

For details on RAS please see RAS_Buyer's_Guide and the RAS product 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.

5.1 Stand-alone or Server-Based ?

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.

6. Related URLs


* The best document is : Mandrake_Dial_up_networking
* Suse_PPP_wvdial_document and PPP_categories
* PPP_HOWTO
* PPP-NT-HOWTO
* Modem_HOWTO
* ISP_Hookup_HOWTO:_Chapter_6
* Simple RAS server to provide internet connectivity http://
  simpleras.sourceforge.net
* Linux_PPP_FAQ
* PPP_Design_&_Debugging
* Suomeksi_PPP_page
* Unix_Serial_Port_Resources
* Linux_Dial-in_server - Setup guide.
* List_of_PPP_utilities go here and type "ppp" in the search box.
* General_PPP_and_IPX_over_PPP
* VPN_HOWTO
* VPN-Masquerade_howto
* Java based MindTerm-SSH-HOWTO

Linux goodies main site is at http://24.221.230.253 and secondary site at http:
//www.milkywaygalaxy.freeservers.com Mirror sites are at - angelfire,
geocities, virtualave, Fortunecity, Freewebsites, Tripod, 101xs, 50megs,

7. Other Formats of this Document

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:

* 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.

You can also find this document at the following mirrors sites:

* http://www.caldera.com/LDP/HOWTO
* http://www.linux.ucla.edu/LDP
* http://www.cc.gatech.edu/linux/LDP
* http://www.redhat.com/mirrors/LDP
* Other mirror sites near you (network-address-wise) can be found at http://
  www.linuxdoc.org/mirrors.html select a site and go to directory /LDP/HOWTO/
  xxxxx-HOWTO.html


* You can get this HOWTO document as a single file tar ball in HTML, DVI,
  Postscript or SGML formats from - ftp://www.linuxdoc.org/pub/Linux/docs/
  HOWTO/other-formats/ and http://www.linuxdoc.org/docs.html#howto
* Plain text format is in: ftp://www.linuxdoc.org/pub/Linux/docs/HOWTO and
  http://www.linuxdoc.org/docs.html#howto
* Single HTML file format is in: http://www.linuxdoc.org/docs.html#howto
  A single HTML file can be created with the command (see man sgml2html) -
  sgml2html -split 0 xxxxhowto.sgml
* Translations to other languages like French, German, Spanish, Chinese, and
  Japanese are in ftp://www.linuxdoc.org/pub/Linux/docs/HOWTO and http://
  www.linuxdoc.org/docs.html#howto Any help from you to translate to other
  languages is welcome.

The document is written using a tool called "SGML-Tools" which can be got from:
http://www.sgmltools.org Compiling the source you will get the following
commands like:

* sgml2html xxxxhowto.sgml (to generate html file)
* sgml2html -split 0 xxxxhowto.sgml (to generate a single page html file)
* sgml2rtf xxxxhowto.sgml (to generate RTF file)
* sgml2latex xxxxhowto.sgml (to generate latex file)


 7.1 Acrobat PDF format

A PDF file can be generated from postscript file using either acrobat distill
or Ghostscript. And a postscript file is generated from DVI which in turn is
generated from a LaTex file. You can download distill software from http://
www.adobe.com and from unix and from windows . Given below is a sample session:
-------------------------------------------------------------------------------

  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 &

-------------------------------------------------------------------------------
Or you can use the Ghostscript command ps2pdf. 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. ps2pdf is implemented
as a very small command script (batch file) that invokes Ghostscript, selecting
a special "output device" called pdfwrite. 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.

 7.2 Convert Linuxdoc to Docbook format

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 ld2db.sh and some Perl scripts. The ld2db output
is not 100% clean and you need to use the clean_ld2db.pl Perl script. You may
need to manually correct a few lines in the document.

* Download the ld2db program from http://www.dcs.gla.ac.uk/~rrt/docbook.html or
  from Milkyway_Galaxy_site
* Download the cleanup_ld2db.pl perl script from from Milkyway_Galaxy_site

The ld2db.sh is not 100% clean, so you will get some errors when you run it.
-------------------------------------------------------------------------------

          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

-------------------------------------------------------------------------------
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>

 7.3 Convert to MS WinHelp format

You can convert the SGML howto document to a Microsoft Windows Help file, First
convert the sgml to html using:
-------------------------------------------------------------------------------

          bash$ sgml2html xxxxhowto.sgml     (to generate html file)
          bash$ sgml2html -split 0   xxxxhowto.sgml (to generate a single page
  html file)

-------------------------------------------------------------------------------
Then use the tool HtmlToHlp. You can also use sgml2rtf and then use the RTF
files for generating winhelp files.

 7.4 Reading various formats

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:


               xdvi -geometry 80x90 howto.dvi
               man xdvi


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.

* Get ghostscript for Windows 95, OS/2, and for all OSes from http://
  www.cs.wisc.edu/~ghost

To read a postscript document give the command:


                       gv howto.ps
                       ghostscript howto.ps


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.

 7.5 Convert HTML to SGML html2sgml

To convert any HTML document to Linuxdoc SGML use the tool 'html2sgml' from
http://www.abc.se/~m9339/prog/html2sgml.html.

8. Copyright

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.

9. Appendix A Connecting Linux + PPP < -- > NT + RAS...

This section is written by John Newbigin, Email: jn@it.swin.edu.au Below is
extract from http://uranus.it.swin.edu.au/~jn/linux/ppp/linuxppp.htm
See also PPP_HOWTO

* Part 1... The easy bit : 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.
* Part 2... The harder bit : 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:

  o auth #This will demand that the NT machine authenticate it's self to your
    machine, this is generally not possible, or needed
  o +pap #This will demand that the NT machine authenticates it's self using
    PAP, see above
  o -pap #This says that you won't agree to use PAP
  o +chap #This will demand that the NT machine authenticates it's self using
    CHAP, see above

  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.
* Part 3... The hardest bit (without this document) : 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:
  -----------------------------------------------------------------------------

    "" * ""
    "jn" * "MyPassword"

  -----------------------------------------------------------------------------
  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)
  -----------------------------------------------------------------------------

    "" * ""
    "csse-mm\\jn" * "MyPassword"

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

    name "jn"
    or
    name "csse-mm\\jn"

  -----------------------------------------------------------------------------
  depending what you put in the pap-secretes file.
* Part 4... Another easy bit : 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 ( jn@it.swin.edu.au ).