HomeKinh nghiệm wifi

Hướng dẫn cài đặt wifi marketing miễn phí trên OpenWrt

Like Tweet Pin it Share Share Email

Chào các bạn, kể từ khi viết bài đầu tiên về cách triển khai cài đặt wifi marketing miễn phí vào những năm 2017 thì mình thấy anh em ủng hộ và làm theo khá nhiều.

Đến bây giờ vẫn có nhiều người làm theo, vì thế mình quyết định sẽ làm lại bài viết để hướng dẫn chi tiết hơn.

Để cho dễ thực hiện & hỗ trợ nhiều thiết bị nhất có thể, mình vẫn bám sát vào dịch vụ của SmartWifi. Năm 2020 SmartWifi cũng mới ra mắt dịch vụ wifi marketing trên nền tảng mới, có nhiều tính năng hơn và cũng dễ chỉnh sửa hơn.

Chi tiết hơn về dịch vụ thì các bạn tham khảo thêm ở 2 link trên nha.

Để hoàn thành hướng dẫn cài đặt wifi marketing cần chuẩn bị những gì?

Để thành công, trước hết bạn phải chuẩn bị những thứ sau:

  • Một tài khoản wifi marketing tại địa chỉ https://admin.wifibiz.net
  • Một thiết bị wifi hỗ trợ OpenWrt. Các bạn xem thiết bị của mình có được hỗ trợ hay không tại đây: https://openwrt.org/supported_devices . Hoặc tốt nhất bạn có được một router Mikrotik hoặc bộ wifi Aruba như IAP-105. Bài viết này mình sẽ làm về OpenWrt.
  • Sẵn sàng gõ lệnh Linux với các tool ssh như Putty dành cho Windows. Nếu bạn dùng macbook thì OSX có sẵn Terminal cho bạn dùng, khỏi cần Putty nữa.

Mình quyết định hướng dẫn qua dòng lệnh, vì khi cài đặt OpenWrt thường không có giao diện web để cài đặt.

 

Bước 1: Chuẩn bị tài khoản WifiBiz

Bước này các bạn đọc hướng dẫn tại đây: 5 bước cơ bản cài đặt wifi marketing

Kết thúc bước này thì mặc định là bạn đã có link đăng nhập cho thiết bị của bạn ở dạng sau:

http://wifibiz.net/wifi/{NAS_ID}

Trong đó {NAS_ID} là id của thiết bị nhé, các bạn cứ tạo một thiết bị với kiểu là Coova Chilli như hình sau là lấy được ID:

Bước 2: Nạp OpenWrt lên router wifi

Bước này các bạn tự làm nha, đảm bảo rằng bạn có một thiết bị wifi với OpenWrt ở cấu hình mặc định khi kết thúc bước này.

Bài hướng dẫn này viết cho OpenWrt 18.06.4 trở đi nhé, các bản cũ hơn cũng có thể làm nhưng khi cài đặt CoovaChilli sẽ không giống cách này.

Bước 3: Cài đặt Wifi Marketing

Nối máy tính tới cổng LAN của router và mở Putty lên để kết nối vào router với địa chỉ mặc định là 192.168.1.1.

Khuyến khích dùng dây mạng nối máy tính với Router nhé, vì ban đầu nếu mới nạp Openwrt thì nó không bật wifi lên đâu.

cài đặt wifi marketing bằng putty

Khi bấm Open nếu Openwrt ở chế độ mặc định thì nó sẽ login cho bạn luôn mà không cần gõ password.

Cài đặt Coovachilli

Sử dụng 02 lệnh sau

Video hướng dẫn cài đặt wifi marketing trên Openwrt
opkg update
opkg install coova-chilli

Lệnh đầu tiên sẽ cập nhập danh sách các gói phần mềm hiện có của OpenWrt, lệnh sau là lệnh cài đặt.

Kết quả 2 lệnh trên trông như sau

Bước tiếp theo, tạo thêm một network interface mới cho wifi marketing

Mặc dù có thể triển khai wifi marketing trên interface có sẵn tên là “lan”, tuy nhiên mình khuyến khích tạo interface mới. Lý do là nếu bạn làm trên lan, nếu không có kinh nghiệm thì có thể không truy cập vào router được và bắt buộc phải reset router – khá là mất công.

Gõ lệnh vi /etc/config/network để mở ra cửa sổ chỉnh sửa network

vi /etc/config/network 

Di chuyển con trỏ tới dưới cùng, gõ chữ i trên bàn phím để vào chế độ edit mode của vi editor và thêm vào đoạn sau:

config interface 'wifibiz'
	option type 'bridge'
	option proto 'none'

Note: Bạn có thể copy đoạn text trên rồi paste khi đang ở edit mode. Nếu trong windows, bạn bấm chuột phải 1 lần thì nó sẽ paste luôn.

Sau đó bấm phím ESC (escape) trên bàn phím để thoát khỏi chế độ edit mode. Tiếp tục bấm phím hai chấm (:) rồi bấm chữ x và enter để lưu lại.

vi editor

Mấy thao tác này là lệnh rất cơ bản của lệnh vi trong linux/unix, các bạn cứ google tìm hiểu thêm nha.

Tiếp theo gõ lệnh sau để restart lại network

/etc/init.d/network restart

Chỉnh sửa firewall

Gõ lệnh sau để sửa firewall, mục đích là tạo mới một zone cho wifi marketing và tạo rule NAT cho zone này:

vi /etc/config/firewall

Sau khi mở file lên thì bấm i để vào edit mode, và thêm vào dưới cùng những cấu hình sau:

config zone
      option name 'wifibiz'
      option input 'ACCEPT'
      option output 'ACCEPT'
      option forward 'ACCEPT'
      option network 'wifibiz'
      
config forwarding
      option src 'wifibiz'
      option dest 'wan'

Tiếp theo bấm ESC rồi bấm phím : và phím chữ x rồi enter để lưu lại.

Gõ lệnh sau để restart lại firewall

/etc/init.d/firewall restart

Chỉnh sửa mạng wifi

Bước tiếp theo là chuyển mạng wifi về mạng wifibiz ta vừa tạo. Hãy dùng lệnh sau để vào chỉnh sửa:

vi /etc/config/wireless 

Khi gõ lệnh trên có thể bạn sẽ thấy đoạn như sau:

config wifi-device 'radio0'                               
        option type 'mac80211'                            
        option channel '11'                               
        option hwmode '11g'                               
        option path 'pci0000:00/0000:00:01.0/0000:02:00.0'
        option htmode 'HT20'      
        option disabled '1'       
                                  
config wifi-iface 'default_radio0'
        option device 'radio0'                            
        option network 'lan'                              
        option mode 'ap'                                  
        option ssid 'OpenWrt'                             
        option encryption 'none' 

Mục option disable ‘1’ bạn chuyển thành option disabled ‘0’ để bật wifi lên

Mục option network ‘lan’ chuyển thành option network ‘wifibiz’ để chuyển nó sang mạng marketing, mặc định nó ở lan

Mục option ssid ‘OpenWrt’ bạn có thể sửa thành tên wifi mong muốn của bạn.

Kết quả cuối như sau:

config wifi-device 'radio0'                               
        option type 'mac80211'                            
        option channel '11'                               
        option hwmode '11g'                               
        option path 'pci0000:00/0000:00:01.0/0000:02:00.0'
        option htmode 'HT20'      
        option disabled '0'       
                                  
config wifi-iface 'default_radio0'
        option device 'radio0'                            
        option network 'wifibiz'                              
        option mode 'ap'                                  
        option ssid 'OpenWrt'                             
        option encryption 'none' 

Lưu ý chỉ sửa 3 mục đó thôi nha, các tham số khác cứ để mặc định vì giá trị của nó có thể khác tùy vào từng loại phần cứng.

Cuối cùng gõ ESC, bấm phím : và phím x rồi enter để lưu lại.

Bây giờ nếu muốn wifi có hiệu lực ngay thì bạn gõ lệnh wifi rồi enter thì sẽ bật wifi lên.

wifi

Cài đặt CoovaChilli để chạy wifi marketing

Bước này là rất quan trọng, bạn chỉnh sửa file /etc/config/chilli bằng lệnh

vi /etc/config/chilli

Từ cửa sổ vi editor, bấm phím i để vào edit mode và tiến hành chỉnh sửa các tham số như sau:

config chilli
    option disabled 0
    option tundev 'tun0'
    option fg
    option pidfile /var/run/chilli.pid
    option statedir ./
    option net 192.168.182.0/24
    option dns1 8.8.8.8
    option dns2 8.8.4.4
    option ipup /etc/chilli/up.sh
    option ipdown /etc/chilli/down.sh
    option radiusserver1 178.128.51.224
    option radiusserver2 178.128.51.224
    option radiussecret Zi0HgArisaKoevwz
    option dhcpif br-wifibiz
    option lease 600
    
    # Ban phai thay {NAS_ID} bang NAS ID cua ban
    option uamserver http://wifibiz.net/wifi/{NAS_ID}
    option uamsecret ""
    option uamlisten 192.168.182.1
    option uamport 3990
    
    option uamallowed "wifibiz.net"
    option uamallowed "api.wifibiz.net"
    option uamallowed "static.wifibiz.net"
    option uamallowed "analytics.smartwifi.vn"
    option uamallowed "use.fontawesome.com"
    option uamallowed "maxcdn.bootstrapcdn.com"
    option uamallowed "fonts.googleapis.com"
    
    option uamdomain ".wifibiz.net"

    option uamanydns 1

Đây là bản các tham số đã được thu gọn, mặc định nó sẽ có rất nhiều option, trông khá là rối mắt. Bạn chịu khó edit từng option một hoặc copy đoạn trên để thay thế cho toàn bộ nội dung của file /etc/config/chilli

Bản đầy đủ và chạy được của mình như sau

#
# Sample Coova-Chilli configuration file
#

config chilli
    # disable to running chilli. remove this option before running.
    #option disabled 1

    # name of TUN device name. required.
    option tundev 'tun0'

    # name of network interface
    #option network 'wifibiz'

    # Include this flag if process is to run in the foreground
    option fg

    # Include this flag to include debug information.
    #option debug 1

    # Re-read configuration file at this interval. Will also cause new domain
    # name lookups to be performed. Value is given in seconds.
    #option interval 3600

    # File to store information about the process id of the program.
    # The program must have write access to this file/directory.
    option pidfile /var/run/chilli.pid

    # Directory to use for nonvolatile storage.
    # The program must have write access to this directory.
    # this option is currently ignored
    option statedir ./


    # TUN parameters

    # IP network address of external packet data network
    # Used to allocate dynamic IP addresses and set up routing.
    # Normally you do not need to uncomment this option.
    option net 192.168.182.0/24

    # Dynamic IP address pool
    # Used to allocate dynamic IP addresses to clients.
    # If not set it defaults to the net tag.
    # Do not uncomment this option unless you are an experienced user!
    #option dynip 192.168.182.0/24

    # Static IP address pool
    # Used to allocate static IP addresses to clients.
    # Do not uncomment this option unless you are an experienced user!
    #option statip 192.168.182.0/24


    # Primary DNS server.
    # Will be suggested to the client.
    # If omitted the system default will be used.
    # Normally you do not need to uncomment this option.
    option dns1 8.8.8.8

    # Secondary DNS server.
    # Will be suggested to the client.
    # If omitted the system default will be used.
    # Normally you do not need to uncomment this option.
    option dns2 8.8.4.4

    # Domain name
    # Will be suggested to the client.
    # Normally you do not need to uncomment this option.
    option domain key.chillispot.org

    # Script executed after network interface has been brought up.
    # Executed with the following parameters: <devicename> <ip address>
    # <mask>
    # Normally you do not need to uncomment this option.
    option ipup /etc/chilli/up.sh

    # Script executed after network interface has been taken down.
    # Executed with the following parameters: <devicename> <ip address>
    # <mask>
    # Normally you do not need to uncomment this option.
    option ipdown /etc/chilli/down.sh


    # Radius parameters

    # IP address to listen to
    # Normally you do not need to uncomment this option.
    #option radiuslisten 127.0.0.1

    # IP address of radius server 1
    # For most installations you need to modify this option.
    option radiusserver1 178.128.51.224

    # IP address of radius server 2
    # If you have only one radius server you should set radiusserver2 to the
    # same value as radiusserver1.
    # For most installations you need to modify this option.
    option radiusserver2 178.128.51.224

    # Radius authentication port
    # The UDP port number to use for radius authentication requests.
    # The same port number is used for both radiusserver1 and radiusserver2.
    # Normally you do not need to uncomment this option.
    #option radiusauthport 1812

    # Radius accounting port
    # The UDP port number to use for radius accounting requests.
    # The same port number is used for both radiusserver1 and radiusserver2.
    # Normally you do not need to uncomment this option.
    #option radiusacctport 1813

    # Radius shared secret for both servers
    # For all installations you should modify this option.
    option radiussecret Zi0HgArisaKoevwz

    # Radius NAS-Identifier
    # Normally you do not need to uncomment this option.
    #option radiusnasid nas01

    # WISPr Location ID. Should be in the format: isocc=<ISO_Country_Code>,
    # cc=<E.164_Country_Code>,ac=<E.164_Area_Code>,network=<ssid/ZONE>
    # Normally you do not need to uncomment this option.
    #option radiuslocationid isocc=us,cc=1,ac=408,network=ACMEWISP_NewarkAirport

    # WISPr Location Name. Should be in the format:
    # <HOTSPOT_OPERATOR_NAME>,<LOCATION>
    # Normally you do not need to uncomment this option.
    #option radiuslocationname ACMEWISP,Gate_14_Terminal_C_of_Newark_Airport


    # Radius proxy parameters

    # IP address to listen to
    # Normally you do not need to uncomment this option.
    #option proxylisten 10.0.0.1

    # UDP port to listen to.
    # If not specified a port will be selected by the system
    # Normally you do not need to uncomment this option.
    #option proxyport 1645

    # Client(s) from which we accept radius requests
    # Normally you do not need to uncomment this option.
    #option proxyclient 10.0.0.1/24

    # Radius proxy shared secret for all clients
    # If not specified defaults to radiussecret
    # Normally you do not need to uncomment this option.
    #option proxysecret testing123


    # DHCP Parameters

    # Ethernet interface to listen to.
    # This is the network interface which is connected to the access points.
    # In a typical configuration this option should be set to eth1.
    option dhcpif br-wifibiz

    # Use specified MAC address.
    # An address in the range  00:00:5E:00:02:00 - 00:00:5E:FF:FF:FF falls
    # within the IANA range of addresses and is not allocated for other
    # purposes.
    # Normally you do not need to uncomment this option.
    #option dhcpmac 00:00:5E:00:02:00

    # Time before DHCP lease expires
    # Normally you do not need to uncomment this option.
    option lease 600


    # Universal access method (UAM) parameters

    # URL of web server handling authentication.
    option uamserver http://wifibiz.net/wifi/{NAS_ID}

    # URL of welcome homepage.
    # Unauthenticated users will be redirected to this URL. If not specified
    # users will be redirected to the uamserver instead.
    # Normally you do not need to uncomment this option.
    #option uamhomepage http://192.168.182.1/welcome.html

    # Shared between chilli and authentication web server
    option uamsecret ""

    # IP address to listen to for authentication requests
    # Do not uncomment this option unless you are an experienced user!
    option uamlisten 192.168.182.1

    # TCP port to listen to for authentication requests
    # Do not uncomment this option unless you are an experienced user!
    option uamport 3990

    # Comma separated list of domain names, IP addresses or network segments
    # the client can access without first authenticating.
    # It is possible to specify this option multiple times.
    # Normally you do not need to uncomment this option.
    option uamallowed "wifibiz.net"
    option uamallowed "api.wifibiz.net"
    option uamallowed "static.wifibiz.net"
    option uamallowed "analytics.smartwifi.vn"
    option uamallowed "use.fontawesome.com"
    option uamallowed "maxcdn.bootstrapcdn.com"
    option uamallowed "fonts.googleapis.com"

    # Comma separated list of domain names
    # the client can access without first authenticating.
    # It is possible to specify this option multiple times.
    # Normally you do not need to uncomment this option.
    option uamdomain ".wifibiz.net"

    # If this flag is given unauthenticated users are allowed to use
    # any DNS server.
    # Normally you do not need to uncomment this option.
    option uamanydns 1


    # MAC authentication

    # If this flag is given users will be authenticated only on their MAC
    # address.
    # Normally you do not need to uncomment this option.
    #option macauth

    # List of MAC addresses.
    # The MAC addresses specified in this list will be authenticated only on
    # their MAC address.
    # this option is ignored if the macauth tag is given.
    # It is possible to specify this option multiple times.
    # Normally you do not need to uncomment this option.
    #option macallowed 00-0A-5E-AC-BE-51,00-30-1B-3C-32-E9

    # Password to use for MAC authentication.
    # Normally you do not need to uncomment this option.
    #option macpasswd password

    # Suffix to add to MAC address in order to form the username.
    # Normally you do not need to uncomment this option.
    #option macsuffix suffix

Trong phần option uamserver bạn nhớ thay chuỗi ký tự cuối bằng mã NAS ID của bạn nhé (NAS ID là mã thiết bị tạo trong admin.wifibiz.net)

Cuối cùng là chạy lệnh sau để khởi động wifi marketing

/etc/init.d/chilli start

Nhớ là cắm dây mạng từ router về cổng wan của router cài đặt OpenWrt nhé, nếu không là dịch vụ chilli không chạy đâu.

Tới đây thì wifi marketing chạy được rồi. Nếu mọi thứ ổn định thì bạn có thể đưa dịch vụ wifi marketing tự động chạy mỗi khi khởi động lại router bằng lệnh sau:

/etc/init.d/chilli enable

Một số lệnh khác để dừng kiểm soát dịch vụ:

# Khoi dong dich vu
/etc/init.d/chilli start

# Dung dich vu
/etc/init.d/chilli stop

# Tu dong chay khi khoi dong
/etc/init.d/chilli enable

# Huy/Cancel tu dong chay khi khoi dong
/etc/init.d/chilli disable

Cài đặt wifi marketing trên OpenWrt khá là dễ nếu bạn thành thạo về Linux, thao tác những lệnh này trên OpenWrt cũng rất là an toàn và không gây hại gì tới phần core của OpenWrt, nếu cần thì reset lại OpenWrt là mới lại từ đầu. Lệnh reset như sau:

firstboot -y && reboot 

Kết thúc – Mở rộng cài đặt wifi marketing ra cổng LAN

Khi bạn cài đặt xong wifi marketing, rất có thể bạn muốn mở rộng dịch vụ ra các cổng LAN để nối ra wifi khác.

Để thự hiện phần này bạn phải dùng VLAN, phần này khá là rối rắm, mình sẽ có một hướng dẫn sau. Tuy nhiên về nguyên tắc sẽ như sau:

  1. Tạo vlan mới trong phần switch
  2. Gán port LAN cần sử dụng vào VLAN đã tạo ở chế độ untagged
  3. Gán VLAN vào bridge của wifi marketing, như trong hướng dẫn này là ‘wifibiz

Chi tiết cách làm các bạn xem thêm trong video clip ở trên nha.

Chúc các bạn thành công.