## ## uAnytun ## ## uAnytun is a tiny implementation of SATP. Unlike Anytun which is a full ## featured implementation uAnytun has no support for multiple connections ## or synchronisation. It is a small single threaded implementation intended ## to act as a client on small platforms. ## The secure anycast tunneling protocol (satp) defines a protocol used ## for communication between any combination of unicast and anycast ## tunnel endpoints. It has less protocol overhead than IPSec in Tunnel ## mode and allows tunneling of every ETHER TYPE protocol (e.g. ## ethernet, ip, arp ...). satp directly includes cryptography and ## message authentication based on the methodes used by SRTP. It is ## intended to deliver a generic, scaleable and secure solution for ## tunneling and relaying of packets of any protocol. ## ## ## Copyright (C) 2007-2008 Christian Pointner ## ## This file is part of uAnytun. ## ## uAnytun is free software: you can redistribute it and/or modify ## it under the terms of the GNU General Public License version 3 as ## published by the Free Software Foundation. ## ## uAnytun is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with uAnytun. If not, see . ## ifneq ($(MAKECMDGOALS),distclean) include include.mk endif EXECUTABLE := uanytun CRYPT_OBJ := key_derivation.o \ auth_algo.o OBJ := log.o \ string_list.o \ sig_handler.o \ options.o \ tun.o \ udp.o \ plain_packet.o \ encrypted_packet.o \ seq_window.o \ cipher.o \ uanytun.o ifndef NO_CRYPT_OBJ OBJ += $(CRYPT_OBJ) endif SRC := $(OBJ:%.o=%.c) .PHONY: clean distclean manpage install install-bin install-etc install-man remove purge all: $(EXECUTABLE) %.d: %.c @set -e; rm -f $@; \ $(CC) -MM $(CFLAGS) $< > $@.$$$$; \ sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \ rm -f $@.$$$$; echo '(re)building $@' ifneq ($(MAKECMDGOALS),distclean) -include $(SRC:%.c=%.d) endif uanytun: $(OBJ) $(CC) $(OBJ) -o $@ $(LDFLAGS) %.o: %.c $(CC) $(CFLAGS) -c $< distclean: clean find . -name *.o -exec rm -f {} \; find . -name "*.\~*" -exec rm -rf {} \; rm -f include.mk rm -f tun.c clean: rm -f *.o rm -f *.d rm -f *.d.* rm -f $(EXECUTABLE) manpage: $(MAKE) --directory="../doc/" manpage install: all install-bin install-etc install-man add-user install-bin: $(EXECUTABLE) mkdir -p $(DESTDIR)$(SBINDIR) install -m 755 $(EXECUTABLE) $(DESTDIR)$(SBINDIR) $(STRIP) $(DESTDIR)$(SBINDIR)/$(EXECUTABLE) install-etc: mkdir -p $(DESTDIR)$(ETCDIR)/uanytun install -m 644 ../etc/uanytun/autostart $(DESTDIR)$(ETCDIR)/uanytun/autostart @( cd '../etc/uanytun/' ; \ for dir in `ls`; do \ if [ -d $$dir ]; then \ echo "install $$dir configuration" ; \ cd $$dir ; \ mkdir -p $(DESTDIR)$(ETCDIR)/uanytun/$$dir ; \ install -m 600 config $(DESTDIR)$(ETCDIR)/uanytun/$$dir/config ; \ sed -i 's#username uanytun#username $(USERNAME)#' $(DESTDIR)$(ETCDIR)/uanytun/$$dir/config ; \ sed -i 's#groupname uanytun#groupname $(USERNAME)#' $(DESTDIR)$(ETCDIR)/uanytun/$$dir/config ; \ sed -i 's#chroot /var/run/uanytun#chroot $(USERHOME)#' $(DESTDIR)$(ETCDIR)/uanytun/$$dir/config ; \ if [ -e 'post-up.sh' ]; then \ install -m 755 post-up.sh $(DESTDIR)$(ETCDIR)/uanytun/$$dir/post-up.sh ; \ fi ; \ cd .. ; \ fi ; \ done \ ) mkdir -p $(DESTDIR)$(ETCDIR)/init.d install -m 755 ../etc/init.d/uanytun $(DESTDIR)$(ETCDIR)/init.d/$(EXECUTABLE) @ sed -i 's#DAEMON=/usr/sbin/uanytun#DAEMON=$(SBINDIR)/$(EXECUTABLE)#' $(DESTDIR)$(ETCDIR)/init.d/$(EXECUTABLE) @ sed -i 's#CONFIG_DIR=/etc/uanytun#CONFIG_DIR=$(ETCDIR)/uanytun#' $(DESTDIR)$(ETCDIR)/init.d/$(EXECUTABLE) install-man: manpage mkdir -p $(DESTDIR)$(MANDIR)/man8/ cp ../doc/uanytun.8 $(DESTDIR)$(MANDIR)/man8/$(EXECUTABLE).8 gzip $(DESTDIR)$(MANDIR)/man8/$(EXECUTABLE).8 add-user: @ adduser --system --group --home $(USERHOME) $(USERNAME) remove-user: @ deluser $(USERNAME) @ rm -rf $(USERHOME) remove: rm -f $(DESTDIR)$(SBINDIR)/$(EXECUTABLE) rm -f $(DESTDIR)$(MANDIR)/man8/$(EXECUTABLE).8.gz rm -f $(DESTDIR)$(ETCDIR)/init.d/$(EXECUTABLE) purge: remove remove-user rm -rf $(DESTDIR)$(ETCDIR)/uanytun/