Membuat Dial-in Callback server
Apa itu dialin and callback server? Bagi newbie
seperti saya (pada saat mengenal computer) tentu saja merupakan kata
yang langka. Sederhananya dialin server adalah
sebuah server yang melayani client dialup melalui jalur/line
telephone menggunakan protokol pptp.
Note: Tulisan ini adalah sumbangan dari salah seorang contributor kami dengan nick Schatje. Thanks.
In a PPP dialin server setup, users dial in through a
telephone line and modem to establish a PPP connection with a remote
server. It is possible to make a Linux box call back the user who
dialed the server. This document describes the step-by-step procedure
to set up a Linux-based callback server.
Ok..saya tidak akan memberi penjelasan panjang lebar
apa itu dialin server.. mari melanjutkan ke tahap berikutnya.
Kebutuhan Software (pre configuration)
Kebetulan OS yang saya pakai ada Fedora yang
merupakan turunan langsung dari redhat :
redhat:~# uname -a
Linux redhat 2.6.14.3 #1 Tue
Dec 13 19:28:51 SGT 2005 i686 i686 i386 GNU/Linux
PERHATIAN: Anda memerlukan hak root/superuser untuk
melakukan ini!
Pertama-tama pastikan
bahwa di system anda telah ada paket-paket berikut:
-
pppd
-
mgetty Untuk melihat apakah paket tersebut sudah ada di
system kita, lakukan:
redhat:~# whereis pppd
pppd:
Jika hasilnya seperti di atas, berarti paket pppd
belum terinstall di system anda, maka saya (memakai Redhat Family)
melakukan instalasi memakai rpm saja:
redhat:~# rpm -ivh ppp-2.4.2-6.4.FC3.i386.rpm
Berikutnya, kita check apakah paket mgetty
sudah ada. Sekali lagi lakukan :
redhat:~# whereis mgetty
mgetty:
Sama seperti sebelumnya, paket mgetty belum
terinstall.
redhat:~# rpm -ivh mgetty-1.1.31-4_FC3.i386.rpm
Sekarang semua paket yang dibutuhkan sudah terinstall
di system, mari kita lanjutkan ke tahap berikutnya.
Jika anda menggunakan distro lain, silahkan
menggunakan paket sesuai dengan distro anda!
Kebutuhan Hardware (modem)
Dalam hal ini saya menggunakan External modem yang
terhubung ke COM1 di computer, ini berarti /dev/ttyS0
di Linux. Jika anda menggunakan COM2 ini berarti /dev/ttyS1.
Pastikan bahwa modem yang anda gunakan telah di support oleh Linux.
Jika anda menggunakan softmodem (internal modem) yang menggunakan
chipset conexant, silahkan meluncur ke http://www.linuxant.com.
Saya tidak akan membahas bagaimana cara meng-install driver softmodem
tersebut, karena saya tidak mempunyai banyak waktu untuk melakukan
percobaan.
Setelah menghubungkan kabel data modem ke port COM1,
saya jalankan perintah:
redhat:~# kudzu
Maka kudzu akan mendeteksi apakah ada hardware baru
(dalam hal ini modem) yang terhubung ke system kita.
Configurasi (dialin)
Berikut adalah step-by-step yang saya lakukan
1. Buat group ppp dan user pppuser:
redhat:~# groupadd -g 96 ppp
redhat:~# useradd
pppuser -u 96 -g 96 -s /usr/sbin/ppplogin
2. Buat file /usr/sbin/ppplogin yang isinya:
#!/bin/sh
#/etc/ppp/ppplogin
# PPP login
script
mesg n
stty -echo
exec /usr/sbin/pppd -detach modem
debug crtscts
3. Set access attributes file /usr/sbin/ppplogin
yang barusan dibuat:
redhat:~# chmod 750 /usr/sbin/ppplogin
redhat:~#
chown root:ppp /usr/sbin/ppplogin
4. Set access attributes directory /etc/ppp
(optional):
redhat:~# chmod 775 /etc/ppp
redhat:~# chown
root:root -R /etc/ppp
5. Set access attributes file /usr/sbin/pppd:
redhat:~# chmod 750 /usr/sbin/pppd
redhat:~#
chmod u+s /usr/sbin/pppd
6. Tambahkan entry berikut di file /etc/inittab
jika modem anda terkoneksi di COM1:
S0:2345:respawn:/sbin/mgetty ttyS0 -D /dev/ttyS0
Atau, jika modem terpasang juga di COM2:
S1:2345:respawn:/sbin/mgetty ttyS1 -D /dev/ttyS1
7. Restart init.
redhat:~# init q
8. Tambahkan entry berikut di file
/etc/mgetty/login.config:
/AutoPPP/ – – /usr/sbin/pppd auth +pap -chap login
-detach
Untuk baris lainnya silahkan dicomment.
9. Buat file /etc/ppp/options.ttyS0 jika
modem anda di COM1 atau /etc/ppp.options.ttyS1 jika anda
menggunakan COM2, yang isinya:
192.168.76.254:192.168.76.99
debug
Keterangan: baris pertama kolom pertama isi dengan IP
server anda, kolom kedua diisi alokasi IP untuk client ppp anda
Silahkan sesuaikan dengan IP di network anda.
10. Edit file /etc/ppp/options:
#lock (default)
-detach
asyncmap
0
modem
crtscts
proxyarp
lock
require-pap
refuse-chap
ms-dns
192.168.76.254 # Isi IP DNS 1
ms-dns 202.51.209.6 # Isi IP DNS
2
usepeerdns
11. Edit file /etc/ppp/pap-secrets:
# Secrets for authentication using PAP
# client
server secret IP addresses
pppuser * password *
12. Sekarang silahkan dicoba dialup ke server kita
dari client. Jika client menggunakan System Operasi Windows silahkan
buat koneksi melalui dial up networking, login menggunakan username:
pppuser dan password: password Pastikan sampai dilangkah ini koneksi
dari client ke server sudah jalan, check apakah client sudah
mendapatkan IP (contoh) 192.168.76.99
Jika sudah sukses pada tahap
ini, mari kita lanjutin untuk setting callback nya, jika belum
mungkin ada yang terlewati, silahkan check lognya.
Configurasi CallBack (Server)
Jika dial in sudah berjalan sempurna, sebenarnya
setting callback sangat mudah, tidak seperti yang saya bayangkan
sebelumya 🙂
Berikut adalah tahap yang dilakukan:
1. Buat user back.
redhat:~# useradd back
2. Buat file kosong /ete/mgetty/callback.conf.
redhat:~# touch /ete/mgetty/callback.conf
3. Edit file /etc/mgetty/login.config
tambahkan entry berikut :
back – – /usr/sbin/callback -S 12011976
12011976 adalah tanggal lahir saya :)… hehehhe yang
benar itu nomor tujuan yang akan dicallback oleh si server, jadi isi
saja nomor telp rumah anda, bukankah tujuannya agar kita bisa main
internet sambil memonitor jaringan/computer di kantor dari rumah,
tapi pulsa kantor yang bayar 😀
4. Selesai
Configurasi untuk callback server
sampai di sini. Dan ini dijamin berjalan. Sekarang yang perlu
dilakukan adalah configurasi di sisi client.
Configurasi CallBack (client Windows)
Sebagai client saya menggunakan OS Windows XP
professional, tapi configurasinya sama untuk versi Windows lainnya.
1. Jalankan control panel, kemudian buka
Phone and modem options. Di tab modems pilih modem
yang akan digunakan (jika terdapat lebih dari 1 modem) untuk
melakukan koneksi ke callback server dan click Properties.
Sekarang masuk ke tab advanced, masukan entry berikut
dibagian extra initialization commands.
&c0s0=1
2. Masih dalam Control Panel click Network
Connetions, click kanan di koneksi dialup yang sudah kita buat
pilih Properties masuk ke tab Security dan check
options Show Terminal Window di bagian Interactive logon
and scripting
3. Sekarang coba jalankan koneksi dialup,
Setelah
terkoneksi dengan server, maka akan muncul After Dial Terminal
window, yang meminta kita untuk memasukan username, ketik back
dan tekan enter:
Fedora Core release 3 (Heidelberg)
Kernel
2.6.14.3 on an i686
redhat login:back
Dialing
continues in the background, all further messages will
be written
to the logfile ‘/var/log/mgetty.log.callback’.
Please look there
for errors / diagnostics.
NO CARRIER
Sampai di sini, server akan melakukan pemutusan
koneksi dengan client secara otomatis, selang beberapa detik (sekitar
35 detik), server akan melakukan panggilan ke nomor yang telah kita
set pada file /etc/mgetty/login.config. Berikut tampilan
lengkap yang muncul di After Dail Terminal Window
Fedora Core release 3 (Heidelberg)
Kernel
2.6.14.3 on an i686
redhat login:back
Dialing
continues in the background, all further messages will
be written
to the logfile ‘/var/log/mgetty.log.callback’.
Please look there
for errors / diagnostics.
NO CARRIER
RING
CARRIER
33600
PROTOCOL: LAP-M
COMPRESSION: V.42BIS
CONNECT
33600
Connection established, please wait…
…ok
Fedora
Core release 3 (Heidelberg)
Kernel 2.6.14.3 on an i686
redhat
login:
Perhatian: Jika terminal line in dari telkom
terpasang juga (parallel) dengan pesawat telephone, maka pada saat
muncul tulisan RING di atas, pesawat
telephone anda akan berdering, jangan diangkat!!
Pada beberapa modem, RING
akan terjadi selama 3 kali.
Click Done.
Sampai di sini setting callback di
sisi client menggunakan OS Windows selesai.
Configurasi CallBack (client Linux)
Untuk client yang menggunakan linux, mungkin akan
lebih sulit, dan kebetulan saya belum sempat mencoba, jadi silahkan
anda coba sendiri 😀
1. Buat file /etc/ppp/options yang berisi:
lock
defaultroute
noipdefault
modem
115200
crtscts
debug
passive
asyncmap
0
2. Buat file /etc/ppp/peers/pppcallback yang
berisi:
ttyS1 19200 crtscts
connect ‘/usr/sbin/chat -v -f
/etc/ppp/chat-callback’
noauth
3. Buat file /etc/ppp/chat-callback yang
berisi:
ABORT BUSY
ABORT VOICE
ABORT "NO
DIALTONE"
ABORT "NO ANSWER"
"" ATZ
OK
ATDT123456 # Telephone number of server
CONNECT \d\d
ogin:
\q\dback
TIMEOUT 90
RING AT&C0S0=1
ogin:
\q\dpppuser
assword: \q\dpassword
Sesuaikan isi file di atas sesuai dengan nomor
telephone yang dipasang dimodem server (dial-in server). Juga
username dan password disesuaikan dengan username dan password yang
anda telah buat di server.
Pada beberapa modem mungkin anda perlu
mengganti ATZ dengan AT&FX2
4. Buat file /usr/bin/pppcall yang berisi:
#!/bin/bash
/usr/sbin/pppd -detach call pppcall &
5. Set access attributes file tersebut agar
executable
redhat:~# chmod 755 /usr/bin/pppcall
Sekarang anda bisa melakukan dialup ke server dengan
menjalankan file /usr/bin/pppcall
Troubleshooting
Jika anda belum/tidak berhasil, sudah bisa dipastikan
ada yang terlewati, silahkan ulangi dari tahap pertama, silahkan
check log /var/log/mgetty.log.callback juga
/var/log/mgetty.log.ttyS0 atau /var/log/mgetty.log.ttyS1
jika modem anda terpasang pada COM2, anda juga bisa menghubungi saya
di e-mail
jika ada pertanyaan seputar HOW TO ini.
About author
Author HOW TO ini adalah saudara Tomas
Vilda, silahkan contact dia di webmaster at stilius.net
jika anda menemui kesulitan. Pada beberapa bagian saya tambahkan
berdasarkan tulisan saudara Sunil
Thomas Thonikuzhiyil. Saya sendiri adalah seorang newbie yang
bekerja sebagai Administrator di Royal
Resorts.
Copyrigth
This document is copyrighted to Tomas Vilda. You can
use it in all ways, but don’t change this section and allways include
it.
This tutorial was last update on 2003 11 14. You can
allways find newest version on here
Note: Thanks Schatje atas tutorial yang sangat menarik ini. Sering2 nulis yah!