diff options
author | makefu <github@syntax-fehler.de> | 2012-12-16 07:55:29 +0700 |
---|---|---|
committer | makefu <github@syntax-fehler.de> | 2012-12-16 07:55:29 +0700 |
commit | 9795697d0b1814f9b8f69528da3fd949804a3878 (patch) | |
tree | d998c25c8b5d7cb2428d990197b31b31a1f37ec2 | |
parent | c5e5bd84e5ad1a7d9d753e710ec2119cace1d19d (diff) | |
parent | 68f6b9994e4de23228ce6d7aacad5bf182e04654 (diff) |
Merge branch 'master' of github.com:krebscode/painload
-rw-r--r-- | retiolum/hosts/nomic | 10 | ||||
-rwxr-xr-x | retiolum/scripts/tinc_setup/new_install.sh | 87 |
2 files changed, 69 insertions, 28 deletions
diff --git a/retiolum/hosts/nomic b/retiolum/hosts/nomic new file mode 100644 index 00000000..f418233c --- /dev/null +++ b/retiolum/hosts/nomic @@ -0,0 +1,10 @@ +Subnet = 10.243.0.110/32 +Subnet = 42:02d5:733f:d6da:c0f5:2bb7:2b18:09ec/128 +-----BEGIN RSA PUBLIC KEY----- +MIIBCgKCAQEAwb8Yk/YRc17g2J9n960p6j4W/l559OPyuMPdGJ4DmCm3WNQtxoa+ +qTFUiDiI85BcmfqnSeddLG8zTC2XnSlIvCRMJ9oKzppFM4PX4OTAaJZVE5WyCQhw +Kd4tHVdoQgJW5yFepmT9IUmHqkxXJ0R2W93l2eSZNOcnFvFn0ooiAlRi4zAiHClu +5Mz80Sc2rvez+n9wtC2D06aYjP23pHYld2xighHR9SUqX1dFzgSXNSoWWCcgNp2a +OKcM8LzxLV7MTMZFOJCJndZ77e4LsUvxhQFP6nyKZWg30PC0zufZsuN5o2xsWSlA +Wi9sMB1AUR6mZrxgcgTFpUjbjbLQf+36CwIDAQAB +-----END RSA PUBLIC KEY----- diff --git a/retiolum/scripts/tinc_setup/new_install.sh b/retiolum/scripts/tinc_setup/new_install.sh index bbf4475e..f686e34f 100755 --- a/retiolum/scripts/tinc_setup/new_install.sh +++ b/retiolum/scripts/tinc_setup/new_install.sh @@ -10,8 +10,10 @@ fi # SUBNET4=${SUBNET4:-10.243} SUBNET6=${SUBNET6:-42} -TEMPDIR=${TEMPDIR:-/tmp/tinc-install-fu} -HOSTN=${HOSTN:-$(hostname)} +TEMPDIR=${TEMPDIR:-auto} +TINCDIR=${TINCDIR:-auto} +SYSHOSTN=${HOSTNAME:-$(hostname)} +HOSTN=${HOSTN:-$SYSHOSTN} NETNAME=${NETNAME:-retiolum} MASK4=${MASK4:-16} MASK6=${MASK6:-16} @@ -48,7 +50,7 @@ Options: -o \$HOST Choose another Hostname, default is your system hostname -n \$NET Choose another tincd netname,this also specifies the path to your tinc config, default is retiolum -u \$URL specify another hostsfiles.tar.gz url, default is euer.krebsco.de/retiolum/hosts.tar.gz - -l \$OS specify an OS, numeric parameter.0=Automatic 1=ArchLinux 2=OpenWRT, disables automatic OS-finding, default is 0 + -l \$OS specify an OS, numeric parameter.0=Automatic 1=Linux 2=Android, disables automatic OS-finding, default is 0 -r \$ADDR give the node an reachable remote address, ipv4 or dns EOF } @@ -61,7 +63,7 @@ host2subnet() result=$(($(($((1 << $1)) - 1)) << $((32 - $1)))) byte="" - for ((i=0;i<3;i+=1)); do + for i in {0..2}; do byte=.$(($result % 256))$byte result=$(($result / 256)) done @@ -119,9 +121,9 @@ get_hostname() #os autodetection find_os() { - if grep -q "Arch Linux" /etc/*release; then + if grep -qe '.*' /etc/*release 2>/dev/null; then OS=1 - elif grep -q "OpenWrt" /etc/*release; then + elif which getprop&>/dev/null; then OS=2 fi } @@ -139,24 +141,29 @@ elif ! check_ip_valid6 $IP6; then exit 1 fi - -#check if everything is installed -if ! which tincd&>/dev/null; then - echo "Please install tinc" - exit 1 +#find OS +if [ $OS -eq 0 ]; then + find_os fi +#check if everything is installed if ! which awk&>/dev/null; then echo "Please install awk" exit 1 fi if ! which curl&>/dev/null; then - echo "Please install curl" - exit 1 + if ! which wget&>/dev/null; then + echo "Please install curl or wget" + exit 1 + else + LOADER='wget -O-' + fi +else + LOADER=curl fi -if ! $(/bin/ping -c 1 euer.krebsco.de -W 5 &>/dev/null) ;then +if ! $(ping -c 1 euer.krebsco.de -W 5 1>/dev/null) ;then echo "Cant reach euer, check if your internet is working" exit 1 fi @@ -222,23 +229,50 @@ do esac done +#check for OS +if [ $OS -eq 0 ]; then + echo $OS + find_os +fi + +#check if everything is installed +if [ $OS -eq 2 ]; then + if ! test -e /data/data/org.poirsouille.tinc_gui/files/tincd; then + echo "Please install tinc-gui" + exit 1 + else + TINCBIN=/data/data/org.poirsouille.tinc_gui/files/tincd + if [ $TINCDIR == 'auto' ]; then TINCDIR=/usr/local/etc/tinc ;fi + if [ $TEMPDIR == 'auto' ]; then TEMPDIR=/data/secure/data ;fi + fi +else + if ! which tincd&>/dev/null; then + echo "Please install tinc" + exit 1 + else + TINCBIN=tincd + if [ $TINCDIR == 'auto' ]; then TINCDIR=/etc/tinc ;fi + if [ $TEMPDIR == 'auto' ]; then TEMPDIR=/tmp/tinc-install-fu ;fi + fi +fi + #generate full subnet information for v4 #test if tinc directory already exists -if test -e /etc/tinc/$NETNAME; then - echo "tinc config directory /etc/tinc/$NETNAME does already exist. (backup and) delete config directory and restart" +if test -e $TINCDIR/$NETNAME; then + echo "tinc config directory $TINCDIR/$NETNAME does already exist. (backup and) delete config directory and restart" exit 1 fi #get tinc-hostfiles mkdir -p $TEMPDIR/hosts -curl euer.krebsco.de/retiolum/hosts.tar.gz | tar zx -C $TEMPDIR/hosts/ +$LOADER euer.krebsco.de/retiolum/hosts.tar.gz | tar zx -C $TEMPDIR/hosts/ #check for free ip #version 4 until check_ip_taken $IP4; do if [ $RAND4 -eq 1 ]; then - IP4="$SUBNET4.$((RANDOM%255)).$((RANDOM%255))" + IP4="$SUBNET4.$(( $(head /dev/urandom | tr -dc "123456789" | head -c3) %255)).$(( $(head /dev/urandom | tr -dc "123456789" | head -c3) %255))" else printf 'choose new ip: ' read IP4 @@ -252,7 +286,8 @@ done #version 6 until check_ip_taken $IP6; do if [ $RAND6 -eq 1 ]; then - IP6="$SUBNET6$(openssl rand -hex 14 | sed 's/..../:&/g')" #todo: generate ip length from hostmask + NETLENGTH=$(expr $(expr 128 - $MASK6) / 4) + IP6="$SUBNET6$(head /dev/urandom | tr -dc "0123456789abcdef" | head -c$NETLENGTH | sed 's/..../:&/g')" #todo: generate ip length from hostmask else printf 'ip taken, choose new ip: ' @@ -268,17 +303,13 @@ done #check for free hostname get_hostname $HOSTN -#check for OS -if [ $OS -eq 0 ]; then - echo $OS - find_os -fi #create the configs -mkdir -p /etc/tinc/$NETNAME -cd /etc/tinc/$NETNAME +mkdir -p $TINCDIR/$NETNAME +cd $TINCDIR/$NETNAME mv $TEMPDIR/hosts ./ +rm -r $TEMPDIR echo "Subnet = $IP4" > hosts/$HOSTN echo "Subnet = $IP6" >> hosts/$HOSTN @@ -340,11 +371,11 @@ if which tincctl&>/dev/null; then yes | tincctl -n $NETNAME generate-keys cat rsa_key.pub >> hosts/$HOSTN else - yes | tincd -n $NETNAME -K + yes | $TINCBIN -n $NETNAME -K fi #write to irc-channel -NICK="${HOSTN}_$((RANDOM%666))" +NICK="${HOSTN}_$(head /dev/urandom | tr -dc "0123456789" | head -c3)" ( echo "NICK $NICK"; echo "USER $NICK $IRCSERVER bla : $NICK"; |