add linux ics script and update page for link

This commit is contained in:
Rob Fuller 2014-10-30 22:52:55 -04:00
parent 47a19e179e
commit 910174495d
2 changed files with 112 additions and 1 deletions

2
ics.md
View File

@ -4,7 +4,7 @@
With an Ethernet cable connected to the WiFi Pineapple, Internet access may be shared from an online computer. This is typically achieved with a cable connected between a notebook computer and the WiFi Pineapple directly. The notebook computer requires some form of Internet access (typically through WiFi or Mobile Broadband).
By default the WiFi Pineapple has an IP address of 172.16.42.1 and will assign WiFi clients with IP addresses in teh 172.16.42.100-150 range via an onboard DHCP server. The default gateway of the WiFi Pineapple is 172.16.42.42. This means the WiFi Pineapple is looking for an Internet connection from a host with this IP address. A simple tethering script is available for Linux host which will automatically setup the IP and forwarding. Download the script from http://www.wifipineapple.com/wp5.sh
By default the WiFi Pineapple has an IP address of 172.16.42.1 and will assign WiFi clients with IP addresses in teh 172.16.42.100-150 range via an onboard DHCP server. The default gateway of the WiFi Pineapple is 172.16.42.42. This means the WiFi Pineapple is looking for an Internet connection from a host with this IP address. A simple tethering script is available for Linux host which will automatically setup the IP and forwarding. Download the script from the scripts directory [here](scripts/wp5.sh)
Power the WiFi Pineapple
Connect an Ethernet cable directly between the LAN port on the computer and the LAN port on the WiFi Pineapple

111
scripts/wp5.sh Normal file
View File

@ -0,0 +1,111 @@
#!/bin/bash
#define variables
echo "$(tput setaf 3) _ ___ _______ ____ _ __ "
echo " | | / (_) ____(_) / __ \\(_)___ ___ ____ _____ ____ / /__ "
echo " | | /| / / / /_ / / / /_/ / / __ \/ _ \/ __ '/ __ \/ __ \/ / _ \\"
echo " | |/ |/ / / __/ / / / ____/ / / / / __/ /_/ / /_/ / /_/ / / __/"
echo " |__/|__/_/_/ /_/ /_/ /_/_/ /_/\___/\__,_/ .___/ .___/_/\___/ "
echo " $(tput sgr0) OWN the Network $(tput setaf 3)/_/ /_/$(tput sgr0) v2.2"
echo ""
echo -n "Pineapple Netmask [255.255.255.0]: "
read pineapplenetmask
if [[ $pineapplenetmask == '' ]]; then
pineapplenetmask=255.255.255.0 #Default netmask for /24 network
fi
echo -n "Pineapple Network [172.16.42.0/24]: "
read pineapplenet
if [[ $pineapplenet == '' ]]; then
pineapplenet=172.16.42.0/24 # Pineapple network. Default is 172.16.42.0/24
fi
echo -n "Interface between PC and Pineapple [eth0]: "
read pineapplelan
if [[ $pineapplelan == '' ]]; then
pineapplelan=eth0 # Interface of ethernet cable directly connected to Pineapple
fi
echo -n "Interface between PC and Internet [wlan0]: "
read pineapplewan
if [[ $pineapplewan == '' ]]; then
pineapplewan=wlan0 #i.e. wlan0 for wifi, ppp0 for 3g modem/dialup, eth0 for lan
fi
temppineapplegw=`netstat -nr | awk 'BEGIN {while ($3!="0.0.0.0") getline; print $2}'` #Usually correct by default
echo -n "Internet Gateway [$temppineapplegw]: "
read pineapplegw
if [[ $pineapplegw == '' ]]; then
pineapplegw=`netstat -nr | awk 'BEGIN {while ($3!="0.0.0.0") getline; print $2}'` #Usually correct by default
fi
echo -n "IP Address of Host PC [172.16.42.42]: "
read pineapplehostip
if [[ $pineapplehostip == '' ]]; then
pineapplehostip=172.16.42.42 #IP Address of host computer
fi
echo -n "IP Address of Pineapple [172.16.42.1]: "
read pineappleip
if [[ $pineappleip == '' ]]; then
pineappleip=172.16.42.1 #Thanks Douglas Adams
fi
#Display settings
#echo Pineapple connected to: $pineapplelan
#echo Internet connection from: $pineapplewan
#echo Internet connection gateway: $pineapplegw
#echo Host Computer IP: $pineapplehostip
#echo Pineapple IP: $pineappleip
#echo Network: $pineapplenet
#echo Netmask: $pineapplenetmask
echo ""
echo "$(tput setaf 6) _ . $(tput sgr0) $(tput setaf 7)___$(tput sgr0) $(tput setaf 3)\||/$(tput sgr0) Internet: $pineapplegw - $pineapplewan"
echo "$(tput setaf 6) ( _ )_ $(tput sgr0) $(tput setaf 2)<-->$(tput sgr0) $(tput setaf 7)[___]$(tput sgr0) $(tput setaf 2)<-->$(tput sgr0) $(tput setaf 3),<><>,$(tput sgr0) Computer: $pineapplehostip"
echo "$(tput setaf 6) (_ _(_ ,)$(tput sgr0) $(tput setaf 7)\___\\$(tput sgr0) $(tput setaf 3)'<><>'$(tput sgr0) Pineapple: $pineapplenet - $pineapplelan"
#Bring up Ethernet Interface directly connected to Pineapple
ifconfig $pineapplelan $pineapplehostip netmask $pineapplenetmask up
# Enable IP Forwarding
echo '1' > /proc/sys/net/ipv4/ip_forward
#echo -n "IP Forwarding enabled. /proc/sys/net/ipv4/ip_forward set to "
#cat /proc/sys/net/ipv4/ip_forward
#clear chains and rules
iptables -X
iptables -F
#echo iptables chains and rules cleared
#setup IP forwarding
iptables -A FORWARD -i $pineapplewan -o $pineapplelan -s $pineapplenet -m state --state NEW -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A POSTROUTING -t nat -j MASQUERADE
#echo IP Forwarding Enabled
#remove default route
route del default
#echo Default route removed
#add default gateway
route add default gw $pineapplegw $pineapplewan
#echo Pineapple Default Gateway Configured
#instructions
#echo All set. Now on the Pineapple issue: route add default gw $pineapplehostip br-lan
#ping -c1 $pineappleip
#if [ $? -eq 0 ]; then
#echo "ICS configuration successful."
#echo "Issuing on Pineapple: route add default gw $pineapplehostip br-lan"
#echo " ssh root@$pineappleip 'route add default gw '$pineapplehostip' br-lan'"
#echo "Enter Pineapple password if prompted"
#ssh root@$pineappleip 'route add default gw '$pineapplehostip' br-lan'
#fi
echo ""
echo "Browse to http://$pineappleip:1471"
echo ""