update
This commit is contained in:
parent
04e2034121
commit
3d28041460
107
gw.sh
107
gw.sh
@ -1,37 +1,102 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
. driglibash-base
|
|
||||||
|
|
||||||
if [ "$#" -ne 2 ] ; then
|
declare -A usage
|
||||||
yell "Missing 2 parameters"
|
declare -A varia
|
||||||
die "Usage: $0 <local_iface> <net_iface>"
|
version="beta 1.0"
|
||||||
|
sumary="$0 [options]"
|
||||||
|
|
||||||
|
usage[l]="Locale iface"
|
||||||
|
varia[l]=local_iface
|
||||||
|
|
||||||
|
usage[w]="wan iface (must be already configured)"
|
||||||
|
varia[w]=wan_iface
|
||||||
|
wan_iface=
|
||||||
|
|
||||||
|
usage[d]="dhcp on local iface"
|
||||||
|
varia[d]=enable_dhcp
|
||||||
|
enable_dhcp=false
|
||||||
|
|
||||||
|
usage[H]="hostapd on local iface"
|
||||||
|
varia[H]=enable_hostapd
|
||||||
|
enable_hostapd=false
|
||||||
|
|
||||||
|
usage[n]="Network part of ip (without last dot). ONLY classes A,B,C or D allowed"
|
||||||
|
varia[n]=net
|
||||||
|
net="192.168.99"
|
||||||
|
|
||||||
|
usage[i]="Host part of local_iface IP (without first dot)"
|
||||||
|
varia[i]=host_ip
|
||||||
|
host_ip=254
|
||||||
|
|
||||||
|
usage[s]="SSID of wifi network"
|
||||||
|
varia[s]=ssid
|
||||||
|
ssid="The candy cave charliiiiiiiie!"
|
||||||
|
|
||||||
|
usage[p]="PSK of wifi network"
|
||||||
|
varia[p]=psk
|
||||||
|
psk="Ho! They stole my kidney :("
|
||||||
|
|
||||||
|
|
||||||
|
. driglibash-args
|
||||||
|
|
||||||
|
dots=${net//[^.]}
|
||||||
|
netmask=$((${#dots}*8+8))
|
||||||
|
|
||||||
|
if [ -z "$local_iface" ] ; then
|
||||||
|
die "You muste provide a local iface (-l)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
root_or_die
|
root_or_die
|
||||||
|
|
||||||
local_iface="$1"
|
|
||||||
net_iface="$2"
|
|
||||||
net="192.168.99"
|
|
||||||
|
|
||||||
run sysctl net.ipv4.ip_forward=1
|
|
||||||
#clean "sysctl net.ipv4.ip_forward=1"
|
|
||||||
|
|
||||||
run nmcli device set "$local_iface" managed no
|
run nmcli device set "$local_iface" managed no
|
||||||
clean "nmcli device set "$local_iface" managed yes"
|
clean "nmcli device set "$local_iface" managed yes"
|
||||||
|
|
||||||
run ip a add $net.254/24 dev "$local_iface"
|
run ip a add "$net.$host_ip/$netmask" dev "$local_iface"
|
||||||
clean "ip a del $net.254/24 dev $local_iface"
|
clean "ip a del "$net.$host_ip/$netmask" dev $local_iface"
|
||||||
|
|
||||||
# For dhcp offers
|
if [ -z "$wan_iface" ] ; then
|
||||||
run iptables -A OUTPUT -d 255.255.255.255/32 -j ACCEPT
|
run sysctl net.ipv4.ip_forward=1
|
||||||
|
clean "sysctl net.ipv4.ip_forward=0"
|
||||||
|
|
||||||
run iptables -A OUTPUT -d $net.0/24 -j ACCEPT
|
run iptables -A OUTPUT -d $net.0/$netmask -j ACCEPT
|
||||||
run iptables -A INPUT -s $net.0/24 -j ACCEPT
|
run iptables -A INPUT -s $net.0/$netmask -j ACCEPT
|
||||||
run iptables -A INPUT -s 255.255.255.255 -j ACCEPT
|
run iptables -A INPUT -s 255.255.255.255 -j ACCEPT
|
||||||
run iptables -A INPUT -i "$local_iface" -j ACCEPT
|
run iptables -A INPUT -i "$local_iface" -j ACCEPT
|
||||||
|
|
||||||
run iptables -t nat -A POSTROUTING -o "$net_iface" -j MASQUERADE
|
run iptables -t nat -A POSTROUTING -o "$wan_iface" -j MASQUERADE
|
||||||
run iptables -A FORWARD -i $net_iface -o $local_iface -m state --state RELATED,ESTABLISHED -j ACCEPT
|
run iptables -A FORWARD -i "$wan_iface" -o "$local_iface" -m state --state RELATED,ESTABLISHED -j ACCEPT
|
||||||
run iptables -A FORWARD -i $local_iface -o $net_iface -j ACCEPT
|
run iptables -A FORWARD -i "$local_iface" -o "$wan_iface" -j ACCEPT
|
||||||
run dnsmasq --dhcp-range=$net.100,$net.199,10m -d --server=9.9.9.9 --listen-address $net.254 --interface "$local_iface" -p0
|
fi
|
||||||
|
|
||||||
|
if $enable_dhcp ; then
|
||||||
|
# For dhcp offers
|
||||||
|
run iptables -A OUTPUT -d 255.255.255.255/32 -j ACCEPT
|
||||||
|
|
||||||
|
run dnsmasq "--dhcp-range=$net.100,$net.199,1m" --server=9.9.9.9 -q --listen-address "$net.$host_ip" --interface "$local_iface" -p0 -d &
|
||||||
|
clean "kill %1"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if $enable_hostapd ; then
|
||||||
|
# Write config
|
||||||
|
hostapd_config="$(mktemp)"
|
||||||
|
echo >"$hostapd_config" <<-EOF
|
||||||
|
interface=$local_iface
|
||||||
|
ctrl_interface=/var/run/hostapd
|
||||||
|
hw_mode=g
|
||||||
|
channel=1
|
||||||
|
wpa=2
|
||||||
|
ssid=$ssid
|
||||||
|
wpa_passphrase=$psk
|
||||||
|
wpa_key_mgmt=WPA-PSK WPA-EAP
|
||||||
|
EOF
|
||||||
|
hostapd -d "$hostapd_config" &
|
||||||
|
clean "kill %2"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "PRESS CTRL+C TO QUIT"
|
||||||
|
while true ; do
|
||||||
|
sleep 100000000
|
||||||
|
done
|
||||||
|
|
||||||
clean
|
clean
|
||||||
|
|||||||
@ -26,7 +26,7 @@ echo -n '$auth' | base64 -d > ~/.Xauthority
|
|||||||
|
|
||||||
if [ -n "\$(find ~/.mails/collected_addresses.txt -mtime +24)" ] ; then
|
if [ -n "\$(find ~/.mails/collected_addresses.txt -mtime +24)" ] ; then
|
||||||
echo 'Recollect mail addresses'
|
echo 'Recollect mail addresses'
|
||||||
(notmuch address --output sender '*' ; notmuch address --output recipients '*') | grep -vP "<.*[\x00-\x1F\x7F-\xFF].*>" | grep -vP "[\x00-\x1F\x7F-\xFF]\S*@" | grep -vP "@\S*[\x00-\x1F\x7F-\xFF]" | sort -u > ~/.mails/collected_addresses.txt
|
(cat ~/.mails/collected_addresses.txt ; notmuch address --output sender '*' ; notmuch address --output recipients '*') | grep -vP "<.*[\x00-\x1F\x7F-\xFF].*>" | grep -vP "[\x00-\x1F\x7F-\xFF]\S*@" | grep -vP "@\S*[\x00-\x1F\x7F-\xFF]" | sort -u > ~/.mails/collected_addresses.txt
|
||||||
fi
|
fi
|
||||||
birthday_reminder ~/.contacts/bdays/collection-root/dav/4702d4b7-8edd-7b56-ab9c-c11a64d883a3 >/dev/null
|
birthday_reminder ~/.contacts/bdays/collection-root/dav/4702d4b7-8edd-7b56-ab9c-c11a64d883a3 >/dev/null
|
||||||
syncmails
|
syncmails
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user