ubuntu 8.04-chilli-freeradius-ez-webmin-logแบบบ้านๆ
TRANSCRIPT
Setup Ubuntu 8.04.1 Server ( ไม่�ต้�อง ต้�อ สาย Lan)
Remark Network Card 2 ใบ
1. Insert Disk Ubuntu 8.04.1 Server Select English
2. Select Install Ubuntu Server
3. Select English
4. Select Other
5. ให้� Select Thailand โดยการกดต้�ว T 5 คร��งนะคร�บ
6. Select No
7. Select Thailand
8. และ Thailand
9. Select Atl+Shift
10. Lan Card Select eth0
11. Select Configure network manually
12. ใส� IP address ต้าม่การใช้�งาน
13. ใส� Netmask ต้าม่การใช้�งาน
14. ใส� Gateway ต้าม่การใช้�งาน
15. ใส� DNS ต้าม่การใช้�งาน
16. ใส� Hostname ต้าม่การใช้�งาน
17. ใส� Domain name ต้าม่การใช้�งาน (ถ้�าไม่�ม่� Continue ไปเลยคร�บ)
18. Select Guided w use entire disk
19. Select All Partition
20. Select Yes For Begin Format
21. Begin Format & Install
22. ใส� Full Name New User
23. ใส� User Name
24. ใส� Password
25. ใส� Password Again
26. Enter ผ่�านไปเลยคร�บ
27. Select LAMP Server & OpenSSH Server
28. ใส� Password Mysql == mysqlroot
29. ใส� Password Mysql Again
30. ทำ"าการต้#ดต้��งต้�อไปคร�บ
31. เร�ยบร�อยแล�วคร�บ เอา CD ออก Select Continue เพื่%&อ Restart
32. ห้ล�งจาก Restart แล�ว Login ด�วย User Password ทำ�&สร�างไว� (ต้�อสาย Lan ได�แล�วคร�บ)
33. ห้ล�งจาก Login ด�วย User Password ทำ�&สร�างไว�
User Password ที่��สร้�างไว้�ไม่�สาม่าร้ถใช้�คำ�าส��งต่�างๆของ root ได้� ลองส�งเกต่ด้�ว้�าจะม่�ต่�ว้ $ ต่�อที่�าย จะต่�องแปลงร้�างเป"น root กอ�นคำร้�บ
# sudo passwd root >>> พิ&ม่พิ'คำ�าส��ง[sudo] password for khoonin: >>> ให้�ใส�ร้ห้�สของย�สเซอร้'ใช้�งานEnter new UNIX password: >>> ใส�ร้ห้�ส root
Retype new UNIX password: >>> ย*นย�นร้ห้�ส root
Passwd: password updated successfully >>> เร้�ยบร้�อยแล�ว้
Setup Network ต้าม่ทำ�&ใช้�งานนะคร�บ
# nano /etc/network/interfaces
auto eth0iface eth0 inet static address 192.168.0.100 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 # dns-* options are implemented by the resolvconf package, if installed dns-nameservers 192.168.0.1
auto eth1 >>> เพิ&�ม่
Save แล�ว Exit ได�เลย
34. ทำดลองออก Internet ด�วย ค"าส�&ง ping www.yahoo.com
Remote Server ด�วย SSH
Login ด�วย SSH เร�ยบร�อย
Update Ubuntu Server
# apt-get update
Upgrade Ubuntu Server
# apt-get -y upgrade
แก�ไข ip_forward
เร้าต่�องที่�าให้�เคำร้*�องน�+ที่�าห้น�าที่��เป"นเร้าเต่อร้'เพิ*�อ Forward packet ที่,กคำร้�+งที่��ร้ �บ�ต่เคำร้*�องให้�แก�ไขแฟ้.ม่ /etc/sysctl.conf
# nano /etc/sysctl.conf
# Uncomment the next line to enable TCP/IP SYN cookies# This disables TCP Window Scaling (http://lkml.org/lkml/2008/2/5/167)#net.ipv4.tcp_syncookies=1
# Uncomment the next line to enable packet forwarding for IPv4#net.ipv4.ip_forward=1 >>> เอา # ข�างห้น�าออก
# Uncomment the next line to enable packet forwarding for IPv6#net.ipv6.ip_forward=1
Save แล�ว Exit ได�เลย
ส�&งทำ"างานโดยไม่�ต้�อง Restart
# echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
คำ�าที่��ต่อบกล�บต่�องได้� 1
เป)ดการทำ"างาน TUN/TAP device
# nano /etc/modules
# /etc/modules: kernel modules to load at boot time.## This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
looplpfusetun >>> เพิ&�ม่
Save แล�ว Exit ได�เลย
ส�&งทำ"างานโดยไม่�ต้�อง Restart
# modprobe tun
Update ว�นเวลาของ Server ให้�ทำ"างานทำ*กคร��งทำ�&เป)ดเคร%&อง
# nano /etc/rc.local
#!/bin/sh -e## rc.local## This script is executed at the end of each multiuser runlevel.# Make sure that the script will "exit 0" on success or any other# value on error.## In order to enable or disable this script just change the execution# bits.## By default this script does nothing.
/usr/sbin/ntpdate time.navy.mi.th >>> เพิ&�ม่
exit 0
Save แล�ว Exit ได�เลย
Thaicert Nectecclock.thaicert.nectec.or.th
ม่าต้รว#ทำยาแห้�งช้าต้#time1.nimt.or.thtime2.nimt.or.thtime3.nimt.or.th
อ*ทำกศาสต้ร, กองทำ�พื่เร%อtime.navy.mi.thtime2.navy.mi.thtime3.navy.mi.th
Setup Chillispot
# apt-get -y install chillispot
IP address of radius server 1: == 127.0.0.1
Radius shared secret: == radiussecret
Ethernet interface for DHCP to listen: == eth1
URL of UAM server: == https://192.168.3.1/uam/hotspotlogin.php
URL of UAM homepage: == https://192.168.3.1/uam/index.php
Shared password between chillispot and webserver: == uamsecret
ต้#ดต้��ง chillispot เร�ยบร�อยแล�วคร�บ
เป)ดการใช้�งาน Chillispot
# nano /etc/default/chillispot
# /etc/default/chillispot## Enable on system start?# Change to 1 if you want it to be enabled.# Please make sure you have configured chillispot first.ENABLED=0 >>> แก�ให้�เป"น ENABLED=1## chillispot default configurationCHILLICFG=/etc/chilli.conf## daemon argumentsDAEMON_ARGS="--conf $CHILLICFG"
Save แล�ว Exit ได�เลย
แก�ไข File Chilli.conf (โดยการค�นห้า)
# nano /etc/chilli.conf
#net 192.168.182.0/24 >>> แก�ให้�เป"น net 192.168.3.0/24radiusserver1 127.0.0.1radiusserver2 127.0.0.1radiussecret radiussecretdhcpif eth1uamserver https://192.168.3.1/uam/hotspotlogin.phpuamhomepage https://192.168.3.1/uam/index.phpuamsecret uamsecret#uamlisten 192.168.182.1 >>> แก�ให้�เป"น uamlisten 192.168.3.1
#uamallowed www.chillispot.org,10.11.12.0/24 >>> แก�ให้�เป"น uamallowed www.????.com,192.168.3.0/24 (ออกเน-ต้ได�โดยไม่�ต้#ดบล-อก)
Save แล�ว Exit ได�เลย
ต้#ดต้��ง Friewall
# cp /usr/share/doc/chillispot/firewall.iptables /etc/init.d/chilli.iptables# chmod a+x /etc/init.d/chilli.iptables# ln -s ../init.d/chilli.iptables /etc/rcS.d/S41chilli.iptables
ส�&ง Script firewall ทำ"างาน
# /etc/init.d/chilli.iptables
ส�&ง Restart ChilliSpot
# /etc/init.d/chillispot restart
แก�ไข File chilli.iptables เพื่%&อ SSH เข�าทำาง eth1 ได�
# nano /etc/init.d/chilli.iptables
EXTIF="eth0"INTIF="eth1"
$IPTABLES -P INPUT DROP$IPTABLES -P FORWARD ACCEPT$IPTABLES -P OUTPUT ACCEPT
#Allow related and established on all interfaces (input)$IPTABLES -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#Allow releated, established and ssh on $EXTIF. Reject everything else.$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 22 --syn -j ACCEPT$IPTABLES -A INPUT -i $EXTIF -j REJECT
>>> เพิ&�ม่ 2 บร้ร้ที่�ด้ข�างล�างน�+คำร้�บ#Allow releated, established and ssh on $INTIF.$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 22 --syn -j ACCEPT
#Allow related and established from $INTIF. Drop everything else.$IPTABLES -A INPUT -i $INTIF -j DROP
Save แล�ว Exit ได�เลย
ส�&ง Script firewall ทำ"างาน Again
# /etc/init.d/chilli.iptables
ส�&ง Restart ChilliSpot Again
# /etc/init.d/chillispot restart
ChilliSpot Start เร�ยบร�อยแล�ว ย�าย Notebook ม่าต้�อก�บ Network วง etc1 ได� IP Address จาก Server แล�ว
Remote SSH ไปทำ�& IP eth1 ของ Server
ต้#ดต้��ง Radius Server
# apt-get -y install freeradius freeradius-mysql freeradius-dialupadmin
ต้#ดต้��ง phpMyAdmin
แก� Config phpMyAdmin
ใช้� Edit Plus แก�บรรทำ�ดทำ�& 73 ให้�เป.น http
ทำดสอบ phpMyAdmin http://192.168.3.1/phpMyAdmin-2.6.4/
Restart Apache
# /etc/init.d/apache2 restart
สร�าง Database freeradius
# mysql -u root –p >>> เข�าใช้�งาน Mysql
Enter password: mysqlroot >>> password ที่��เร้าต่�+งไว้�ต่อนต่&ด้ต่�+ง LAMPmysql> CREATE DATABASE radius;mysql> quit
ใส� Freeradius database schema ด�วยค"าส�&งด�งน��
# zcat /usr/share/doc/freeradius/examples/mysql.sql.gz | mysql -u root -p radiusEnter password: mysqlroot
แก�ไขไห้� Freeradius ต้#ดต้�อก�บ Mysql ได�
# nano /etc/freeradius/sql.conf
sql { # Database type # Current supported are: rlm_sql_mysql, rlm_sql_postgresql, # rlm_sql_iodbc, rlm_sql_oracle, rlm_sql_unixodbc, rlm_sql_freetds driver = "rlm_sql_mysql"
# Connect info server = "localhost" login = "root" password = "rootpass" >>> แก�ให้�เป"น Password root ของเร้า # Database table configuration radius_db = "radius"
Save แล�ว Exit ได�เลย
แก�ไข secret share ของ radius
# nano /etc/freeradius/clients.conf
# default, otherwise it's not a secret any more!## The secret can be any string, up to 31 characters in length.#secret = testing123 >>> แก�ให้�เป"น radiussecret## The short name is used as an alias for the fully qualified# domain name, or the IP address.
Save แล�ว Exit ได�เลย
ม่า Test Freeradius ก�นนะคร�บแต้�ต้�องสร�าง User ส"าห้ร�บทำดสอบก�อน
# nano /etc/freeradius/users
# #"John Doe" Cleartext-Password := "hello"# Reply-Message = "Hello, %u"
>>> Copy 2 บร้ร้ที่�ด้บนม่าแก�ไขคำร้�บ"John Doe" Auth-Type := Local, User-Password == "hello" Reply-Message = "Hello, %u"
## Dial user back and telnet to the default host for that port#
Save แล�ว Exit ได�เลย
Restart Server เลยคร�บ
# reboot
ถ้�าเก#ดป/ญห้าไม่�สาม่ารถ้ Remote Server eth1 ด�วย SSH ได�ให้� Repair
Network ทำ�&เคร%&อง Notebook จะให้�ด� Restart Notebook เลยคร�บ
ม่าต้�อก�นเลยคร�บ เช้-ค Config Freeradius ต้�อง Stop Freeradius ก�อนคร�บ
# /etc/init.d/freeradius stop
# freeradius -XXX -A
บรรทำ�ดส*ดทำ�ายข1�นข�อความ่ Info: Ready to process requests. แสดงว�า OK แล�วคร�บ Crtl+C ออกเลยคร�บ (โอว, เยส)
ส�&ง Start Freeradius
# /etc/init.d/freeradius start
Test Authen radius (file)
# radtest "John Doe" hello 127.0.0.1 0 radiussecret
Sending Access-Request of id 153 to 127.0.0.1 port 1812 User-Name = "John Doe" User-Password = "hello" NAS-IP-Address = 255.255.255.255 NAS-Port = 0rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=153, length=37 Reply-Message = "Hello, John Doe"
ข1�นข�อความ่ต้อบร�บว�า rad_recv: Access-Accept แสดงว�า OK แล�วคร�บ (โอว, เยส) อ�กซั�กทำ�&
เปล�&ยน Freeradius ไห้�ม่าใช้� Database
# nano /etc/freeradius/radiusd.conf
>>> คำ�นห้าคำ�าน�+คำร้�บ See "Authorization Queries" in sql.conf
# Read the 'users' file Files >>> แก�ไห้�เป"น # Files (ใส� #)
# # Look in an SQL database. The schema of the database # is meant to mirror the "users" file. # # See "Authorization Queries" in sql.conf# sql >>> แก�ไห้�เป"น sql (# เอาออก)
#
Save แล�ว Exit ได�เลย
Add user ลงใน Mysql คร�บ (Username == test, Password == secret)
# echo "INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('test', 'Password', 'secret');" | mysql -u root -p radius# Enter password: mysqlroot
ส�&ง Restart Freeradius
# /etc/init.d/freeradius restart
Test Authen radius (SQL)
# radtest test secret 127.0.0.1 0 radiussecret
Sending Access-Request of id 80 to 127.0.0.1 port 1812 User-Name = "test" User-Password = "secret" NAS-IP-Address = 255.255.255.255 NAS-Port = 0rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=80, length=20
ข1�นข�อความ่ต้อบร�บว�า rad_recv: Access-Accept แสดงว�า OK แล�วคร�บ (โอว, เยส) ๆๆๆ
แก�ไข SQL Logging เพื่%&อเวลาใช้�งาน ezradius
# nano /etc/freeradius/sql.conf
postauth_query = "INSERT into ${postauth_table} (user, pass, reply, dat$
# # Set to 'yes' to read radius clients from the database ('nas' table) #readclients = yes >>> แก�ไห้�เป"น readclients = yes (# เอาออก)}
Save แล�ว Exit ได�เลย
แก�ไข File radius.conf ต้�อเลยคร�บ
# nano /etc/freeradius/radiusd.conf
>>> คำ�นห้าคำ�าน�+คำร้�บ See "Accounting queries" in sql.conf
# Log traffic to an SQL database. # # See "Accounting queries" in sql.conf# sql >>> แก�ไห้�เป"น sql (# เอาออก)
# # Instead of sending the query to the SQL server, # write it into a log file.
>>> คำ�นห้าคำ�าน�+คำร้�บ See "Authentication Logging Queries" in sql.conf
# After authenticating the user, do another SQL query. # # See "Authentication Logging Queries" in sql.conf# sql >>> แก�ไห้�เป"น sql (# เอาออก)
# # Instead of sending the query to the SQL server, # write it into a log file.
Save แล�ว Exit ได�เลย
ส�&ง Restart Freeradius
# /etc/init.d/freeradius restart
Test Authen radius (SQL) Again
# radtest test secret 127.0.0.1 0 radiussecret
Sending Access-Request of id 80 to 127.0.0.1 port 1812 User-Name = "test" User-Password = "secret" NAS-IP-Address = 255.255.255.255 NAS-Port = 0rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=80, length=20
ข1�นข�อความ่ต้อบร�บว�า rad_recv: Access-Accept แสดงว�า OK แล�วคร�บ
ต้#ดต้��ง SSL เป.น Modules ของ Apache
# apt-get install -y libapache2-mod-auth-mysql
สร�าง Certificate
# apt-get -y install ssl-cert
สร�าง Folder เก-บ Certificate
# mkdir /etc/apache2/ssl
สร�าง Certificate
# sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
เร�ยบร�อยแล�วคร�บ เป)ดใช้�งาน SSL
# sudo a2enmod ssl
ร�บค�า Config ให้ม่�
# /etc/init.d/apache2 force-reload
สร�าง virtualhost ไว� Link SSL
Upload File hotspot จาก Folder File Config ไปที่� /etc/apache2/sites-available/
แก�ไข File hotspot
# nano /etc/apache2/sites-available/hotspot
NameVirtualHost 192.168.3.1:443 >>> แก�ให้�เป"น IP eth1 ของ Server
<VirtualHost 192.168.3.1:443> >>> แก�ให้�เป"น IP eth1 ของ Server ServerAdmin [email protected] DocumentRoot "/var/www/hotspot" ServerName "192.168.3.1" >>> แก�ให้�เป"น IP eth1 ของ Server
Save แล�ว Exit ได�เลย
ส�&งให้� virtualhost ทำ"างาน
# sudo a2ensite hotspot
# /etc/init.d/apache2 reload
Open Port
Upload File ports.conf จาก Folder file config ไปที่� /etc/apache2/
แก�ไข File ports.conf
# nano /etc/apache2/ports.conf
#Listen 80##<IfModule mod_ssl.c># Listen 443#</IfModule>Listen 192.168.3.1:80 >>> แก�ให้�เป"น IP eth1 ของ Server
Listen 192.168.3.1:443 >>> แก�ให้�เป"น IP eth1 ของ Server
Save แล�ว Exit ได�เลย
แก�ไข File default
# nano /etc/apache2/sites-available/default
NameVirtualHost * >>> แก�ให้�เป"น NameVirtualHost *:80
<VirtualHost *> >>> แก�ให้�เป"น <VirtualHost *:80> ServerAdmin webmaster@localhost
DocumentRoot /var/www/ <Directory /> Options FollowSymLinks AllowOverride None
Save แล�ว Exit ได�เลย
แก�ไข File apache2.conf
# nano /etc/apache2/apache2.conf
# Do NOT add a slash at the end of the directory path.#ServerRoot "/etc/apache2"ServerName 192.168.3.1 >>> เพิ&�ม่## The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
Save แล�ว Exit ได�เลย
แก�ไข File apache2.conf
# nano /etc/hosts
127.0.0.1 localhost192.168.0.100 THAIEN-HOTSPOT >>> แก�ให้�เป"น 192.168.3.1 THAIEN-HOTSPOT
# The following lines are desirable for IPv6 capable hosts::1 ip6-localhost ip6-loopback
Save แล�ว Exit ได�เลย
Restart Apache
# /etc/init.d/apache2 restart
ทำ"าการ Upload Hotspot Login
1. เข�าไปที่�� /var/www/ สร้�าง Floder hotspot
2. Upload Floder uam จาก โปร้แกร้ม่ที่��ใช้�ในการ้ที่�า\web\ ไปที่�� /var/www/hotspot/
3. แก�ไข File conStatus.php อย��ที่�� โปร้แกร้ม่ที่��ใช้�ในการ้ที่�า\web\uam\Connections
4. แล�ว้ Upload ไปที่�บของเด้&ม่
5. แก�ไข File index.php อย��ที่�� โปร้แกร้ม่ที่��ใช้�ในการ้ที่�า\web\uam\
6. แล�ว้ Upload ไปที่�บของเด้&ม่
7. ที่ด้สอบห้น�า login hotspot http://google.co.th
8. แก�ภาษา โด้ยการ้ Upload File charset จาก Folder File Config ไปที่� /etc/apache2/conf.d/
Restart Apache
# /etc/init.d/apache2 restart
9. ที่ด้สอบห้น�าอ�กที่� login hotspot http://google.co.th
10. ที่ด้สอบออก Internet โด้ยใช้� User Password ที่��เร้าสร้�างไว้� (User == test Password == secret)
ต้#ดต้��ง ezradius
Upload Floder manage จาก โปร้แกร้ม่ที่��ใช้�ในการ้ที่�า\web\ ไปที่�� /var/www/
ใช้�ค"าส�&งเพื่%&อแก�ไขเจ�าของโฟลเดอร,นะคร�บ โดยใช้�ค"าส�&ง chown
# chown -R www-data:www-data /var/www/manage
เข�า Web ezradius http://192.168.3.1/manage/
Config ezradiusก�อนอ*�นต่�องม่าร้ะบ,ต่�ว้ฐานข�อม่�ลของ radius ก�นก�อนนะคำร้�บโด้ยให้�คำล&3กที่�� Tool > Config editor
แล�ว้ให้�ที่�าการ้แก�ไขต่าม่ร้�ปเลยนะคำร้�บ แล�ว้อย�าล*ม่ save ล�ะ
การจ�ดการก�บ group และ user
การเพื่#&ม่ group
ก�อนที่��เร้าจะที่�าการ้เร้&�ม่เพิ&�ม่ group เพิ*�อแยกการ้ใช้�งานของ user ออกเป"นกล,�ม่งาน เช้�น อาจาร้ย' , น�กเร้�ยน เร้าต่�องม่าที่�าคำว้าม่ร้� �จ�กก�บ Attribute ของ radius ก�อนซ4�งจะที่�าห้น�าที่��ในการ้ คำว้บคำ,ม่การ้ใช้�งานต่�าง ๆ ของร้ะบบของเร้านะคำร้�บ เร้าจะได้�ปร้�บแต่�งการ้ใช้�งานได้�ต่าม่คำว้าม่เห้ม่าะ อย�างเช้�น อาจจะอน,ญาต่ให้�อาจาร้ย' ห้ร้*อห้�ว้ห้น�างานม่�คำ�าการ้ download/upload ม่ากกว้�าน�กเร้�ยนห้ร้*อผู้��ใช้�งานที่��ว้ไป เอาล�ะเร้าม่าด้�คำว้าม่ห้ม่ายของ Attribute ที่��จะน�าม่าใช้�งานก�นด้�กว้�านะคำร้�บ
ความ่ห้ม่ายของ Attribute ทำ�&น#ยม่น"าม่าใช้�งานในระบบ Chillispot
เร้&�ม่ต่�นการ้สร้�างกล,�ม่งานก�นเลยนะคำร้�บโด้ยไปที่�� Manage > Add > New Group
ให้�เล*อกต่าม่ร้�ปเลยนะคำร้�บAttribute : Simultaneous-Use คำ*อการ้ login ซ�อนก�นในที่��น��เร้าไม่�อน,ญาต่ให้�กล,�ม่น�+ Logig ซ�อนก�นนะคำร้�บ ด้�งน�+นให้�คำ�าPerator : :=และ Value : 1 (ห้ากต่�องการ้ซ�อนก�นได้�ให้� Value : 0)
จากน�+นเร้าม่าเพิ&�ม่ Attribute ให้�กล,�ม่ของ teacher ก�นด้�กว้�านะคำร้�บ
ให้�คำล&3กที่�� add new attributr แล�ว้ให้�ใส�คำ�าต่าม่ร้�ปเลยนะคำร้�บ
เช้7คำการ้ใช้�งานที่,กนาที่� (60 ว้&นาที่�) ห้ากไม่�ใช้�งานให้� diconnect 15 นาที่�(900 ว้&นาที่�)
เว้ลาที่��ใช้�งานต่�อคำร้�+ง 5 ช้��ว้โม่ง (18000 นาที่�) ห้ล�งจาก login ให้� redirect ไปย�งเว้7บ http://www.srp.ac.th
ก�าห้นด้คำ�า download เที่�าก�บ 1024kbps ก�าห้นด้คำ�า upload เที่�าก�บ 512kbps
เม่*�อที่�าการ้เพิ&�ม่ Attribute แล�ว้ห้ากไม่�ม่�อะไร้ผู้&ด้พิลาด้ก7จะได้�ร้�ป
การจ�ดการ user
เร้&�ม่ต่�นการ้สร้�างผู้��ใช้�งานก�นเลยนะคำร้�บ โด้ยไปที่�� Manage > Add > New User
ใส�ร้ายละเอ�ยด้ของผู้��ใช้�ต่าม่ร้�ปเลขนะคำร้�บ จากน�+นก7 Add user แล�ว้น�าไปใช้�งานได้�เลยคำร้�บ
ไปลองใช้� knoonin ก�นด้�กว้�านะคำร้�บว้�าจะเป"นอย�างที่��เร้า set Attribute ไว้�ห้ร้*อเปล�าที่ด้ลองเป8ด้ IE นะคำร้�บ
แสด้งว้�า Certificatr ssl ของเร้าที่�างานแล�ว้นะคำร้�บ ให้�เล*อกที่�� Continue to this
website เลยนะคำร้�บ
จะม่าเจอห้น�าต่�างของห้น�า index.php ที่��เร้าสร้�างไว้�ที่,กคำร้�งที่��ล9อคำอ&นนะคำร้�บซ4�งเร้าสาม่าร้ถแก�ไขห้น�าน�+แล�ว้ใช้�เป"นปร้ะกาศต่�าง ๆ ของห้น�ว้ยงานได้�นะคำร้�บ เช้�นแจ�งการ้ปร้ะช้,ม่ (เพิร้าะย�งไงห้ากใช้�อ&นเต่อร้'เน7ต่ก7ต่�องม่าเจอห้น�าน�+ก�อน) จากน�+นเล*อก เข�าส��ร้ะบบ
เย� ๆๆ ได้�แล�ว้คำ�ะ ใช้�งานได้� 5 ช้��ว้โม่ง เพิร้าะอย��ในกล,�ม่ของ teacher แล�ว้ย�ง redirect
ห้น�าแร้กที่�� http://www.srp.ac.ch คำร้บที่,กอย�างนะคำร้�บ
การใช้�งานส�วนต้�าง ๆ ของ ezradius
User Onlineส�าห้ร้�บด้�ว้�า ณ ป<จจ,บ�นม่� user อะไร้ใช้�งานอย��บ�าง โด้ยไปที่�� View > Online users
จะได้�ด้�งร้�ป
****ห้ม่ายเห้ต้* ezRadius ****
เปล�&ยนเป.น Version 1.1.4 and above เพื่%&อให้�สาม่ารถ้ไช้� Password MD5
ได�
เพื่#&ม่/แก�ไข user ไม่�ต้�องเล%อก Cleartext password
Add Port 3779 เพื่%&อ Kick User (1)
# nano /etc/init.d/chillispot
DESC="Chillispot captive portal"NAME=chillispotDAEMON=/usr/sbin/chilliDAEMON_ARGS="--conf /etc/chilli.conf" >>> แก�ไขให้�เป"น DAEMON_ARGS="--coaport3779 --conf /etc/chilli.conf"
PIDFILE=/var/run/$NAME.pidSCRIPTNAME=/etc/init.d/$NAME
Save แล�ว Exit ได�เลย
Add Port 3779 เพื่%&อ Kick User (2)
# nano /etc/chilli.conf
# TAG: macsuffix# Suffix to add to MAC address in order to form the username.# Normally you do not need to uncomment this tag.#macsuffix suffix
coaport 3779 >>> เพิ&�ม่
Save แล�ว Exit ได�เลย
Restart ChilliSpot (นานซั�กห้น�อย)
# /etc/init.d/chillispot restart
ด5การใช้�งานของ User ย�อนห้ล�ง
เร้าสาม่าร้ถด้�การ้ใช้�งานของ User ย�อนห้ล�งได้�โด้ยสาม่าร้ถร้ะบ,ว้�นที่�� ที่��ต่�องการ้ด้� ห้ร้*อ ช้*�อ User ที่��ต่�องการ้ ห้ร้*อที่�+งว้�นที่��และ user โด้ยในที่��น�+จะยกต่�ว้อย�างด้� user และว้�นที่��โด้ยให้�เล*อกที่�� Accounting > Per User and Date
ใส�ช้*�อ user ว้�นที่��เร้ &�ม่ และว้�นที่��ส&+นส,ด้ ต่าม่ร้�ป
จะได้�ร้ายละเอ�ยด้ ด้�งร้�ป
การต้#ดต้��ง Transparent Proxy
เร้&�ม่ต่�นต่&ด้ต่�+ง squid ส�าห้ร้�บที่�าห้น�าที่��เก7บ cache และ sarg ไว้�ร้ายงานการ้ใช้�งานผู้�านห้น�าเว้7บ
# sudo apt-get -y install squid sarg
ห้ล�งจากต่&ด้ต่�+งแล�ว้ให้�แก�ไขที่��ไฟ้ล'ของ squid โด้ยใช้�คำ�าส��ง
# nano /etc/squid/squid.conf
โด้ยให้�แก�ไขด้�งน�+
http_port 3128#cache_mem 8 MB#cache_dir ufs /var/spool/squid 100 16 256#acl our_networks src 192.168.2.0/24#http_access allow our_networks access.log /path/access.log squid#emulate_httpd_log off
>>> แก�เป"น (โด้ยใช้�ว้&ธี�คำ�นห้า)
http_port 3128 transparentcache_mem 64 MBcache_dir ufs /var/spool/squid 100 16 2000acl our_networks src 192.168.3.0/24http_access allow our_networks access.log /path/access.logemulate_httpd_log on>>> บร้ร้ที่�ด้ส,ด้ที่�ายvisible_hostname THAIEN-HOTSPOT >>>เพิ&�ม่
Save แล�ว Exit ได�เลย
ส�&งร�สต้าร,ทำ squid
# /etc/init.d/squid restart
จากน�+นม่าที่�าให้� user เข�าใช้�งาน proxy นะคำร้�บโด้ยไปแก�ไขที่��ไฟ้ล' chilli.iptables
# nano /etc/init.d/chilli.iptables
#Allow releated, established and ssh on $EXTIF. Reject everything else.$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 22 --syn -j ACCEPT$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 22 --syn -j ACCEPT$IPTABLES -A INPUT -i $EXTIF -j REJECT#Allow related and established from $INTIF. Drop everything else.$IPTABLES -A INPUT -i $INTIF -j DROP#Allow http and https on other interfaces (input).#This is only needed if authentication server is on same server as chilli$IPTABLES -A INPUT -p tcp -m tcp --dport 80 --syn -j ACCEPT$IPTABLES -A INPUT -p tcp -m tcp --dport 443 --syn -j ACCEPT#Allow 3990 on other interfaces (input).$IPTABLES -A INPUT -p tcp -m tcp --dport 3990 --syn -j ACCEPT
>>> เพิ&�ม่เข�าไป#Allow Tranparent proxy $IPTABLES -A INPUT -p tcp -m tcp --dport 3128 --syn -j ACCEPT
#Allow everything on loopback interface.$IPTABLES -A INPUT -i lo -j ACCEPT
>>> เพิ&�ม่เข�าไป#Allow Tranparent proxy $IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp --dport 3128 --syn -j DROP$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp -d 192.168.3.0/16 --dport 80 -j RETURN$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp --dport 88 -j REDIRECT --to-ports 3128
Save แล�ว Exit ได�เลย
การเพื่#&ม่ Port ต้�างๆให้� Redirect ไปทำ�& Proxy (เช้�น port 88)
# nano /etc/init.d/chilli.iptables
#Allow everything on loopback interface.$IPTABLES -A INPUT -i lo -j ACCEPT
#Allow Tranparent proxy $IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp --dport 3128 --syn -j DROP$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp -d 192.168.3.0/16 --dport 80 -j RETURN$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128>>> เพิ&�ม่เข�าไป$IPTABLES -t nat -A PREROUTING -i tun0 -p tcp -m tcp --dport 88 -j REDIRECT --to-ports 3128
Save แล�ว Exit ได�เลย
การเพื่#&ม่ port ให้�ผ่�าน Proxy ได� (เช้�น port 88)
# nano /etc/squid/squid.conf
>>>คำ�นห้าคำ�าน�+ acl to_localhost dst 127.0.0.0/8
#Recommended minimum configuration:acl all src 0.0.0.0/0.0.0.0acl manager proto cache_objectacl localhost src 127.0.0.1/255.255.255.255acl to_localhost dst 127.0.0.0/8acl SSL_ports port 443 # httpsacl SSL_ports port 563 # snewsacl SSL_ports port 873 # rsyncacl Safe_ports port 80 # httpacl Safe_ports port 88 # http cz >>>เพิ*�ม่บร้ร้ที่�ด้น�+acl Safe_ports port 21 # ftpacl Safe_ports port 443 # https
acl Safe_ports port 70 # gopheracl Safe_ports port 210 # wais
Save แล�ว Exit ได�เลย
ส�&งร�สต้าร,ทำ squid
# /etc/init.d/squid restart
ส�&งให้� transparent ทำ"างาน
# /etc/init.d/chilli.iptables
ด5 access.log ของ Squid
ที่ด้ลองใช้�งาน internet ผู้�าน gateway server
# tail /var/log/squid/access.log -f
Ctrl+c ออก
การด5รายงานของ SARG (Squid report)
ส��งให้� sarg ที่�างานได้�เลยโด้ย
# sarg
จากน�+นก7สาม่าร้ถเข�าด้�ร้ายงานการ้ใช้�เว้7บได้�เลยคำร้�บโด้ยด้�จาก IE ได้�เลขโด้ยพิ&ม่พิ'ว้�า http://192.168.3.1/squid-reports
ต้��งเวลาให้� sarg ทำ"างานผ่�าน crontab
# nano /etc/crontab
# m h dom mon dow user command17 * * * * root cd / && run-parts --report /etc/cron.hourly25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --repo$47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --repo$52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --repo$##sarg squid report0 * * * * root /usr/bin/sarg#Shut Down05 20 * * * root shutdown -h now
Save แล�ว Exit ได�เลย
Logrotate
เป"นกลไกของร้ะบบปฏิ&บ�ต่&การ้ล�น,กซ'ที่��ช้�ว้ยลบ log file ที่��เก�ากว้�าออกไป แล�ว้สร้�างไฟ้ล' log
ข4+นให้ม่� ซ4�งม่�ผู้ลที่�าให้�ไฟ้ล' log ไม่�ให้ญ�ม่ากเก&นไป โด้ยการ้สร้�าง log file ม่าให้ม่�น� +นจะไปสร้�างซ�+าก�บไฟ้ล'เด้&ม่ จะม่� option ม่ากกม่ายให้�เร้าแก�ไข แต่� พิอสร้,ป ได้� คำร้าว้ๆ ด้�งน�+
1. Weekly-daily-monthly ห้ม่ายถ4ง ให้�ม่�การ้ rotate ใน ที่,กๆ อาที่&ต่ย' (weekly) ห้ร้*อ ที่,กๆ ว้�น (daily) ห้ร้*อ เด้*อน (monthly)
2. rotate xx ห้ม่ายถ4ง ส��งให้�ม่�การ้ rotate xx คำร้�+ง ก�อนลบไฟ้ล'เก�าที่&+งไป 3. compress ห้ม่ายถ4ง ส��งให้�ม่�การ้ zip ไฟ้ล'ที่��ถ�ก rotate ไปแล�ว้ 4. delaycompress ห้ม่ายถ4ง ส��งให้�ม่�การ้ช้ะลอการ้ zip ไป 1 คำร้�+ง ที่�าให้�การ้
rotate คำร้�+งแร้กเป"นการ้เปล��ยนช้*�อไฟ้ล'เพิ�ยงอย�างเด้��ยว้ และจะถ�ก zip ในการ้ rotate ในคำร้�+งต่�อไป
5. notifemply-ifemply ห้ม่ายถ4ง ไม่�ให้�ม่�การ้ rotate เม่*�อ log file น�+นว้�าง
6. postrotate เป"นการ้ก�าห้นด้ให้�ม่�การ้ร้�นคำ�าส��ง ห้ล�งจาก ที่��ม่�การ้ rotate ไปแล�ว้ 7. endscript เป"นการ้จบคำ�าส��งของ postrotate
8. mail(address) เป"นการ้ส��งให้�ร้ะบบส�ง log file ให้�ผู้��ด้�แลร้ะบบที่าง E-mail
9. prerotage/endscript เป"นการ้ก�าห้นด้ให้�ม่�การ้ร้�นคำ�าส��ง ก�อน ที่��จะม่�การ้ม่�การ้ rotate ซ4�งจะเป"นแบบ postrotate
แก�ไข Logrotate squid
# nano /etc/logrotate.d/squid
/var/log/squid/access.log { daily compress delaycompress rotate 2 missingok nocreate sharedscripts# prerotate# test ! -x /usr/sbin/sarg-maint || /usr/sbin/sarg-maint# endscript# postrotate# test ! -e /var/run/squid.pid || /usr/sbin/squid -k rotate# endscript}
>>> แก�เป"น
/var/log/squid/access.log /var/log/squid/store.log { daily compress# delaycompress rotate 1 missingok nocreate sharedscripts# prerotate# test ! -x /usr/sbin/sarg-maint || /usr/sbin/sarg-maint# endscript# postrotate# test ! -e /var/run/squid.pid || /usr/sbin/squid -k rotate
# endscript}>>> เพิ&�ม่/var/log/squid/cache.log { weekly compress rotate 2 missingok nocreate sharedscripts}
Save แล�ว Exit ได�เลย
ต้�องไปแก�ค�าทำ�&ไฟล, radiusd.conf
# nano /etc/freeradius/radiusd.conf
>>> คำ�นห้า detailfile
detailfile = ${radacctdir}/%{Client-IP-Address}/detail-%Y%m%d
>>> แก�ไห้�เป"น
detailfile = ${radacctdir}/%{Client-IP-Address}/details
Save แล�ว Exit ได�เลย
แก�ไขไฟ้ล' ช้*�อว้�า /etc/logrotate.d/freeradius เพิ*�อจ�ด้การ้ก�บไฟ้ล' ด้�งกล�าว้
# nano /etc/logrotate.d/freeradius
/var/log/freeradius/*.log { weekly rotate 52 compress notifempty}
>>> แก�เป"น
/var/log/freeradius/radacct/127.0.0.1/details { daily compress rotate 1 missingok notifempty}
Save แล�ว Exit ได�เลย
ส�&ง freeradius Restart
# /etc/init.d/freeradius restart
ทำดลอง login เข�า internet จะม่� file details ข1�นม่า ทำ�&/var/log/freeradius/radacct/127.0.0.1
ส�&ง logrotate ทำ"างาน
# /etc/cron.daily/logrotate
ในทำ�&น��ผ่ม่ได�สร�าง folder /home/LOG ไว�แล�วนะคร�บ ใครทำ�&ย�งสร�างไม่�เป.น ก-สร�างต้าม่น��เลย
# mkdir /home/LOG
สร�าง File changeaccess.sh เพื่%&อเปล�ยนช้%&อ File
# nano /home/changeaccess.sh
#!/bin/shtimeaccess=`date +%Y-%m-%d`cp /var/log/squid/access.log.1.gz /home/LOG/$timeaccess-access.log.gzcp /var/log/squid/store.log.1.gz /home/LOG/$timeaccess-store.log.gzcp /var/log/freeradius/radacct/127.0.0.1/details.1.gz /home/LOG/$timeaccess-freeradius.log.gz
Save แล�ว Exit ได�เลย
chmod +x /home/changeaccess.sh ( เพื่%&อให้� โปรแกรม่สาม่ารถ้ ร�น script น�& ได�)
# chmod +x /home/changeaccess.sh
เวลาจะเร�ยกใช้�
# cd /home# ./changeaccess.sh
ต้��งเวลาให้� logrotate ทำ"างานผ่�าน crontab
# nano /etc/crontab
# m h dom mon dow user command17 * * * * root cd / && run-parts --report /etc/cron.hourly25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --repo$47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --repo$52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --repo$##sarg squid report00 20 * * * root /usr/bin/sarg#logrotate05 20 * * * root /etc/cron.daily/logrotate#change File name15 20 * * * root sh /home/changeaccess.sh#Shut Down30 20 * * * root shutdown -h now
Save แล�ว Exit ได�เลย
TIP ก�อนจบคอร,สแก�ไขป<ญห้า session คำ�างที่�านจะน�าไปสร้�าง shell scrip ไว้�ส�าห้ร้�บสะด้ว้กในการ้ใช้�งานก7ได้�นะคำร้�บ
# nano /home/clearlog.sh
rm /var/log/freeradius/radutmprm /var/log/freeradius/radwtmptouch /var/log/freeradius/radutmptouch /var/log/freeradius/radwtmpchown freerad:freerad /var/log/freeradius/radutmpchown freerad:freerad /var/log/freeradius/radwtmp
Save แล�ว Exit ได�เลย
แก� permittion
# chmod 700 /home/clearlog.sh
เว้ลาใช้�งาน
# cd /home
# ./clearlog.sh
จากน�+นน�าไปไว้�ใน /etc/rc.local นะคำร้�บ
ด5สถ้านะของ Lan card
# mii-tool
ด้�เน*+อที่��เก7บ Cache
# du –sh /var/spool/squid
ต้#ดต้��ง bandwidthd แทำน sarg ใน ubuntu
# apt-get -y install bandwidthd
เล%อก การ,ด ทำ�&ต้�องการ ให้�แสดงผ่ลany ที่,กการ้'ด้การ้'ด้อ*�นก7แล�ว้แต่� ถ�าที่�า chilli ก7 tun
เล*อก IP Address tun0 (ว้งภายใน) ร้อจนเสร้7จ
แก�ไข Config Apache
# nano /etc/apache2/apache2.conf
# The internationalized error documents require mod_alias, mod_include# and mod_negotiation. To activate them, uncomment the following 30 lines.
>>> เพิ&�ม่ 5 บร้ร้ที่�ด้ด้�นล�างน�+คำร้�บ
Alias /bandwidthd "/var/lib/bandwidthd/htdocs"<Directory "/var/lib/bandwidthd/htdocs">Order Allow,DenyAllow from All</Directory>
# Alias /error/ "/usr/share/apache2/error/" >>> คำ�นห้าบร้ร้ที่�ด้น�+คำร้�บ## <Directory "/usr/share/apache2/error"># AllowOverride None# Options IncludesNoExec# AddOutputFilter Includes html
# AddHandler type-map var
Save แล�ว Exit ได�เลย
Restart Apache
# /etc/init.d/apache2 restart
แก� Config bandwidthd
# nano /etc/bandwidthd/bandwidthd.conf
ต่ร้งน�+เล*�อนไปบร้ร้ที่�ด้ล�างส,ด้ๆ เอา # ห้น�าบร้ร้ที่�ด้ส,ด้ที่�ายออก
#Set META REFRESH for static pages in seconds(default 150, use 0 to disable).#meta_refresh 150
meta_refresh 150
#Set the static html output directory#htdocs_dir "/var/lib/bandwidthd/htdocs" >>> เอา # ออก
Save แล�ว Exit ได�เลย
เสร-จแล�วส�&งให้�ทำ"างาน
# bandwidthd
แล�ว restart bandwidthd
# /etc/init.d/bandwidthd restart
ด5ผ่ลห้น�าเวบเลยคร�บ http://192.168.3.1/bandwidthd
ต้��ง crontab ให้� bandwidthd อ�พื่เดทำข�อม่5ลทำ*กว�นต้อน เทำ�ยงค%น 5 นาทำ�
# nano /etc/crontab
##sarg squid report0 0 * * * root /usr/bin/sarg#bandwidthd 5 0 * * * root /usr/bin/bandwidt#Shut Down10 0 * * * root shutdown -h now
Save แล�ว Exit ได�เลย
ต้#ดต้��ง syslog-ng
# apt-get -y install syslog-ng
ดาวน,โห้ลดโปรแกรม่ php syslog viewer ด�วยค"าส�&ง ไว�ใน /tmp/
# cd /tmp/
# wget http://downloads.sourceforge.net/phpsyslogviewer/phpsyslogviewer-7.2.1.tar.bz2
ต้#ดต้��งโปรแกรม่ bzip2 ด�วยค"าส�&ง ย�งอย5�ใน /tmp/ นะคร�บ
# apt-get install bzip2
แต้กไฟล, phpsyslogviewer ด�วยค"าส�&ง
# tar xjvf phpsyslogviewer-7.2.1.tar.bz2
ดาวน,โห้ลดโปรแกรม่ speedupd
ซ4�งเป"นโปร้แกร้ม่เร้�งคำว้าม่เร้7ว้ให้�เอนจ&+นป.อนข�อม่�ลส��ฐานข�อม่�ล mysql ด้�ว้ยคำ�าส��ง
# wget
http://jaist.dl.sourceforge.net/sourceforge/phpsyslogviewer/speedupd-7.3.2.tar.bz2
โฟ้ลเด้อร้' install ของ phpsyslogviewer จะม่�สคำร้&ปที่��ใช้�ต่&ด้ต่�+งต่าร้างต่�าง ๆ ให้�ก�บฐานข�อม่�ล เร้าจะต่�องที่�าการ้สร้�างฐานข�อม่�ลเส�ยก�อน ม่&ฉะน�+นจะพิบก�บข�อผู้&ด้พิลาด้และไม่�สาม่าร้ถร้�นสคำร้&ปด้�งกล�าว้ผู้�านได้� ม่�ข�+นต่อนด้�งน�+
1. เปล��ยนได้เร้7กที่อร้��ไปย�งโฟ้ลเด้อร้' phpsyslogviwer-7.2.1
# cd phpsyslogviewer-7.2.1
2. เข�าส�� mysql ด้�ว้ยคำ�าส��งmysql -u root -p แล�ว้ป.อนร้ห้�สผู้�านของ root
# mysql -u root -p
3. สร้�างฐานข�อม่�ลช้*�อ syslogng ด้�ว้ยคำ�าส��ง
mysql>create database syslogng;
4. ออกจาก mysql ด้�ว้ยคำ�าส��ง
mysql> exit;
5. สร้�างต่าร้างข�อม่�ลด้�ว้ยการ้ใช้� script จากไฟ้ล' install/phpsyslogviewer.sql
ด้�ว้ยคำ�าส��ง
# mysql -u root -p syslogng < install/phpsyslogviewer.sql
ป.อนคำ�า username และ password เข�าไปในไฟ้ล' intall/newuser.sql.php ด้�งเช้�น
# nano install/newuser.sql.php
// 02110-1301, USA.// -------------------------------------------------------------------
$user = ""; // Your Username >>> ใส� User
$pass = ""; // Your Password ใส� Password
// -------------------------------------------------------------------Save แล�ว Exit ได�เลย
*****User และ Password ต้�องไม่�ซั"�าก�น
ต่&ด้ต่�+งโปร้แกร้ม่ php5-cli เพิ*�อให้�ร้�นคำ�าส��ง php ผู้�าน command line ด้�ว้ยคำ�าส��ง
# apt-get -y install php5-cli
ร้�นภาษา php-command line เพิ*�อ insert ข�อม่�ล user และ pass เข�าส��ต่าร้างข�อม่�ล user ของฐานข�อม่�ล syslogng ด้�ว้ยคำ�าส��งด้�งน�+
# php install/newuser.sql.php
ร้�นภาษา php-command line ด้�ว้ยคำ�าส��งต่�อไปน�+
# php install/newuser.sql.php | mysql -u root -p syslogng
จ�ด้การ้เว้7บได้เร้คำที่อร้�เพิ*�อให้�สาม่าร้ถเร้�ยกด้�ข�อม่�ลผู้�านเว้บบร้าว้เซอร้'ได้� ด้�ว้ยการ้ส�าเนาไฟ้ล' ด้�ว้ยคำ�าส��งด้�งน�+
# cp -R htdocs /var/www/phpsyslogviewer
แก�ไขไฟ้ล'คำอนฟ้8กคำ*อ /var/www/phpsyslogviewer/config.php เพิ*�อก�าห้นด้คำ�าที่��ส�าคำ�ญเก��ยว้ก�บฐานข�อม่�ลด้�งน�+
# nano /var/www/phpsyslogviewer/config.php
// USER DEFINED VARIABLES// -------------------------------------------------------------------
$db_user = "syslog"; // Database Username $db_pass = "syslog"; // Database Password$db_host = "localhost"; // Database Hostname $db_name = "syslog"; // Database Name
>>> แก�เป"น
$db_user = "root"; // Database Username $db_pass = "mysqlroot"; // Database Password$db_host = "localhost"; // Database Hostname $db_name = "syslogng"; // Database Name
Save แล�ว Exit ได�เลย
ร�นค"าส�&งต้�อไปน��
# chown root:www-data /var/www/phpsyslogviewer/config.php
# chmod 440 /var/www/phpsyslogviewer/config.php
เข�าด5เว-บไซัต้,ของ phpsyslogviewer ทำ�& http://192.168.3.1/phpsyslogviewer
ต้#ดต้��งแพื่-คเกจ speedupd-7.3.2
เพิ*�อเร้�งคำว้าม่เร้7ว้ให้�เอนจ&+นป.อนข�อม่�ลส��ฐานข�อม่�ล mysql ข�+นต่อนน�+อาจย,�งยากน&ด้ห้น�อย เพิร้าะต่�องที่�าการ้คำอม่ไพิล'แพิ7คำเกจด้�ว้ยต่�ว้เองให้ม่� ขอย�+าว้�าต่�องที่�านะคำร้�บข�+นต่อนน�+ ม่&ฉะน�+นใคำร้ที่��เคำยใช้� phpsyslog-ng จะร้� �ซ4+งว้�าอ4ด้อ�ด้เป"นอย�างไร้ ให้�ที่�าต่าม่คำ�าส��งต่�อไปน�+
# cd .. >>> ออกม่าที่�� /tmp/ ก�อนคำร้�บ
# tar xjvf speedupd-7.3.2.tar.bz2
# cd speedupd-7.3.2 >>> เข�าไปที่�� / speedupd-7.3.2 / ก�อนคำร้�บ
# apt-get –y install build-essential cmake libmysqlclient15-dev libdaemon-dev libconfuse-dev
# apt-get -y install debhelper cmake libdaemon-dev libconfuse-dev fakeroot
ถ�า�ม่�ป<ญห้าให้�อ�านด้� อาจจะต่�องต่&ด้ต่�+ง libmysqlclient15-dev เ&พิ&�ม่เต่&ม่ด้�ว้ยคำ�าส��ง
# apt-get –y install libmysqlclient15-dev
# dpkg-buildpackage –rfakeroot
ต่อนน�+เร้าจะได้�แพิ7คำเกจต่ร้ะก�ล debian ช้*�อว้�า speedupd_7.3.0_i386.deb
(ส�าห้ร้�บ 64 bit OS จะช้*�อ speedupd_7.3.0_amd64.deb) ให้�ต่&ด้ต่�+งแพิ7คำเกจและก�าห้นด้คำ�าให้�ก�บไฟ้ล' speedupd.conf ด้�งน�+
# cd ..
# ls
(ส�าห้ร้�บเคำร้*�องที่��เป"น 64 bit ใช้� dpkg -i speedupd_7.3.0_i386.deb)
(ส�าห้ร้�บเคำร้*�องที่��เป"น 64 bit ใช้� speedupd_7.3.0_amd64.deb)
# dpkg -i speedupd_7.3.0_i386.deb
แก�ไข Config speedupd
# nano /etc/speedupd.conf
dbusername = syslog dbpassword = syslogdbhostname = localhostdbdatabase = syslog
>>> แก�เป"น
dbusername = root dbpassword = mysqlrootdbhostname = localhostdbdatabase = syslogng
Save แล�ว Exit ได�เลย
Start Speedupd
# /etc/init.d/speedupd start
ต้�อไปเป.นการก"าห้นดค�า syslog-ng
ให้�ก�บ syslog-ng ที่�าการ้ส�งคำ�าไปเก7บย�งฐานข�อม่�ลที่�าต่าม่น�+เลยคำร้�บ ง�าย ๆ ผู้��เข�ยนต่�ด้ว้&ธี�การ้เก7บข�อม่�ลการ้จร้าจร้คำอม่พิ&ว้เต่อร้'ส�ว้นอ*�นออก เพิ*�อให้�สาม่าร้ถที่�าคำว้าม่เข�าใจได้�ง�าย ๆ คำร้�บ ห้ากใคำร้ม่�ไฟ้ล'คำอนฟ้8คำเก�าอย��แล�ว้ก7เพิ&�ม่เต่&ม่เฉพิาะส�ว้นที่��ต่�องการ้เก7บข�อม่�ลในฐานข�อม่�ลได้�เลยคำร้�บ โด้ยให้�แก�ไขในไฟ้ล' /etc/syslog-ng/syslog-ng.conf เป"นด้�งต่�อไปน�+ ซ4�งถ�าส�ว้นไห้นม่�อย��แล�ว้ก7ไม่�ต่�องนะคำร้�บ
# nano /etc/syslog-ng/syslog-ng.conf
***optionsoptions { recv_time_zone (+07:00); send_time_zone (+07:00); sync (0); time_reopen (100); log_fifo_size (1000); long_hostnames (off); use_dns (no); use_fqdn (no); create_dirs (yes); chain_hostnames(yes); keep_hostname (yes);};
***sourcesource s_sys { file ("/proc/kmsg" log_prefix("kernel: ")); unix-stream ("/dev/log"); internal(); udp(ip(0.0.0.0) port(514)); tcp(ip(0.0.0.0) port(514) keep-alive(yes));};
***destinationdestination d_mysql {pipe("/var/log/mysql.pipe" template("INSERT INTO logs (host, facility, priority, level, tag, datetime, program, msg) VALUES ( '$HOST', '$FACILITY', '$PRIORITY', '$LEVEL', '$TAG', '$YEAR-$MONTH-$DAY $HOUR:$MIN:$SEC', '$PROGRAM', '$MSG' );\n") template-escape(yes));};
***filterfilter f_kernel { facility (kern); };filter f_messages { level(info..emerg) and not (facility(mail) or facility(authpriv) or facility(cron)); };
***loglog {source(s_sys); filter(f_messages); destination(d_mysql); };log {source(s_sys); filter(f_kernel); destination(d_mysql); };
Save แล�ว Exit ได�เลย
สร�างสคร#ปเพื่%&อทำ"าไปน,ส"าห้ร�บส�งค�าสต้ร�ม่จากไปน,ส5�ฐานข�อม่5ล งานน��เป.น bash สคร#ปคร�บ ฟ/งด5ว* �นวายแต้�ทำ"าจร#งง�ายม่ากคร�บ ให้�สร�าง script file ด�วยค"าส�&งต้�อไปน��
# nano syslog2mysql.sh
>>>แล�ว้ใส�ข�อม่�ลต่�อไปน�+ลงไปในไฟ้ล' แล�ว้บ�นที่4กไฟ้ล'
#!/bin/bashif [ ! -e /var/log/mysql.pipe ]thenmkfifo /var/log/mysql.pipefiwhile [ -e /var/log/mysql.pipe ]domysql -u root --password=radius syslogng < /var/log/mysql.pipe >/dev/nulldone
Save แล�ว Exit ได�เลย
ทำ"าการเปล�&ยนส#ทำธิ#ไฟล, แล�วร�นค"าส�&งต้�อไปน��
# chmod +x syslog2mysql.sh
# ./syslog2mysql.sh &
# /etc/init.d/syslog-ng start
****ห้ม่ายเห้ต้*****
จากการต้#ดต้��ง phpsyslogviewer แล�ว phpsyslogviewer ม่�แต้� log
Start,stop ของ Syslog-ng เทำ�าน��น
การส�งค�าจาก squid ไปย�ง syslog
# tail -F /var/log/squid/access.log | logger -t squid -p user.info
จากน��นทำ"าการส�งค�าจาก radiusd ไปย�ง syslog ด��งน��
# tail -F /var/log/radius/radacct/127.0.0.1/details | logger -t radiusd -p user.info
ห้ม่ายเห้ต่, คำ�าส��ง logger -t จะใช้�ก�าห้นด้ช้*�อข�อม่�ลการ้จร้าจร้คำอม่พิ&ว้เต่อร้' ในที่��น�+เร้าจะใช้�แที่นว้�าข�อม่�ลการ้จร้าจร้คำอม่พิ&ว้เต่อร้ ม่าจากเซอร้' ว้&สใด้ เช้7น squid และ radius เป"นต่�น และต่�องห้�าม่ล*ม่ใช้� tail -F เพิร้าะจะเป"นการ้ก�าห้นด้ให้� tail ที่�างานไม่�ว้�าไฟ้ล' ต่�นที่างจะม่�การ้สร้�างไฟ้ล' ให้ม่�ห้ร้*อไม่�ก7ต่าม่ส�าาห้ร้�บว้&ธี�การ้แก�ป<ญห้าไฟ้ล' ที่��อาจจะให้ญ�เก&นไปส�าห้ร้�บข�อม่�ลล7อกไฟ้ล' ของ radius
Server เร้าสาม่าร้ถใช้�งานร้�ว้ม่ก�นก�บ
การต้��งค�าให้�ส�งข�อม่5ลการจราจรคอม่พื่#วเต้อร, จาก squid และ radius โดยให้�ทำ"างานทำ*กคร��งห้ล�งเป)ดเคร%&องด��งน��
# nano /etc/init.d/rc.capture
#!/bin/bashtail -F /var/log/squid/access.log | logger -t squid -p user.info &tail -F /var/log/freeradius/radacct/127.0.0.1/details | logger -t radiusd -p user.info &
Save แล�ว Exit ได�เลย
จากน��นส�&งให้�สาม่ารถ้ร�นได�และสร�างล#งค, ให้�ทำ"างานทำ*กคร��งห้ล�งเป)ดเคร%&อง
# chmod a+x /etc/init.d/rc.capture
# ln -s /etc/init.d/rc.capture /etc/rcS.d/S88rccapture
ส�&งให้� rc.capture ทำ"างาน
# /etc/init.d/rc.capture
ต้รวจสอบ syslog
# tail -f /var/log/syslog
ทำดลองใช้�งาน Internet
ต้#ดต้��ง webmin
# cd /var
# tar zxvf webmin-1.480.tar.gz
# cd webmin-1.480
# sh setup.sh
การทำ"างานของ Samba จะทำ"างานอย5�บน Port 137,138 และ 139 * 137 Name Service : SMB จะใช้� port น�+ในการ้ถาม่ช้*�อเคำร้*�องคำอม่พิ&ว้เต่อร้'ด้�ว้ย การ้ร้�บส�ง package UDP (User Datagram Protocol) (โด้ยไม่�ต่�องใช้� IP เข�าม่าช้�ว้ย) * 138 Datagram Service : SMB จะใช้� port น�+ในการ้ Browse ห้าช้*�อเคำร้*�อง * 139 Session Service : SMB จะใช้� Port น�+ในการ้ร้�บส�งข�อม่�ลร้ะห้ว้�างเคำร้*�อง ด้�ว้ย โปร้โต่คำอล TCP ซ4��งแน�นอนว้�าม่�การ้ร้�บร้องการ้ส�ง ข�อม่�ลว้�าไปถ4งปลายที่างแน�นอน
แก�ไข File chilli.iptables เพื่%&อ webmin และ samba เข�าทำาง eth1 ได�
# nano /etc/init.d/chilli.iptables
#Allow releated, established and ssh on $EXTIF. Reject everything else.$IPTABLES -A INPUT -i $EXTIF -p tcp -m tcp --dport 22 --syn -j ACCEPT$IPTABLES -A INPUT -i $EXTIF -j REJECT
#Allow releated, established and ssh on $IXTIF.$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 22 --syn -j ACCEPT>>> เพิ&�ม่ 5 บร้ร้ที่�ด้ข�างล�างน�+คำร้�บ$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 137 --syn -j ACCEPT$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 138 --syn -j ACCEPT$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 139 --syn -j ACCEPT$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 445 --syn -j ACCEPT$IPTABLES -A INPUT -i tun0 -p tcp -m tcp --dport 10000 --syn -j ACCEPT
#Allow related and established from $INTIF. Drop everything else.$IPTABLES -A INPUT -i $INTIF -j DROP
Save แล�ว Exit ได�เลย
ทำดสอบเข�า webmin http://192.168.3.1:10000/
เอกสารช้*ดน�&ได�ข�อม่5ลได�ความ่ร5�ม่าจาก http://www.linuxthai.org และ Web
Linux ต้�างๆอ�กม่ากม่ายและต้�องขอบค*ณ ค*ณ chalee VDO3,VDO4
ขอแสดงความ่น�บถ้%อ ว#ส*ทำธิ#: การะเกต้*