summaryrefslogtreecommitdiff
path: root/contrib/peer2anonet
diff options
context:
space:
mode:
authord3v11 <d3v11@d3v11.ano>2012-10-29 05:34:36 +0000
committerd3v11 <d3v11@d3v11.ano>2012-10-29 05:34:36 +0000
commitdff55f265203cf5aab43c3d43ed1039d0899347b (patch)
tree130fcea55029307074a48253fa9dbf7b0ff342e0 /contrib/peer2anonet
parentd5efdfe2b6e6a9468149f82f714a4daacc426788 (diff)
downloadresdb-dff55f265203cf5aab43c3d43ed1039d0899347b.tar.gz
resdb-dff55f265203cf5aab43c3d43ed1039d0899347b.zip
clobber
Diffstat (limited to 'contrib/peer2anonet')
-rw-r--r--contrib/peer2anonet/p2a.conf4
-rwxr-xr-xcontrib/peer2anonet/peer2anonet-gentoo751
2 files changed, 0 insertions, 755 deletions
diff --git a/contrib/peer2anonet/p2a.conf b/contrib/peer2anonet/p2a.conf
deleted file mode 100644
index c90c974..0000000
--- a/contrib/peer2anonet/p2a.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-P2A_NET="1.1.7.0/24"
-P2A_ROUTE="1.1.7.254"
-P2A_IP="1.1.5.1"
-P2A_ASN="1170"
diff --git a/contrib/peer2anonet/peer2anonet-gentoo b/contrib/peer2anonet/peer2anonet-gentoo
deleted file mode 100755
index 340c3c2..0000000
--- a/contrib/peer2anonet/peer2anonet-gentoo
+++ /dev/null
@@ -1,751 +0,0 @@
-#!/bin/bash
-if [[ $(id -u) != 0 ]]; then
- echo "peer2anonet: root privileges required."
- exit 1
-fi
-
-if [ -e /services/bird ]; then
- [ -e /etc/peer2anonet/bird.tar ] || ( cd /services ; echo "creating /etc/peer2anonet/bird.tar backup" ;\
- tar cf /etc/peer2anonet/bird.tar bird )
-fi
-
-[ -e contrib/peer2anonet/peer2anonet ] || echo "peer2anonet: not in \$RESDB_ROOT"
-[ -e contrib/peer2anonet/peer2anonet ] || exit 1
-
-[ -w /etc/rc.local ] && chmod +x /etc/rc.local
-[ -w /etc/rc.d/rc.local ] && chmod +x /etc/rc.d/rc.local
-
-USAGE(){
- echo -e '\npeer2anonet:'
- echo -e '\n ./contrib/peer2anonet/peer2anonet --configure generate a new local configuration and exit'
- echo -e '\n ./contrib/peer2anonet/peer2anonet --update regenerate peer configurations'
- echo -e '\n ./contrib/peer2anonet/peer2anonet --configure-peer generate a new peer configuration and update'
- echo -e '\n ./contrib/peer2anonet/peer2anonet --rm-peer remove a peer configuration and update'
- 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 --install-nacl installs nacl'
- echo -e '\n ./contrib/peer2anonet/peer2anonet --setup-qmail installs and configures qmail'
- 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
- }
-
-mkdir -p /service
-mkdir -p /services
-mkdir -p /services/bird
-mkdir -p /etc/peer2anonet
-mkdir -p /etc/peer2anonet/peers
-
-CONFIGURE(){
- echo -e '\nCONFIGURE:\n'
- read -p " Enter your AnoNet subnet: " P2A_NET
- read -p " Enter your AnoNet router: " P2A_ROUTE
- read -p " Enter your peering ip: " P2A_IP
- read -p " Enter your AnoNet asn: " P2A_ASN
-
-
- echo "P2A_NET=\"$P2A_NET\"">/etc/peer2anonet/p2a.conf
- echo "P2A_ROUTE=\"$P2A_ROUTE\"">>/etc/peer2anonet/p2a.conf
- echo "P2A_IP=\"$P2A_IP\"">>/etc/peer2anonet/p2a.conf
- echo "P2A_ASN=\"$P2A_ASN\"">>/etc/peer2anonet/p2a.conf
- echo -e '\npeer2anonet: configured\n'
-
- NICK=`cat conf/git_name`
- ./scripts/add_as $P2A_ASN $NICK
- ./scripts/add_ip $P2A_NET/24 $NICK
- [ -e "db/usr/$NICK" ] || mkdir -p "db/usr/$NICK"
- [ -e "db/usr/$NICK/git" ] || echo "git://git.$NICK.ano/">"db/usr/$NICK/git"
- [ -e "db/usr/$NICK/email" ] || echo "`cat conf/git_email`">"db/usr/$NICK/email"
- exit 0
- }
-
-UPDATE(){
- if [ -e /etc/peer2anonet/p2a.conf ]; then
- source /etc/peer2anonet/p2a.conf
- else
- CONFIGURE
- exit 0
- fi
-
- echo -e '\nUPDATE:\n'
- if [[ $(ls /etc/peer2anonet/peers) ]]; then
- for PEER in `ls /etc/peer2anonet/peers`; do
- if [ -e /etc/peer2anonet/peers/"$PEER"/remote_ip ]; then
- if [[ $(echo X`cat /etc/peer2anonet/peers/"$PEER"/remote_ip`) == 'X' ]]; then
- echo " fatal error: /etc/peer2anonet/peers/$PEER/remote_ip is void"
- exit 1
- fi
- else
- echo " fatal error: /etc/peer2anonet/peers/$PEER/remote_ip not exists"
- exit 1
- fi
-
- if [ -e /etc/peer2anonet/peers/"$PEER"/peering_ip ]; then
- if [[ $(echo X`cat /etc/peer2anonet/peers/"$PEER"/peering_ip`) == 'X' ]]; then
- echo " fatal error: /etc/peer2anonet/peers/$PEER/peering_ip is void"
- exit 1
- fi
- else
- echo " fatal error: /etc/peer2anonet/peers/$PEER/peering_ip not exists"
- exit 1
- fi
-
- 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/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
-
- if [ -e /etc/peer2anonet/peers/"$PEER"/asn ]; then
- if [[ $(echo X`cat /etc/peer2anonet/peers/"$PEER"/asn`) == 'X' ]]; then
- echo " fatal error: /etc/peer2anonet/peers/$PEER/asn is void"
- exit 1
- fi
- else
- echo " fatal error: /etc/peer2anonet/peers/$PEER/asn not exists"
- exit 1
- fi
-
- if [ -e /etc/peer2anonet/peers/"$PEER"/pubkey ]; then
- if [[ $(echo X`cat /etc/peer2anonet/peers/"$PEER"/pubkey`) == 'X' ]]; then
- echo " fatal error: /etc/peer2anonet/peers/$PEER/pubkey is void"
- exit 1
- fi
- else
- echo " fatal error: /etc/peer2anonet/peers/$PEER/pubkey not exists"
- exit 1
- fi
-
- if [ -e /etc/peer2anonet/peers/"$PEER"/seckey ]; then
- if [[ $(echo X`cat /etc/peer2anonet/peers/"$PEER"/seckey`) == 'X' ]]; then
- echo " fatal error: /etc/peer2anonet/peers/$PEER/seckey is void"
- exit 1
- fi
- else
- echo " fatal error: /etc/peer2anonet/peers/$PEER/seckey not exists"
- exit 1
- fi
- done
- else
- echo " fatal error: peering configurations not exists"
- exit 1
- fi
-
- echo '#!/bin/bash
-bird -c bird.conf -d' > /services/bird/run
- chmod +x /services/bird/run
-
- if [ -e /etc/peer2anonet/bird.conf ]; then
- cp /etc/peer2anonet/bird.conf /services/bird/bird.conf
- else
- echo "function n_AnoNet_mine (prefix arg) {
- if arg ~ [ $P2A_NET/24+ ] then return true;
-return false; };
-
-function n_AnoNet (prefix arg) {
- if arg ~ [ 1.0.0.0/8+ ] then return true;
-return false; };
-
-filter only_AnoNet_ebgp {
- if n_AnoNet(net) then
- if !n_AnoNet_mine(net) then
- accept \"AnoNet\";
- else reject \"mine\";
-reject \"non-AnoNet\"; };
-
-filter only_AnoNet_ebgp_export {
- if n_AnoNet(net) then accept \"AnoNet\";
-reject \"non-AnoNet\"; };
-
-filter only_AnoNet {
- if n_AnoNet(net) then accept \"AnoNet\";
-reject \"non-AnoNet\"; };
-
-table AnoNet_routes;
-
-protocol pipe pipe_AnoNet_routes { peer table AnoNet_routes; mode transparent;
- import filter only_AnoNet;
- export filter only_AnoNet;
-};
-
-protocol static static_AnoNet_routes { table AnoNet_routes;
- route $P2A_NET/24 drop;
-}
-
-protocol kernel {
- scan time 10;
- import all;
- export all;
-}
-
-protocol device {
- scan time 900;
-}
-
-protocol direct direct_AnoNet_routes { table AnoNet_routes;
- interface \"eth0\";
- import filter only_AnoNet;
-}" > /services/bird/bird.conf
- fi
-
- for PEER in `ls /etc/peer2anonet/peers`; do
- 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"/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`
-
- echo "
-protocol bgp $PEER { table AnoNet_routes;
- local as $P2A_ASN;
- neighbor $PEERIP as $PEERASN;
- source address $P2A_IP;
- import filter only_AnoNet_ebgp;
- export filter only_AnoNet_ebgp_export;
-}" >> /services/bird/bird.conf
-
- if [ -e /etc/peer2anonet/peers/"$PEER"/run ]; then
- test -L /services/"$PEER"/run || rm -f /services/"$PEER"/run
- test -L /services/"$PEER"/run || ln -s /etc/peer2anonet/peers/"$PEER"/run /services/"$PEER"/run
- else
- echo "#!/bin/bash
-
-# uncomment for debugging. you'll need to use ./run to view output instead
-# of svc -u /service/<peer name>
-#
-#export DEBUG=1
-
-# uncomment if your peer has a dynamic IP
-#
-#export REMOTE_FLOAT=1
-
-if [[ \$REMOTE_FLOAT != 1 ]]; then
- export REMOTE_ADDRESS=\`cat /etc/peer2anonet/peers/$PEER/remote_ip\`
- export REMOTE_PORT=\`cat /etc/peer2anonet/peers/$PEER/remote_port\`
-fi
-
-# not recommended to change these values
-#
-export LOCAL_PORT=\`cat /etc/peer2anonet/peers/$PEER/local_port\`
-export PRIVATE_KEY=\`cat /etc/peer2anonet/peers/$PEER/seckey\`
-export PUBLIC_KEY=\`cat /etc/peer2anonet/peers/$PEER/pubkey\`
-export TUN_MODE=1
-export INTERFACE=ppp-$PEER
-
-# uncomment if you want to nuke your default gateway and configure
-# routes only to peers through IcannNet. If any of your peers use
-# dynamic IP's or you use Tor or i2p then this is probably NOT a
-# good idea. You may need to modify the DEFAULT_ROUTE code below.
-# If you run into problems with this please /msg /relayhell/d3v11
-# so I can create a patch.
-#
-#DEFAULT_ROUTE=\`ip route show | grep default | cut -d' ' -f 3\`
-#route del default gw \$DEFAULT_ROUTE
-#route add \$REMOTE_ADDRESS gw \$DEFAULT_ROUTE
-
-( sleep 5;
- ip addr add $P2A_IP peer \`cat /etc/peer2anonet/peers/$PEER/peering_ip\`/32 dev \$INTERFACE scope link
- ip addr add $P2A_ROUTE/32 dev \$INTERFACE scope global
- ip link set dev \$INTERFACE up
-
-# comment the following ping line to remove pinghack. this is a
-# trick used to help bird connect.
-#
- ping -c 1 -I \$INTERFACE \`cat /etc/peer2anonet/peers/$PEER/peering_ip\` -r -w 5
-
-) &
-exec /usr/sbin/quicktun.nacltai" > /etc/peer2anonet/peers/$PEER/run
- fi
- chmod +x /etc/peer2anonet/peers/"$PEER"/run
- test -L /services/"$PEER"/run || rm -f /services/"$PEER"/run
- test -L /services/"$PEER"/run || ln -s /etc/peer2anonet/peers/"$PEER"/run /services/"$PEER"/run
- test -L "/service/$PEER" && svc -t "/service/$PEER"
- test -L "/service/$PEER" || ln -s "/services/$PEER" "/service/$PEER"
- done
- test -L /service/bird || ln -s /services/bird /service/bird
- echo configure | birdc
- }
-
-CONFIGURE_PEER(){
- if [ -e /etc/peer2anonet/p2a.conf ]; then
- source /etc/peer2anonet/p2a.conf
- else
- CONFIGURE
- exit 0
- fi
-
- echo -e '\nCONFIGURE PEER:\n'
- read -p " Enter your peer's name: " 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
- [ -e /etc/peer2anonet/peers/"$PEER" ] && rm -r /etc/peer2anonet/peers/"$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"/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
- echo -e "\n configured $PEER\n"
- }
-
-RM_PEER(){
- if [ -e /etc/peer2anonet/p2a.conf ]; then
- source /etc/peer2anonet/p2a.conf
- else
- CONFIGURE
- exit 0
- fi
-
- echo -e '\nRM PEER:\n'
- read -p " Enter your peer's name: " PEER
- if [ -e /etc/peer2anonet/peers/"$PEER" ]; then
- rm -r /etc/peer2anonet/peers/"$PEER"
- echo
- echo -e " removed /etc/peer2anonet/peers/$PEER\n"
- else
- echo
- echo -e " fatal error: /etc/peer2anonet/peers/$PEER not exists\n"
- exit 1
- fi
- }
-
-INSTALL_DAEMONTOOLS(){
- echo -e '\nINSTALL DAEMONTOOLS:\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
-
- if [ -w /etc/inittab ]; then :
- elif [ -w /etc/rc.local ] && ! [ -w /etc/inittab ]; then
- sed -i "s/exit 0/exec \/command\/svscanboot \&/" /etc/rc.local
- chmod +x /etc/rc.local
- else
- echo ' fatal error: cannot create reliable startup'
- exit 1
- fi
-
- mkdir -p /package
- chmod 1755 /package
- cd /package
- wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
- gunzip daemontools-0.76.tar
- tar -xpf daemontools-0.76.tar
- rm -f daemontools-0.76.tar
- cd admin/daemontools-0.76
- sed -i 's/gcc/gcc -include errno.h/g' src/conf-cc
- package/install
- exec /command/svscanboot >/dev/null 2>&1 &
- }
-
-INSTALL_UCSPI_TCP(){
- echo -e '\nINSTALL UCSPI-TCP:\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
- cd /usr/local/src
- wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
- gunzip ucspi-tcp-0.88.tar
- tar -xf ucspi-tcp-0.88.tar
- cd ucspi-tcp-0.88
- sed -i 's/gcc/gcc -include errno.h/g' conf-cc
- make
- make setup check
- }
-
-SETUP_QMAIL(){
- echo -e '\nSETUP QMAIL:\n'
-
- echo -e '\tWARN:\n'
- echo -e '\tYou should patch or firewall off qmail from'
- echo -e '\treaching IcannNet so someone cannot harvest'
- echo -e '\tyour IP with the mailerdaemon response.'
-
- [[ $(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/peer2anonet --install-ucspi-tcp'
- [[ $(echo X`which tcpserver`) == X ]] && exit 1
- [[ $(echo X`which svscanboot`) == X ]] && echo ' fatal error: needs ./contrib/peer2anonet/peer2anonet --install-daemontools'
- [[ $(echo X`which svscanboot`) == X ]] && exit 1
-
- NICK=`cat conf/git_name` || exit 1
- MX_IP=`cat conf/gitd_ip` || exit 1
- MX_DOMAIN="a.mx.$NICK.ano" || exit 1
-
- if [ -e /services/tinydns ]; then
- (
- cd /services
- echo "creating /etc/peer2anonet/tinydns.tar backup"
- tar cf /etc/peer2anonet/tinydns.tar tinydns
- echo "@$NICK.ano:$MX_IP:a:12801:86400">>/services/tinydns/root/data
- )
- else
- echo ' fatal error: needs ./contrib/peer2anonet/peer2anonet --configure-dns'
- exit 1
- fi
-
- (
- cd /services/tinydns/root
- make
- cd /service
- sleep 5
- svc -t dnscache tinydns tinydns-ano tinydns-root
- )
-
- useradd qmaillog || exit 1
-
- if [ -w /etc/rc.local ]; then
- if [[ $(cat /etc/rc.local) != *"ip addr add $MX_IP/32 dev lo &"* ]]; then
- echo "ip addr add $MX_IP/32 dev lo &" >> /etc/rc.local
- fi
- elif [ -w /etc/rc.d/rc.local ]; then
- if [[ $(cat /etc/rc.d/rc.local) != *"ip addr add $MX_IP/32 dev lo &"* ]]; then
- echo "ip addr add $MX_IP/32 dev lo &" >> /etc/rc.d/rc.local
- fi
- else
- echo " fatal error: cannot reliably assign ip's to startup"
- exit 1
- fi
-
- ip addr add $MX_IP/32 dev lo > /dev/null 2>&1
-
- if [ -e '/var/qmail/bin/qmail-qmtpd' ] || ! [ -e '/var/qmail/bin/qmail-smtpd' ]; then
- cd /usr/local/src
- wget http://www.srn.ano/software/qmail-1.03.tar.gz
- tar xzf qmail-1.03.tgz
- cd qmail-1.03
- unset http_proxy
- wget -O- http://www.srn.ano/patches/qmail-1.03-qmtpc.patch | patch -p1
- mkdir /var/qmail
- groupadd nofiles
- useradd -g nofiles -d /var/qmail/alias alias
- useradd -g nofiles -d /var/qmail qmaild
- useradd -g nofiles -d /var/qmail qmaill
- useradd -g nofiles -d /var/qmail qmailp
- groupadd qmail
- useradd -g qmail -d /var/qmail qmailq
- useradd -g qmail -d /var/qmail qmailr
- useradd -g qmail -d /var/qmail qmails
- sed -i 's/gcc/gcc -include errno.h/g' conf-cc
- make setup check
- ./config-fast $MX_DOMAIN
- echo yourdomain.ano >>/var/qmail/control/locals
- echo yourdomain.ano >>/var/qmail/control/rcpthosts
- (cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root)
- chmod 644 ~alias/.qmail*
- fi
-
- mkdir -p /services/qmail
- mkdir -p /services/qmail/log
- mkdir -p /services/qmail/log/main
- chown qmaillog /services/qmail/log/main
- echo -e '#!/bin/sh\nexec env - PATH="/var/qmail/bin:/usr/local/bin:/usr/bin:/bin" qmail-start ./Mailbox' >/services/qmail/run
- chmod +x /services/qmail/run
- echo -e '#!/bin/sh\nexec setuidgid qmaillog multilog t s10000 n4 ./main' >/services/qmail/log/run
- chmod +x /services/qmail/log/run
-
- ( cd / ; ln -s /services/qmail /service )
-
- mkdir -p /services/qmail-smtpd
- mkdir -p /services/qmail-smtpd/log
- mkdir -p /services/qmail-smtpd/log/main
- chown qmaillog /services/qmail-smtpd/log/main
- echo -e echo -e '#!/bin/sh\nexec envuidgid qmaild tcpserver -U -c 100 '$MX_IP' smtp /var/qmail/bin/qmail-smtpd' >/services/qmail-smtpd/run
- chmod +x /services/qmail-smtpd/run
- echo -e '#!/bin/sh\nexec setuidgid qmaillog multilog t s10000 n4 ./main' >/services/qmail-smtpd/log/run
- chmod +x /services/qmail-smtpd/log/run
-
- ( cd / ; ln -s /services/qmail-smtpd /service )
-
- mkdir -p /services/qmail-qmtpd
- mkdir -p /services/qmail-qmtpd/log
- mkdir -p /services/qmail-qmtpd/log/main
- chown qmaillog /services/qmail-qmtpd/log/main
- echo -e echo -e '#!/bin/sh\nexec envuidgid qmaild tcpserver -U -c 100 '$MX_IP' qmtp /var/qmail/bin/qmail-qmtpd' >/services/qmail-qmtpd/run
- chmod +x /services/qmail-qmtpd/run
- echo -e '#!/bin/sh\nexec setuidgid qmaillog multilog t s10000 n4 ./main' >/services/qmail-qmtpd/log/run
- chmod +x /services/qmail-qmtpd/log/run
-
- ( cd / ; ln -s /services/qmail-qmtpd /service )
-
- (
- cd /
- [ -e /usr/sbin/sendmail ] && mv /usr/sbin/sendmail /usr/sbin/sendmail.bak
- ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail
- )
-
- echo 'export MAIL=~/Mailbox' >>/etc/profile
- }
-
-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/peer2anonet --install-ucspi-tcp'
- [[ $(echo X`which tcpserver`) == X ]] && exit 1
- [[ $(echo X`which svscanboot`) == X ]] && echo ' fatal error: needs ./contrib/peer2anonet/peer2anonet --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
- }
-
-CONFIGURE_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/peer2anonet --install-ucspi-tcp'
- [[ $(echo X`which tcpserver`) == X ]] && exit 1
- [[ $(echo X`which svscanboot`) == X ]] && echo ' fatal error: needs ./contrib/peer2anonet/peer2anonet --install-daemontools'
- [[ $(echo X`which svscanboot`) == X ]] && exit 1
- [[ $(echo X`which tinydns`) == X ]] && echo ' fatal error: needs ./contrib/peer2anonet/peer2anonet --install-djbdns'
- [[ $(echo X`which tinydns`) == X ]] && exit 1
-
- if [ -e /services/dnscache ]; then
- [ -e /etc/peer2anonet/dnscache.tar ] || ( cd /services ; echo "creating /etc/peer2anonet/dnscache.tar backup" ;\
- tar cf /etc/peer2anonet/dnscache.tar dnscache )
- fi
- if [ -e /services/tinydns ]; then
- [ -e /etc/peer2anonet/tinydns.tar ] || ( cd /services ; echo "creating /etc/peer2anonet/tinydns.tar backup" ;\
- tar cf /etc/peer2anonet/tinydns.tar tinydns )
- fi
- if [ -e /services/tinydns-ano ]; then
- [ -e /etc/peer2anonet/tinydns-ano.tar ] || ( cd /services ; echo "creating /etc/peer2anonet/tinydns-ano.tar backup" ;\
- tar cf /etc/peer2anonet/tinydns-ano.tar tinydns-ano )
- fi
- if [ -e /services/tinydns-root ]; then
- [ -e /etc/peer2anonet/tinydns-root.tar ] || ( cd /services ; echo "creating /etc/peer2anonet/tinydns-root.tar backup" ;\
- tar cf /etc/peer2anonet/tinydns-root.tar tinydns-root )
- fi
-
- (
- cd /service
- svc -d dnscache tinydns tinydns-ano tinydns-root >/dev/null 2>&1
- 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` || exit 1
- TINYDNS_ROOT_IP=`cat conf/tinydns__rootsrvrip` || exit 1
- TINYDNS_ROOT_DOMAIN=`cat conf/tinydns__rootsrvrname` || exit 1
- TINYDNS_ANO_IP=`cat conf/tinydns__tldsrvrip` || exit 1
- TINYDNS_ANO_DOMAIN=`cat conf/tinydns__tldsrvrname` || exit 1
- TINYDNS_IP=`cat conf/tinydns__srvrip` || exit 1
- TINYDNS_DOMAIN=`cat conf/tinydns__srvrname` || exit 1
- GIT_IP=`cat conf/gitd_ip` || exit 1
- GIT_DOMAIN="git.$NICK.ano"
-
- ./scripts/add_dom $NICK.ano $NICK $TINYDNS_DOMAIN/$TINYDNS_IP > /dev/null 2>&1
-
- if [ -w /etc/rc.local ]; then
- if [[ $(cat /etc/rc.local) != *"ip addr add $TINYDNS_ROOT_IP/32 dev lo &"* ]]; then
- echo "ip addr add $TINYDNS_ROOT_IP/32 dev lo &" >> /etc/rc.local
- fi
- if [[ $(cat /etc/rc.local) != *"ip addr add $TINYDNS_IP/32 dev lo &"* ]]; then
- echo "ip addr add $TINYDNS_IP/32 dev lo &" >> /etc/rc.local
- fi
- if [[ $(cat /etc/rc.local) != *"ip addr add $TINYDNS_ANO_IP/32 dev lo &"* ]]; then
- echo "ip addr add $TINYDNS_ANO_IP/32 dev lo &" >> /etc/rc.local
- fi
- if [[ $(cat /etc/rc.local) != *"ip addr add $GIT_IP/32 dev lo &"* ]]; then
- echo "ip addr add $GIT_IP/32 dev lo &" >> /etc/rc.local
- fi
- elif [ -w /etc/rc.d/rc.local ]; then
- if [[ $(cat /etc/rc.d/rc.local) != *"ip addr add $TINYDNS_ROOT_IP/32 dev lo &"* ]]; then
- echo "ip addr add $TINYDNS_ROOT_IP/32 dev lo &" >> /etc/rc.d/rc.local
- fi
- if [[ $(cat /etc/rc.d/rc.local) != *"ip addr add $TINYDNS_IP/32 dev lo &"* ]]; then
- echo "ip addr add $TINYDNS_IP/32 dev lo &" >> /etc/rc.d/rc.local
- fi
- if [[ $(cat /etc/rc.d/rc.local) != *"ip addr add $TINYDNS_ANO_IP/32 dev lo &"* ]]; then
- echo "ip addr add $TINYDNS_ANO_IP/32 dev lo &" >> /etc/rc.d/rc.local
- fi
- if [[ $(cat /etc/rc.d/rc.local) != *"ip addr add $GIT_IP/32 dev lo &"* ]]; then
- echo "ip addr add $GIT_IP/32 dev lo &" >> /etc/rc.d/rc.local
- fi
- else
- (
- mkdir -p /services/tinydns-ips
- echo "#!/bin/sh -e" > /services/tinydns-ips/run
- echo "ip addr add $TINYDNS_ROOT_IP/32 dev lo &" >> /services/tinydns-ips/run
- echo "ip addr add $TINYDNS_IP/32 dev lo &" >> /services/tinydns-ips/run
- echo "ip addr add $TINYDNS_ANO_IP/32 dev lo &" >> /services/tinydns-ips/run
- echo "ip addr add $GIT_IP/32 dev lo &" >> /services/tinydns-ips/run
- echo "svc -d ." /services/tinydns-ips/run
- chmod +x /services/tinydns-ips/run
- test -L /service/tinydns-ips || ln -s /services/tinydns-ips /service/tinydns-ips
- )
- fi
-
- ip addr add $TINYDNS_ROOT_IP/32 dev lo > /dev/null 2>&1
- ip addr add $TINYDNS_IP/32 dev lo > /dev/null 2>&1
- ip addr add $TINYDNS_ANO_IP/32 dev lo > /dev/null 2>&1
- ip addr add $GIT_IP/32 dev lo > /dev/null 2>&1
-
- useradd Gdnscache
- useradd Gdnslog
- useradd Gtinydns
-
- dnscache-conf Gdnscache Gdnslog /services/dnscache
- mv /services/dnscache/root/servers/@ /services/dnscache/root/servers/@.icann
- echo $TINYDNS_ROOT_IP >/services/dnscache/root/servers/@
- echo 'nameserver 127.0.0.1' >/etc/resolv.conf
-
-
- tinydns-conf Gtinydns Gdnslog /services/tinydns $TINYDNS_IP
- (
- 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
- ./scripts/nameserver_autogen/tinydns_root_datafile > /services/tinydns-root/root/data
- ( cd /services/tinydns-root/root ; make )
-
- tinydns-conf Gtinydns Gdnslog /services/tinydns-ano $TINYDNS_ANO_IP
- ./scripts/nameserver_autogen/tinydns_tld_datafile > /services/tinydns-ano/root/data
- ( cd /services/tinydns-ano/root ; make )
-
- (
- 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/peer2anonet --install-ucspi-tcp'
- [[ $(echo X`which tcpserver`) == X ]] && exit 1
- [[ $(echo X`which svscanboot`) == X ]] && echo ' fatal error: needs ./contrib/peer2anonet/peer2anonet --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/peer2anonet --install-ucspi-tcp'
- [[ $(echo X`which tcpserver`) == X ]] && exit 1
- [[ $(echo X`which svscanboot`) == X ]] && echo ' fatal error: needs ./contrib/peer2anonet/peer2anonet --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
- )
- }
-
-INSTALL_NACL(){
- cd /usr/local/src
- wget http://hyperelliptic.org/nacl/nacl-20110221.tar.bz2
- bunzip2 < nacl-20110221.tar.bz2 | tar -xf -
- cd nacl-20110221
- ./do
- }
-
-
-if [ "$1" == '--configure' ]; then
- CONFIGURE
-elif [ "$1" == '--update' ]; then
- UPDATE
-elif [ "$1" == '--configure-peer' ]; then
- CONFIGURE_PEER
- UPDATE
-elif [ "$1" == '--rm-peer' ]; then
- RM_PEER
- UPDATE
-elif [ "$1" == '--install-daemontools' ]; then
- INSTALL_DAEMONTOOLS
-elif [ "$1" == '--install-ucspi-tcp' ]; then
- INSTALL_UCSPI_TCP
-elif [ "$1" == '--install-djbdns' ]; then
- INSTALL_DJBDNS
-elif [ "$1" == '--install-nacl' ]; then
- INSTALL_NACL
-elif [ "$1" == '--setup-qmail' ]; then
- SETUP_QMAIL
-elif [ "$1" == '--configure-dns' ]; then
- CONFIGURE_DNS
-elif [ "$1" == '--update-dns' ]; then
- UPDATE_DNS
-else
- USAGE
-fi