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 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 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>/
vi /etc/hosts
Inhalt nach Belieben anpassen (Im ersten Teil bereits beschrieben).
Wondershaper installieren
apt-get install wondershaper
IPweiterleitung
sysctl -w net.ipv4.ip_forward=1 vi /etc/sysctl.conf
Inhalt einfach unten einfügen:
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 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
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
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 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