diff options
Diffstat (limited to 'contrib/peer2anonet')
| -rw-r--r-- | contrib/peer2anonet/README | 113 | ||||
| -rw-r--r-- | contrib/peer2anonet/README.html | 132 | ||||
| -rwxr-xr-x | contrib/peer2anonet/peer2anonet | 128 | 
3 files changed, 229 insertions, 144 deletions
| diff --git a/contrib/peer2anonet/README b/contrib/peer2anonet/README deleted file mode 100644 index 1693e7c..0000000 --- a/contrib/peer2anonet/README +++ /dev/null @@ -1,113 +0,0 @@ -DESCRIPTION: - -    peer2anonet is an autoconfiguration utility for setting -    up core services on AnoNet2. Enjoy :-). - -DEPENDS ON: - -    quicktun, bird, daemontools(non-deb), bash - -AUTHOR: - -    d3v11 from www.d3v11.ano somtimes, maybe, dunno. - -    REPORT BULLSHIT TO: - -        IRC: -         -            /relayhell/d3v11 - -        EMAIL: -         -            d3v11@d3v11.ano - -USAGE: - -    ./contrib/peer2anonet/peer2anonet --configure             generate a new local configuration and exit - -    ./contrib/peer2anonet/peer2anonet --update                regenerate peer configurations - -    ./contrib/peer2anonet/peer2anonet --configure-peer        generate a new peer configuration and update - -    ./contrib/peer2anonet/peer2anonet --rm-peer               remove a peer configuration and update - -    ./contrib/peer2anonet/peer2anonet --install-daemontools   installs daemontools - -    ./contrib/peer2anonet/peer2anonet --install-ucspi-tcp     installs ucspi-tcp - -    ./contrib/peer2anonet/peer2anonet --install-djbdns        installs djbdns - -    ./contrib/peer2anonet/peer2anonet --configure-dns         configures dnscache and tinydns zones - -RTFM: - -    CONFIGURE: - -        I highly recommend that before you use peer2anonet -        you ./configure resdb with tinydns support. - -        ./contrib/peer2anonet/peer2anonet --configure - -        EXAMPLES: - -            Enter your AnoNet subnet: 1.2.3.0 -            Enter your AnoNet router: 1.2.3.1 -            Enter your peering ip: 1.2.3.4 -            Enter your AnoNet asn: 1234 - -    CONFIGURE PEER: - -        ./contrib/peer2anonet/peer2anonet --configure-peer - -            KEY PAIRS: - -                before running peer2anonet to configure peers you can use -                quicktun to generate keypairs: - -                    quicktun.keypair</dev/random - -            CLIENT PORT: - -                peer2anonet uses '20' plus the first four digits of your peer's asn -                as the `clientport'. - -                LOCAL_PORT=20${PEERASN:0:4} - -            EXAMPLES: - -                Enter your peer's name: d3v11 -                Enter your peer's remote ip: 11.11.55.1 -                Enter your peer's peering ip: 1.1.5.2 -                Enter your peer's remote port: 201150 -                Enter your peer's asn: 1150 -                Enter your peer's public key: * see KEY PAIRS above * -                Enter your private key: * see KEY PAIRS above * - -            RUN CHANGES: - -                peer2anonet exports the /service/$PEER/run file to -                /etc/peer2anonet/peers/$PEER/run. If you need to -                create customizations for peerings then make adjustments -                to that file. - -    CONFIGURE DNS: - -        If you did not ./configure resdb with tinydns support -        then you need to do that before using this function. - -        also before using you will need to have installed -        daemontools, djbdns, and ucspi-tcp. peer2anonet -        can do this for you with --install-* options. - -        ./contrib/peer2anonet/peer2anonet --configure-dns - -    COMPLAIN: - -        If this README doesn't tell you what you need to know -        you can head over to www.d3v11.ano/peering. If that -        doesn't get you what you want then either complain to -        me or shoot both of us in the face. - - - -       diff --git a/contrib/peer2anonet/README.html b/contrib/peer2anonet/README.html new file mode 100644 index 0000000..6866354 --- /dev/null +++ b/contrib/peer2anonet/README.html @@ -0,0 +1,132 @@ +<html><body bgcolor="#000000"><font color="white"> +<pre> +<b>DESCRIPTION:</b> + +    peer2anonet is an autoconfiguration utility for setting +    up core services on AnoNet2. Enjoy :-). + +<b>DEPENDS ON:</b> + +    quicktun, bird, bash for now. it also installs some cool shit +    that you'll use later. + +<b>AUTHOR:</b> + +    d3v11 from <a href="http://www.d3v11.ano/">www.d3v11.ano</a>, somtimes, maybe, dunno. + +    <b>REPORT BULLSHIT TO:</b> + +        <b>IRC:</b> +         +            /relayhell/d3v11 + +        <b>EMAIL:</b> +         +            d3v11@d3v11.ano + +<b>USAGE:</b> + +    <b>From $RESDB_ROOT do:</b> + +        ./contrib/peer2anonet/peer2anonet --configure             generate a new local configuration and exit + +        ./contrib/peer2anonet/peer2anonet --update                regenerate peer configurations + +        ./contrib/peer2anonet/peer2anonet --configure-peer        generate a new peer configuration and update + +        ./contrib/peer2anonet/peer2anonet --rm-peer               remove a peer configuration and update + +        ./contrib/peer2anonet/peer2anonet --install-daemontools   installs daemontools + +        ./contrib/peer2anonet/peer2anonet --install-ucspi-tcp     installs ucspi-tcp + +        ./contrib/peer2anonet/peer2anonet --install-djbdns        installs djbdns + +        ./contrib/peer2anonet/peer2anonet --configure-dns         configures dnscache and tinydns zones + +        ./contrib/peer2anonet/peer2anonet --update-dns            updates tinydns-ano zone + +<b>RTFM:</b> + +    <b>CONFIGURE:</b> + +        I highly recommend that before you use peer2anonet +        you ./configure resdb with tinydns support. + +        ./contrib/peer2anonet/peer2anonet --configure + +        <b>EXAMPLES:</b> + +            Enter your AnoNet subnet: 1.1.5.0 +            Enter your AnoNet router: 1.1.5.1 +            Enter your peering ip: 1.1.5.2 +            Enter your AnoNet asn: 1150 + +    <b>CONFIGURE PEER:</b> + +        ./contrib/peer2anonet/peer2anonet --configure-peer + +            <b>KEY PAIRS:</b> + +                before running peer2anonet to configure peers you can use +                quicktun to generate keypairs: + +                    quicktun.keypair < /dev/random + +            <b>EXAMPLES:</b> + +                Enter your peer's name: d3v11 +                Enter your peer's remote ip: 11.11.55.1 +                Enter your peer's peering ip: 1.1.5.2 +                Enter your peer's remote port: 21150 +                Enter your local port: 61150 +                Enter your peer's asn: 1150 +                Enter your peer's public key: * see KEY PAIRS above * +                Enter your private key: * see KEY PAIRS above * + +            <b>RUN CHANGES:</b> + +                peer2anonet exports the /service/$PEER/run file to +                /etc/peer2anonet/peers/$PEER/run. If you need to +                create customizations for peerings then make adjustments +                to that file. + +            <b>CONFIGURATION FILES:</b> + +                /etc/peer2anonet/peers/$PEER/* contains: +                 +                    asn  local_port  peering_ip  pubkey  remote_ip  remote_port  run  seckey + +                In the event you want to reconfigure a peer's tunnel you can alter the run +                file and do `--update', rm run and modify the above files then use `--update', +                or reconfigure the peering tunnel altogether with --configure-peer and choose +                that peer's name. If you think this is absurd then you're probably right! I  +                plan on doing something with these files later. + +    <b>CONFIGURE DNS:</b> + +        If you did not ./configure resdb with tinydns support +        then you need to do that before using this function. + +        also before using you will need to have installed +        daemontools, djbdns, and ucspi-tcp. peer2anonet +        can do this for you with --install-* options. + +        ./contrib/peer2anonet/peer2anonet --configure-dns + +        <b>UPDATE DNS:</b> + +            After a successful `--configure-dns', you can now +            enjoy to use `--update-dns' to bring your AnoNet +            domains up to speed. + +    <b>COMPLAIN:</b> + +        If this README doesn't tell you what you need to know +        you can head over to www.d3v11.ano/peering. If that +        doesn't get you what you want then either complain to +        me or shoot both of us in the face. + + +       +</pre></font></body></html> diff --git a/contrib/peer2anonet/peer2anonet b/contrib/peer2anonet/peer2anonet index 10a14ff..152f4a4 100755 --- a/contrib/peer2anonet/peer2anonet +++ b/contrib/peer2anonet/peer2anonet @@ -21,7 +21,8 @@ USAGE(){      echo -e '\n    ./contrib/peer2anonet/peer2anonet --install-daemontools   installs daemontools'      echo -e '\n    ./contrib/peer2anonet/peer2anonet --install-ucspi-tcp     installs ucspi-tcp'      echo -e '\n    ./contrib/peer2anonet/peer2anonet --install-djbdns        installs djbdns' -    echo -e '\n    ./contrib/peer2anonet/peer2anonet --configure-dns         configures dnscache and tinydns zones\n' +    echo -e '\n    ./contrib/peer2anonet/peer2anonet --configure-dns         configures dnscache and tinydns zones' +    echo -e '\n    ./contrib/peer2anonet/peer2anonet --update-dns            updates tinydns-ano zone\n'      exit 0      } @@ -82,13 +83,23 @@ UPDATE(){                  exit 1              fi -            if [ -e /etc/peer2anonet/peers/"$PEER"/port ]; then -                if [[ $(echo X`cat /etc/peer2anonet/peers/"$PEER"/port`) == 'X' ]]; then -                    echo "   fatal error: /etc/peer2anonet/peers/$PEER/port is void" +            if [ -e /etc/peer2anonet/peers/"$PEER"/remote_port ]; then +                if [[ $(echo X`cat /etc/peer2anonet/peers/"$PEER"/remote_port`) == 'X' ]]; then +                    echo "   fatal error: /etc/peer2anonet/peers/$PEER/remote_port is void"                      exit 1                  fi              else -                echo "   fatal error: /etc/peer2anonet/peers/$PEER/port not exists" +                echo "   fatal error: /etc/peer2anonet/peers/$PEER/remote_port not exists" +                exit 1 +            fi + +            if [ -e /etc/peer2anonet/peers/"$PEER"/local_port ]; then +                if [[ $(echo X`cat /etc/peer2anonet/peers/"$PEER"/local_port`) == 'X' ]]; then +                    echo "   fatal error: /etc/peer2anonet/peers/$PEER/local_port is void" +                    exit 1 +                fi +            else +                echo "   fatal error: /etc/peer2anonet/peers/$PEER/local_port not exists"                  exit 1              fi @@ -184,7 +195,8 @@ protocol direct direct_AnoNet_routes { table AnoNet_routes;          mkdir -p /services/"$PEER"          REMOTEIP=`cat /etc/peer2anonet/peers/"$PEER"/remote_ip`          PEERIP=`cat /etc/peer2anonet/peers/"$PEER"/peering_ip` -        PEERPORT=`cat /etc/peer2anonet/peers/"$PEER"/port` +        PEERPORT=`cat /etc/peer2anonet/peers/"$PEER"/remote_port` +        LOCALPORT=`cat /etc/peer2anonet/peers/"$PEER"/local_port`          PEERASN=`cat /etc/peer2anonet/peers/"$PEER"/asn`          PUBKEY=`cat /etc/peer2anonet/peers/"$PEER"/pubkey`          SECKEY=`cat /etc/peer2anonet/peers/"$PEER"/seckey` @@ -213,7 +225,7 @@ protocol bgp $PEER { table AnoNet_routes;  export REMOTE_ADDRESS=$REMOTEIP  export REMOTE_PORT=$PEERPORT -export LOCAL_PORT=20${PEERASN:0:4} +export LOCAL_PORT=$LOCALPORT  export PRIVATE_KEY=$SECKEY  export PUBLIC_KEY=$PUBKEY  export TUN_MODE=1 @@ -262,6 +274,7 @@ CONFIGURE_PEER(){      read -p "   Enter your peer's remote ip: " REMOTEIP      read -p "   Enter your peer's peering ip: " PEERIP      read -p "   Enter your peer's remote port: " PEERPORT +    read -p "   Enter your local port: " LOCALPORT      read -p "   Enter your peer's asn: " PEERASN      read -p "   Enter your peer's public key: " PUBKEY      read -p "   Enter your private key: " SECKEY @@ -269,7 +282,8 @@ CONFIGURE_PEER(){      mkdir -p /etc/peer2anonet/peers/"$PEER"      echo $REMOTEIP >/etc/peer2anonet/peers/"$PEER"/remote_ip      echo $PEERIP >/etc/peer2anonet/peers/"$PEER"/peering_ip -    echo $PEERPORT >/etc/peer2anonet/peers/"$PEER"/port +    echo $PEERPORT >/etc/peer2anonet/peers/"$PEER"/remote_port +    echo $LOCALPORT >/etc/peer2anonet/peers/"$PEER"/local_port      echo $PEERASN >/etc/peer2anonet/peers/"$PEER"/asn      echo $PUBKEY >/etc/peer2anonet/peers/"$PEER"/pubkey      echo $SECKEY >/etc/peer2anonet/peers/"$PEER"/seckey @@ -386,9 +400,13 @@ CONFIGURE_DNS(){          tar cf /etc/peer2anonet/tinydns-root.tar tinydns-root )      fi -    (cd /service ; svc -d dnscache tinydns tinydns-ano tinydns-root)  -    (cd /service ; rm -f dnscache tinydns tinydns-ano tinydns-root)    -    (cd /services ; rm -rf dnscache tinydns tinydns-ano tinydns-root) +    ( +        cd /service +        svc -d dnscache tinydns tinydns-ano tinydns-root +        rm -f dnscache tinydns tinydns-ano tinydns-root +        cd /services +        rm -rf dnscache tinydns tinydns-ano tinydns-root +    )      echo -e '\nCONFIGURE DNS:\n'      NICK=`cat conf/git_name` @@ -430,22 +448,13 @@ CONFIGURE_DNS(){      tinydns-conf Gtinydns Gdnslog /services/tinydns $TINYDNS_IP -    #echo ".$NICK.ano:$TINYDNS_IP:a:259200" > /services/tinydns/root/data -    #echo "=www.$NICK.ano:$GIT_IP:86400" >> /services/tinydns/root/data -    #echo "+git.$NICK.ano:$GIT_IP:86400" >> /services/tinydns/root/data -    #echo "+$NICK.ano:$GIT_IP:86400" >> /services/tinydns/root/data -    #echo "+$TINYDNS_ANO_DOMAIN:$TINYDNS_ANO_IP:3600" >> /services/tinydns/root/data -    #echo ".1.in-addr.arpa::$TINYDNS_ANO_DOMAIN" >> /services/tinydns/root/data -    #echo ".2.in-addr.arpa::$TINYDNS_ANO_DOMAIN" >> /services/tinydns/root/data -    #echo ".ano::$TINYDNS_ANO_DOMAIN" >> /services/tinydns/root/data -    #echo ".ntwrk::$TINYDNS_ANO_DOMAIN" >> /services/tinydns/root/data      ( -     cd /services/tinydns/root -     ./add-ns $NICK.ano $TINYDNS_IP -     ./add-alias $GIT_DOMAIN $GIT_IP -     ./add-alias $TINYDNS_ROOT_DOMAIN $TINYDNS_ROOT_IP -     ./add-alias $TINYDNS_ANO_DOMAIN $TINYDNS_ANO_IP -     make +        cd /services/tinydns/root +        ./add-ns $NICK.ano $TINYDNS_IP +        ./add-alias $GIT_DOMAIN $GIT_IP +        ./add-alias $TINYDNS_ROOT_DOMAIN $TINYDNS_ROOT_IP +        ./add-alias $TINYDNS_ANO_DOMAIN $TINYDNS_ANO_IP +        make      )      tinydns-conf Gtinydns Gdnslog /services/tinydns-root $TINYDNS_ROOT_IP @@ -456,11 +465,66 @@ CONFIGURE_DNS(){      ./scripts/nameserver_autogen/tinydns_tld_datafile > /services/tinydns-ano/root/data      ( cd /services/tinydns-ano/root ; make ) -    ( cd / ; ln -s /services/dnscache /service/dnscache ) -    ( cd / ; ln -s /services/tinydns /service/tinydns ) -    ( cd / ; ln -s /services/tinydns-ano /service/tinydns-ano ) -    ( cd / ; ln -s /services/tinydns-root /service/tinydns-root ) -    ( cd /service ; sleep 5 ; svc -t dnscache tinydns tinydns-ano tinydns-root )   +    (  +        cd / +        ln -s /services/dnscache /service/dnscache +        ln -s /services/tinydns /service/tinydns +        ln -s /services/tinydns-ano /service/tinydns-ano +        ln -s /services/tinydns-root /service/tinydns-root +        cd /service ; sleep 5 ; svc -t dnscache tinydns tinydns-ano tinydns-root +    ) +    } + +INSTALL_DJBDNS(){ +    echo -e '\nINSTALL DJBDNS:\n' +    [[ $(echo X`which gcc`) == X ]] && echo '   fatal error: cannot find gcc' +    [[ $(echo X`which gcc`) == X ]] && exit 1 +    [[ $(echo X`which make`) == X ]] && echo '   fatal error: cannot find make' +    [[ $(echo X`which make`) == X ]] && exit 1 +    [[ $(echo X`which tcpserver`) == X ]] && echo '   fatal error: needs ./contrib/peer2anonet/peer2nonet --install-ucspi-tcp' +    [[ $(echo X`which tcpserver`) == X ]] && exit 1 +    [[ $(echo X`which svscanboot`) == X ]] && echo '   fatal error: needs ./contrib/peer2anonet/peer2nonet --install-daemontools' +    [[ $(echo X`which svscanboot`) == X ]] && exit 1 +    cd /usr/local/src +    wget http://cr.yp.to/djbdns/djbdns-1.05.tar.gz +    gunzip djbdns-1.05.tar +    tar -xf djbdns-1.05.tar +    cd djbdns-1.05 +    echo gcc -O2 -include /usr/include/errno.h > conf-cc +    make +    make setup check +    } + +UPDATE_DNS(){ +    if [ -e /etc/peer2anonet/p2a.conf ]; then +        source /etc/peer2anonet/p2a.conf +    else +        CONFIGURE +        exit 0 +    fi + +    [[ $(echo X`which tcpserver`) == X ]] && echo '   fatal error: needs ./contrib/peer2anonet/peer2nonet --install-ucspi-tcp' +    [[ $(echo X`which tcpserver`) == X ]] && exit 1 +    [[ $(echo X`which svscanboot`) == X ]] && echo '   fatal error: needs ./contrib/peer2anonet/peer2nonet --install-daemontools' +    [[ $(echo X`which svscanboot`) == X ]] && exit 1 + +    if [ -e /services/tinydns-ano ]; then +        (  +            cd /services +            echo "creating /etc/peer2anonet/tinydns-ano.tar backup" +            tar cf /etc/peer2anonet/tinydns-ano.tar tinydns-ano +        ) +    fi + +    echo -e '\nUPDATE DNS:\n' +    ./scripts/nameserver_autogen/tinydns_tld_datafile > /services/tinydns-ano/root/data +    ( cd /services/tinydns-ano/root ; make ) + +    (  +        cd /service +        sleep 5 +        svc -t dnscache tinydns tinydns-ano tinydns-root +    )      } @@ -482,6 +546,8 @@ elif [ "$1" == '--install-djbdns' ]; then      INSTALL_DJBDNS  elif [ "$1" == '--configure-dns' ]; then      CONFIGURE_DNS +elif [ "$1" == '--update-dns' ]; then +    UPDATE_DNS  else      USAGE  fi | 
