manage-gw-config/copy_gateway-config.sh

200 lines
7.7 KiB
Bash
Executable File

#!/bin/bash
user=chris
function usage() {
if [ -n "$1" ];then
echo -e "\nError: $1"
fi
cat<<EOF
`basename $0` - Copies gateway configuration into ${user}'s homedirectory
Usage: `basename $0` <network-name>
network-name possible values are:
NONE-WF
NONE-CKUBU
AKB
ANW-URB
ANW-KM
B3-Bornim
CKUBU
FLR-BRB
GA-AL
GA-Ersatz
GA-NH
GA-Schloss
JONAS
Kanzlei-Kiel
MBR
OOLM
OPP
ReachOut
SPR-BE
WF
EOF
exit
}
[ $# -ne "1" ] && usage "wrong number of arguments"
_realpath=`which realpath`
if [ -z "$_realpath" ]; then
usage "realpath is not installed but neeeded"
fi
filesystem_prefix=""
if [ -d "/ro" ]; then
filesystem_prefix="/ro"
fi
_network=$1
homedir_user=`eval realpath ~$user`
_dir=${_network}-config
mkdir -p ${homedir_user}/${_dir}
# - Nameserver Bind
# - /etc/bind/*
# -
tar -czpf ${homedir_user}/${_dir}/bind_${_network}.tar.gz -C ${filesystem_prefix}/etc bind
chown ${user}:${user} ${homedir_user}/${_dir}/bind_${_network}.tar.gz
# - OpenVPN:
# - /etc/openvpn/*
# -
if [[ -d "${filesystem_prefix}/etc/openvpn" ]]; then
tar -czpf ${homedir_user}/${_dir}/openvpn_${_network}.tar.gz -C ${filesystem_prefix}/etc openvpn
chown ${user}:${user} ${homedir_user}/${_dir}/openvpn_${_network}.tar.gz
fi
if [ -d "/root/.openvpn" ]; then
tar -czpf ${homedir_user}/${_dir}/root-dot-opennvpndir_${_network}.tar.gz -C /root .openvpn
chown ${user}:${user} ${homedir_user}/${_dir}/root-dot-opennvpndir_${_network}.tar.gz
fi
# - DynDNS
# -
if [ -f "${filesystem_prefix}/etc/ddclient.conf" ]; then
cp ${filesystem_prefix}/etc/ddclient.conf ${homedir_user}/${_dir}/ddclient.conf.${_network}
fi
# - DHCP Server
# -
if [ -f "${filesystem_prefix}/etc/dhcp/dhcpd.conf" ];then
cp ${filesystem_prefix}/etc/dhcp/dhcpd.conf ${homedir_user}/${_dir}/dhcpd.conf.${_network}
fi
if [ -f "${filesystem_prefix}/etc/dhcp/dhcpd6.conf" ];then
cp ${filesystem_prefix}/etc/dhcp/dhcpd6.conf ${homedir_user}/${_dir}/dhcpd6.conf.${_network}
fi
if [ -f "${filesystem_prefix}/etc/dhcp3/dhcpd.conf" ];then
cp ${filesystem_prefix}/etc/dhcp3/dhcpd.conf ${homedir_user}/${_dir}/dhcpd.conf.${_network}
fi
if [ -f "${filesystem_prefix}/etc/dhcp3/dhcpd6.conf" ];then
cp ${filesystem_prefix}/etc/dhcp3/dhcpd6.conf ${homedir_user}/${_dir}/dhcpd.conf.${_network}
fi
if [ -f "${filesystem_prefix}/etc/init.d/isc-dhcp6-server" ]; then
cp ${filesystem_prefix}/etc/init.d/isc-dhcp6-server ${homedir_user}/${_dir}/isc-dhcp6-server.${_network}
fi
# - DSL PPP
# -
if [ -f "${filesystem_prefix}/etc/ppp/peers/dsl-provider" ]; then
cp ${filesystem_prefix}/etc/ppp/peers/dsl-provider ${homedir_user}/${_dir}/dsl-provider.${_network}
fi
_network_name=`echo ${_network} | tr '[:upper:]' '[:lower:]'`
if [ -f "${filesystem_prefix}/etc/ppp/peers/dsl-$_network_name" ];then
cp ${filesystem_prefix}/etc/ppp/peers/dsl-$_network_name ${homedir_user}/${_dir}/dsl-${_network_name}.${_network}
fi
cp ${filesystem_prefix}/etc/ppp/pap-secrets ${homedir_user}/${_dir}/pap-secrets.${_network}
cp ${filesystem_prefix}/etc/ppp/chap-secrets ${homedir_user}/${_dir}/chap-secrets.${_network}
if [ -f "${filesystem_prefix}/etc/ppp/ip-up.d/email_notice" ];then
cp ${filesystem_prefix}/etc/ppp/ip-up.d/email_notice ${homedir_user}/${_dir}/email_notice.${_network}
fi
# - Postfix SMTP
# - /etc/postfix/main.cf
# - /etc/mailname
# - /etc/postfix/generic
# - /etc/postfix/generic.db
cp ${filesystem_prefix}/etc/postfix/main.cf ${homedir_user}/${_dir}/main.cf.${_network}
if [ -f "${filesystem_prefix}/etc/postfix/generic" ];then
cp ${filesystem_prefix}/etc/postfix/generic ${homedir_user}/${_dir}/generic.${_network}
cp ${filesystem_prefix}/etc/postfix/generic.db ${homedir_user}/${_dir}/generic.db.${_network}
fi
if [ -f "${filesystem_prefix}/etc/postfix/sasl_passwd" ]; then
cp ${filesystem_prefix}/etc/postfix/sasl_passwd ${homedir_user}/${_dir}/sasl_passwd.${_network}
cp ${filesystem_prefix}/etc/postfix/sasl_passwd.db ${homedir_user}/${_dir}/sasl_passwd.db.${_network}
fi
cp ${filesystem_prefix}/etc/mailname ${homedir_user}/${_dir}/mailname.${_network}
# - Netzwerk:
# - /etc/network/interfaces
# - /etc/resolv.conf
# - /etc/hostname
# - /etc/hosts
cp ${filesystem_prefix}/etc/hostname ${homedir_user}/${_dir}/hostname.${_network}
cp ${filesystem_prefix}/etc/hosts ${homedir_user}/${_dir}/hosts.${_network}
cp ${filesystem_prefix}/etc/network/interfaces ${homedir_user}/${_dir}/interfaces.${_network}
cp ${filesystem_prefix}/etc/resolv.conf ${homedir_user}/${_dir}/resolv.conf.${_network}
# - Firewall
# -
if [[ -f "${filesystem_prefix}/etc/systemd/system/ipt-firewall.service" ]]; then
cp ${filesystem_prefix}/etc/systemd/system/ipt-firewall.service ${homedir_user}/${_dir}/ipt-firewall.service.${_network}
cp ${filesystem_prefix}/usr/local/sbin/ipt-firewall-gateway ${homedir_user}/${_dir}/ipt-firewall-gateway.${_network}
cp ${filesystem_prefix}/etc/ipt-firewall/ipt-firewall-gateway.conf ${homedir_user}/${_dir}/ipt-firewall-gateway.conf.${_network}
fi
if [[ -f "${filesystem_prefix}/etc/systemd/system/ip6t-firewall.service" ]]; then
cp ${filesystem_prefix}/etc/systemd/system/ipt-firewall.service ${homedir_user}/${_dir}/ip6t-firewall.service.${_network}
cp ${filesystem_prefix}/usr/local/sbin/ip6t-firewall-gateway ${homedir_user}/${_dir}/ip6t-firewall-gateway.${_network}
cp ${filesystem_prefix}/etc/ipt-firewall/ip6t-firewall-gateway.conf ${homedir_user}/${_dir}/ip6t-firewall-gateway.conf.${_network}
fi
if [ -f "${filesystem_prefix}/etc/init.d/ipt-firewall" ]; then
cp ${filesystem_prefix}/etc/init.d/ipt-firewall ${homedir_user}/${_dir}/ipt-firewall.${_network}
fi
if [ -f "${filesystem_prefix}/etc/init.d/ip6t-firewall" ]; then
cp ${filesystem_prefix}/etc/init.d/ip6t-firewall ${homedir_user}/${_dir}/ip6t-firewall.${_network}
fi
# - Check Script Onlinestatus
# -
if [[ -f "${filesystem_prefix}/etc/systemd/system/check_net.service" ]] ; then
cp ${filesystem_prefix}/etc/systemd/system/check_net.service ${homedir_user}/${_dir}/check_net.service.${_network}
cp ${filesystem_prefix}/usr/local/sbin/check_net.sh ${homedir_user}/${_dir}/check_net.sh.${_network}
cp ${filesystem_prefix}/usr/local/sbin/netconfig.sh ${homedir_user}/${_dir}/netconfig.sh.${_network}
cp ${filesystem_prefix}/etc/check_net/check_net.conf ${homedir_user}/${_dir}/check_net.conf.${_network}
fi
if [[ -f "${filesystem_prefix}/etc/logrotate.d/check_net" ]] ; then
cp ${filesystem_prefix}/etc/logrotate.d/check_net ${homedir_user}/${_dir}/check_net-logrotate.${_network}
fi
cp ${filesystem_prefix}/etc/rc.local ${homedir_user}/${_dir}/rc.local.${_network}
if [ -f "${filesystem_prefix}/var/spool/cron/crontabs/root" ]; then
cp ${filesystem_prefix}/var/spool/cron/crontabs/root ${homedir_user}/${_dir}/cron_root.${_network}
fi
if [ -f "${filesystem_prefix}/usr/local/igmpproxy/etc/igmpproxy.conf" ]; then
cp ${filesystem_prefix}/usr/local/igmpproxy/etc/igmpproxy.conf ${homedir_user}/${_dir}/igmpproxy.conf.${_network}
fi
if [ -f "${filesystem_prefix}/etc/aiccu.conf" ]; then
cp ${filesystem_prefix}/etc/aiccu.conf ${homedir_user}/${_dir}/aiccu.conf.${_network}
fi
if [ -f "${filesystem_prefix}/etc/default/aiccu" ]; then
cp ${filesystem_prefix}/etc/default/aiccu ${homedir_user}/${_dir}/aiccu.${_network}
fi
if [ -f "${filesystem_prefix}/etc/radvd.conf" ]; then
cp ${filesystem_prefix}/etc/radvd.conf ${homedir_user}/${_dir}/radvd.conf.${_network}
fi
chown ${user}:${user} ${homedir_user}/${_dir}
chown ${user}:${user} ${homedir_user}/${_dir}/*.${_network}