====== Cf-System ======
Wie schon im [[linux:alix-router:cf-install|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=
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 ""
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
"" * ""
vi /etc/ppp/chap-secrets
Inhalt:
"" * ""
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=//
===== 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=
password=''
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=
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=
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-.conf
Inhalt:
# Schnittstelle und Treiber
#bridge=br0
interface=wlan0_1_rename
driver=nl80211
#driver=hostap
# WLAN-Konfiguration
ssid=
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=
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
==== FTP-Sicherung ====
Logs per FTP sichern
touch /root/bin/backup-ftp
chmod 744 /root/bin/backup-ftp
vi /root/bin/backup-ftp
Inhalt:
#!/bin/bash
#
# FTP Upload mit FTPeS
#
#
ftp -p -n << EOF
user
bin
prompt off
cd
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