#!/bin/bash
### MODUL-NR. 004 ###
# (c) August 2008 Stefan Schäfer / FSP Computer & Netzwerke
# (c) 2009-2017 Stefan Schäfer / invis-server.org / stefan@invis-server.org
# (c) 2013,2014 Dimitri Asarowski / invis-server.org / dimitri@invis-server.org
# (c) 2013-2017 Ingo Göppert / invis-server.org / ingo@invis-server.org

# License: GPLv3
# Questions: info@invis-server.org

# Das Modul fileserver richtet die Netzwerkfreigaben des invis-Servers ein

# The module fileserver sets up the invis-server network shares

# Dieses Programm ist freie Software. Sie können es unter den Bedingungen der 
# GNU General Public License, wie von der Free Software Foundation veröffentlicht,
# weitergeben und/oder modifizieren, entweder gemäß Version 3 der Lizenz oder
# (nach Ihrer Option) jeder späteren Version.

# Die Veröffentlichung dieses Programms erfolgt in der Hoffnung, daß es Ihnen
# von Nutzen sein wird, aber OHNE IRGENDEINE GARANTIE, sogar ohne die implizite 
# Garantie der MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK. 
# Details finden Sie in der GNU General Public License.

# Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem 
# Programm erhalten haben. Falls nicht, siehe <http://www.gnu.org/licenses/>. 

# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.

# include functions
source $SINEINCLUDEDIR/functions

modulename=`basename $0`

clear
windowtitle="Nameserver"
pgsubtitle="Caching only Nameserver einrichten"

# named.conf template kopieren
old /etc/named.conf 2>&1| tee -a $LOGFILE | pgbox
cp $TEMPLATEDIR/$modulename/named.conf /etc 2>&1| tee -a $LOGFILE | pgbox
cp $TEMPLATEDIR/$modulename/direct.forwarders /etc/named.d 2>&1| tee -a $LOGFILE | pgbox
cp $TEMPLATEDIR/$modulename/vpn.forwarders /etc/named.d 2>&1| tee -a $LOGFILE | pgbox

# Link anlegen
ln -fs /etc/named.d/direct.forwarders /etc/named.d/named.forwarder

# forwarders in beiden Dateien anpassen
# Konfigurationsdaten ermitteln
ipmaster=`getconfdata "MasterIPint" "2"`
fwstring=`getconfdata "Forwarders" "2"`
domain=`getconfdata "Domain" "2"`

path="/etc/named.d/"
file="vpn.forwarders"
#string="fwstring%$fwstring"
#changevalues $path $file "$string"

string="ip-dc%$ipmaster"
changevalues $path $file "$string"

file="direct.forwarders"
string="fwstring%$fwstring"
changevalues $path $file "$string"

# Nameserver bind in Autostart und starten
chkservice "named"

# Service in Firewall aktivieren
firewall-cmd --zone=public --add-service=dns --permanent 2>&1| tee -a $LOGFILE | pgbox
systemctl restart firewalld.service 2>&1| tee -a $LOGFILE | pgbox

# Forwarder auf bind umstellen
sysconf_addword -r /etc/sysconfig/network/config NETCONFIG_DNS_FORWARDER resolver 2>&1| tee -a $LOGFILE | pgbox 
sysconf_addword /etc/sysconfig/network/config NETCONFIG_DNS_FORWARDER bind 2>&1| tee -a $LOGFILE | pgbox 

# Evtl erforderlich
#netconfig update -f

# Anpassen der Datei /etc/resolv.conf
cp $TEMPLATEDIR/nameserver/resolv.conf /etc 2>&1| tee -a $LOGFILE | pgbox
path="/etc/"
file="resolv.conf"
string="invis-net.loc%$domain"
changevalues $path $file "$string"
