18 ก.ย. 2553

Disable Intra BBS

A Basic Service Set (BSS) is formed when all communications between wireless stations or between a wireless station and a wired network client go through one access point. Intra BSS traffic is traffic between wireless stations in the same BSS. When Intra BSS is enabled, wireless stations can communicate with each other. When Intra BSS is disabled, wireless stations cannot communicate with each other. You can enable or disable Intra BSS communication using the CI command in SMT menu 24.8. P-335> wlan intrabssblock Usage: wlan intrabssblock 0 Note: "0" means intra-BSS blocking is disabled. This means that wireless stations can communicate with each. Enter "1" to block intra BSS traffic.

ที่มา http://www.zyxel.com/web/support_knowledgebase_detail.php?KnowledgeBaseID=1200&pid=20040520161313

ฟีเจอร์ WPS คืออะไร?

WPS (WiFi Protected Setup)
  • เป็นการตั้งค่าความปลอดภัยอัตโนมัติบนเครือข่ายไร้สาย
ตัวแม่และตัวลูกจะต้อง Support Feature ดังกล่าวด้วยครับถึงจะใช้งานร่วมกันได้ ซึ่งโดยทั่วไปมันจะมีปุ่ม WPS ให้กดด้านหลังตัวเครื่อง หรือจะมีอยู่หน้า Gui ก็ตาม ตัวแม่จะเป็นตัว Generate Password ในรูปแบบ Random ออกมา โดยที่รหัสดังกล่าวค่อนข้างจะปลอดภัยมาก ส่วน Client ก็จะต้องทำการกด WPS เช่นกันเพื่อเชื่อมต่อกับตัวแม่ และจะต้องทำในช่วงเวลาประมาณ 2 นาที Client ไม่จำเป็นต้องรู้ Network Name หรือ SSID ของ AP มันจะดำเนินการ Config ให้เองครับ ปัจจุบันWPS มีใช้ในหลาย ๆ ยื่ห้อครับ แต่ถ้าหาก Client ของคุณไม่ Support ก็ไม่สามารถทำได้งานได้เช่นกัน

ที่มา http://www.adslthailand.com/forum/viewtopic.php?f=17&t=79614

3 ก.ย. 2553

How to Setup CoovaChilli 1.2.4, FreeRadius, MySQL on Ubuntu 10.04

I decide to install Coovachilli on Ubuntu 10.04 because OS boots very fast.

Requirement applications for Captive portal solution
CoovaChilli 1.2.4
FreeRadius
MySQL

1. Install Ubuntu 10.04 and choose package LAMP ,DNS, Openssh .



1.1 Modify the network configuartion file.
nano /etc/network/interfaces



iface eth0 inet static
address 10.10.10.3
netmask 255.255.255.240
gateway 10.10.10.1
auto eth1



1.2 Uncomment in /etc/sysctl.conf:
nano /etc/sysctl.conf




net.ip4.ip_forward=1

2. Install Freeradius and edit



2.1 Setup freeradius
apt-get install freeradius freeradius-mysql





2.2 create DB "radius"

mysqladmin -p create radius

mysql -u root -p radius < /etc/freeradius/sql/mysql/schema.sql -p

mysql -u root -p radius < /etc/freeradius/sql/mysql/nas.sql

mysql -u root -p use radius; GRANT ALL PRIVILEGES ON radius.* TO 'radius'@'localhost' IDENTIFIED BY 'xxxxxxxx';

FLUSH PRIVILEGES; quit






2.3 แก้ไขไพล์ sql.conf เพื่อใช้เชื่อมต่อกับฐานข้อมูลที่เพิ่งสร้างขึ้นมา
nano -w /etc/freeradius/sql.conf




server = "localhost"
login = "radius"
password = "xxxxxxxx"
แล้วเอา # หน้า readclient =yes ออก



nano /etc/freeradius/radiusd.conf


ให้เอา comment ที่หน้า 2 บรรทัดนี้ออก

modules {
….
$INCLUDE sql.conf
$INCLUDE sql/mysql/counter.conf



2.4 แก้ไขไพล์ client.conf เพื่อให้ Coova-chilli และ Daloradius มาทำงานร่วมกับ freeradius ได้
nano -w /etc/freeradius/clients.conf


client 127.0.0.1 {
secret = Iloveradius
}



2.5 แก้ไขไพล์ default
nano -w /etc/freeradius/sites-available/default



ให้กด ctrl+w หาคำว่า authorize { เจอแล้วให้เลื่อนลงมาใส่ # ที่ file และเอา # ที่หน้า sql
authorize {
#file เติม # เข้าไป
sql เอา # ออก
daily เอา # ออก และเพิ่ม 3 บรรทัดข้างล่างต่อท้าย
noresetcounter
dailycounter
monthlycounter
}

ต่อมาก็หาคำว่า accounting { แล้วเอา # หน้า sql ออก
accounting {
sql # uncomment
}

ต่อมาก็หาคำว่า session { แล้วเอา # หน้า sql ออก
session {
sql #uncomment
}



2.6 เพิ่ม User เข้าไปในฐานข้อมูล Radius เสร็จ restart Freeradius แล้วทดสอบ User เลย
mysql -u root -p
INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('guest', 'Password','guest'); เพิ่มusername เข้าไปในฐานข้อมูล
quit
/etc/init.d/freeradius restart
radtest guest guest 127.0.0.1 0 xxxxxxxx



ถ้าทำสำเร็จ จะมีข้อความประมาณนี้ Access-Accept packet from host 127.0.0.1:1812, id=144, length=20
--------------------จบ Freeradius----------------

3. Build Coova แล้ว install และ config


3.1 ได้ลอง build package เองแล้วมันใช้ได้ ดีกว่าแบบที่เค้า Build มาให้
aptitude --assume-yes install dpkg-dev debhelper libssl-dev
cd /tmp
wget -c http://ap.coova.org/chilli/coova-chilli-1.2.4.tar.gz
tar xzf coova-chilli*.tar.gz
cd coova-chilli*
dpkg-buildpackage -rfakeroot





3.2 Install CoovaChilli:
cd ..
dpkg -i coova-chilli_*_i386.deb





3.3 มาจัดการแก้ไข file ต่างๆ ใน coova
cp /etc/chilli/defaults /etc/chilli/config





3.4 สร้าง folder hotspot ขึ้น
mkdir /var/www/hotspot
cd /var/www/hotspot
cp /etc/chilli/www/* /var/www/hotspot
sed -i 's/1.0.0.1/192.168.0.1/g' /etc/chilli/www/ChilliLibrary.js ยาวเป็นบรรทัดเดียว
sed -i 's/1.0.0.1/192.168.0.1/g' /var/www/hotspot/ChilliLibrary.js





3.5 เข้าไปแก้ไข file chilli โดยเปลี่ยนค่าเป็น 1
nano -w /etc/default/chilli



START_CHILLI=1



3.6 แก้ไข file /etc/chilli/config
nano /etc/chilli/config



HS_LANIF=eth1 # Subscriber Interface for client devices
HS_NETWORK=192.168.0.0 # HotSpot Network (must include HS_UAMLISTEN)
HS_NETMASK=255.255.255.0 # HotSpot Network Netmask
HS_UAMLISTEN=192.168.0.1 # HotSpot IP Address (on subscriber network)
HS_UAMPORT=3990 # HotSpot Port (on subscriber network)

HS_NASID=nas01
HS_UAMSECRET=uamsecret
HS_RADIUS=127.0.0.1
HS_RADIUS2=127.0.0.1
HS_RADSECRET=xxxxxxxx
HS_UAMALLOW=www.google.com,192.168.0.0/24

HS_UAMSERVER=192.168.0.1
HS_UAMFORMAT=https://\$HS_UAMSERVER/uam/
HS_UAMHOMEPAGE=http://\$HS_UAMLISTEN:\$HS_UAMPORT/www/coova.html
HS_UAMSERVICE=https://192.168.0.1/cgi-bin/hotspotlogin.cgi

HS_ANYIP=on # Allow any IP address on subscriber LAN
#
HS_MACAUTH=on # To turn on MAC Authentication
HS_MACPASSWD=XXXXXX #รหัสผ่านต้องเหมือนกับทีแก้ไขในไพล์/etc/chilli/functions



3.7 ติดตั้ง Firewall (เพิ่มข้อความข้างล่างในบรรทัดท้ายสุด)
nano /etc/chilli/up.sh



#แทรก หลังจาก . /etc/chilli/functions
iptables -F
iptables -t nat -F

#แล้วต่อท้ายด้วย ข้างล่างนี้
# may not have been populated the first time; run again
[ -e "/var/run/chilli.iptables" ] && sh /var/run/chilli.iptables 2>/dev/null
# force-add the final rule necessary to fix routing tables
iptables -I POSTROUTING -t nat -o $HS_WANIF -j MASQUERADE

iptables -P INPUT DROP
iptables -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT


iptables -I INPUT -p icmp --icmp-type 8 -s 0/0 -d 192.168.0.1 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -I OUTPUT -p icmp --icmp-type 0 -s 192.168.0.1 -d 0/0 -m state --state ESTABLISHED,RELATED -j ACCEPT

#SSH Accept from tun0
iptables -I INPUT -i tun0 -p tcp -m tcp --dport 22222 --dst 192.168.0.1 -j ACCEPT

iptables -I INPUT -i eth0 -s 10.10.10.3 -p tcp -m tcp --dport 22222 --dst 10.10.10.4 -j ACCEPT

#SNMP
iptables -I INPUT -p udp -s 0/0 --sport 1024:65535 -d 192.168.0.1 --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -I INPUT -p udp -i tun0 -d 192.168.0.1 --dport 161 -j ACCEPT

#iptables -t nat -I PREROUTING -i tun0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
#iptables -I INPUT -i tun0 -p tcp -m tcp --dport 3128 --syn -j ACCEPT
#iptables -t nat -I PREROUTING -p tcp -m tcp --dport 3128 -j DROP
#iptables -t nat -I PREROUTING -p tcp -m tcp --dport 8080 -j DROP
#iptables -t nat -I PREROUTING -p tcp -m tcp --dport 2121 -j DROP

iptables -t nat -I POSROUTING -o eth0 -j LOG
#squid Log
iptables -t nat -N logging
iptables -t nat -A PREROUTING -j logging

#iptables -t nat -A POSTROUTING -j logging
iptables -A INPUT -j LOG --log-level info --log-prefix "INPUT "
iptables -A OUTPUT -j LOG --log-level info --log-prefix "OUTPUT "
iptables -A FORWARD -j LOG --log-level info --log-prefix "FORWARD "
# HTTP:
iptables -t nat -A logging -p tcp --dport 80 -j LOG --log-prefix "HTTP: " \
--log-level info
# HTTPS:
iptables -t nat -A logging -p tcp --dport 443 -j LOG --log-prefix "HTTPS: " \
--log-level info
# SMTP:
iptables -t nat -A logging -p tcp --dport 25 -j LOG --log-prefix "SMTP: " \
--log-level info
# FTP:
iptables -t nat -A logging -p tcp --dport 21 -j LOG --log-prefix "FTP: " \
--log-level info
# IMAP:
iptables -t nat -A logging -p tcp --dport 143 -j LOG --log-prefix "IMAP: " \
--log-level info
# POP3:
iptables -t nat -A logging -p tcp --dport 110 -j LOG --log-prefix "POP3: " \
--log-level info
# MSN:
iptables -t nat -A logging -p tcp --dport 1863 -j LOG --log-prefix "MSN: " \
--log-level info
# JABBER:
iptables -t nat -A logging -p tcp --dport 5222 -j LOG --log-prefix "JABBER: " \
--log-level info

JABBERS
iptables -t nat -A logging -p tcp --dport 5223 -j LOG --log-prefix "JABBERS: " \
--log-level info
# ICQ/AIM
iptables -t nat -A logging -p tcp --dport 5190 -j LOG --log-prefix "ICQ/AIM: " \
--log-level info
# Yahoo
iptables -t nat -A logging -p tcp --dport 5050 -j LOG --log-prefix "YAHOO: " \
--log-level info
# IRC
iptables -t nat -A logging -p tcp --dport 6667 -j LOG --log-prefix "IRC: " \
--log-level info
# Gadu-Gadu
iptables -t nat -A logging -p tcp --dport 8074 -j LOG --log-prefix "GADU-GADU: " \
--log-level info

iptables -I INPUT -i lo -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 443 --syn -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 3990 --syn -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 4990 --syn -j ACCEPT

iptables -I INPUT -p tcp -m tcp --dport 80 --syn -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 53 --syn -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 67:68 --syn -j ACCEPT
iptables -I INPUT -p tcp -m tcp --dport 3306 --syn -j ACCEPT

iptables -A INPUT -i tun0 -j DROP


4. config Apapche2


4.1 ติดตั้ง SSL
apt-get install libapache2-mod-auth-mysql





4.2 สร้าง Certificate

apt-get install ssl-cert





4.3 สร้าง folder ssl
mkdir /etc/apache2/ssl





4.4 ดูชื่อเครื่อง
hostname -f





4.5 เสร็จแล้วก็เอาชื่อ hostnameมาใส่ในการตอบคำถามข้างล่างนี้
make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem





4.6 ติดตั้ง module ssl
a2enmod ssl
/etc/init.d/apache2 force-reload





4.7 แก้ไขไพล์ hosts
nano /etc/hosts



127.0.0.1 localhost.local localhost
127.0.1.1 Authen.local Authen
192.168.0.1 Authen.local Authen



4.8 สร้างsite hotspot ก๊อบข้างล่างไปวางใน hotspot (ลบ. ออกด้วยนะ)
nano -w /etc/apache2/sites-available/hotspot




NameVirtualHost 192.168.0.1:443
<.VirtualHost 192.168.0.1:443>
ServerAdmin webmaster@domain.org
DocumentRoot "/var/www/hotspot"
ServerName "192.168.0.1"
<.Directory "/var/www/hotspot/">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
<./Directory>

Alias "/dialupadmin/" "/usr/share/freeradius-dialupadmin/htdocs/"
<.Directory "/usr/share/freeradius-dialupadmin/htdocs/">
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
<./Directory>

<.Directory "/var/www/hotspot/cgi-bin/">
AllowOverride None
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
<./Directory>

ErrorLog /var/log/apache2/hotspot-error.log

LogLevel warn

CustomLog /var/log/apache2/hotspot-access.log combined

ServerSignature On
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
<./VirtualHost>



4.9 สั่งให้ hotspot ใน apache ทำงาน
a2ensite hotspot





4.10 จัดการเรื่อง Listen Ports ใน apche
nano -w /etc/apache2/ports.conf



แก้ไขให้เหลือตามข้างล่างเป็นพอ

Listen 443
Listen 80



nano -w /etc/apache2/apache2.conf



ServerName 192.168.0.1 เพิ่มคำสั่งนี้ไว้บนสุดเลยครับ



4.11 เปิดไฟล์ default
nano -w /etc/apache2/sites-available/default



เพิ่มตรงบนสุด NameVirtualHost *:80



4.12 สร้างหน้า login ของ Hotspot
cd /var/www/hotspot/
wget http://www.truesoft.co.th/wifi/uam.tgz
tar xvf uam.tgz





to Start chilli service that server reboots
update-rc.d chilli defaults



จบด้วยการ restart มาถึงตรงนี้ สามารถทดสอบได้แล้ว



5. ติดตั้ง Haserl Download haserl from http://haserl.sourceforge.net/.

sudo apt-get install gcc
tar xvf haserl-0.8.0.tar.gz

cd haserl-0.8.0/

./configure
make
make install

Edit /etc/chilli/wwwsh file

haserl=$(which haserl 2>/dev/null)
with
haserl=/usr/local/bin/haserl


6. Install Syslog-ng

apt-get install syslog-ng
cp /etc/syslog-ng/syslog-ng.conf /etc/syslog-ng/syslog-ng.conf.bak
nano /etc/syslog-ng/syslog-ng.conf

destination remote {
udp("192.168.20.104" port(514));
};
log {source(s_all); filter(f_messages); destination(remote); };
log {source(s_all); filter(f_kern); destination(remote); };

/etc/init.d/syslog-ng start


nano /etc/init.d/rc.capture

#!/bin/bash
tail -F /var/log/squid/access.log logger -t squid -p local3.info &
tail -F /var/log/radius/radacct/127.0.0.1/details logger -t radiusd -p local3.info &

chmod a+x /etc/init.d/rc.capture
ln -s /etc/init.d/rc.capture /etc/rcS.d/S88rccapture


nano /etc/logrotate.d/freeradius

/var/log/radius/radacct/127.0.0.1/details {
rotate 13
weekly
delaycompress
missingok
notifempty
compress

}


nano /etc/freeradius/modules/detail

ให้เปลี่ยนค่า detailfile = ${radacctdir}/%{Client-IP-Address}/detail-%Y%m%d เป็น
detailfile = ${radacctdir}/%{Client-IP-Address}/details


ขั้นตอนการติดตั้ง NTP Server ที่เครื่อง Log Server เป็นดังนี้

1.ติดตั้ง ntp ด้วยสั่ง
apt-get install ntp
2.ทำการสำเนาไฟล์คอนฟิกของ ntp ไปไว้เป็นอีกชื่อดังนี้
cp /etc/ntp.conf /etc/ntp.conf.bak
3.แก้ไขไฟล์ /etc/ntp.conf ให้มีค่าเป็นดังนี้
restrict default kod nomodify notrap noquery nopeer
restrict 127.0.0.1
# อนุญาตให้ Internal network เข้าใช้งาน
restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap
server 203.185.69.60 dynamic
server time.navy.mi.th dynamic
server time.nist.gov dynamic
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
driftfile /var/lib/ntp/ntp.drift
broadcastdelay 0.008
keys /etc/ntp/keys

4.สั่ง restart service ด้วยคำสั่ง

chkconfig ntpd on
/etc/init.d/ntp restart

5. ตรวจสอบ Remote Server ที่ต้องการใช้อ้างอิงฐานเวลา ใช้คำสั่งดังนี้
ntptrace




อ้างอิง
http://linux.xvx.cz/2010/03/debian-wi-fi-hotspot-using-coovachilli-freeradius-mysql-and-daloradius/
http://www.itmanage.info/technology/linux/ubuntu/chillihospot/install_chillhotspot_ubutu_8_10.html