123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- #!/bin/bash
- # Based on Adafruit Learning Technologies Onion Pi project
- # But mainly fixed by Raspberry Pi FR...
- if (( $EUID != 0 )); then
- echo "This must be run as root. Try 'sudo bash $0'."
- exit 1
- fi
- echo "
- $(tput setaf 2) .~~. .~~.
- $(tput setaf 6) / $(tput setaf 2)'. \ ' ' / .'$(tput setaf 6) \
- $(tput setaf 6) | / $(tput setaf 1).~ .~~~..~.$(tput setaf 6) \ |
- $(tput setaf 6) | | / $(tput setaf 1) : .~.'~'.~. :$(tput setaf 6) \ | |
- $(tput setaf 6)| | | $(tput setaf 1)~ ( ) ( ) ~$(tput setaf 6) | | |
- $(tput setaf 6)| | | $(tput setaf 1)( : '~'.~.'~' : )$(tput setaf 6) | | |
- $(tput setaf 6)| | | $(tput setaf 1)~ .~ ( ) ~. ~ $(tput setaf 6) | | |
- $(tput setaf 6) | | \ $(tput setaf 1)( : '~' : )$(tput setaf 6) / | |
- $(tput setaf 6) | \ $(tput setaf 1)'~ .~~~. ~'$(tput setaf 6) / |
- $(tput setaf 6) \ $(tput setaf 1)'~'$(tput setaf 6) /
- "
- echo "$(tput setaf 6)This script will configure your Raspberry Pi as a wireless access point.$(tput sgr0)"
- read -p "$(tput bold ; tput setaf 2)Press [Enter] to begin, [Ctrl-C] to abort...$(tput sgr0)"
- echo "$(tput setaf 6)Updating packages...$(tput sgr0)"
- apt-get update -y
- echo "Installing dnsmasq"
- apt install dnsmasq -y
- systemctl stop dnsmasq
- echo "Configuring Wlan0 static IP for 192.168.4.1/24"
- echo "interface wlan0
- static ip_address=192.168.4.1/24
- nohook wpa_supplicant" >> /etc/dhcpcd.conf
- echo "Restarting dhcpcd..."
- service dhcpcd restart
- echo "Configuring dnsmasq..."
- mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
- echo "interface=wlan0 # Use the require wireless interface - usually wlan0
- dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h" > /etc/dnsmasq.conf
- echo "Enabling dnsmasq and restart..."
- systemctl unmask dnsmasq
- systemctl enable dnsmasq
- systemctl restart dnsmasq
- echo "Unlock wlan soft lock with rfkill..."
- if command -v rfkill &> /dev/null
- then
- rfkill unblock wlan
- fi
- echo "Install and enable hostapd..."
- apt-get install hostapd -y
- systemctl unmask hostapd
- systemctl enable hostapd
- echo "Configuring Hostapd !"
- echo "Choose the hostname for your new network (1-32 char, try to privilege ASCII chars) :"
- read ssid
- echo "Choose the password for your new network (minimum 8 char):"
- read passphrase
- echo "interface=wlan0
- driver=nl80211
- ssid=$ssid
- hw_mode=g
- channel=7
- wmm_enabled=0
- macaddr_acl=0
- auth_algs=1
- ignore_broadcast_ssid=0
- wpa=2
- wpa_passphrase=$passphrase
- wpa_key_mgmt=WPA-PSK
- wpa_pairwise=TKIP
- rsn_pairwise=CCMP
- " > /etc/hostapd/hostapd.conf
- echo 'DAEMON_CONF="/etc/hostapd/hostapd.conf"' >> /etc/default/hostapd
- echo "Starting hostapd..."
- systemctl start hostapd
- echo "$(tput setaf 6)Setting IP forwarding to start at system boot...$(tput sgr0)"
- cp /etc/sysctl.conf /etc/sysctl.bak
- echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
- echo "up iptables-restore < /etc/iptables.ipv4.nat" >> /etc/network/interfaces
- echo "$(tput setaf 6)Activating IP forwarding...$(tput sgr0)"
- sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
- echo "$(tput setaf 6)Setting up IP tables to interconnect ports...$(tput sgr0)"
- iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
- iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
- iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
- echo "$(tput setaf 6)Saving IP tables...$(tput sgr0)"
- sh -c "iptables-save > /etc/iptables.ipv4.nat"
- echo "Add auto start on startup the Raspberry Pi."
- sed -i '/exit 0/ i iptables-restore < /etc/iptables.ipv4.nat' /etc/rc.local
- echo "$(tput setaf 6)Rebooting...$(tput sgr0)"
- reboot
- exit 0
|