diff options
Diffstat (limited to 'contrib')
-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 |