Router

From NoName e.V.
Jump to: navigation, search

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.