RaspberryPi-Gateway/Internet-Gateway Setup.sh
2023-11-21 22:39:57 +00:00

80 lines
1.6 KiB
Bash

#!/bin/bash
sudo apt update -y && sudo apt upgrade -y
sudo apt install iptables tmux git vim-nox dnsmasq -y
cd ~
git clone https://git.ncltech.co.uk/phil/.dotfiles
cd .dotfiles/
./install.sh
cd ~
## Setup DHCP Server for Interfaces
sudo cat <<EOF > /etc/dhcpcd.conf
interface eth0
static ip_address=192.168.4.254/24
denyinterfaces eth0 # don't send DHCP requests
EOF
## Setup dnsmasq for Interfaces
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo cat <<EOF > /etc/dnsmasq.conf
interface=eth0
dhcp-range=192.168.4.1,192.168.4.20,255.255.255.0,24h
EOF
## Enabling traffic forwarding
sudo cat <<EOF >> /etc/sysctl.conf
net.ipv4.ip_forward=1
EOF
## Forwarding rule configuration
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
sudo cat <<EOF >> /etc/rc.local
!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
printf "The Cake is a Lie"
printf "The Cake is a Lie"
printf "The Cake is a Lie"
printf "The Cake is a Lie"
printf "The Cake is a Lie"
printf "The Cake is a Lie"
fi
iptables-restore < /etc/iptables.ipv4.nat
exit 0
EOF
# @reboot su - internet -c '/usr/bin/tightvncserver -geometry 1280x720'
sudo systemctl enable dnsmasq