update
This commit is contained in:
		
							parent
							
								
									04e2034121
								
							
						
					
					
						commit
						3d28041460
					
				
							
								
								
									
										111
									
								
								gw.sh
									
									
									
									
									
								
							
							
						
						
									
										111
									
								
								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 "$wan_iface" -j MASQUERADE | ||||||
|  | 	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 "$wan_iface"  -j ACCEPT | ||||||
|  | fi | ||||||
| 
 | 
 | ||||||
| run iptables -t nat -A POSTROUTING -o "$net_iface" -j MASQUERADE | if $enable_dhcp ; then | ||||||
| run iptables -A FORWARD -i $net_iface -o $local_iface -m state --state RELATED,ESTABLISHED -j ACCEPT | 	# For dhcp offers | ||||||
| run iptables -A FORWARD -i $local_iface -o $net_iface  -j ACCEPT | 	run iptables -A OUTPUT -d 255.255.255.255/32 -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  | 	 | ||||||
|  | 	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