วันอาทิตย์ที่ 31 กรกฎาคม พ.ศ. 2559

Router WRT54GL Firmware Tomato 1.28 + SD Card SDHC + NAS




Router WRT54GL Firmware Tomato 1.28 + SD Card Type SDHC + NAS



การติดตั้ง SD CARD กับ Router WRT54GL 



Download :Tomato firmware with SDHC mod 



วิธีการอัพเฟริมแวร์ Tomato

 https://www.gotoknow.org/posts/487589

จากนั้นเข้าโปรแกรม Web Browser พิมพ์ 192.168.1.1 เพื่อ Login
User : root
Password : admin


จากนั้นเข้ามาคอนฟิกเมนู SDHC โดยการ Enable แล้วกำหนดขา GPIO ให้ตรงกับที่เราเชื่อมต่อกับ SD Card ในที่นี้ CS=7  CLK=3  DI=2  DO=4  แล้วกำหนด FileSystem = vfat ดังรูป แล้วทำการ Save


เข้าโปรแกรม Putty พิมพ์ Host : 192.168.1.1 เลือก Telnet หรือ SSH เพื่อ Login Terminal
User : root
Password : admin


  • df

 จะเห็นได้ว่าระบบเห็น SD Card แล้วตรง /mmc


  • df -h



 ทดสอบ : WRT54GL v1.1 ด้วย SD mod

Testing method:


  • mount -t ext3 /dev/mmc/disc0/part1 /mmc
  • sync; date; dd if=/dev/zero of=/mmc/test.bin bs=1024 count=102400; sync; date
  • sync; date; dd if=/mmc/test.bin of=/dev/null bs=1024 count=102400; sync; date



ทดสอบ : WRT54GL v1.1 SD mod ด้วยโปรแกรม WINSCP



เปิดการใช้งานฟังชั่น NAS ด้วย Samba

โดยการเพิ่ม ชื่อไฟล์  ตำแหน่งไฟล์ การเข้าถึง  


ทดสอบการคัลลอกไฟล์จาก NAS กับ Client
  • พิมพ์ \\[ip_router]
  • พิมพ์ \\10.0.0.1

จากนั้นเห็น Folder Nas ที่ได้ Share ไว้แล้วทำการทดสอบโยนไฟล์
สังเกตุได้ว่าไฟล์ของขา GPIO ที่เราต่อได้ติด แสดงการทำงานของขา GPIO



Video



RF : 

WRT54GL Tomato1.28 + SDHC + NAS 



วันอาทิตย์ที่ 23 สิงหาคม พ.ศ. 2558



Raspberry Pi Wifi Hotspot + CoovaChilli + Freeradius + Captive portal



                         โปเจคนี้เป็นการนำเอา Raspberry Pi และ ตัวรับ USB WIFI ที่สนับสนุนกับ Raspberry Pi เพื่อนำมาประยุกต์ใช้งานในการทำระบบ WIFI Hotspot โดยรับ Internet มาจากพอร์ตแลนของ Raspberry Pi ให้เป็นขา WAN ส่วน Wireless USB ให้เป็นขา LAN Hotspot หากนำอุปกรณ์ไปเชื่อมต่อสัญญาณ Access Point ที่ปล่อยออกมาจาก USB Wireless จะได้รับ IP ในวงของ Hotspot และเมื่อเปิดโปรแกรมพวกเว็บบราวเซอร์ ระบบ Hotspot ก็จะวิ่งไปหน้า Login เพื่อจะให้ผู้ใช้งานนำ User และ Password มาใส่เพื่อเข้าใช้งานระบบ โดย User นั้นจะต้องมีอยู่ใน Database ของระบบถึงจะเข้าใช้งานได้ และยังมีหน้าจัดการระบบของผู้ดูแลระบบในการจัดการ User ใช้งานและข้อมูลระบบอื่นๆ

สรุป

## Wiresless USB ต้องสนับสนุนกับ Raspberry Pi และต้องมี Driver ด้วยเพื่อให้ Raspberry Pi มองเห็น
## CoovaChilli Coova Chilli เป็น DHCP Server ทำหน้าที่ในการจัดการเรื่องของ IP และแจก IP ให้กับเครื่อง Client ที่เชื่อมต่อกับ WIFI
## RADIUS (Common Remote Authentication Dial In User Server) ระบบจัดการและตรวจสอบการพิสูจน์สิทธิ์การใช้งานระบบ แพคเกจโปรแกรมที่ต้องติดตั้งคือ freeradius
##daloRADIUS เป็นเว็บแอพพลิเคชันในการบริหารจัดการะบบ hotspots, การจัดการผู้ใช้, การรายงานกราฟฟิก, การจัดทำบัญชี และ billing engine ด้วย daloRADIUS พัฒนาด้วยภาษา PHP และ JavaScript พร้อมทั้งสนับสนุนการใช้งานร่วมกับฐานข้อมูลต่างๆ เช่น MySQL และ PostgreSQl
##Captive Portal  คือ การบังคับเปลี่ยนทิศทางให้ผู้ใช้งาน HTTP เข้าใช้งานหน้าเวปไซต์เพื่อบังคับให้ผู้ใช้ต้องพิสูจน์ตัวตนของผู้ใช้งานก่อนเข้าใช้ทรัพยากรในระบบ



ปิด turbo mode
bash -c "echo options smsc95xx turbo_mode=N > /etc/modprobe.d/smscnonturbo.conf"


ตั้งค่า interface ของคุณใน  /etc/network/interfaces และแก้ไขดังนี้
sudo nano /etc/network/interfaces
เพิ่มไปยังไฟล์ดังนี้
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
    address 192.168.10.1
    netmask 255.255.255.0
    network 192.168.10.0
    post-up echo 1 > /proc/sys/net/ipv4/ip_forward


เปิดการ Forwarding interface ในบรรทัดที่ 29 ไฟล์  /etc/sysctl.conf ลบ # ข้างหน้าออก
sudo nano /etc/sysctl.conf 



รีสตาร์ network
/etc/init.d/networking restart

Freeradius

ติดตั้ง mysql และ กำหนดค่าให้กับ databases
apt-get install -y debconf-utils


กำหนดค่าดังนี้เข้าไป

debconf-set-selections <<< 'mysql-server mysql-server/root_password password raspbian'
debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password raspbian'
apt-get install -y debhelper libssl-dev libcurl4-gnutls-dev mysql-server freeradius freeradius-mysql gcc make libnl1 libnl-dev pkg-config iptables



สร้าง database ใน  MySQL ไปยัง FreeRadius
echo "create database radius;" | mysql -u root -praspbian


ติดตั้ง database schema radius และ directors และติดตั้ง tables สำหรับ  NAS
mysql -u root -praspbian radius < /etc/freeradius/sql/mysql/schema.sql
mysql -u root -praspbian radius < /etc/freeradius/sql/mysql/admin.sql
mysql -u root -praspbian radius < /etc/freeradius/sql/mysql/nas.sql


แก้ไขไฟล์ /etc/freeradius/radiusd.conf โดยลบ # ออกในบรรทัดที่ 700 
sudo nano /etc/freeradius/radiusd.conf



เปิด authentication MySQL Database ในไฟล์ /etc/freeradius/sites-enabled/default โดยการลบ # ออกในบรรทัดเหล่านี้ 177, 406, 454 
sudo nano /etc/freeradius/sites-enabled/default





หยุด service freeradius และทดสอบ freeradius
service freeradius stop
freeradius -X



ทดสอบสร้าง ชื่อผู้ใช้งาน  usertest และรหัส  passwd เพื่อใช้ในการทดสอบการเชื่อมต่อ
echo "insert into radcheck (username, attribute, op, value) values ('usertest', 'Cleartext-Password', ':=', 'passwd');" | mysql -u root -praspbian radius

ทดสอบค่าที่ได้คอนฟิกไว้ในไฟล์  /etc/freeradius/clients.conf ที่ใช้เชื่อมต่อระหว่า FreeRadiusและ NAS
radtest usertest passwd localhost 0 testing123 


CoovaChilli

Compilation and installation of CoovaChilli

ดาวน์โหลดและติดตั้ง CoovaChilli
cd /usr/src
wget http://ap.coova.org/chilli/coova-chilli-1.3.0.tar.gz
tar zxvf coova-chilli-1.3.0.tar.gz
cd coova-chilli-1.3.0

เริ่มการตั้งค่า CoovaChilli
./configure  --prefix=/usr --mandir=$${prefix}/share/man \
--infodir = \ $${prefix}/share/info \
--sysconfdir=/etc --localstatedir=/var --enable-largelimits \
--enable-binstatusfile --enable-statusfile --enable-chilliproxy \
--enable-chilliradsec --enable-chilliredir --with-openssl --with-curl \
--with-poll --enable-dhcpopt --enable-sessgarden --enable-dnslog \
--enable-ipwhitelist --enable-redirdnsreq --enable-miniconfig \
--enable-libjson --enable-layer3 --enable-proxyvsa --enable-miniportal \
--enable-chilliscript --enable-eapol --enable-uamdomainfile \
--enable-modules --enable-multiroute


echo 9 > debian/compat


เปลี่ยน directory ในไฟล์  /usr/src/coova-chilli-1.3.0/debian/rules บรรทัดที่ 54 ให้เป็น 
sudo nano /usr/src/coova-chilli-1.3.0/debian/rules

$(MAKE) DESTDIR=/ install


เริ่มการ compilation ใช้เวลาประมาณ 20 นาที 
dpkg-buildpackage -us -uc


ติดตั้ง package และเลือก N 
cd ..
dpkg -i coova-chilli_1.3.0_armhf.deb


Compilation and installation of Haserl


ดาวน์โหลด คอมไฟลและติดตั้ง Haserl สำหรับ  UNIX scripts หรือ  LUA scripts และ จะ generate CGI
cd /usr/src
wget http://downloads.sourceforge.net/project/haserl/haserl-devel/haserl-0.9.35.tar.gz
tar zxvf haserl-0.9.35.tar.gz
cd haserl-0.9.35
./configure && make && make install
./configure && make && make install

ตั้งค่า  CoovaChilli ในไฟล์  /etc/chilli/up.sh
sudo nano /etc/chilli/up.sh 


Configure CoovaChilli

เพิ่มข้อความด้านล่างไว้ล่างสุด
iptables -I POSTROUTING -t nat -o $HS_WANIF -j MASQUERADE

แก้ไขไฟล์ /etc/default/chilli โดยเปลียนค่าจาก 0 เป็น 1 แทน
sudo nano /etc/default/chilli
START_CHILLI=0  แก้เป็น START_CHILLI=1

แก้ไขข้อมูลไฟล์ /etc/chilli/wwwsh ของบรรทัดที่ 9 เป็น haserl=/usr/local/bin/haserl
sudo nano /etc/chilli/wwwsh


แก้เป็น haserl=/usr/local/bin/haserl


แก้ไขไฟล์ sudo nano /etc/chilli/defaults โดยการกำหนดค่า interfaces  used passwd network, etc. ดังค่าต่อไปนี้ โดยลบ # ออกด้วยหลังแก้ไขบบรทันนั้นแล้ว
sudo nano /etc/chilli/defaults
แก้ไขให้เป็นดังนี้
HS_WANIF=eth0
HS_LANIF=wlan0
HS_NETWORK=192.168.10.0
HS_UAMLISTEN=192.168.10.1
HS_UAMALLOW=192.168.10.0/24
HS_SSID=PiHomeServerAP


อัพเดทค่า chilli และ เริ่มเปิดการใช้งาน chilli
update-rc.d chilli start 99 2 3 4 5 . stop 20 0 1 6 .
service chilli start


ตรวจสอบ interface tun0 ที่ใช้สำหรับ chilli ด้วยคำสั่ง
ifconfig 


Hostapd

ติดตั้ง hostapd เพื่อให้มองเห็นสัญญาณ WIFI
sudo apt-get install -y hostapd

แก้ไขไฟล์ /etc/default/hostapd โดยเพิ่มไปยังท้ายบรรทัด 



DAEMON_CONF="/etc/hostapd/hostapd.conf"


สร้างไฟล์ /etc/hostapd/hostapd.conf 
sudo nano /etc/hostapd/hostapd.conf


และเพิ่มไปยังไฟล์ดังนี้
# interface wlan Wi-Fi
interface=wlan0
# nl80211 avec tous les drivers Linux mac80211
driver=nl80211
# Nom du spot Wi-Fi
ssid=PiHomeServerAP
# mode Wi-Fi (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.1g)
hw_mode=g
# canal de fréquence Wi-Fi (1-14)
channel=6
# Wi-Fi ouvert, pas d'authentification !
auth_algs=1
# Beacon interval in kus (1.024 ms)
beacon_int=100
# DTIM (delivery traffic information message)
dtim_period=2
# Maximum number of stations allowed in station table max_num_sta=255
# RTS/CTS threshold; 2347 = disabled (default)
rts_threshold=2347
# Fragmentation threshold; 2346 = disabled (default)
fragm_threshold=2346


เริ่มการใช้งาน service
service hostapd start


Test Connection WiFi

ทดสอบการเชื่อมต่อ wifi จาก raspberry pi โดยใช้คอมพิวเตอร์ 9ล9 เมื่อเปิด web browser ระบบจะวิ่งไปหน้า Login
ให้  login ด้วย
user = usertest
password = passwd


ถ้ารหัสถูกต้องสามารถเชื่อมต่อ internet ได้

daloRADIUS

ติดตั้ง web server และ Nginx.
apt-get install -y php5-mysql php-pear php5-gd php-db php5-fpm libgd2-xpm libpcrecpp0 libxpm4 nginx php5-xcache
apt-get remove -y apache2.2-bin apache2-utils apache2.2-common


ดาวน์โหลด daloRadius
cd /usr/src
wget http://downloads.sourceforge.net/project/daloradius/daloradius/daloradius0.9-9/daloradius-0.9-9.tar.gz
tar zxvf daloradius-0.9-9.tar.gz -C /usr/share/nginx/www/

mv /usr/share/nginx/www/daloradius-0.9-9 /usr/share/nginx/www/daloradius
cd /usr/share/nginx/www/daloradius

เพิ่มข้อมูลที่ใช้ daloRadius ใน FreeRadius database
mysql -u root -praspbian radius < /usr/share/nginx/www/daloradius/contrib/db/fr2-mysql-daloradius-and-freeradius.sql
mysql -u root -praspbian
GRANT ALL ON radius.* to 'radius'@'localhost';
GRANT ALL ON radius.* to 'radius'@'127.0.01';
exit;


ในไฟล์ /usr/share/nginx/www/daloradius/library/daloradius.conf.php กำหนดค่า database ให้ถูกต้องดังนี้
sudo nano /usr/share/nginx/www/daloradius/library/daloradius.conf.php


$configValues['CONFIG_DB_USER'] = 'radius';
$configValues['CONFIG_DB_PASS'] = 'radpass';
$configValues['CONFIG_DB_NAME'] = 'radius';


แก้ไขไฟล์ /etc/nginx/sites-enabled/default 
sudo nano /etc/nginx/sites-enabled/default 


เพิ่มคำสั่งข้างล่างไปในไฟล์ตั้งแต่บรรทัดที่ 25
index index.php index.html index.htm;


จากนั้นลบ # ออกจากไฟล์  /etc/nginx/sites-enabled/default 
location ~ .php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/PHP5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}


รีสตาร์ service nginx
service nginx restart
how to create a user
ทดสอบเข้าไปหน้าจัดการ daloRADIUS โดยเปิด webbrowser http://<ip de votre raspberry>/daloradius

Login : administrator / Password : radius


สร้าง user ในการใช้งาน 


List User 


user online


Status System



VIDEO





RF : http://www.pihomeserver.fr/en/2015/08/05/raspberry-pi-coovachilli-et-freeradius-pour-un-hotspot-wifi-avec-portail-captif/