However, callback from Linux box to different clients can be organized quite easily without CBCP, if you use mgetty. Then you can start PPP after callback. No need in additional software, utilite callback from mgetty package enough. You have only edit /etc/mgetty/login.config and modify Windows client side.
It works with Linux, DOS (telix), Win3.11 (with Shiva dialler or Trumpet Winsock), Win95, Win98 (WinNT don't checked yet). Here is running Debian Linux, so users of other distributions have to check placement of configuration files. Thanx to Eloy A. Paris for help preparing this page.
You can also try another callback solutions:
Here is descriebed, how callback works with Windows and Linux, which both uses scripts. Without script (say DOS with telix) you have to get commands manually.
/usr/sbin/pppd call provider
connect "/usr/sbin/chat -v -f /etc/chatscripts/provider"
It is very important that before callback hangs the call, the modem in the client's box does not tell to chat that the call has been dropped. Otherwise, chat will abort everything (because it thinks the call was dropped with no reason). It's made by sending to the modem command AT&C. It makes the modem to report the Carrier Detect line is always active. chat looks at this line to know if the communication between modems is established or not. In practice &C is added to modem init string. To restore modem settings client can send AT&C1A instead of ATA, both works.
Actually you have to edit only /etc/mgetty/login.config by adding there different callback users (but if you want to tune callback parameters like debug level, you can edit also /etc/mgetty/callback.config).
You have to add here line(s) like
Top_Secret_Dialer - - /usr/sbin/callback -S call_to_Mary - - /usr/sbin/callback -S 123456 call_to_Jonh - - /usr/sbin/callback -S 654321
For more security You can also fix phone numbers, where to call by adding of this number to end of configuration line. So you can configure different users with different fixed callback numbers and (if you want) one privileged callback user.
Switch -S forces callback to use the line where callback is started from for dialing out. (callback can make use of multiply modem lines).
NB! Don't use * instead of some callback user name! In this case mgetty falls to infinite callback and never reach real login.
Actually here's no need to edit this file. Default settings are good enough. If you want, you can adjust here debug level, port speed etc. Here are samples and explanation of options.
On client side you have to add &C to modem init string and edit (or create) dial script (Windows).
Both Linux and Windows clients uses dial scripts. With DOS client (telix) you have to get all conmmands manually. Necessary commands are clearly visible in script for Windows below.
In Windows script client first log on Linux box and then starts pppd. In Linux script /AutoPPP/ is used. Both ways can be used in both scripts, it depends of server configuration, if /AutoPPP/ works.
If you want to use dial script, you have to create it (or edit existing one). Dial script (here named callback.scp) is same for all Windows versions, but placement can vary. In Win3.11 it's usually in c:\iexplore\ directory.
proc main waitfor "ogin: " transmit "Callback_User^M" waitfor "number for callback: " transmit "123456^M" waitfor "RING" transmit "ATA^M" waitfor "ogin: " transmit $USERID transmit "^M" waitfor "assword: " transmit $PASSWORD transmit "^M" waitfor "> " transmit "ppp^M" endproc
Here you have to make two scripts: /etc/ppp/peers/provider for pppd and /etc/chatscript/provider for chat. As you can see, this Linux client supports also IPX over PPP and restores modem settings after callback.
# This file was generated by pppconfig. You can edit the following lines # but please do not delete lines or the change the comments or you will # confuse pppconfig. noauth #pppconfig_noauth connect "/usr/sbin/chat -v -f /etc/chatscripts/provider" #pppconfig_connect debug #pppconfig_debug /dev/ttyS0 #pppconfig_dev 115200 #pppconfig_speed defaultroute #pppconfig_route noipdefault #pppconfig_ipdefault user Real_User #pppconfig_user # End of pppconfig controlled lines. You can add lines below here without # confusing pppconfig. ipx ipxcp-accept-network ipxcp-accept-remote ipxcp-accept-local novj
ABORT BUSY ABORT VOICE ABORT "NO DIALTONE" ABORT "NO ANSWER" "" ATZ OK ATDT987654 CONNECT \d\d ogin: \q\dcback callback: \q1234567 TIMEOUT 90 RING AT&C1A ogin: \q\d/AutoPPP/
This callback looks secure enough, in spite of missing password protection of callback user. Even in case of privileged callback user (who can send phone number, where to call back) it's not less secure than normal dial-up, because callback user isn't real user and callback is started before real login to Linux box.
In case of user with fixed callback number it's more secure than normal dial-up. It's totally useless for alien - he even don't reach normal login prompt.
So for higher security use only callback users with fixed phone numbers. If you want to use privileged callback user too, use some long complicated name. Anyway, callback is not less secure than normal dialup, but rather more secure.