|
9.76 การติดตั้ง Radius
: เพื่อทำเครื่อง Radius server รับบริการ Connect Internet ทางโทรศัพท์ผ่าน External modem
โปรแกรมที่ใช้ install คือ radius-1.16.tar.GZ 27804 Byte
ขั้นตอนการลงโปรแกรม
su
tar xvfz radius-1.16.tar.GZ
cd radius-1.16
cd src
make
จะเกิด error ว่า
radiusd.o: In function `unix_pass':
radiusd.o(.text+0x1c77): undefined reference to `crypt'
collect2: ld returned 1 exit status
make: *** [radiusd] Error 1
จะพบว่า make ไม่ผ่านให้
ให้แก้แฟ้ม Makefile ด้วยคำสั่ง pico Makefile
แล้วแก้บรรทัดหนึ่งใน Makefile
จาก LIBS=
เป็น LIBS= -lcrypt
make
cd ../raddb
pico /etc/services
radius 1645/udp radiusd
radacct 1646/udp
#radius 1812/tcp # Radius
#radius 1812/udp # Radius
#radacct 1813/tcp # Radius Accounting
#radacct 1813/udp # Radius Accounting
umask 22
mkdir /usr/adm
mkdir /etc/raddb /usr/adm/radacct
chmod 700 /etc/raddb /usr/adm/radacct
cp * /etc/raddb
cp ../src/radiusd /etc
cd /etc/raddb
cp clients.example clients
cp users.example users
เพิ่มคำว่า /etc/radiusd ในแฟ้ม /etc/rc.d/rc.local
เพื่อให้ทุกครั้งที่เปิดเครื่องจะสั่ง run radiusd ขึ้นมา
ให้แก้แฟ้ม users โดยลบ user อื่นออกให้หมด เพื่อต่อไปจะถาม user จาก /etc/passwd
ให้แฟ้ม /etc/raddb/users เหลือเฉพาะส่วนข้างล่างนี้
ให้แก้แฟ้ม /etc/raddb/users ให้เป็นไปดังข้างล่างนี้จะรับระบบโทรศัพท์ได้
DEFAULT Password = "UNIX"
User-Service-Type = Login-User,
Framed-Protocol = PPP,
Framed-Netmask = 255.255.255.0,
Framed-Routing = Broadcast-Listen,
Framed-Compression = Van-Jacobsen-TCP-IP,
Framed-MTU = 1500
แฟ้ม /etc/raddb/users สามารถเขียนได้อีกรูปแบบเพื่อบริการ Modem
ที่เข้ามาสอบถาม user แต่ตัว modem ไม่ได้ติดอยู่กับตัวเครื่อง
yonokadmin Password = "123"
User-Service-Type = Shell-User,
Login-Service = Telnet,
yonok Password = "456"
User-Service-Type = Shell-User,
Login-Service = Telnet,
student1 Password = "789"
User-Service-Type = Login-User,
Framed-Protocol = PPP,
Framed-Address = 255.255.255.254,
Framed-Netmask = 255.255.255.255,
Framed-Routing = None,
Framed-Filter-Id = "std.ppp.in",
Framed-MTU = 1500,
student2 Password = "17890"
User-Service-Type = Login-User,
Framed-Protocol = PPP,
Framed-Address = 255.255.255.254,
Framed-Netmask = 255.255.255.255,
Framed-Routing = None,
Framed-Filter-Id = "std.ppp.in",
Framed-MTU = 1500
เมื่อต้องการเก็บข้อมูลการ login เข้ามาใช้บริการ
ต้องสร้าง user ใหม่ด้วย useradd radius จะสร้างห้อง /home/radius ขึ้นมาให้ ดังข้างล่างนี้ก่อน
su
useradd radius
cd /home/radius
mkdir backup
สร้าง runacct เก็บในห้อง /home/radius
เขียน shell script สำหรับเก็บผลการ login ผ่านเข้ามาในระบบ
เมื่อเขียนเสร็จแล้วให้ใช้คำสั่ง chmod 700 เพื่อให้เป็นโปรแกรมประมวลผล
(ตอนแรกผมก็ไม่รู้ว่า detail นั้นอยู่ที่ไหน เจอเพราะใช้ find / -name detail ครับ)
#!/bin/sh
cp /usr/adm/radacct/door.yonok.ac.th/detail /home/radius
/bin/date +%d > /tmp/date
/bin/date +%m > /tmp/month
/bin/date +%y > /tmp/year
DATE=`cat /tmp/date`
MONTH=`cat /tmp/month`
YEAR=`cat /tmp/year`
TODAY="$DATE$MONTH$YEAR"
cd /home/radius
cp detail backup
mv detail $TODAY
cd /tmp
rm date month year
rm /usr/adm/radacct/door.yonok.ac.th/detail
ห้อง /etc/cron.daily
ให้เพิ่มแฟ้มอีก 1 แฟ้มในห้อง /etc/cron.daily โดยมีขั้นตอนดังนี้
su
pico radiusprocess
พิมพ์คำนี้ลงไป /home/radius/runacct แล้ว ctrl-x ออกมาเลย
chmod 755 radiusprocess
สรุปในเรื่องของ Radius ดังนี้
- แฟ้ม /etc/rc.d/rc.loal อาจต้องเพิ่มไป 2 บรรทัด
เพราะแฟ้มนี้ทำหน้าที่เสมือน autoexec.bat ของ dos และคำสั่ง 2 บรรทัดนี้อาจไม่จำเป็นก็ได้ แล้วแต่กรณี
/etc/radiusd
/sbin/ifconfig eth0:1 202.29.78.15
- ห้อง /home/radius มีแฟ้มชื่อ runacct ซึ่งเป็น script สำหรับเก็บข้อมูลการ login ไว้ทำสถิติ
- ห้อง /etc/raddb มีแฟ้มชื่อ users ซึ่งเก็บ account สำหรับ connect เข้ามาทั้งหมด
- ห้อง /etc/cron.daily มีแฟ้มชื่อ radiusprocess เพื่อสั่งให้ประมวลผลแฟ้ม /home/radius/runacct ทุกวัน
- แก้แฟ้ม /etc/raddb/clients ให้มีคำว่า 202.29.78.254 YournameRadiuS แทนคำว่า postmaster1 testing123
จึงจะรับ connection จากชุด Router Modem แต่ถ้าเป็นการ Connect Modem ผ่าน Com port แฟ้มนี้ไม่แก้อะไรก็ใช้ได้
- สำหรับ crond ต้องเปิดด้วย ใช้ ntsysv ดูว่า crond ถูกปิดหรือไม่ ถ้าไม่เปิดก็เก็บประวัติการเข้าใช้ไม่ได้
|