Microdistribution Slitaz-Linux

Erste Schritte

Vorarbeiten:

  • Downloaden von http://pemmann.de/cc/VM/Slitaz-Linux.ova

  • Doppelklick auf die Datei ‚Slitaz-Linux.ova‘, dabei die Netzwerk-Adapter nicht mit übernehmen.

  • Änderen der VitualBox-Konfiguration auf folgende Werte: - Name: „Slitaz-Linux (Router 1)“ - Netzwerkadapter: Adapter 1 auf Netzwerkbrücke legen, Adapter zwei mit neuem, internen Netzwerk namens ‚iso_net1‘ verbinden

  • Gastsystem starten

  • Login als ‚tux‘ (Passwort: ‚tux‘), in Konsole ‚root‘ werden (Passwort: ‚root‘)

Erkunden, welcher ssh-Daemon läuft:

  root@slitaz:~# ps aux | grep ssh
   1573 root       0:00 grep ssh
  root@slitaz:~#
  root@slitaz:~# ps aux | grep drop
   1358 root       0:00 /usr/sbin/dropbear -w -g -b /etc/dropbear/banner
   1575 root       0:00 grep drop
  root@slitaz:~#

Vorsicht, die Netzwerktools sind einfacher gestrickt; man sieht es an den Symlinks auf das Allroundprogramm 'busybox': ::

  root@slitaz:~# ls -l /usr/bin/lsof
  lrwxrwxrwx    1 root     root            17 May 26 11:15 /usr/bin/lsof -> ../../bin/busybox
  root@slitaz:~#
  root@slitaz:~# ls -l /bin/netstat
  lrwxrwxrwx    1 root     root             7 May 26 11:15 /bin/netstat -> busybox
  root@slitaz:~#
  root@slitaz:~# ls -l /bin/ping
  ping   ping6
  root@slitaz:~# ls -l /bin/ping
  lrwxrwxrwx    1 root     root             7 May 26 11:15 /bin/ping -> busybox
  root@slitaz:~#

Kontrolle, ob der Port 22 geöffnet ist, den SSH-Fingerprint des Servers ausgeben:

root@slitaz:~# netstat -tan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:37              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:7               0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:13              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 :::6000                 :::*                    LISTEN
tcp        0      0 :::82                   :::*                    LISTEN
tcp        0      0 :::22                   :::*                    LISTEN
root@slitaz:~# root@slitaz:~# dropbearkey -t ecdsa -y -f /etc/dropbear/dropbear_ecdsa_host_key
Public key portion is:
ecdsa-sha2-nistp521 AAAAE2VjZHNhLXNoYTItbmlzdHA1MjEAAAAIbmlzdHA1MjEAAACFBAGwVN6GUcNSHJ32HiitwhbuKlva7jTmzxKkFF
hGpO2nNatRT2Kje+kDqN5Su7I66Utk1Si9Rx5wlA6PE6YIEtOOGQHlfIIrP6jeOq4ytEEYd2ee/bPMmvyWfThbCM2Se0YP8mMB1UF46ORwG8Yy
3pahQA2OmuFwkArxErXpCf7xImU2QA== root@slitaz
Fingerprint: md5 5d:8f:ed:7b:76:42:a3:93:b5:ff:81:30:ce:72:fb:20
root@slitaz:~#

Wir verbinden uns nun von unserem Arbeitsrechner aus auf das neue Gastsystem und kontrollieren die IP-Adressierung:

$> ssh tux@10.44.30.119
The authenticity of host '10.44.30.119 (10.44.30.119)' can't be established.
ECDSA key fingerprint is 5d:8f:ed:7b:76:42:a3:93:b5:ff:81:30:ce:72:fb:20.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.44.30.119' (ECDSA) to the list of known hosts.
Connection closed by 10.44.30.119
$>
$> ssh tux@10.44.30.119

Secure login on SliTaz GNU/Linux powered by Dropbear SSH server.
tux@10.44.30.119's password:

  Welcome to the Open Source World!

  SliTaz GNU/Linux is distributed in the hope that it will be useful,
  but with ABSOLUTELY NO WARRANTY.

tux@slitaz:~$
tux@slitaz:~$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop
    link/ether 72:d8:09:a2:a0:85 brd ff:ff:ff:ff:ff:ff
3: tunl0: <NOARP> mtu 1480 qdisc noop
    link/ipip 0.0.0.0 brd 0.0.0.0
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 08:00:27:90:4d:88 brd ff:ff:ff:ff:ff:ff
    inet 10.44.30.119/24 brd 10.44.30.255 scope global eth0
    inet6 fe80::a00:27ff:fe90:4d88/64 scope link
       valid_lft forever preferred_lft forever
5: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 08:00:27:ae:11:9d brd ff:ff:ff:ff:ff:ff
    inet 10.20.30.1/24 brd 10.20.30.255 scope global eth1
    inet6 fe80::a00:27ff:feae:119d/64 scope link
       valid_lft forever preferred_lft forever
tux@slitaz:~$

Slitaz als NAT-Router

Im Prinzip ist bereits alles vorkonfiguriert. Wir kontrollieren als ‚root‘ die wichtigesten Einstellungen, damit die VM als NAT-Router fungieren kann.

  1. IP-Forwarding:

root@slitaz:~# cat /proc/sys/net/ipv4/ip_forward
1
root@slitaz:~#
  1. Network Address Translation:

root@slitaz:~# iptables -t nat -vnL POSTROUTING
Chain POSTROUTING (policy ACCEPT 1 packets, 60 bytes)
 pkts bytes target     prot opt in     out     source               destination
   30  2262 MASQUERADE  all  --  *      eth0    0.0.0.0/0            0.0.0.0/0
root@slitaz:~#

Prüfen, ob es einen tcpd gibt, der Probleme machen könnte:

root@slitaz:~# find / -name "*tcpd*"
/var/lib/tazpkg/installed/tcpdump
/var/cache/tazpkg/5.0/packages/tcpdump-4.4.0.tazpkg
/usr/sbin/tcpdump.4.4.0
/usr/sbin/tcpdump
/usr/share/mime/application/vnd.tcpdump.pcap.xml
find: /home/tux/.gvfs: Permission denied
root@slitaz:~#
root@slitaz:~# ls -l /etc/host*
-rw-r--r--    1 root     root            26 May 26 11:15 /etc/host.conf
-rw-r--r--    1 root     root             7 May 26 11:15 /etc/hostname
-rw-r--r--    1 root     root            36 May 26 11:15 /etc/hosts

Nein, kein TCP-Wrapper gefunden.

Prüfen, ob evl. schon ein Weg von außen nach innen via TCP-Portforwarding in die DMZ vorbereitet ist:

root@slitaz:~# iptables -t nat -vnL PREROUTING
Chain PREROUTING (policy ACCEPT 186 packets, 33521 bytes)
 pkts bytes target     prot opt in     out     source               destination
root@slitaz:~#
root@slitaz:~#

Nein, auch das nicht. Sicher ist sicher.

Konfigurationsdateien

Wichtige Konfigurationsdateien unter Slitaz 5.0 sind:

  • Netzwerkeinstellungen (für erste NIC): /etc/network.conf

  • Netzwerkeinstellungen usw. (für zweite NIC): /etc/init.d/local.sh

    (Hier wurde die Zeile ‚ifconfig eth1 10.20.30.1 netmask 255.255.255.0‘ manuell hinzugefügt.)

  • Firewall, allgemeine Voreinstellungen: /etc/slitaz/firewall.conf

    (Z.B. über das betreffende LAN; die Datei /etc/firewall.conf existiert im Original nicht und kann gelöscht werden)

  • Firewall-Parameter, Kernel-Security: /etc/init.d/firewall

    (Startoptionen, Härtung via /proc-Einstellungen)

  • Firewall-Regelwerk, NAT: /etc/slitaz/firewall.sh

    (Wurde manuell angepasst, kann um weitere Regeln ergänzt werden.)

Router 2 mit Slitaz Linux

Wir klonen einfach den vorhandenen Router 1, wobei neue MAC-Adressen generiert werden sollen.

Angeschlossen wird die neue VM allerdings folgendermaßen:

  • ADAPTER 1: Internes Netzwerk namens „iso_net1“

    (aus der Drop-Down Liste heraussuchen)

  • ADAPTER 2: Internes Netzwerk namens „iso_net2“

    (als Namen für einen neuen, virtuellen Switch ins Textfeld eintragen)

Danach booten wir die Maschine und löschen als ‚root‘ die Datei ‚/etc/firewall.conf‘ mit dem Kommando ‚rm‘. Es handelt sich hierbei nur um ein Backup; die eigentliche Datei ist die ‚/etc/slitaz/firewall.conf‘. Sie existiert weiterhin.

Netzwerkkonfiguration

MAC-Adressbindung aufheben:

Bei einer Kontrolle mit ‚ip addr‘ stellen wir fest, dass der Adapter 1 nicht mehr ‚eth0‘ heißt und dass evl. auch eth1 nicht mehr auftaucht. Das hängt mit dem User Space Device Manager (‚udev‘) zusammen, der die alten Bezeichnungen für die damaligen MAC-Adressen weiterhin vermerkt hat. Deshalb verschieben wir die verantwortliche Datei:

$> mv /etc/udev/rules.d/70-persistent-net.rules /root

Adapter 1 konfigurieren:

Nun passen wir die Konfiguration der ersten Netzwerkkarte an. Die zentrale Datei ist die ‚/etc/network.conf‘, die allerdings jeweils nur eine Netzwerkkarte aufnehemen kann (Wahrscheinlich wegen der eingeschränkten Möglichkeiten des grafischen Konfigurationswerkzeugs ‚TazPanel‘.)

Dazu bearbeiten wir diese Datei, so dass die relevanten Zeilen im Endeffekt so ausschauen:

$> grep -v '^\s*#\|^$' /etc/network.conf | head
NETWORK_CONF_VERSION="2"
INTERFACE="eth0"
DHCP="no"
STATIC="yes"
IP="10.20.30.2"
NETMASK="255.255.255.0"
BROADCAST="10.20.30.255"
GATEWAY="10.20.30.1"
DOMAIN="dom1.test"
DNS_SERVER="10.20.30.3"
$>

Adapter 2 konfigurieren:

Leider kann man in der ‚/etc/network.conf‘ nur eine Karte konfigurieren, weswegen wir nun einen anderen Weg zum Festlegen der Adressierung weiterer Karten einschlagen müssen.

Zuerst löschen wir aus der Datei ‚/etc/init.d/network.sh‘ die folgende Zeile:

ifconfig eth1 10.20.30.1 netmask 255.255.255.0

Dazu einfach die Suchfunktion des Editors benutzen. Grund ist, dass diese Datei durch Systemupdates früher oder später überschrieben wird!

Die richtige Stelle, wo wir eine ähnliche Zeile hineinschreiben können, ist die Datei ‚/etc/init.d/local.sh‘, die u.a. für Netzwerkeinstellungen weiterer Adapter herhalten kann:

$> echo 'ifconfig eth1 10.0.0.1 netmask 255.255.255.240' >> /etc/init.d/local.sh

Lokalisierung anpassen

Damit das System eine entsprechende Lokalisierung erhält, muss bei dieser schlanken Distribution dem Kernel beim booten ‚lang=de_DE‘ mitgegeben werden. Das erledigen wir in der Konfigurationsdatei für GRUB legacy direkt:

$> vi /boot/grub/menu.lst

Die betreffende Zeile sieht schlussendlich so aus:

kernel /boot/vmlinuz-3.2.71-slitaz root=/dev/sda2 video=-32 quiet lang=de_DE

HINWEIS: Ein direktes Bearbeiten ist explizit möglich: „The menu.lst file can be edited with your favourite text editor“ http://doc.slitaz.org/en:handbook:installation

Nach einem reboot sollte im Wesentlichen alles funktionieren.