S0t4's Blog

Hanya Catatan dan Mencoba Untuk Berbagi

Wednesday, July 15, 2009

Membuat Dial-in Callback server

  Blogger Sejati       Wednesday, July 15, 2009
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.

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.

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 DNS2
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 /etc/mgetty/callback.conf.
redhat:~# touch /etc/mgetty/callback.conf

3. Edit file /etc/mgetty/login.config tambahkan entry berikut :
back - - /usr/sbin/callback -S 180475 (180475 ini tgl lahir saya he...)

Yang benar itu diisi 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 :D

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

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

Thanks for reading Membuat Dial-in Callback server

Previous
« Prev Post

No comments: