HOWTO dialin PPP server, RAS server
First I wanted to say this is not another how to setup your dialup connection to the ISP.:mrgreen:
This doesn't pretend to be a complete howto but I've seen quiet a few posts on this topic in Ubuntu forums unanswered, and it took me a long time to figure it out myself. I'm not an expert on this but it worked for me and hopefully will work for you or at least will get you started. For those who interested in setting up a callback server this is the first step, you will have to edit some more config files, but you will have to do this first. Links to more info and credits are at the end.
Part I . The short version:D on how to get remote access to your Ubuntu box via modem. Install mgetty
Code:
sudo apt-get install mgetty
Add a line at the end of file /etc/inittab
Code:
S0:2345:respawn:/sbin/mgetty ttyS0
If your modem is on COM1.
Initialize init by typing
Now from Win you can use HyperTerminal to connect to your Ubuntu box with your user name/pass.
For those who want more here is a real deal;)
Part II
The problem: Establish PPP connection to Ubuntu server from a remote location using a modem and to share internet connection.
Laptop modem<> Server modem <> Ethernet Router <> Cable/DSL modem <> Internet
Assumptions: drivers for your modems already installed and modem is at ttyS0. I have an external modem attached to COM1 - ttyS0, COM2 will be ttyS1. I didn't have X installed so I was using nano to edit conf files, you can use gedit if you have X installed or any other editor. Make sure your are familiar with the interface of the editor before you start modifying files. Make sure you create backups of the files before you modify them. You will need to use sudo or login as root for most of the tasks. If you don't know how to configure your dial up on your client look for a dial up howto or Ubuntu docs. I also assume that you already have your local nework including routers properly configured and have an access to the Internet from your Ubuntu server.
Part II.a - Dial in configuration
1. If not already installed use synaptic or apt-get to install ppp and mgetty packages. ppp should be already installed by default so
Code:
sudo apt-get install mgetty
2. Create a group ppp by adding a line in file /etc/group 3. Create a new user "pppuser" or whatever you will use for your dial in connection and assign a password by using
Code:
sudo adduser pppuser
edit file /etc/passwd or use to change entry for pppuser to
Code:
pppuser:x:1001:1001:,,,:/home/pppuser:/usr/sbin/ppplogin
4. Add a line to the file /etc/inittab
Code:
S0:2345:respawn:/sbin/mgetty ttyS0
for modem on ttyS0. Or
Code:
S1:2345:respawn:/sbin/mgetty ttyS1
for modem on ttyS1 That will let mgetty to accept incoming calls
5.Make a new file /usr/sbin/ppplogin and add the following in there
Code:
#!/bin/sh
#/etc/ppp/ppplogin
# PPP login script
mesg n
stty -echo
exec /usr/sbin/pppd -detach modem debug crtscts
6. Set access to the ppplogin file and etc/ppp directory
Code:
chmod 750 /usr/sbin/ppplogin
chown root:ppp /usr/sbin/ppplogin
chmod 775 /etc/ppp
chown root:root -R /etc/ppp
7. Restart init by typing If you're use external modem it should be on before that.
8. Open file /etc/mgetty/login.config Comment out everything in there and add a line
Code:
/AutoPPP/ - a_ppp /usr/sbin/pppd file /etc/ppp/options
9. Open file /etc/ppp/options and make sure these lines are uncommented. If anything else is uncommented it probably should be commented.
Code:
-detach
asyncmap 0
modem
crtscts
proxyarp
lock
require-pap
refuse-chap
ms-dns 192.168.1.1 #put your dns server ip here
usepeerdns
In my case the ms-dns entry had an ip of my router, if you using Linksys router it's 192.168.1.1 by default unless you changed it.
10. Create a file /etc/ppp/options.ttyS0 for the modem on ttyS0 and add following in there
Code:
192.168.1.3:192.168.1.201
noauth
Where first address is the address of your server for ppp connection which I think, should be different from your eth ip. The second address is the address that will be assigned to the client when connection is established. It will probably make life easier, unless you know what you doing, if all those addresses on the same subnet as your other computers on the network. (ip starts with the same 192.168.1.x numbers)
You can substitute for a line, this way it will log some info about you connection in a syslog.
11. Edit file /etc/ppp/pap-secrets
find a line after
Code:
# Every regular user can use PPP and has to use passwords from /etc/passwd
It should look something like that
substitute hostnatname with * so it looks like that
If you don't do that pap will not authenticate you and you'll be immediately disconnected.
Now you're able to connect using dial-up connection from you laptop or a remote office into your Ubuntu server and use ssh or putty if you're using Win.
Part II.b - Accessing internet from a remote client
I'm sure there other or better solutions to that, but that was easy enough and it worked for me.
Code:
sudo apt-get install ipmasq
Done. ipmasq automatically senses all your interfaces and initializes IP Masquerade forwarding/firewalling and allows you to connect to the rest of your network and the Internet.
I didn't have to do any more configurations for that.
Credits: Part I was inspired by debenham http://www.ubuntuforums.org/member.php?u=21302 in his answer to benson in http://www.ubuntuforums.org/showthread.php?t=65012
Part II and for more information
http://linuxgazette.net/issue77/sunil.html - Setting Up a Linux-based PPP Callback server
and http://tvilda.stilius.net/callback_en.php - Debian PPP dialin and callback server
http://www.aboutdebian.com/ - Some info on networking and other topics
http://www.debian.org/
http://qref.sourceforge.net/ - Debian reference
Those of you who are interested in setting up a callback server need to read links above. If security is a concern or you're in a business environment you should probably have a different setup.
Good luck
Alex
Re: HOWTO dialin PPP server, RAS server
Thanks for the HOWTO Alex, I wanted to add a couple of remarks here since I had an awful time getting mgetty to work correctly for me, eventually compiling mgetty on Slackware before I figured out what wasn’t working. Maybe it’s modem-specific (I am using a Multitech MT5600ZDX), but my modem would never pick up correctly. The mgetty log files showed the modem returning NO CARRIER instead of the CONNECT string, mgetty would then bail and respawn, here is an excerpt from the log file (/var/log/mgetty/mg_ttyS0.log):
01/25 23:34:29 yS0 waiting for line to clear (VTIME=1), read:
01/25 23:34:29 yS0 send: \dATQ0V1H0[0d]
01/25 23:34:30 yS0 waiting for ``OK''
01/25 23:34:30 yS0 got: ATQ0V1H0[0d]
01/25 23:34:30 yS0 CND: ATQ0V1H0[0d][0a]OK ** found **
01/25 23:34:30 yS0 send: AT[0d]
01/25 23:34:30 yS0 waiting for ``OK''
01/25 23:34:30 yS0 got: [0d]
01/25 23:34:30 yS0 CND: OK[0a]AT[0d]
01/25 23:34:30 yS0 CND: AT[0d][0a]OK ** found **
01/25 23:34:30 yS0 waiting for line to clear (VTIME=3), read: [0d][0a]
01/25 23:34:30 yS0 removing lock file
01/25 23:34:30 yS0 waiting...
01/25 23:35:22 yS0 select returned 1
01/25 23:35:22 yS0 checking lockfiles, locking the line
01/25 23:35:22 yS0 makelock(ttyS0) called
01/25 23:35:22 yS0 do_makelock: lock='/var/lock/LCK..ttyS0'
01/25 23:35:22 yS0 lock made
01/25 23:35:22 yS0 wfr: waiting for ``RING''
01/25 23:35:22 yS0 got: [0d][0a]RING[0d]
01/25 23:35:22 yS0 CND: RING
01/25 23:35:22 yS0 wfr: rc=0, drn=0
01/25 23:35:22 yS0 CND: check no: 'none'
01/25 23:35:22 yS0 send: ATA[0d]
01/25 23:35:22 yS0 waiting for ``CONNECT''
01/25 23:35:22 yS0 got: [0d]
01/25 23:35:24 yS0 CND: OK[0a]NO CARRIER
01/25 23:35:24 yS0 found action string: ``NO CARRIER''
01/25 23:35:24 ##### failed A_FAIL dev=ttyS0, pid=4661, caller='none', conn='', name=''
Long story short, what I finally figured out is that mgetty isn’t sending the correct init string to the modem, so it apparently doesn’t know that it is supposed to CONNECT when the phone rings. The problem init line (highlighted in blue) contains only “AT”; to get the modem to pick up I had to make mgetty send “ATS0=0Q0&D3&C1” instead. The default value for this string is hardcoded at compile-time, but we can use the init-chat parameter in /etc/mgetty/mgetty.config to specify the entire init sequence. I replaced the contents of mgetty.config with the following:
data-only YES
init-chat "" \dATQ0V1H0 OK ATS0=0Q0&D3&C1 OK
When I restarted mgetty and dialed in the modem picked up immediately and connected, bringing me straight to a login prompt.
I hope this helps other people who are banging their heads on the wall.
Re: HOWTO dialin PPP server, RAS server
First, thanks to both of the posters above, this information helped a lot!
I did run into a problem with Ubuntu 6.10:
Quote:
4. Add a line to the file /etc/inittab
Code:
S0:2345:respawn:/sbin/mgetty ttyS0
This step threw me since Ubuntu 6.10 no longers has an inittab. Instead of this step I had to do the following:
1. Add a file named mgetty to /etc/event.d with:
Code:
start on runlevel-2
start on runlevel-3
start on runlevel-4
start on runlevel-5
stop on shutdown
respawn /sbin/mgetty ttyS0
Once I added that file, I rebooted my machine and the PPP server worked flawlessly. So I hope this helps someone! :biggrin:
Re: HOWTO dialin PPP server, RAS server
Be carefull if using PPPOE for ADSL with the above settings.
Setting "-detach" in the /etc/ppp/options causes the pppoe_on_boot to stop the boot process.
I resolved this by placing all the options suggested above into the /etc/ppp/options.ttyS0 file instead.
Best of luck.
Re: HOWTO dialin PPP server, RAS server
thanks for the howto.
running ubuntu 7.04 feisty fawn
followed nerdcentric's post and nothing!
finally got it working with these
1. Add a file named ttyS0 (instead of mgetty) to /etc/event.d with:
Code:
start on runlevel 2
start on runlevel 3
start on runlevel 4
start on runlevel 5
stop on shutdown
respawn
exec /sbin/mgetty ttyS0
note the slight syntax changes vs. nerdcentric's ubuntu 6.10.
Re: HOWTO dialin PPP server, RAS server
I have feisty fawn and used the HOWTO dialin PPP server, RAS server.
I an not having any luck initializing the modem. I am using an external modem: BEST DATA 56K on a test sever. I followed all the suggestions in the HOWTO dialin PPP server,but, when I try to dialin from a laptop with a cell phone, the modem dose not pickup. Does anyone have any suggestions?
Thanks,
virtgrav
P.S.
The modem is on ttyS1. When I try the KPPP, it initializes the modem and dials out.
Re: HOWTO dialin PPP server, RAS server
Quote:
Part II.b - Accessing internet from a remote client
I'm sure there other or better solutions to that, but that was easy enough and it worked for me.
Code:
sudo apt-get install ipmasqDone. ipmasq automatically senses all your interfaces and initializes IP Masquerade forwarding/firewalling and allows you to connect to the rest of your network and the Internet.
I didn't have to do any more configurations for that.
I have "upgrade'd" & "update'd" my linux 6.06 server box, allowed all repositories. But i still get and error when i do "sudo apt-get install ipmasq"
Everything has worked for my up to this point so i am not sure what is going on.
Any Help??
Re: HOWTO dialin PPP server, RAS server
Quote:
Originally Posted by
virtgrav
I have feisty fawn and used the HOWTO dialin PPP server, RAS server.
I an not having any luck initializing the modem. I am using an external modem: BEST DATA 56K on a test sever. I followed all the suggestions in the HOWTO dialin PPP server,but, when I try to dialin from a laptop with a cell phone, the modem dose not pickup. Does anyone have any suggestions?
Thanks,
virtgrav
P.S.
The modem is on ttyS1. When I try the KPPP, it initializes the modem and dials out.
I haven't been using this configuration for a while now, but I do remember a lot of little things could make a difference. Also some modems could require additional configuration commands. Try resetting your modem to factory settings first, look at different AT commands that might enable your modem to answer. It wouldn't matter if it doesn't pick up whether you dial from a laptop with a cellphone or any other phone. I used external US Robotics and it worked fine out of the box.
Re: HOWTO dialin PPP server, RAS server
Quote:
Originally Posted by
bigdaddyweed
I have "upgrade'd" & "update'd" my linux 6.06 server box, allowed all repositories. But i still get and error when i do "sudo apt-get install ipmasq"
Everything has worked for my up to this point so i am not sure what is going on.
Any Help??
Perhaps you can post your error.
Cell phone as dial-in modem
Should it be possible to use my cell-phone connected to my server at /dev/ttyUSB0 as the answering internet-sharing modem? That would be very interesting since in norway there are cell-phone subscriptions that allow free calls between selectable numbers. I currently have my Nokia 7250i connected to my ubuntu server (DKU-5 cable). What do you guys think about this?