Router: Difference between revisions

From NoName e.V.
Jump to navigation Jump to search
No edit summary
 
(12 intermediate revisions by 2 users not shown)
Line 38: Line 38:
         range 10.42.23.6 10.42.23.100;
         range 10.42.23.6 10.42.23.100;
         option routers 10.42.23.5;
         option routers 10.42.23.5;
}
subnet 10.42.23.128 netmask 255.255.255.128 {
        range 10.42.23.130 10.42.23.254;
        option routers 10.42.23.129;
  }
  }
* /etc/network/interfaces
* /etc/network/interfaces
Line 43: Line 48:
  iface eth0 inet static
  iface eth0 inet static
         address 10.42.23.5
         address 10.42.23.5
         netmask 255.255.255.0
         netmask 255.255.255.128
         post-up ip -6 a a 2a01:198:255::1/64 dev eth0
         post-up ip -6 a a 2a01:198:255::1/64 dev eth0
         post-up ip6tables-restore < /etc/network/ip6tables
         post-up ip6tables-restore < /etc/network/ip6tables
         post-up iptables-restore < /etc/network/iptables
         post-up iptables-restore < /etc/network/iptables
auto wlan1
iface wlan1 inet static
        address 10.42.23.129
        netmask 255.255.255.128
        post-up ip -6 a a 2a01:198:255:1::1/64 dev wlan1
* /etc/rc.local
# Da hostapd die IPv6-Adresse kaputtmacht beim starten
# setzen wir sie hier nochmals (wird am Ende vom runlevel ausgeführt)
# Siehe: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=536630
ip -6 a a 2a01:198:255:1::1/64 dev wlan1
* /etc/sysctl.conf
* /etc/sysctl.conf
  net.ipv4.conf.default.rp_filter=1
  net.ipv4.conf.default.rp_filter=1
Line 54: Line 71:
  net.ipv6.conf.all.forwarding=1
  net.ipv6.conf.all.forwarding=1
  net.ipv4.icmp_echo_ignore_broadcasts=1
  net.ipv4.icmp_echo_ignore_broadcasts=1
  net.ipvv4.icmp_ignore_bogus_error_responses=1
  net.ipv4.icmp_ignore_bogus_error_responses=1
   
   
  # Da wir einen eigenen Tunnel bauen ist es eher kontra-produktiv,
  # Da wir einen eigenen Tunnel bauen ist es eher kontra-produktiv,
Line 74: Line 91:
         };
         };
  };
  };
interface wlan1
{
        AdvSendAdvert on;
        AdvHomeAgentFlag off;
        IgnoreIfMissing on;
        prefix 2a01:198:255:1::/64
        {
                AdvOnLink on;
                AdvAutonomous on;
                AdvRouterAddr off;
        };
};
* /etc/hostapd.conf
interface=wlan1
driver=nl80211
ssid=ccchd
hw_mode=g
channel=11
* iptables:
* iptables:
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 10.42.23.0/24
  iptables -t nat -A POSTROUTING -j MASQUERADE -s 10.42.23.0/24
   
   
  ip6tables -A FORWARD -p icmpv6 -j ACCEPT
  ip6tables -A FORWARD -p icmpv6 -j ACCEPT
  ip6tables -A FORWARD -s 2a01:198:255::/64 -m state --state NEW -j ACCEPT
  ip6tables -A FORWARD -s 2a01:198:255::/48 -m state --state NEW -j ACCEPT
  ip6tables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
  ip6tables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
  ip6tables -A FORWARD -j REJECT
  ip6tables -A FORWARD -j REJECT
Line 94: Line 129:
* IPv6-modul früh laden:
* IPv6-modul früh laden:
  echo ipv6 >> /etc/modules
  echo ipv6 >> /etc/modules
* In /etc/default/aiccu folgendes hinzufügen, damit das Starten etwas verlässlicher wird, wenn das Netz noch nicht ganz steht:
* Watchdog bauen, da aiccu beim boot irgendwie nicht sonderlich zuverlässig ist:
  ping -c 1 tic.sixxs.net 2>&- >&-
cat <<EOF >/root/restart_aiccu.sh
#!/bin/sh
  ping6 -c 1 ipv6.google.com 2>&- >&-
if [ $? -ne 0 ]; then
  /etc/init.d/aiccu restart
fi
EOF
echo "* * * * * /root/restart-aiccu.sh" | crontab


= WLAN =
= WLAN =
* Sofern der ersteigert USB-WLAN-Stick funktioniert, wird das hier ergänzt ;-).
* Firmware von http://wireless.kernel.org/en/users/Drivers/p54#firmware (isl3886usb nach /lib/firmware)
* apt-get install hostapd
* config siehe oben (/etc/hostapd/hostapd.conf)
 
== OpenWRT (Fallback, falls der WLAN-Stick nicht tut) ==
* kamikaze-image installieren
* chmod -x /etc/init.d/dnsmasq (wir haben einen eigenen DHCP eins weiter)
* vi /etc/config/network, ipaddr in das gleich subnetz packen wie der router
* vi /etc/config/wireless, disabled entfernen, ssid setzen
* reboot
* router an einen der LAN-ports anstecken, nicht an den internet-port!


= Fertig =
= Fertig =
Das war’s. Router einstecken und sich über das Netz freuen. Gegebenenfalls noch einloggen und vpnc starten, falls ein VPN genutzt werden soll.
Das war’s. Router einstecken und sich über das Netz freuen. Gegebenenfalls noch einloggen und vpnc starten, falls ein VPN genutzt werden soll.

Latest revision as of 16:41, 3 September 2009

Damit im Falle eines Falles unser Router (der auf den Treffs das Internet bereitstellt) einfach wiederhergestellt werden kann, und da es für einige eventuell interessant ist, schildere ich hier das Setup:

Debian installieren

  • USB-Stick einstecken (/dev/sdb)
wget http://ftp.de.debian.org/debian/dists/testing/main/installer-i386/current/images/hd-media/boot.img.gz
zcat boot.img.gz > /dev/sdb
wget http://ftp.de.debian.org/debian/dists/testing/main/installer-i386/current/images//netboot/debian-installer/i386/initrd.gz
pmount sdb
cp initrd.gz /media/sdb/
pumount sdb
  • Den Rechner vom USB-stick booten, Debian-setup durchgehen
  • Das Root-Passwort ist sur5r, toxios und sECuRE bekannt

System konfigurieren

  • apt-get sagen, dass er keine recommendations installieren soll:
echo 'APT::Install-Recommends "false";' > /etc/apt/apt.conf
echo 'APT::Install-Suggests "false";' >> /etc/apt/apt.conf
  • locales einstellen:
dpkg-reconfigure locales

→ de_DE.UTF8 und en_US.UTF8 wählen, default auf „None“ stellen

  • Software installieren
apt-get install git-core zsh screen vim sudo ssh dhcp3-server less radvd vpnc bacula-fd bind9 resolvconf aiccu
  • Angenehme configfiles installieren (YMMV):
git clone git://code.stapelberg.de/configfiles
cd configfiles && ./initialize.sh
chsh → /usr/bin/zsh

Software konfigurieren

  • /etc/dhcp3/dhcpd.conf
option domain-name "treff.noname-ev.de";
option domain-name-servers 10.42.23.5;
authoritive;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;

subnet 10.42.23.0 netmask 255.255.255.0 {
       range 10.42.23.6 10.42.23.100;
       option routers 10.42.23.5;
}

subnet 10.42.23.128 netmask 255.255.255.128 {
       range 10.42.23.130 10.42.23.254;
       option routers 10.42.23.129;
}
  • /etc/network/interfaces
auto eth0
iface eth0 inet static
       address 10.42.23.5
       netmask 255.255.255.128
       post-up ip -6 a a 2a01:198:255::1/64 dev eth0
       post-up ip6tables-restore < /etc/network/ip6tables
       post-up iptables-restore < /etc/network/iptables

auto wlan1
iface wlan1 inet static
       address 10.42.23.129
       netmask 255.255.255.128
       post-up ip -6 a a 2a01:198:255:1::1/64 dev wlan1
  • /etc/rc.local
# Da hostapd die IPv6-Adresse kaputtmacht beim starten
# setzen wir sie hier nochmals (wird am Ende vom runlevel ausgeführt)
# Siehe: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=536630
ip -6 a a 2a01:198:255:1::1/64 dev wlan1
  • /etc/sysctl.conf
net.ipv4.conf.default.rp_filter=1
net.ipv6.conf.all.rp_filter=1

net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
net.ipv4.icmp_echo_ignore_broadcasts=1
net.ipv4.icmp_ignore_bogus_error_responses=1

# Da wir einen eigenen Tunnel bauen ist es eher kontra-produktiv,
# wenn wir von außen eine v6-Adresse bekommen. Sofern $upstream
# stabiles v6 anbietet, kann das raus und unser Tunnel deaktiviert
# werden.
net.ipv6.conf.eth1.accept_ra=0
  • /etc/radvd.conf
interface eth0
{
       AdvSendAdvert on;
       AdvHomeAgentFlag off;
       IgnoreIfMissing on;
       prefix 2a01:198:255::/64
       {
               AdvOnLink on;
               AdvAutonomous on;
               AdvRouterAddr off;
       };
};
interface wlan1
{
       AdvSendAdvert on;
       AdvHomeAgentFlag off;
       IgnoreIfMissing on;
       prefix 2a01:198:255:1::/64
       {
               AdvOnLink on;
               AdvAutonomous on;
               AdvRouterAddr off;
       };
};
  • /etc/hostapd.conf
interface=wlan1
driver=nl80211
ssid=ccchd
hw_mode=g
channel=11
  • iptables:
iptables -t nat -A POSTROUTING -j MASQUERADE -s 10.42.23.0/24

ip6tables -A FORWARD -p icmpv6 -j ACCEPT
ip6tables -A FORWARD -s 2a01:198:255::/48 -m state --state NEW -j ACCEPT
ip6tables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A FORWARD -j REJECT

ip6tables -A INPUT -p icmpv6 -j ACCEPT
ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
ip6tables -A INPUT -s ::1/128 -d ::1/128 -j ACCEPT
ip6tables -A INPUT -s fe80::/10 -d fe80::/10 -j ACCEPT
ip6tables -A INPUT -j REJECT

iptables-save > /etc/network/iptables
ip6tables-save > /etc/network/ip6tables
  • /etc/bind/named.conf: statt /etc/bind/named.conf.options wollen wir:
include "/var/run/bind/named.options";
  • IPv6-modul früh laden:
echo ipv6 >> /etc/modules
  • Watchdog bauen, da aiccu beim boot irgendwie nicht sonderlich zuverlässig ist:
cat <<EOF >/root/restart_aiccu.sh
#!/bin/sh
ping6 -c 1 ipv6.google.com 2>&- >&-
if [ $? -ne 0 ]; then
  /etc/init.d/aiccu restart
fi
EOF
echo "* * * * * /root/restart-aiccu.sh" | crontab

WLAN

OpenWRT (Fallback, falls der WLAN-Stick nicht tut)

  • kamikaze-image installieren
  • chmod -x /etc/init.d/dnsmasq (wir haben einen eigenen DHCP eins weiter)
  • vi /etc/config/network, ipaddr in das gleich subnetz packen wie der router
  • vi /etc/config/wireless, disabled entfernen, ssid setzen
  • reboot
  • router an einen der LAN-ports anstecken, nicht an den internet-port!

Fertig

Das war’s. Router einstecken und sich über das Netz freuen. Gegebenenfalls noch einloggen und vpnc starten, falls ein VPN genutzt werden soll.