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.
IP-Forwarding:
root@slitaz:~# cat /proc/sys/net/ipv4/ip_forward 1 root@slitaz:~#
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.