การคอนฟิก PPP Server (RAS) บน Linux

ระบบ RAS (Remote Access Server) เป็นระบบการให้บริการสื่อสารคอมพิวเตอร์ระยะไกล  คือเป็นเชื่อมต่อจากเครื่องคอมพิวเตอร์ที่ใช้ Dialup Modem ใช้โปรโตคอล PPP (Point-to-point Protocol) ผ่านชุมสายโทรศัพท์สาธารณะเข้าสู่เครือข่ายคอมพิวเตอร์ซึ่งอาจจะเป็น Intranet หรือ Internet ก็ได้ ลักษณะแบบนี้ใช้งานกันมากสำหรับผู้ให้บริการ Internet หรือ ISP ซึ่งอุปกรณ์  RAS ดังกล่าวจะค่อนข้างมีราคาแพง  ถ้าจะเอามาใช้งานในลักษณะที่ไม่เป็นเชิงธุรกิจหรืองานที่ไม่มีรายได้หรือมีรายได้แต่ก็น้อยก็คงจะไม่คุ้มค่ากัน  เช่น สมมุติว่าเรามีเครือข่ายอินเตอร์เน็ตเป็นระบบ LAN  อยู่แล้ว ที่ทำงาน  แต่อยากจะให้สามารถเรียกใช้งานจากที่บ้านผ่าน dialup modem ได้ด้วย ก็ต้องอาศัยบริการของ RAS

เนื่องจากระบบปฏิบัติการ
Linux มีโปรแกรมที่สามารถใช้งานเป็น RAS มาให้แล้ว  ซึ่งบน  linux เรียกว่า PPP Server และเป็นโปรแกรมที่ฟรี (Open Source) ทั้งในส่วนของระบบปฏิบัติการและแอปปลิเคชันที่เป็น RAS ฉะนั้นเราจะต้องเสียเงินไปซื้อระบบ RAS ที่แพง ๆ ทำไมล่ะ ฉะนั้นในบทความนี้จึงขอแนะนำการนำ Linux Server มาทำ RAS หรือ PPP  Server กัน

สมมุติว่าเรามีเครือข่ายดังรูปข้างล่างนะ คือมีระบบ
Internet ที่เป็นแบบ Leased Line อยู่แล้ว (จริง ๆ แล้วจะเป็นบริการแบบอินเตอร์เน็ตแบบ Dialup ก็ใช้ได้เหมือนกันครับ) และต้องการจะให้สามารถเรียกใช้งานอินเตอร์เน็ตจากที่บ้านได้ด้วย  ก็ทำได้ด้วยการเอาเครื่อง PC หรือจะเอาเครื่อง Server ที่สมรรถภาพสูงก็ได้ มาติดตั้งระบบปฏิบัติการ linux เพื่อจะทำเป็น PPP Server และ เอาโมเด็มที่เป็น dialup modem จะเป็น V.90 หรือ V อะไรก็แล้วแต่  จะใช้จำนวนโมเด็มกี่ตัวก็ขึ้นอยู่กับความต้องการของงานครับ ถ้าใช้ไม่เกินสองตัวก็สามารถจะต้องกับ com port ได้เลยครับ  หรือถ้ามากว่า 2 ตัวก็อาจจะหาโมเด็มที่เป็น USB มาเสริมด้วย  หรือถ้าต้องการจำนวนโมเด็มมาก ๆ ก็อาจจะใช้การ์ดที่เขาเรียกกันว่า multiports  device มาใช้ก็ได้  คือการ์ดนี้พอเสียบบน slot ของคอมพิวเตอร์แล้ว สามารถจะขยาย com port ได้หลาย ๆ พอร์ตครับ แต่ในที่นี้ผมขอยกตัวอย่างการใช้งานโมเด็มแค่สองตัว  คือต่อกับ com1 และ com2 แล้วอย่าลืมหาสายโทรศัพท์พร้อมเบอร์มาต่อเข้าที่โมเด็มด้วยนะครับ
 

ติดตั้ง PPP Server
ตอนนี้สมมุติว่าได้มีการติดตั้งในส่วนฮาร์ดแวร์และติดตั้ง
Linux OS เรียบร้อยแล้วนะครับ และในที่นี้ผมขอใช้ RedHat 9.0  สำหรับการอธิบายนะครับ  โปรแกรมที่จะทำหน้าที่เป็น PPP Server มีชื่อว่า mgetty ครับ ในขั้นแรกเราก็ไปตรวจสอบดูก่อนว่ามีการติดตั้งโปรแกรมตัวนี้แล้วยังโดยใช้คำสั่งดังนี้ครับ (ผมตั้งชื่อ hostname เป็น ForTest นะครับ)

[root@ForTest root]#rpm -q mgetty

package mgetty is not installed

ถ้ามีข้อความขึ้นเป็น package mgetty is not installed ก็แสดงว่าโปรแกรม mgetty ยังไม่ได้ติดตั้งนะครับ เนื่องจากโปรแกรม mgetty นั้นอยู่ในแผ่น CD แผ่นที่ 2 ของ RedHat 9.0 ฉะนั้นก็ให้ใส่แผ่น CD แผ่นที่ 2 นะครับ และทำการ mount  CDROM ด้วยการใช้คำสั่งดังนี้ :

[root@ForTest root]# mount /dev/cdrom

จากนั้นให้ติดตั้งโปรแกรม mgetty ดังนี้ :

[root@ForTest root]#rpm -ivh /mnt/cdrom/RedHat/RPMS/mgetty-1 กด [Tab] [Enter]

เมื่อติดตั้งเสร็จแล้วลองตรวจสอบ package ดูดังนี้:

[root@ForTest root]#rpm -q mgetty
mgetty-1.1.30-2

ถ้ามีการแสดงชื่อโปรแกรมและเวอร์ชันดังข้างบนนี้ก็แสดงว่าติดตั้งเรียบร้อยแล้ว

เริ่มคอนฟิก
mgetty
จะขออธิบายเป็นขั้นตอนดังนี้ :
1.เพิ่ม port ให้โมเด็ม  ด้วยการเข้าไปเพิ่มข้อมูลท้ายไฟล์ในไฟล์ /etc/inittab อาจจะเข้าได้โปรแกรม vi หรือโปรแกรมอื่น ๆ ดังนี้:

[root@ForTest root]#vi /etc/inittab

ให้กด ปุ่มเพื่อ insert ข้อความ ท้ายไฟล์ ซึ่งในที่นี้ใช้โมเด็ม 2 ตัว โดยข้อความที่เพิ่มเป็นดังนี้ :

d1:2345:respawn:/sbin/mgetty -D -s 57600 /dev/ttyS0
d2:2345:respawn:/sbin/mgetty -D -s 57600 /dev/ttyS1


จากนั้นให้กดปุ่ม Esc แล้วก็ปุ่มโคลอน (:) แล้วก็คีย์ wq เพื่อบันทึกข้อมูลลงไฟล์

2.แก้ไขไฟล์
/etc/ppp/options  ซึ่งค่าเดิมมีข้อความเป็น lock ให้เปลี่ยนเป็นดังนี้ :

modem   crtscts    proxyarp    lock
ms-dns   192.168.1.5
ms-dns   192.168.1.10


โดย IP Address ที่ตามหลัง ms-dns เป็น IP Address ของ DNS ที่จะจ่ายให้กับเครื่องที่ dial เข้ามา

3.กำหนดค่า
IP Address ที่จะจ่ายให้เครื่องที่ dial เข้ามา
หมายเหตุ
: ในที่นี้สมมุติว่า มี Network Card อันหนึ่ง บน Linux มี IP  Address เป็น 192.168.1.1

สำหรับโมเด็มตัวที่ 1
ให้สร้างไฟล์
/etc/ppp/options.ttyS0 ถ้าใช้ vi จะเป็นดังนี้ :

[root@ForTest root]#vi /etc/ppp/options.ttyS0

ห้ใส่ข้อความในไฟล์ดังนี้ :

# Server IP   :  Client IP
192.168.1.1  :  192.168.1.11


แล้วให้ทำการบันทึกไฟล์ 
หมายความว่าโมเด็มตัวแรกถ้ามีการเรียกเข้ามาก็จะจ่าย IP Address ให้กับเครื่องที่เรียกเข้ามาเป็นดังนี้ :

IP Address: 192.168.1.11
Gateway : 192.168.1.11
Subnet mask : 255.255.255.255
dns : ตามค่าในข้อ 2

สำหรับโมเด็มตัวที่ 2
ให้สร้างไฟล์ /etc/ppp/options.ttyS1 ถ้าใช้ vi จะเป็นดังนี้ :

[root@ForTest root]#vi /etc/ppp/options.ttyS1

ห้ใส่ข้อความในไฟล์ดังนี้ :

# Server IP   :  Client IP
192.168.1.1  :  192.168.1.12

แล้วให้ทำการบันทึกไฟล์ หมายความว่าโมเด็มตัวที่สองถ้ามีการเรียกเข้ามาก็จะจ่าย IP Address ให้กับเครื่องที่เรียกเข้ามาเป็นดังนี้ :

IP Address: 192.168.1.12
Gateway : 192.168.1.12
Subnet mask : 255.255.255.255
dns : ตามค่าในข้อ 2

4.การทำให้โมเด็มรับสาย ต้องเข้าไปแก้คอนฟิกในไฟล์ /etc/mgetty+sendfax/login.config  ถ้าเป็น vi ก็เป็นดังนี้ :

[root@ForTest root]#vi /etc/mgetty+sendfax/login.config

โดยให้ลบเครื่องหมาย # ที่อยู่หน้าข้อความต่อไปนี้ออกไป

#/AutoPPP/  -    a_ppp    /usr/sbin/pppd  auth -chap  +pap  login debug

แล้วให้ทำการบันทึกข้อมูล

5.กำหนด
Username ที่จะให้ใช้งานได้  โดยให้เข้าไปเพิ่มข้อมูลในไฟล์ /etc/ppp/pap-secrets ซึ่งถ้าต้องการให้ใช้ Username ของระบบที่ได้สร้างไว้จากการ Adduser ก็ให้ใส่เครื่องหมาย "" (เครื่องหมายคำพูดติดกัน) ส่วน IP Address ให้ใส่เครื่องหมาย * ดังตัวอย่างต่อไปนี้

[root@ForTest root]#vi /etc/ppp/pap-secrets

ให้ทำการเพิ่มข้อมูลดังนี้ :

# Secrets for authentication using PAP
# client              server  secret       IP Address
ksorn  *  ""  *
udorn  * ""  *

หรือถ้าต้องการให้ user ของระบบสามารถใช้ได้ทุก user ก็อาจจะใส่เป็นเครื่องหมาย * ดังนี้

*
 *  ""  *

หมายเหตุ เครื่องหมายคำพูดนั้นสองตัวติดกันเลยนะครับ

แล้วให้ทำการบันทึกข้อมูล

6.
Reset Daemon โดยใช้คำสั่งดังนี้ :

[root@ForTest root]#init q

ถ้าไม่มี error ก็ให้ทดลองหมุนโมเด็มได้เลยครับ