พอดีวันนี้ มีเพื่อนๆ มาถามเรื่อง radius ครับ
พอดีตัวนี้ ผมได้ลอง imp ให้ที่ office ซึ่งจะเค้าอยากได้ app สักตัวที่เอาไว้ authen ของการเข้าไป
ในอุปกรณ์ไว้หน่อย เพื่อเอาไว้เก็บ log หรือ เราสามารถประยุกต์ไปใช้กับพวก authen wireless
เพื่อบริการลูกค้า ร้านเน็ตไรงี้ ก็ได้ ...
"ไหนๆ เขาอยากได้มา เราก็จัดให้เลย"
สำหรับผมใช้กับ freebsd 6.2 ลงพวก apache + php +mysql ก่อนโดย
1.ติดตั้ง cvsup ใช้ในการอัฟเดท port ของ packageครับ โดยผมจะติดตั้งผ่าน pkg_add
#pkg_add -r cvsup-without-gui
รอสักพักครับเมื่อ
#rehash ให้ Freebsd ทำการsearch โปรแกรม ที่อยู่ใน $PATH ใหม่ครับ
เริ่มสั่งให้ update port
#cvsup -g -L 2 /usr/share/examples/cvsup/stable-supfile -h cvsup.th.freebsd.org
ซึ่ง -g คือทำงานในโหมดของ Test Mode
-L 2 คือให้แสดง ข้อความออกมาทาง monitor เป็นแบบ verbose ด้วยถ้าจะไม่ให้แสดงก็ใส่เป็น 0 ครับ
-h คือ Host ที่เราต้องการไป sync update port ด้วยครับ ถ้าของไทยก็ cvsup.th.freebsd.org
ของเว็บ freebsd ก็ cvsup4.FreeBSD.org ครับ
หรือ มีอีกวิธีคือการใช้ ตัว
portsnap ครับ ก็จะใช้วิธีโหลดตัว package มาเป็นก้อนเดียว แล้วเมื่อโหลดเสร็จก็จะทำการ install
ให้ครับ
โดยใช้ คำสั่ง 2 คำสั่งนี้เมื่อเริ่มต้น
#portsnap fetch
#portsnap extract
แล้วใช้คำสั่งนี้ในการ update port ในครั้งต่อไป
#portsnap fetch
#portsnap update
หรือเราจะให้ระบบ update อัตโนมัติก็ไปเขียนใส่ crontab ไว้
0 3 * * * root portsnap -I cron update && pkg_version -vIL=
แค่นี้ก็เรียบร้อย
เสร็จแล้วก็ทำการ Compile kernel ใหม่ครับเพื่อให้เหมาะสมกับทรัพยากรใน server ของเราครับ
และเพื่อความเสถียรและปลอดภัย และใช้งาน ipfw ได้ครับ
ทำการ แก้ไข config ของ kernel เรา โดยใช้ คำสั่ง
#vi /usr/src/sys/i386/conf/PACKETLOVE
เพิ่มข้อลูกเข้าไป ดั่งนี้ครับ
ident PACKETLOVE # ตั้งชื่อ Kernel ของเรา
options SMP # ทำใ้ห้ kernel support
options IPFIREWALL # ทำให้ Kernel support ipfw
options IPFIREWALL_VERBOSE #enable logging to syslogd(
options IPFIREWALL_FORWARD #enable transparent proxy support
options IPFIREWALL_VERBOSE_LIMIT=100 #limit verbosity
options IPFIREWALL_DEFAULT_TO_ACCEPT#allow everything by default
options IPDIVERT #divert sockets
options IPSTEALTH #support for stealth forwarding
หลังจากแก้ไขเสร็จ ให้ backup kernel เก่าและเข้าไปยัง /usr/src และสั่ง compile kernel ครับ
#cp -Rp /usr/src/sys/i386/GENERIC /usr/src/sys/i386/GENERIC.ori
#cd /usr/src
#make -j4 kernel KERNCONF=PACKETLOVE
รอสักพักครับเมื่อเสร็จแล้วให้ทำการเพิ่ม Rule ของ ipfw ดังนี้
#vi /etc/rc.conf
เพิ่ม
ipfw add 100 allow ip from any to any
เพื่อให้สามารถ ออกเน็ตได้ครับ
เสร็จแล้วก็ reboot ไป 1 ครั้งครับแล้ว
แล้วลอง
#uname -a ดูครับ
FreeBSD PooPay.Cute 6.2-STABLE FreeBSD 6.2-STABLE #1: Fri Jun 22 08:11:35 ICT 2007
golf@PooPay.Cute:/usr/obj/usr/src/sys/PACKETLOVE i386
เสร็จแล้วก็เริ่มลง Openssl กับ apache ครับ
ลง apache 2.0.59
#cd /usr/ports/www/apache20
#make install clean
ลง php5
#cd /usr/ports/lang/php5
#make config
Check box เอา Apache + mysql แล้วก็ option module ที่ไม่ต้องเอา ก็ dbm dba เพราะจะทำให้ตัว dialup
ที่ใช้งานเป็น webUI management มีปัญหาครับ เสร็จแล้วก็สั่งเลย
#make install clean
ลง php5-extension
#cd /usr/ports/land/php5-extension
#make install clean
Term of Junning optimize and Configuration
1.apache
#vi /usr/local/etc/apache2/httpd.conf
Timeout 30
KeepAlive Off
MaxKeepAliveRequests 1024
<IfModule prefork.c>
ServerLimit 512
StartServers 4
MinSpareServers 20
MaxSpareServers 40
MaxClients 512
MaxRequestsPerChild 0
</IfModule>
ServerAdmin
golfreeze@packetlove.comServerName localhost:80
DocumentRoot "/home/test/public_html" #เปลี่ยน directory root
<Directory /home/test/public_html> # กำหนด สิทธิ์ของ permission
Options Indexes Includes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
<Directory "/home/test/public_html">
AddDefaultCharset tis-620 #ให้ support ภาษาไทย
AddType application/x-httpd-php .php .php3 #ให้ support file php
AddType application/x-httpd-php-source .phps #ให้ support file php
ลง Mysql-server Client ก็
#cd /usr/ports/databases/myqsl50-server
#make all install clean WITH_CHARSET=tis620 WITH_XCHARSET=all WITH_OPENSSL=yes WITH_NDB=yes
โดยที่
WITH_CHARSET=tis620 เป็นการบอกให้ MySQL เลือก Charset tis620 เป้น Default
WITH_XCHARSET=all บอกให้ mySQL support ทุก charset
WITH_OPENSSL=yes compile mysql ให้ support ssl ด้วย
------------------------------------------------------------------------
เสร็จแล้วก็เริ่มลง freeradius ครับเป็น application radius ใน reebsd ครับ
#cd /usr/ports/net/freeradius
#make config
เอา snmp , ldap , kerboros,mysql
#make install clean
เสร็จแล้วก็เอา dialup_admin.tar.gz มาใช้งานเป็น user interface ผ่านเว็บได้เลย โดย install ไว้ที่
DocumentRoot
ที่ apache เรียกใช้น่ะครับ
#tar zxf dialup_admin.tar.gz
แก้ไข ใน httpd.conf ด้วยครับ
<Directory /home/golf/public_html>
Options Indexes Includes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
#RedirectMatch ^/$ /dialup/htdocs/
Allow from all
AuthName "Restricted Area"
AuthType Basic
AuthUserFile /home/golf/.htpasswd
require valid-user
</Directory>
ต่อไปสร้างไฟล์ .htpasswd ที่ /home/golf โดย
#htpasswd -c /home/golf/.htpasswd usergolf
ใส่ pass ลงไป
ต่อไป import ฐานข้อมูลต้องไปทำใน phpmyadmin เท่านั้น ไม่งั้นจะทำให้ ตารางมีปัญหา ได้ครับ
ของ radius จะมี radius.sql = nas , radacct, radcheck , radgroupcheck , radgroupreply ,radpostauth ,
radreply , usergroup
ของ dialup_admin จะมี 4 ตาราง = badusers , mtotacct ,totacct , userinfo
เท่านี้ก็เรียบร้อย เวลาเข้าเว็บก็
http://xxx.xxx.xxx.xxx/dialup/htdocsครับ login เข้าไปก็จะจัดการ radius ได้หมดครับ