====== 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