ทำ ppp server

สมมุติว่าเรามีอินเทอร์เน็ตความเร็วสูงอยู่ที่สำนักงานอยู่แล้ว และต้องการหมุนโมเด็มเข้าไปเพื่อใช้งานอินเทอร์เน็ตที่สำนักงาน ก็ต้องทำเครื่องเซิร์ฟเวอร์ที่สำนักงานให้ทำหน้าที่เป็น ppp server หรือ dial-up server

ตามตัวอย่างจะให้เครื่องเรามีไอพีเป็น 192.168.1.1

เริ่มด้วยการติดตั้ง mgetty เพื่อทำหน้าที่รับสายโทรศัพท์

# aptitude install mgetty

เราจะเรียกใช้งาน mgetty ให้เป็น daemon โดยผ่านโปรแกรม init ปรับตั้งที่ไฟล์ /etc/inittab โดยเติมบรรทัดคำสั่งดังนี้

# vi /etc/inittab
  • ถ้าเป็นโมเด็มภายนอก ที่เป็นโมเด็มแท้ อินเทอร์เฟซจะอยู่ที่ /dev/ttyS0 เพิ่มบรรทัด:-
    ...
    S0:2345:respawn:/sbin/mgetty -n6 -x1 -D ttyS0
    ...
    
  • ถ้าเป็นโมเด็มภายนอกแบบ usb เช่น slmodem อินเทอร์เฟซจะเป็น /dev/ttySL0 ใช้คำสั่ง
    ...
    S1:2345:respawn:/sbin/mgetty -n6 -x1 -D ttySL0
    ...
    
  • ถ้าเป็นโมเด็มภายในแบบ hsf ต้องติดตั้งไดรฟเวอร์ที่ linuxant อินเทอร์เฟซจะเป็น /dev/ttySHSF0 ใช้คำสั่ง
    ...
    S2:2345:respawn:/sbin/mgetty -n6 -x1 -D ttySHSF0
    ...
    

-n6 คือ ให้โทรศัพท์ดัง 6 ครั้งจึงจะรับสาย
-x1 คือ debug level 1
-D คือ ให้ระบบทราบว่า mgetty จะใช้งานเพียง data อย่างเดียว ไม่เอา fax
S0, S1, S2 กำหนดเป็นอะไรก็ได้ เพียงอย่าให้ซ้ำกับของระบบเดิมที่มีอยู่แล้ว

ต่อด้วยติดตั้ง ppp (ส่วนใหญ่จะติดตั้งมาแล้ว)

# aptitude install ppp

ปรับตั้งค่าของ pppd ให้มีค่าดังต่อไปนี้

# vi /etc/ppp/options
...
modem
crtscts
proxyarp
lock
ms-dns 192.168.1.1
...

ส่วนใหญ่ จะเป็นค่า default อยู่แล้ว ยกเว้น ms-dns ให้ใส่ไอพีของเครื่องเรา

ปรับตั้งค่าของโมเด็มแต่ละตัว เช่นของโมเด็มภายนอกคือ /dev/ttyS0 ตั้งค่าที่ /etc/ppp/options.ttyS0

# vi /etc/ppp/options.ttyS0
#ServerIP : ClientIP
192.168.1.1 : 192.168.1.11

ตัวเลข 192.168.1.11 คือไอพีที่เรากำหนดให้เครื่องลูกที่โทรเข้ามาที่สายนี้

ในทำนองเดียวกันก็ปรับตั้งค่าให้โมเด็มตัวอื่น ๆ ให้ครบ โดยตั้งชื่อ extensions ของไฟล์ตามชื่ออินเทอร์เฟซ

ปรับตั้งค่าการทำงานของ mgetty หลังจาก login

# vi /etc/mgetty/login.conf
/AutoPPP/ -    a_ppp  /usr/sbin/pppd auth -chap +pap login debug

เป็นค่า default จากเดเบียนอยู่แล้ว

กำหนดชื่อผู้ใช้งาน

# vi /etc/ppp/pap-secrets
  • ถ้าใช้ชื่อผู้ใช้ในระบบ ใช้รูปแบบเป็น
    ...
    #Name Host Password IP
    *    *    ""    *
    ...
    
  • ถ้าจะกำหนดผู้ใช้เฉพาะ สมมุติว่าชื่อ user1 รหัสผ่านเป็น User1Pass
    ...
    #Name Host Password IP
    user1  *    "User1Pass"  *
    ...
    

ตั้งให้ฟอร์เวิร์ดแพคเก็ต

# vi /etc/sysctl.conf
...
net.ipv4.ip_forward  = 1
...

สั่งให้การฟอร์เวิร์ดแพคเก็ตมีผลในทันที

# sysctl -e -p /etc/sysctl.conf

หรือ

#  echo 1 > /proc/sys/net/ipv4/ip_forward

สั่งให้ระบบอ่าน init ใหม่และรัน mgetty เลย

# init q

เสร็จแล้วครับ

อ้างอิง:

Comments

ขอบคุณครับ

ป.ล. ยังไม่เจอโมเดม

Creative Commons License ลิขสิทธิ์ของบทความเป็นของเจ้าของบทความแต่ละชิ้น
ผลงานนี้ ใช้สัญญาอนุญาตของครีเอทีฟคอมมอนส์แบบ แสดงที่มา-อนุญาตแบบเดียวกัน 3.0 ที่ยังไม่ได้ปรับแก้