BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Via Remote-Tunnel mit SSH auf einen Rechner zugreifen

Möchte man auf einen Rechner mit SSH zugreifen, der Zugang per SSH wird jedoch durch einen Paketfilter geblockt, so kann der Zugang durch einen Remote-Tunnel freigegeben werden. Im folgenden Beispiel soll auf einen Client-Rechner per SSH zugegriffen werden. Dazu muss zuerst mit SSH der Remote-Tunnel vom Client-Rechner zum Server geöffnert werden. Die -g Option erlaubt dem Server, den Remote-Tunnel zu nutzen:

Client# ssh -g -R 2222:localhost:22 <Benutzer>@<Server>

Meldet man sich nun auf dem Server an, sieht man den geöffneten Tunnel:

Server# sockstat -4 | grep 2222
benutzer     sshd       28372 7  tcp4   127.0.0.1:2222        *:*

Nun kann man sich auf dem Server durch den Tunnel mit dem Client-Rechner verbinden:

Server# ssh -p 2222 <Benutzer>@localhost
Password:*******
Client#

Mehr Informationen zu den Möglichkeiten mit SSH findet man in der Manpage ssh(1).

 Permalink

Tastaturlayout nach Aktualisieren des Xorg-Servers auf 1.5.3 konfigurieren

Nach dem Aktualisieren des xorg-servers auf die Version 1.5.3 wird das in der /etc/X11/xorg.conf konfigurierte Tastaturlayout nicht mehr übernommen, da die Tastatur nicht mehr über die xorg.conf sondern über den HAL-Daemon konfiguriert wird. Dazu müssen folgende zwei Zeilen in der /etc/rc.conf eingefügt werden:

dbus_enable="YES"
hald_enable="YES"

Nun muss die Datei /usr/local/etc/hal/fdi/policy/99-x11-keyboard.fdi angelegt werden. Im folgenden Beispiel wird ein schweizerdeutsches Tastaturlayout konfiguriert:

<?xml version="1.0" encoding="ISO-8859-1"?>
<deviceinfo version="0.2">
  <device>
    <match key="info.capabilities" contains="input.keyboard">
      <merge key="input.xkb.layout" type="string">ch</merge>
    </match>
  </device>
</deviceinfo>

Danach müssen der D-Bus und der HAL-Daemon gestartet werden:

# /usr/local/etc/rc.d/dbus start
# /usr/local/etc/rc.d/hald start

Anschliessend muss der X-Server neu gestartet werden. Danach ist das gewünschte Tastaturlayout wieder konfiguriert.

Comments (2)  Permalink

Festplatte mit recoverdisk kopieren

Mit Hilfe von recoverdisk lässt sich der Inhalt einer Festplatte auf eine andere Festplatte kopieren. Kann dabei ein Block nicht gelesen werden, wird der Block übersprungen, am Schluss jedoch nochmals mit einer kleineren Blockgrösse gelesen. Im folgenden Beispiel wird die Festplatte da2 auf da3 kopiert:

# recoverdisk /dev/da2 /dev/da3
        start    size     block-len state          done     remaining    % done
  36419141632  933376        933376     0   36420075008             0 100.00000
Completed

Auch lässt sich der Inhalt einer Partition in eine Datei kopieren. Dazu muss zuerste eine entsprechende Datei angelegt werden:

# touch /usr/ad4s3e.dump
# recoverdisk /dev/ad4s3e /usr/ad4s3e.dump
        start    size     block-len state          done     remaining    % done
    101711872 1048576     435159040     0     101711872     435159040  18.94531

Ist das Kopieren abgeschlossen, kann die in eine Datei kopierte Partition z.B. nur lesend ins System gemountet werden:

# recoverdisk /dev/ad4s3e /usr/ad4s3e.dump
        start    size     block-len state          done     remaining    % done
    535822336 1048576       1048576     0     536870912             0 100.00000
Completed
# mdconfig -a -t vnode -f /usr/ad4s3e.dump -u 0
# mount -o ro /dev/md0 /mnt

Werden die kopierten Daten nicht mehr benötigt, können diese wieder aus dem System entfernt werden:

# umount /mnt
# mdconfig -d -u 0

Seit FreeBSD 7.0 findet man recoverdisk im FreeBSD -Basissystem. Mehr Informationen zu recoverdisk findet man in der Manpage recoverdisk(1).

Related Entries:
Gespeicherte Optionen nach OptionsNG konvertieren
Ports-Subversion-Repository spiegeln
sysinstall-Ersatz für neuere FreeBSD-Versionen
Alte FreeBSD-Port Patchdateien aufsplitten
FreeBSD-Portbaum auf Fehler überprüfen
 Permalink

sendmail Statistiken erstellen

Mit Hilfe von mailstats können Statistiken des sendmail-Daemon erstellt werden. Dabei werden verschiedene Werte der sendmail-Mailer dargestellt. Der Wert msgsfr zählt alle vom Mailer versendeten, der Zähler msgsto die vom Mailer empfangenen Mails an. Die Werte bytes_from und bytes_to zeigen die Grösse der versendeten und empfangenen Mails in Bytes an. Die Anzahl zurückgewiesener Mails wird durch den Zähler msgsrej, die Anzahl verworfenen Mails wird durch den Zähler msgsdis angezeigt. In der Spalte T wird das Total aller Mailer angezeigt, die Spalte C zeigt die Anzahl TCP Verbindugen an:

# mailstats
Statistics from Sat Jan 17 03:01:03 2009
 M   msgsfr  bytes_from   msgsto    bytes_to  msgsrej msgsdis msgsqur  Mailer
 3        7      78364K        1          2K        0       0       0  local
 5       23      39201K       23         25K        0       0       0  esmtp
=====================================================================
 T       30     117565K       24         27K        0       0       0
 C       27                   49                    0

Möchte man die Statistiken einer gespeicherten sendmail-Statistikdatei anzeigen, so kann diese mit der -f Option an mailstats übergeben werden:

# mailstats -f /var/log/sendmail.st.3
Statistics from Sun Dec 21 22:18:17 2008
 M   msgsfr  bytes_from   msgsto    bytes_to  msgsrej msgsdis msgsqur  Mailer
 3       19         96K       17         98K        0       0       0  local
 5        2          2K        0          0K        1       0       0  esmtp
=====================================================================
 T       21         98K       17         98K        1       0       0
 C       20                    0                    1

Im FreeBSD und OpenBSD Basissystem ist mailstats bereits vorhanden. Mehr Informationen zu mailstats findet man in der Manpage mailstats(8).

 Permalink

FreeBSD mit einer GUID Partitionstabelle installieren

Ab dem FreeBSD 7.1-Release lässt sich FreeBSD mit Hilfe einer GUID Partitionstabelle anstatt des MBR starten. Damit lassen sich bis zu 128 Partitionen erstellen. Auch lassen sich Partitionen erstellen, welche grösser als 2TB sind.

Um FreeBSD mit einer GUID Partitionstabelle zu installieren, kann man zum Beispiel die FreeBSD-Installations DVD booten und dann den Fixit-Modus und das Live-Dateisystem der CDROM/DVD wählen. Im folgenden Beispiel wird die FreeBSD Installation mit einer GUID Partitionstabelle auf der Disk /dev/ad0 vorgenommen.

# ls /dev/ad0
/dev/ad0

Nun wird als erstes eine GUID Partitionstabelle auf die Disk geschrieben. Mit der -f Option wird ein allfällig vorhandenes Master Boot Record überschrieben:

# gpt create -f ad0

Danach wird das Booten von einer GUID Partitionstabelle ermöglicht. Dabei werden die Bootloader von der Installations-DVD installiert:

# gpt boot -b /dist/boot/pmbr -g /dist/boot/gptboot ad0

Jetzt können die verschiedenen Partitionen erstellt werden. Die Grösse, welche mit der -s Option angegeben wird, wird dabei in Anzahl Blocks (standardmässig 512B) angegeben. Im folgenden Beispiel wird eine 1GB grosse Root-Partition erstellt. Danach wird eine 1GB grosse Swap Partition, eine 1GB grosse Partition für /tmp und eine 2GB grosse Partition für /var erstellt. Mit dem restlichen Speicherplatz wird eine Partition erstellt, auf welcher /usr gemountet wird:

# gpt add -t ufs -s 2097152 ad0
# gpt add -t swap -s 2097152 ad0
# gpt add -t ufs -s 2097152 ad0
# gpt add -t ufs -s 4194304 ad0
# gpt add -t ufs ad0

Nun kann die Partitionstabelle mit dem show Kommando verifiziert werden:

# gpt show ad0
     start      size  index  contents
         0         1         PMBR
         1         1         Pri GPT header
         2        32         Pri GPT table
        34       128      1  GPT part - FreeBSD boot
       162   2097152      2  GPT part - FreeBSD UFS/UFS2
   2097314   2097152      3  GPT part - FreeBSD swap
   4194466   2097152      4  GPT part - FreeBSD UFS/UFS2
   6291618   4194304      5  GPT part - FreeBSD UFS/UFS2
  10485922   6291261      6  GPT part - FreeBSD UFS/UFS2
  16777183        32         Sec GPT table
  16777215         1         Sec GPT header

Einzelne Partitionen können, falls nötig, wieder entfernt werden. Dabei wird der Index der zu entfernenden Partition mit der -i Option angegeben:

# gpt remove -i 3 ad0

Die ganze Partitionstabelle kann, falls gewünscht, mit dem destroy Kommando wieder entfernt werden:

# gpt destroy ad0

Nun kann auf allen Partitionen ein Dateisystem erstellt werden:

# newfs -U /dev/ad0p2
# newfs -U /dev/ad0p4
# newfs -U /dev/ad0p5
# newfs -U /dev/ad0p6

Danach wird die Root-Partition nach /mnt gemountet. Ausserdem werden die Verzeichnisse für die restlichen Partitionen erstellt und entsprechend gemountet:

# mount /dev/ad0p2 /mnt
# mkdir /mnt/tmp
# mkdir /mnt/var
# mkdir /mnt/usr
# mount /dev/ad0p4 /mnt/tmp
# mount /dev/ad0p5 /mnt/var
# mount /dev/ad0p6 /mnt/usr

Nun wechselt man ins base Verzeichnis der Installations-DVD und setzt die DESTDIR Variable auf die gemountete Festplatte:

# cd /mnt2/7.1-RELEASE/base
# DESTDIR=/mnt
# export DESTDIR

Jetzt kann das Basissystem und der GENERIC -Kernel installiert werden:

# ./install.sh
You are about to extract the base distribution into /mnt/ -
are you SURE you want to do this over your installed system (y/n) y
# cd ../kernels
# ./install.sh GENERIC
# cd /mnt/boot
# mv GENERIC kernel

Nachdem die Installation abgeschlossen wurde, wird eine entsprechende fstab erstellt:

# cd /mnt/etc
# vi fstab
/dev/ad0p3      none    swap    sw      0       0
/dev/ad0p2      /       ufs     rw      1       1
/dev/ad0p4      /tmp    ufs     rw      2       2
/dev/ad0p6      /usr    ufs     rw      2       2
/dev/ad0p5      /var    ufs     rw      2       2

Zu guter Letzt werden die gemounteten Partitionen geunmountet und der Fixit-Modus verlassen:

# umount /mnt/usr
# umount /mnt/var
# umount /mnt/tmp
# cd && umount /mnt
# exit

Nachdem der Rechner neu gebootet wurde, startet das installierte FreeBSD und kann nun konfiguriert werden. Mehr Informationen zur GUID Partitionstabelle und zu gpt findet man in der Manpage gpt(8).

Comments (2)  Permalink

Speicherplatzverbrauch darstellen

Möchte man herausfinden, welche Dateien wieviel Speicherplatz verbrauchen, so kann dies mit Hilfe von durep übersichtlich dargestellt werden. durep findet man im FreeBSD Portbaum unter sysutlis/durep:

#  cd /usr/ports/sysutils/durep && make install clean

Nun kann das gewünschte Verzeichnis angegeben werden und der Speicherplatzverbrauch wird entsprechend angezeigt. Dabei werden die Verzeichnisse und Dateien anhand des gebrauchten Speicherplatzes sortiert:

# durep /tmp/test
[ /tmp/test     3.3M (0 files, 1 dirs) ]
   3.3M [##############################] 100.00% test2/
       1.9M [#################             ]  57.35% file1
       1.0M [#########                     ]  30.92% test3/
         578.9K [################              ]  55.01% file2
         473.4K [#############                 ]  44.99% file3
     399.1K [###                           ]  11.73% file4

Möchte man die Tiefe der Darstellung begrenzen, kann die -td Option verwendet werden:

# cd /usr/local
# durep -td 1
[ /usr/local   652.5M (0 files, 12 dirs) ]
 358.9M [################              ]  55.00% lib/
 152.4M [#######                       ]  23.36% share/
  62.4M [##                            ]   9.56% bin/
  57.7M [##                            ]   8.84% include/
   7.8M [                              ]   1.19% man/
   6.1M [                              ]   0.93% info/
   5.0M [                              ]   0.76% libexec/
   1.7M [                              ]   0.27% sbin/
 357.8K [                              ]   0.05% translations/
 145.2K [                              ]   0.02% etc/
  84.7K [                              ]   0.01% libdata/
  12.4K [                              ]   0.00% www/

Sollen nur Dateien angezeigt werden, welche mindestens eine bestimmte Grösse aufweisen, so kann dafür die -hs Option verwendet werden. Mit der -f Option werden nur Dateien überprüft, allfällige Subverzeichnisse werden nicht berücksichtigt:

# durep -f /home/test -hs 100m
[ /usr/home/test     2.3G (599 files, 0 dirs) ]
   1.6G [#####################         ]  71.58% test.tar.gz
 250.3M [###                           ]  10.80% test2

Mehr Informationen zu durep findet man in der Manpage durep(1).

Comments (1)  Permalink

Aktuelle sendmail-Aliase anzeigen

Mit Hilfe von Aliasen lassen sich im sendmail-Daemon Mailweiterleitungen einrichten. Dabei werden die Aliase in der Datei /etc/mail/aliases konfiguriert und mit Hilfe von newaliases(1) die /etc/mail/aliases.db Datenbank erstellt, aus welcher die Aliase vom sendmail-Daemon ausgelesen werden.

# newaliases 
/etc/mail/aliases: 28 aliases, longest 35 bytes, 314 bytes total

Möchte man den Inhalt der aliases.db auslesen, falls z.B. die aliases-Datei nicht mehr vorhanden ist, kann praliases aufgerufen werden, wodurch die aktuelle Aliases-Konfiguration angezeigt wird:

# praliases 
root:admin1@example.org,admin2@example.org
beat:beat@example.org
postmaster:root
hostmaster:root
abuse:root
[...]

Im FreeBSD und OpenBSD Basissystem ist praliases bereits vorhanden. Mehr Informationen zu paraliases findet man in der Manpage praliases(8).

 Permalink
1-7/7