create_ap

create a nat-ed wifi ap
git clone git://git.2f30.org/create_ap
Log | Files | Refs | README | LICENSE

commit f0e46e8d3cac8570d1a96dbac8e28acca10ca321
parent 7349b0649c539bd473ca040e6602c7ae2d538baa
Author: ☃ Elliot Shepherd <elliot@ninjablocks.com>
Date:   Mon, 28 Sep 2015 14:36:17 +1000

Add --isolate-clients option

Diffstat:
MREADME.md | 4++++
Mcreate_ap | 13+++++++++++--
2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md @@ -2,6 +2,7 @@ * Create an AP (Access Point) at any channel. * Choose one of the following encryptions: WPA, WPA2, WPA/WPA2, Open (no encryption). * Hide your SSID. +* Disable communication between clients (client isolation). * IEEE 802.11n support * Internet sharing methods: NATed or Bridged or None (no Internet sharing). * Choose the AP Gateway IP (only for 'NATed' and 'None' Internet sharing methods). @@ -70,6 +71,9 @@ ### Enable IEEE 802.11n create_ap --ieee80211n --ht_capab '[HT40+]' wlan0 eth0 MyAccessPoint MyPassPhrase +### Client Isolation: + create_ap --isolate-clients wlan0 eth0 MyAccessPoint MyPassPhrase + ## Systemd service Using the persistent [systemd](https://wiki.archlinux.org/index.php/systemd#Basic_systemctl_usage) service ### Start service immediately: diff --git a/create_ap b/create_ap @@ -42,6 +42,7 @@ usage() { echo " 'none' for no Internet sharing (equivalent to -n)" echo " --psk Use 64 hex digits pre-shared-key instead of passphrase" echo " --hidden Make the Access Point hidden (do not broadcast the SSID)" + echo " --isolate-clients Disable communication between clients" echo " --ieee80211n Enable IEEE 802.11n (HT)" echo " --ht_capab <HT> HT capabilities (default: [HT40+])" echo " --country <code> Set two-letter country code for regularity (example: US)" @@ -585,6 +586,7 @@ ETC_HOSTS=0 DHCP_DNS=gateway NO_DNS=0 HIDDEN=0 +ISOLATE_CLIENTS=0 SHARE_METHOD=nat IEEE80211N=0 HT_CAPAB='[HT40+]' @@ -598,7 +600,7 @@ NO_HAVEGED=0 USE_PSK=0 -CONFIG_OPTS=(CHANNEL GATEWAY WPA_VERSION ETC_HOSTS DHCP_DNS NO_DNS HIDDEN SHARE_METHOD +CONFIG_OPTS=(CHANNEL GATEWAY WPA_VERSION ETC_HOSTS DHCP_DNS NO_DNS HIDDEN ISOLATE_CLIENTS SHARE_METHOD IEEE80211N HT_CAPAB DRIVER NO_VIRT COUNTRY FREQ_BAND NEW_MACADDR DAEMONIZE NO_HAVEGED WIFI_IFACE INTERNET_IFACE SSID PASSPHRASE USE_PSK) @@ -986,7 +988,7 @@ for ((i=0; i<$#; i++)); do fi done -GETOPT_ARGS=$(getopt -o hc:w:g:dnm: -l "help","hidden","ieee80211n","ht_capab:","driver:","no-virt","fix-unmanaged","country:","freq-band:","mac:","dhcp-dns:","daemon","stop:","list","list-running","list-clients:","version","psk","no-haveged","no-dns","mkconfig:","config:" -n "$PROGNAME" -- "$@") +GETOPT_ARGS=$(getopt -o hc:w:g:dnm: -l "help","hidden","isolate-clients","ieee80211n","ht_capab:","driver:","no-virt","fix-unmanaged","country:","freq-band:","mac:","dhcp-dns:","daemon","stop:","list","list-running","list-clients:","version","psk","no-haveged","no-dns","mkconfig:","config:" -n "$PROGNAME" -- "$@") [[ $? -ne 0 ]] && exit 1 eval set -- "$GETOPT_ARGS" @@ -1004,6 +1006,10 @@ while :; do shift HIDDEN=1 ;; + --isolate-clients) + shift + ISOLATE_CLIENTS=1 + ;; -c) shift CHANNEL="$1" @@ -1477,6 +1483,8 @@ fi [[ $HIDDEN -eq 1 ]] && echo "Access Point's SSID is hidden!" +[[ $ISOLATE_CLIENTS -eq 1 ]] && echo "Access Point's clients will be isolated!" + # hostapd config cat << EOF > $CONFDIR/hostapd.conf beacon_int=100 @@ -1487,6 +1495,7 @@ channel=${CHANNEL} ctrl_interface=$CONFDIR/hostapd_ctrl ctrl_interface_group=0 ignore_broadcast_ssid=$HIDDEN +ap_isolate=$ISOLATE_CLIENTS EOF if [[ -n $COUNTRY ]]; then