Inhaltsverzeichnis

Cf-System

Wie schon im ersten Teil erwähnt, ist diese Anleitung zweckmäßig oft auf meine Bedürfnisse ausgelegt und beinhaltet nicht immer eine Beschreibung dessen was gerade gemacht wird.
Es werden daher div. Grundkenntnisse mit Linux vorausgesetzt.

DSL

DSL Einwahl einrichten

apt-get install pppoeconf
vi /etc/ppp/pppoe.conf

Inhalt:

ETH=eth0
DEMAND=no
USER=<USER@PROVIDER>
PEERDNS=yes
CONNECT_TIMEOUT=0
CLAMPMSS=1412
vi /etc/ppp/peers/dsl-provider

Inhalt:

# Assumes that your IP address is allocated dynamically
# by your DSL provider...
noipdefault
# Try to get the name server addresses from the ISP.
usepeerdns
# Use this connection as the default route.
# Comment out if you already have the correct default route installed.
defaultroute
hide-password
lcp-echo-interval 20
lcp-echo-failure 3
# Override any connect script that may have been set in /etc/ppp/options.
connect /bin/true
noauth
persist
mtu 1492

# RFC 2516, paragraph 7 mandates that the following options MUST NOT be
# requested and MUST be rejected if requested by the peer:
# Address-and-Control-Field-Compression (ACFC)
noaccomp
# Asynchronous-Control-Character-Map (ACCM)
default-asyncmap

plugin rp-pppoe.so eth0
user "<USER@PROVIDER>"
vi /etc/ppp/pap-secrets

Inhalt:

*       hostname        ""      *

# UserIDs that cannot use PPP at all. Check your /etc/passwd and add any
# other accounts that should not be able to use pppd!
guest   hostname        "*"     -
master  hostname        "*"     -
root    hostname        "*"     -
support hostname        "*"     -
stats   hostname        "*"     -

# OUTBOUND connections

# Here you should add your userid password to connect to your providers via
# PAP. The * means that the password is to be used for ANY host you connect
# to. Thus you do not have to worry about the foreign machine name. Just
# replace password with your password.
# If you have different providers with different passwords then you better
# remove the following line.

#       *       password



"<USER@PROVIDER>" * "<PASSWORD>"
vi /etc/ppp/chap-secrets

Inhalt:

"<USER@PROVIDER>" * "<PASSWORD>"
vi /etc/ppp/resolv.conf

Inhalt:

nameserver 62.220.18.8
nameserver 89.246.64.8
vi /etc/network/interfaces

Inhalt unten einfügen:

auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider

DNSMASQ

dnsmasq Installieren und Konfigurieren

apt-get -y install dnsmasq
vi /etc/dnsmasq.conf

Inhalt:

interface=br0
#interface=eth1
#interface=wlan0
no-dhcp-interface=eth0
dhcp-range=interface:br0,192.168.0.250,192.168.0.252,12h
#dhcp-range=interface:eth1,192.168.0.250,192.168.0.252,12h
#dhcp-range=interface:wlan0,192.168.0.250,192.168.0.252,12h
#resolv-file=/etc/ppp/resolv.conf
local=/<DOMAIN>/

Lokale Host Auflösung

vi /etc/hosts

Inhalt nach Belieben anpassen (Im ersten Teil bereits beschrieben).

Bandbreitenbeschränkung

Wondershaper installieren

apt-get install wondershaper

IP-Traffic weiterleiten

IPweiterleitung

sysctl -w net.ipv4.ip_forward=1
vi /etc/sysctl.conf

Inhalt einfach unten einfügen:

 

Iptables

Regeln mit Netzwerkkarte starten.

vi /etc/network/interfaces

(Einfach nach der jew. Konfiguration, der jew. Netzwerkkarte eintragen; NICHT EINFACH AM ENDE)
Inhalt:

# IPTables aktivieren
post-up /usr/sbin/iptables_rules.sh

IPTables Extensions installieren

apt-get install xtables-addons-common

IPTables Script erstellen

vi /usr/sbin/iptables_rules.sh

Der Inhalt ist rein fiktiv und muss für sich angepasst werden. Es werden nicht alle Konfigurationsmöglichkeiten aufgeführt:

#!/bin/bash
## Iptables Regeln
## sonstiges


# Maskieren der LAN-Schnittstelle, Port-Forwarding & Nat aktivieren
# vorhandene Regeln und Ketten zuerst löschen / Reset Traffic-Control
# Restart-Funktionalität

/sbin/iptables -F
 /sbin/iptables -X
  /sbin/iptables -t nat -F
   /usr/sbin/wondershaper clear eth1
#    up /usr/sbin/wondershaper clear eth2

# Forwarding für alle verwendeten Schnittstellen im lokalen Netz aktivieren 
/sbin/iptables -A FORWARD -o ppp0 -s 192.168.0.0/16 -m conntrack --ctstate NEW -j ACCEPT
# /sbin/iptables -A FORWARD -o ppp0 -i wlan0 -s 192.168.0.0/16 -m conntrack --ctstate NEW -j ACCEPT
  /sbin/iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
   /sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
    /sbin/sysctl -w net.ipv4.ip_forward=1

# dnsmasq neu starten
/etc/init.d/dnsmasq restart

# Traffic-Control
#up /usr/sbin/wondershaper eth1 6000 500
# up /usr/sbin/wondershaper eth2 6000 500

## Portfreigaben
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp -m multiport --dports 8001,10021:10022 -j DNAT --to-destination 192.168.0.180
 /sbin/iptables -A FORWARD -i eth0 -d 192.168.0.180 -p tcp -m multiport --dports 8001,10021:10022 -j ACCEPT
  /sbin/iptables -A INPUT -p tcp --dport ssh -j ACCEPT


# MAC-Adressfilter aktivieren / Datenübertragung für eingetragene WLAN-Geräte zulassen
# up /sbin/iptables -A INPUT -i wlan0 -m mac --mac-source 00:14:f6:2d:0a:b1 -j ACCEPT
#  up /sbin/iptables -A INPUT -i wlan0 -m mac --mac-source 1c:2a:b4:30:4a:23 -j ACCEPT

Script ausführbar machen.

chmod a+x /usr/sbin/iptables_rules.sh
/etc/init.d/networking restart

DYNDNS

DYNDNS installieren und konfigurieren

apt-get install ddclient
vi /etc/ddclient.conf

Inhalt:

# Configuration file for ddclient generated by debconf
#
# /etc/ddclient.conf

protocol=dyndns2
use=web, web=checkip.dyndns.com, web-skip='IP Address'
server=members.dyndns.org
login=<LOGINNAME>
password='<PASSWORD>'
<DYNDNS-ADRESSE>

ddclient nach Network Restart starten

vi /etc/network/interfaces

Inhalt einfach nach der Konfiguration der jew. Netzwerkkarte eintragen:

# DynDNS Client starten
up /etc/init.d/ddclient restart

WLAN

2 WLAN über eine Netzwerkkarte werden hier eingerichtet. Dies muss die Karte unterstützen

Bridge Utils installieren

apt-get install bridge-utils

Wirelesstools installieren

apt-get -y install wireless-tools
vi /etc/network/interfaces

Inhalt:

auto br0
iface br0 inet static
    address 192.168.0.1
    netmask 255.255.0.0
#    gateway 192.168.4.1
    bridge_ports eth1 wlan0
    bridge_fd 5
    bridge_stp no   # unter Umständen auf 'yes' setzen - s.u.

iface wlan0 inet static

Hostap installieren

apt-get -y install hostapd
vi /etc/defualt/hostapd

Inhalt

RUN_DAEMON="yes"
DAEMON_CONF="/etc/hostapd/hostapd.conf"
vi /etc/network/interfaces

Inhalt nach der Konfiguration der Bridge eintragen.

# hostapd starten
up /etc/init.d/hostapd restart
vi /etc/hostdapd/hostapd.conf

Inhalt:

# Schnittstelle und Treiber
bridge=br0
interface=wlan0
driver=nl80211
#driver=hostap

# WLAN-Konfiguration
ssid=<SSID>
channel=5

#interface=wlan0:0
#bss=wlan0_0
#ssid=test2

# ESSID sichtbar
ignore_broadcast_ssid=0

# Ländereinstellungen
country_code=DE
ieee80211d=1

# Übertragungsmodus
hw_mode=g
# Optionale Einstellungen
# supported_rates=10 20 55 110 60 90 120 180 240 360 480 540

# Draft-N Modus aktivieren / optional nur für entsprechende Karten
# ieee80211n=1

# Beacons
beacon_int=100
dtim_period=2ssh

# MAC-Authentifizierung
macaddr_acl=0

# max. Anzahl der Clients
max_num_sta=255

# Gröe der Datenpakete/Begrenzung
rts_threshold=2347
fragm_threshold=2346

# hostapd Log Einstellungen
#logger_syslog=-1
#logger_syslog_level=2
#logger_stdout=-1
#logger_stdout_level=2
#debug=4

# temporäre Konfigurationsdateien
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0

# Authentifizierungsoptionen 
auth_algs=3
apt-get install wireless-tools
# wmm-Funktionalität
wme_enabled=0

# Verschlüsselung / hier rein WPA2
wpa=2
rsn_preauth=1
rsn_preauth_interfaces=wlan0
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

# Schlüsselintervalle / Standardkonfiguration
wpa_group_rekey=600
wpa_ptk_rekey=600
wpa_gmk_rekey=86400

# Zugangsschlüssel (PSK) / hier in Klartext (ASCII)
wpa_passphrase=<WPA-PSK>

2. Virtueller Accespoint (VAP) für 2. WLAN

apt-get install iw

VAP erstellen

vi /usr/sbin/vap.sh

Inhalt

#!/bin/bash

CMD="/usr/sbin/iw"
IFCMD="/sbin/ifconfig"
WLAN_IF="wlan0"
WLAN_RENAME="wlan0_1_rename"
WLAN_VAP="wlan0_1"

# VAP loeschen
/sbin/ifconfig -a |/bin/grep wlan0_1_rename
GREP=$?

if [ "${GREP}" -eq 0 ]; then
        ${CMD} ${WLAN_RENAME} del;
        echo "interface found";
else
        echo "no iface found";
fi

# VAP erstellen
${CMD} ${WLAN_IF} interface add ${WLAN_VAP} type managed

# VAP MAC ändern
sleep 2
echo "setze MAC"
${IFCMD} ${WLAN_RENAME} hw ether 00:1b:b1:5d:b0:91

Script ausführbar machen.

chmod a+x /usr/sbin/vap.sh

hostapd anpassen

vi /etc/default/hostapd

Inhalt:

DAEMON_CONF="/etc/hostapd/hostapd.conf /etc/hostapd/hostapd-nb1.conf"
vi /etc/hostapd/hostapd-<WLAN2>.conf

Inhalt:

# Schnittstelle und Treiber
#bridge=br0
interface=wlan0_1_rename
driver=nl80211
#driver=hostap

# WLAN-Konfiguration
ssid=<SSID2>
channel=5

# ESSID sichtbar
ignore_broadcast_ssid=0

# Ländereinstellungen
country_code=DE
ieee80211d=1

# Übertragungsmodus
hw_mode=g
# Optionale Einstellungen
# supported_rates=10 20 55 110 60 90 120 180 240 360 480 540

# Draft-N Modus aktivieren / optional nur für entsprechende Karten
# ieee80211n=1

# Beacons
beacon_int=100
dtim_period=2

# MAC-Authentifizierung
macaddr_acl=0

# max. Anzahl der Clients
max_num_sta=255

# Größe der Datenpakete/Begrenzung
rts_threshold=2347
fragm_threshold=2346

# hostapd Log Einstellungen
logger_syslog=-1
logger_syslog_level=4
logger_stdout=-1
logger_stdout_level=4
#debug=4

# temporäre Konfigurationsdateien
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0

# Authentifizierungsoptionen 
auth_algs=3

# wmm-Funktionalität
wme_enabled=0

# Verschlüsselung / hier rein WPA2
wpa=2
rsn_preauth=1
rsn_preauth_interfaces=wlan0_1_rename
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

# Schlüsselintervalle / Standardkonfiguration
wpa_group_rekey=600
wpa_ptk_rekey=600
wpa_gmk_rekey=86400

# Zugangsschlüssel (PSK) / hier in Klartext (ASCII)
wpa_passphrase=<WPA-PSK>

Interfaces anpassen

vi /etc/network/interfaces

Inhalt:

# Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or
# /usr/share/doc/ifupdown/examples for more information.

auto br0
iface br0 inet static
    address 192.168.0.1
    netmask 255.255.255.0
#    gateway 192.168.4.1
    bridge_ports eth1 wlan0
    bridge_fd 5
    bridge_stp no   # unter Umständen auf 'yes' setzen - s.u.

auto wlan0_1_rename
iface wlan0_1_rename inet static
        address         10.0.0.1
        netmask         255.255.255.0
        broadcast       10.0.0.255

# VAP erstellen
pre-up /usr/sbin/vap.sh

# hostapd starten
up /etc/init.d/hostapd restart

# IPTables aktivieren
post-up /usr/sbin/iptables_rules.sh

# The loopback network interface
auto lo
iface lo inet loopback


# The primary network interface
auto eth1
iface eth1 inet static
        address         192.168.0.1
        netmask         255.255.255.0
        broadcast       192.168.0.255
#        gateway         192.168.97.1
        # emergency fallback addresses
#        post-up         ip addr add 169.254.19.65/16 dev eth0
#        pre-down        ip addr del 169.254.19.65/16 dev eth0


auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider

# DynDNS Client starten
up /etc/init.d/ddclient restart

auto eth0
iface eth0 inet manual

iface wlan0 inet static

Anpassungen

DNSMASQ anpassen

vi /etc/dnsmasq.conf

Inhalt:

dhcp-range=interface:wlan0_1_rename,10.0.0.100,10.0.0.100,12h
dhcp-host=00:1d:e0:2d:d1:b1,10.0.0.100

Iptables mit entsprechenden Einträgen ergänzen.
Siehe beiliegende iptables_rules.sh

Logging im rsyslog anpassen.

vi /etc/rsyslog.d/40-iptables.conf

Inhalt:

# Iptables logging

:msg,contains,"WLAN_NB_" /var/log/iptables/wlan_nb.log
& ~
*.info;mail.none;authpriv.none;cron.none /var/log/messages

Logrotation anpassen

vi /etc/logrotate.d/wlan_nb

Inhalt:

/var/log/iptables/wlan_nb.log {
  rotate 7
  daily
  compress
  create
  missingok
  notifempty
}

Backup

Backup Script erstellen

touch /root/bin/backup-tar
chmod 744 /root/bin/backup-tar
mkdir /datensicherung
vi /root/bin/backup-tar

Inhalt

#!/bin/bash
#
# 
#
# Zippen der Dateien und Verzeichnisse aus der backup-steuerdatei 

DATUM=`date +%F_%a`
DATUM_ALT=`date -d "3 days ago" +%F_%a`
HOSTNAME=`/bin/hostname -s`
ZIEL=/datensicherung
ZIEL_DATEI=$HOSTNAME-dasi-$DATUM.tar
ZIEL_DATEI_ALT=$HOSTNAME-dasi-$DATUM_ALT.tar
STEUERUNG=/root/bin/backup-steuerdatei
AUSLASSEN=/root/bin/backup-auslassen-steuerdatei

cd $ZIEL
tar cvfz $ZIEL_DATEI -X $AUSLASSEN -T $STEUERUNG<code>

==== FTP-Sicherung ====
Logs per FTP sichern
  touch /root/bin/backup-ftp
  chmod 744 /root/bin/backup-ftp
  vi /root/bin/backup-ftp
Inhalt:
<code>#!/bin/bash
#
# FTP Upload mit FTPeS
#
#
ftp -p -n <FTP-SERVER> << EOF
user <USER> <PASSWORD>
bin
prompt off
cd <VERZEICHNIS>
lcd /datensicherung 
mput *
EOF

exit 0
vi /root/bin/backup-steuerdatei

Inhalt:

/boot
/root
/etc/hosts
/etc/init.d/
/etc/ddclient.conf
/etc/default/hostapd
/etc/hostapd/hostapd.conf
/etc/hostapd/hostapd-nb1.conf
/etc/resolv.conf
/etc/fstab
/etc/sysctl.conf
/etc/default/rcS
/etc/network/interfaces
/etc/apt/sources.list
/etc/apt/apt.conf.d/00onlydepends
/etc/kernel-img.conf
/etc/default/grub
/etc/init/ttyS0.conf
/etc/modules
/etc/modprobe.d/blacklist.conf
/etc/rc.local
/etc/screenrc
/etc/init/watchdog-led.conf
/etc/ppp/pppoe.conf
/etc/ppp/peers/dsl-provider
/etc/ppp/pap-secrets
/etc/ppp/chap-secrets
/etc/ppp/resolv.conf
/etc/dnsmasq.conf
/etc/rsyslog.d/40-iptables.conf
/etc/logrotate.d/wlan_nb
/etc/cron.daily/dasi
/usr/sbin/iptables_rules.sh
/usr/sbin/vap.sh
/var/lib/locales/supported.d/local
/var/log/iptables/
touch /root/bin/backup-auslassen-steuerdatei
vi /root/bin/backup-auslassen-steuerdatei

Hier Unterverzeichnisse eintragen welche sich innerhalb der o.g. Verzeichnisse befinden aber nicht gesichert werden sollen.

Crontab.daily anpassen

vi /etc/cron.daily/dasi

Inhalt:

#min std Tag Monat Wochentag User Befehl

# Router-Backup
05 23 * * * /root/bin/backup-tar > /datensicherung/tar.log

# Backup-Cleanup
10 23 * * * /root/bin/backup-cleanup > /datensicherung/cleanup.log

# Crontab von root sichern
15 23 * * * cat /etc/cron.daily/dasi -l > /datensicherung/crontab-root.log