page header

oktober 2008 Archieven

Automagisch mounten van ISO-images


Geplaatst door jacco op vrijdag 31 oktober 2008 | Permanente link | Categorie: Tips and Tricks | Reacties: 0

Met de tool AutoFS kunnen devices (partities, NFS/CIFS-shares, ISO-images, e.d.) gemount worden wanneer een vooraf bepaalde directory wordt benaderd. D.w.z. wanneer iemand met ls of cd iets in die directory probeert te doen.

Dit kan eenvoudig gebruikt worden om de overvloedige voorraad aan ISO-files met Linux-distributies te mounten wanneer het nodig is. Na een bepaalde idle-time worden ze ook weer automatisch ge-unmount. Onderstaand voorbeeld gaat uit van een RedHat-achtige distributie.

  • Controleer of het pakket AutoFS is geinstalleerd.
# rpm -q autofs
autofs-5.0.1-0.rc2.88
  • Is dat niet het geval, installeer hem dan.
# yum install autofs
  • Zorg er voor dat AutoFS loopt en automatisch gestart wordt.
# service autofs start
# chkconfig autofs on
  • Voeg de volgende entry toe aan /etc/auto.master:
/distro /etc/auto.distro
  • Maak de directory /distro aan.
# mkdir /distro
  • Maak het bestand /etc/auto.distro aan en geef het bijvoorbeeld de volgende inhoud:
# This is an automounter map and it has the following format
# key [ -mount-options-separated-by-comma ] location
# Details may be found in the autofs(5) manpage
centos51    -fstype=iso9660,ro,loop   :/OS/CentOS51/CentOS-5.1-i386-bin-DVD.iso
centos52    -fstype=iso9660,ro,loop   :/OS/CentOS52/CentOS-5.2-i386-bin-DVD.iso
fedora8     -fstype=iso9660,ro,loop   :/OS/Fedora_8/Fedora-8-i386-DVD.iso
fedora9     -fstype=iso9660,ro,loop   :/OS/Fedora_9/Fedora-9-i386-DVD.iso
ubuntu710   -fstype=iso9660,ro,loop   :/OS/Ubuntu/ubuntu-7.10-desktop-i386.iso
ubuntu804   -fstype=iso9660,ro,loop   :/OS/Ubuntu/ubuntu-8.04-desktop-i386.iso
  • Herlaad AutoFS (dit moet gedaan worden na elke aanpassing):
# service autofs reload
  • Als je nu naar (bijvoorbeeld) de directory /distro/centos52 gaat wordt de ISO-image /OS/CentOS52/CentOS-5.2-i386-bin-DVD.iso automatisch gemount.
# cd /distro
# ls
# cd centos52
# ls
CentOS                 RELEASE-NOTES-de          RELEASE-NOTES-es
EULA                   RELEASE-NOTES-de.html     RELEASE-NOTES-es.html
GPL                    RELEASE-NOTES-en          RELEASE-NOTES-fr
NOTES                  RELEASE-NOTES-en.html     RELEASE-NOTES-fr.html
RELEASE-NOTES-cs       RELEASE-NOTES-en_US       RELEASE-NOTES-ja
RELEASE-NOTES-cs.html  RELEASE-NOTES-en_US.html  RELEASE-NOTES-ja.html
# mount | grep cent
/OS/CentOS52/CentOS-5.2-i386-bin-DVD.iso on /distro/centos52 type iso9660 (ro,loop=/dev/loop0)

Portforwarding voor dummies


Geplaatst door jacco op maandag 27 oktober 2008 | Permanente link | Categorie: Systeembeheer | Reacties: 0

Als je een tcp-poort wilt forwarden op een Linux-machine kun je de daarvoor bedoelde weg bewandelen:

  1. Ga stoeien met iptables en leer de syntax
  2. Probeer met iptables een poort te forwarden op deze manier zonder de firewall-configuratie om zeep te helpen en jezelf buiten te sluiten
  3. Geen succes? Ga terug naar stap 1

Uiteindelijk zal het vast wel lukken op deze manier, maar niet iedereen is hiervoor in de wieg gelegd. Wil je snel resultaat, lees dan verder.

Een goede techneut onderscheidt zich van het gepeupel door de instelling "Als er niets bestaat wat doet wat ik wil, dan maak ik het zelf". Zo ook de schrijver van het tooltje rinetd.

Rinetd is een internet redirection server. Het doet maar 1 ding, namelijk: een poort forwarden naar een ander ipadres/poort. En het gebruik van deze tool is erg eenvoudig. De configuratie-file (/etc/rinetd.conf) ziet er als volgt uit:

bindaddress bindport destinationaddress destinationport

Als je de lokale tcp-poort 23 (op alle interfaces) wil forwarden naar poort 2323 op server 172.16.1.1, dan voeg je de volgende regel toe aan /etc/rinetd.conf:

0.0.0.0 23 172.16.1.1 2323

Je geeft rinetd een slinger (kill -HUP <pid-van-rinetd>) - of start hem op als hij nog niet loopt - en klaar is Ford Prefect.

Het installeren is ook een fluitje van een cent:

  • Voor Ubuntu zit het pakket in de standaard repositories (dus sudo apt-get install rinetd is voldoende).
  • Voor de andere Linux/UNIX-en kan het compileren en installeren in 1 stap gedaan worden met make install.

MDNS name resolving probleem


Geplaatst door tonk op maandag 20 oktober 2008 | Permanente link | Categorie: Tips and Tricks | Reacties: 0

Binnen een gemengd Linux en Microsoft Windows netwerk liep ik tegen het volgende probleem aan:

Een host met de naam linux1.firma.local was wel benaderbaar met het ping commando en via nslookup en dig kwam ook het juiste IP adres naar voren. Maar een SSH sessie starten wilde maar niet lukken. Hierbij kwam elke keer de melding dat de hostnaam niet geresolved kon worden.

Enig speurwerk later kwam aan het licht dat dit te maken had met de .local aan het einde van de hostname. In het bestand /etc/nsswitch.conf staat (in mijn geval, Ubuntu 8.04) de volgende hosts: regel:

    hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

Wanneer de machine niet is opgenomen in /etc/hosts dan wordt de naam opgevraagd via de mdns4_minimal module. Deze gooit roet in het eten wanneer het domein eindigd op .local of .local. (dit is met het strings commando vlot te zien).

Het probleem kan eenvoudig opgelost worden door in /etc/nsswitch.conf bovenstaande regel te vervangen door:

    hosts: files dns mdns4

Ik ben dit probleem alleen nog maar tegen gekomen op Ubuntu 8.04 en Fedora Core 9, maar alle systemen die gebruik maken van Avahi kunnen hier tegenaan lopen.

Zie ook: AvahiAndUnicastDotLocal