Benutzer-Werkzeuge

Webseiten-Werkzeuge


pc:linux

Linux

Geschichte

Linux bzw. GNU/Linux wurde ursprünglich 1984 vom „The GNU Project“ als GNU Betriebsystem entwickelt. 1991 fing dann Linus Torvalds an den Linux Kernel zu programmieren und damit auf der „Grundlage“ von GNU das Betriebsystem Linux zu entwickeln. Deshalb sollte man es eigendlich als GNU/Linux bezeichnen.
Betriebsystem = GNU/Linux
Kernel = Linux

Linux Distribution erkennen

Konfiguration

/etc/nsswitch.conf

Bestimmt die Konfiguration von PAM.

wichtigeste Verzeichnisse / Konfigurationen verschiedener Distributionen

  • Allgemein: (Hoffendlich)
    • /var/log/ - allgemeines Verzeichnis für Protokolle
  • Ubuntu(Debian):
    • Packetformat: deb, rpm
    • Packetverwaltung: apt , synaptic (GUI)
    • Konfiguration der Dienst: /etc/default/
    • Mount Point für Wechseldatenträger: /media
  • Suse:
    • /etc/sysconfig/ - einge Konfigurationen des Systems
    • Packetformat: .rpm
    • Packetverwaltung: yast , rpm
  • Slackware:
    • /etc/rc.d/
    • /var/log/packages/ - werden Protokolle aller installierten Packete gespeichert
    • Packetformat: .tar.gz
    • Packetverwaltung: installpkg , updatepkg , removepkg, pkgtool
  • Fedora:
    • /etc/default/ - Standard Konfiguration für Befehle
    • /etc/sysconfig/ - einge Konfigurationen des Systems
    • Packetformat: .rpm
    • Packetverwaltung: yum , rpm

Systen optimieren

  • Bei ext3 Dateisystem speichern der letzten Zugriffzeit verhindern in /etc/fstab mit mount Option noatime statt z.B. realtime
  • RAM-Disk verwenden z.B. disk2ram
  • Überflüssige Dienst / CRON Jobs usw. deaktivieren / deinstallieren

Software / Befehle

ntp

  • ntpd deamon
  • ntpdate de.pool.ntp.org
    ntpdate ist zwar einfacher, ändert aber einfach die Systemzeit, war Fehler z.B. mit dovecot imap daemon und anderen verursachen kann.
    cron:
    5 0 * * * /usr/sbin/ntpdate de.pool.ntp.org

ssh password less login

  • .ssh/authorized_keys Public Keys die sich anmelden dürfen für den entsprechenden Benutzer.
  • .ssh/id_rsa der eigene PRIVAT Key (der PRIVATE KEY sollte auch PRIVATE bleiben!)
  • .ssh/id_rsa.pub der eigene Public Key
  • ssh-keygen -t rsa auf Client RSA Key erzeugen (puttygen.exe auf Windows benutzen)
  • ssh-copy-id -i ~/.ssh/id_rsa.pub user@server Public Key auf andere Maschine kopieren oder scp ~/.ssh/id_rsa.pub user@server:.ssh/authorized_keys (überschreibt /home/user/.ssh/authorized_keys auf Server !!!)
  • ssh user@server Anmeldung sollte auf Server nun ohne Passwort möglich sein (in /etc/ssh/sshd_config muss PubkeyAuthentication yes auf dem Server eingerichtet sein)
  • chown -R `whoami` ~/.ssh/
  • chmod -R 700 ~/.ssh/

System Infos

  • cat /proc/cpuinfo
    processor       : 0
    vendor_id       : GenuineIntel
    cpu family      : 6
    model           : 30
    model name      : Intel(R) Xeon(R) CPU           X3430  @ 2.40GHz
    stepping        : 5
    cpu MHz         : 2399.971
    cache size      : 8192 KB
    fpu             : yes
    fpu_exception   : yes
    cpuid level     : 11
    wp              : yes
    flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology tsc_reliable nonstop_tsc aperfmperf pni ssse3 cx16 sse4_1 sse4_2 popcnt hypervisor lahf_lm ida
    bogomips        : 4799.94
    clflush size    : 64
    cache_alignment : 64
    address sizes   : 40 bits physical, 48 bits virtual
    power management:
    
    ...
  • cat /proc/partitions
    major minor  #blocks  name
    
       8     0   78150744 sda
       8     1   19535008 sda1
       8     2   57617122 sda2
       8     3     996030 sda3
       8    16   78150744 sdb
       8    17   19535008 sdb1
       8    18   57617122 sdb2
       8    19     996030 sdb3
       9     0   19534912 md0
       9     1   57617024 md1
       9     2     995904 md2
  • cat /proc/scsi/scsi
    Attached devices:
    Host: scsi1 Channel: 00 Id: 00 Lun: 00
      Vendor: ATA      Model: ST3802110A       Rev: 3.AA
      Type:   Direct-Access                    ANSI  SCSI revision: 05
    Host: scsi1 Channel: 00 Id: 01 Lun: 00
      Vendor: ATA      Model: ST3802110A       Rev: 3.AA
      Type:   Direct-Access                    ANSI  SCSI revision: 05
    Host: scsi2 Channel: 00 Id: 01 Lun: 00
      Vendor: HL-DT-ST Model: DVD-ROM GDR8163B Rev: 0L23
      Type:   CD-ROM                           ANSI  SCSI revision: 05
  • cat /proc/mdstat
    Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
    md2 : active raid1 sda3[0] sdb3[1]
          995904 blocks [2/2] [UU]
    
    md1 : active raid1 sda2[0] sdb2[1]
          57617024 blocks [2/2] [UU]
    
    md0 : active raid1 sda1[0] sdb1[1]
          19534912 blocks [2/2] [UU]
    
    unused devices: <none>
  • mdadm --detail /dev/md0
  • dumpe2fs -h /dev/md0
    dumpe2fs 1.40.8 (13-Mar-2008)
    Filesystem volume name:   root
    Last mounted on:          <not available>
    Filesystem UUID:          a1234567-bcde-fa12-1234-b12345678912
    Filesystem magic number:  0xEF53
    Filesystem revision #:    1 (dynamic)
    Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
    Filesystem flags:         signed_directory_hash
    Default mount options:    (none)
    Filesystem state:         clean
    Errors behavior:          Continue
    Filesystem OS type:       Linux
    Inode count:              1224000
    Block count:              4883728
    Reserved block count:     244186
    Free blocks:              4607139
    Free inodes:              1184818
    First block:              0
    Block size:               4096
    Fragment size:            4096
    Reserved GDT blocks:      1022
    Blocks per group:         32768
    Fragments per group:      32768
    Inodes per group:         8160
    Inode blocks per group:   255
    Filesystem created:       Fri Mar 27 10:37:49 2009
    Last mount time:          Fri Mar 27 13:46:31 2009
    Last write time:          Fri Mar 27 13:46:31 2009
    Mount count:              7
    Maximum mount count:      35
    Last checked:             Fri Mar 27 10:37:49 2009
    Check interval:           15552000 (6 months)
    Next check after:         Wed Sep 23 11:37:49 2009
    Reserved blocks uid:      0 (user root)
    Reserved blocks gid:      0 (group root)
    First inode:              11
    Inode size:               128
    Journal inode:            8
    Default directory hash:   tea
    Directory Hash Seed:      b1234567-e123-123f-b123-123456789abcd
    Journal backup:           inode blocks
    Journal size:             128M
  • pstree
    init─┬─atd
         ├─avahi-daemon───avahi-daemon
         ├─console-kit-dae───63*[{console-kit-da}]
         ├─cron
         ├─cupsd
         ├─dbus-daemon
         ├─dhclient3
         ├─dnsmasq
         ├─5*[getty]
         ├─irqbalance
         ├─login───bash───man───pager
         ├─master─┬─pickup
         │        └─qmgr
         ├─nmbd
         ├─ntpd
         ├─rsyslogd───2*[{rsyslogd}]
         ├─smbd───smbd
         ├─squid───unlinkd
         ├─sshd─┬─sshd───sshd───bash───pstree
         │      └─sshd───sshd───bash───mcedit
         ├─udevd───2*[udevd]
         ├─upstart-udev-br
         ├─vmtoolsd───{vmtoolsd}
         └─winbindd───2*[winbindd]
  • top
    top - 01:50:52 up 53 min,  4 users,  load average: 0.00, 0.00, 0.00
    Tasks: 107 total,   1 running, 106 sleeping,   0 stopped,   0 zombie
    Cpu(s):  0.3%us,  0.0%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Mem:   2057660k total,   432440k used,  1625220k free,    48008k buffers
    Swap:  3876856k total,        0k used,  3876856k free,   255908k cached
    
      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
        1 root      20   0 23696 1944 1276 S    0  0.1   0:01.47 init
        2 root      20   0     0    0    0 S    0  0.0   0:00.01 kthreadd
        3 root      RT   0     0    0    0 S    0  0.0   0:00.01 migration/0
        4 root      20   0     0    0    0 S    0  0.0   0:00.02 ksoftirqd/0
        5 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/0
        6 root      RT   0     0    0    0 S    0  0.0   0:00.01 migration/1
        7 root      20   0     0    0    0 S    0  0.0   0:00.02 ksoftirqd/1
        8 root      RT   0     0    0    0 S    0  0.0   0:00.00 watchdog/1
        9 root      20   0     0    0    0 S    0  0.0   0:00.83 events/0
       10 root      20   0     0    0    0 S    0  0.0   0:00.09 events/1
       11 root      20   0     0    0    0 S    0  0.0   0:00.00 cpuset
       12 root      20   0     0    0    0 S    0  0.0   0:00.00 khelper
       13 root      20   0     0    0    0 S    0  0.0   0:00.00 netns
       14 root      20   0     0    0    0 S    0  0.0   0:00.00 async/mgr
       15 root      20   0     0    0    0 S    0  0.0   0:00.00 pm
  • lshw -class storage
      *-ide
           description: IDE interface
           product: 82371AB/EB/MB PIIX4 IDE
           vendor: Intel Corporation
           physical id: 7.1
           bus info: pci@0000:00:07.1
           logical name: scsi1
           version: 01
           width: 32 bits
           clock: 33MHz
           capabilities: ide bus_master emulated
           configuration: driver=ata_piix latency=64
           resources: irq:0 ioport:1f0(size=8) ioport:3f6 ioport:170(size=8) ioport:376 ioport:10c0(size=16)
      *-scsi
           description: SCSI storage controller
           product: 53c1030 PCI-X Fusion-MPT Dual Ultra320 SCSI
           vendor: LSI Logic / Symbios Logic
           physical id: 10
           bus info: pci@0000:00:10.0
           logical name: scsi2
           version: 01
           width: 64 bits
           clock: 33MHz
           capabilities: scsi bus_master rom scsi-host
           configuration: driver=mptspi latency=64 maxlatency=255 mingnt=6
           resources: irq:17 ioport:1400(size=256) memory:d8820000-d883ffff memory:d8800000-d881ffff memory:80008000-8000bfff(prefetchable)
  • iostat
    Linux 2.6.32-28-server (server)         26.03.2011      _x86_64_        (2 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0,30    0,00    0,57    0,20    0,00   98,92
    
    Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
    sda               3,54       100,43       111,04     433548     479352
  • Festplatten Zugriffe
    echo 1 > /proc/sys/vm/block_dump
    tail -f /var/log/syslog
    Aug  4 20:20:51 pd-srv kernel: [8120205.836326] rsyslogd(23831): dirtied inode 853291 (debug) on md0
    Aug  4 20:20:51 pd-srv kernel: [8120205.836335] rsyslogd(23831): dirtied inode 853291 (debug) on md0
    Aug  4 20:20:52 pd-srv kernel: [8120206.473352] nagios(31455): dirtied inode 2722829 (nagios.tmpal09dy) on md0
    Aug  4 20:20:55 pd-srv kernel: [8120210.000073] kjournald(266): WRITE block 28587568 on md0
    Aug  4 20:20:55 pd-srv kernel: [8120210.000118] md0_raid1(211): WRITE block 115234048 on sda1
    Aug  4 20:20:55 pd-srv kernel: [8120210.020089] kjournald(266): WRITE block 32196232 on md0
    Aug  4 20:20:55 pd-srv kernel: [8120210.020101] kjournald(266): WRITE block 27476184 on md0
    echo 0 > /proc/sys/vm/block_dump

sendmail

milter

cyrus IMAP Server

  • cyradm localhost Cyrus Administration starten
  • lm Liste der Mailboxen anzeigen
  • Webmin Modul: Cyrus IMAPd

sshd

Konfiguration

/etc/ssh/sshd_config oder /etc/openssh/sshd_config

Port 222
Protocol 2
ServerKeyBits 1024
KeyRegenerationInterval 3600
PermitRootLogin no
IgnoreRhosts yes
IgnoreUserKnownHosts yes
StrictModes yes
X11Forwarding no
SyslogFacility AUTH
LogLevel INFO
RhostsAuthentication no
RhostsRSAAuthentication no
RSAAuthentication yes
PasswordAuthentication yes
PermitEmptyPasswords no
AllowUsers admin
AllowGroups users
DenyUsers root
DenyGroups root

squid Proxy Server

Standard Verzeichnisse: /etc/squid , /var/lib/squid/ , Fedora: /etc/squid , /var/log/squid , /var/spool/squid

Debug

squid -N -d 3

Logrotate

/etc/logrotate.d/squid (Fedora)

/var/lib/squid/logs/access.log {
    weekly
    rotate 5
    copytruncate
    compress
    notifempty
    missingok
}

/var/lib/squid/logs/cache.log {
    weekly
    rotate 5
    copytruncate
    compress
    notifempty
    missingok
}

/var/lib/squid/logs/store.log {
    weekly
    rotate 5
    copytruncate
    compress
    notifempty
    missingok
    # This script asks squid to rotate its logs on its own.
    # Restarting squid is a long process and it is not worth doing it just to rotate logs
    postrotate
      /usr/sbin/squid -k rotate
    endscript
}

Streamer

  • Streamer steuern
    • mt -f /dev/st0 status
      Tandberg SLR100 (SCSI):
      SCSI 2 tape drive:
      File number=0, block number=0, partition=0.
      Tape block size 0 bytes. Density code 0x34 (SLR100).
      Soft error count since last status=0
      General status bits on (41010000):
       BOT ONLINE IM_REP_EN
    • mt -f /dev/st0 rewind
    • mt -f /dev/st0 offline zurückspulen und auswerfen
    • mt -f root@server:/dev/st0 rewind auf Streamer in anderer System per SSH zugreifen
    • mt -f /dev/st0 defblksize 0 blocksize einstellen (z.B. für Tandberg SLR / LTO)
  • Streamer benutzen
    • tar -Wcf /dev/st0 /etc/ /home/ mit tar auf Streamer schreiben (und überprüfen)
    • tar cf /dev/st0 /etc/ /home/ mit tar auf Streamer schreiben
    • cat /dev/st0 > ~/streamer_restore.tar Daten von Streamer in Datei lesen
  • Devices
    • /dev/st0 1. Streamer (Band wird automatisch zurückgespult)
    • /dev/nst0 1. Streamer (Band wird NICHT automatisch zurückgespult)

Webmin

Mit Webmin kann man sein System verwalten und konfigurieren. Vorteil ist das unabhängig von genutzer Distro die Oberflaeche immer gleich bleibt. Wenn allerdings eine Distribution mit eigener Verwaltung wie z.B. Yast (Suse Linux) verwendet, sollte man wohl besser diese nutzen. www.webmin.com

Installation aus Source auf Ubuntu:

  • sudo -i
  • apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl libmd5-perl Perl & Perl Module installieren.
  • cd /usr/local/src/
  • tar xfz webmin-1.490.tar.gz
  • mv webmin-1.490 /opt/ wohin webmin installiert ist nicht festgelegt. Ich empfehle /opt/ , /srv/ oder /usr/local/.
  • /opt/webmin-1.490/setup.sh
  • cp /opt/webmin-1.490/webmin-init /etc/init.d/webmin falls setup.sh den link nicht erstellt haben sollte.

sudo

  • /etc/sudoers Konfig Datei (sudo Berechtigungen der Benutzer)
  • sudo mkdir /home/bla Befehl mkdir /home/bla mit root Rechten ausführen
  • sudo -s zu Benutzer root wechseln
  • sudo -u foo zu Benutzer foo wechseln
  • sudo -u foo /home/foo/test.sh zu Benutzer foo wechseln und script starten (Shell Befehle werden von sudo nicht ausgeführt)
  • sudo -u foo bash -c 'whoami' zu Benutzer foo wechseln, bash als subshell starten und shell Befehl ausführen

Bei Fedora kann die Option Defaults requiretty in /etc/sudoers beim Ausführen von Befehlen z.B. mit PHP Probleme verursachen und sollte in diesem Fall deaktiviert werden.

iptables / Firewall

IP Forwarding

  • sysctl -w net.ipv4.ip_forward=1 aktiviert IP Forwarding im Kernel
  • sysctl net.ipv4.ip_forward gibt Status von IP Forwarding im Kernel aus
  • /etc/sysctl.conf IP Forwarding dauerhaft aktivieren
    net.ipv4.ip_forward=1
  • echo 1 > /proc/sys/net/ipv4/ip_forward
  • cat /proc/sys/net/ipv4/ip_forward

Firewall scripts

  • Beispiel für eine simple Firewall (basierend auf http://linuxwiki.de/PaketFilter):
    #!/bin/sh
    
    # Alles, worauf keine Regel passt, verwerfen
    iptables -P INPUT DROP
    
    # Pakete, die zu bereits bestehenden Verbindungen gehören (oder damit zusammenhängen) erlauben
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    
    # neue Verbindungen nur dann erlauben, wenn sie NICHT über das externe Interface pppX reinkommen
    iptables -A INPUT -m state --state NEW -i ! ppp+ -j ACCEPT
    
    # ssh Verbindungen über externes Interface erlauben
    iptables -A INPUT -i ppp+ -p tcp --dport 22 -j ACCEPT
    
    # unerwünschte (=alle noch nicht akzeptierten) Pakete in's Log schreiben
    iptables -A INPUT -m limit -j LOG --log-prefix "Bad packet:"
    
    # Masquerading
    iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Beispiele

  • iptables -P INPUT DROP Standard Policy setzten
  • masquerading
    • iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE Masquerading für ALLE (nicht empfohlen)
    • iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ppp0 -j MASQUERADE Maquerading für Subnetz eines Interface (z.B. eth0)
    • iptables -t nat -A POSTROUTING -s 192.168.0.10 -o ppp0 -j MASQUERADE Maquerading für IP
  • iptables -A INPUT -p tcp --dport 22 -j ACCEPT oder iptables -A OUTPUT -p udp --sport 22 -j ACCEPT Zugriff auf SSH Port erlauben
  • iptables -A INPUT -m mac --mac-source 00:A1:B2:C3:D4:E5 -j DROP Host MAC Adresse verweigern
  • Zugriff von bestimmter MAC Adresse auf Samba erlauben:
    iptables -A INPUT -m mac --mac-source 00:A1:B2:C3:D4:E5 -p UDP --dort 137 -j ACCEPT
    iptables -A INPUT -m mac --mac-source 00:A1:B2:C3:D4:E5 -p UDP --dport 138 -j ACCEPT
    iptables -A INPUT -m mac --mac-source 00:A1:B2:C3:D4:E5 -p TCP --dport 139 -j ACCEPT
  • Transparent Proxy z.B. mit Squid (funktioniert nicht mit HTTPS. Für HTTPS muß der Proxy direkt verwendet werden!)
    • iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 3128 Port 80 allgemein umleiten
    • iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-ports 3128 Port 80 auf Interface eth0 umleiten
    • iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 3128 Port 80 mit DNAT umleiten
  • iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT Bereits zugelassen Verbindungen und bestehenden Verbindungen zugehörige Pakete erlauben
  • Routing für eMail Ports
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -p tcp --dport 25 -o ppp0 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -p tcp --dport 110 -o ppp0 -j MASQUERADE
    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -p tcp --dport 143 -o ppp0 -j MASQUERADE
  • Alle Regeln löschen and standard policy setzen:
    #!/bin/sh
    
    #IPTABLES="/usr/sbin/iptables"
    IPTABLES="/sbin/iptables"
    
    # set default Policies
    $IPTABLES -P INPUT ACCEPT
    $IPTABLES -P FORWARD ACCEPT
    $IPTABLES -P OUTPUT ACCEPT
    $IPTABLES -t nat -P PREROUTING ACCEPT
    $IPTABLES -t nat -P POSTROUTING ACCEPT
    $IPTABLES -t nat -P OUTPUT ACCEPT
    $IPTABLES -t mangle -P PREROUTING ACCEPT
    $IPTABLES -t mangle -P POSTROUTING ACCEPT
    $IPTABLES -t mangle -P INPUT ACCEPT
    $IPTABLES -t mangle -P OUTPUT ACCEPT
    $IPTABLES -t mangle -P FORWARD ACCEPT
    
    # delete all custom rules
    $IPTABLES -F
    $IPTABLES -t nat -F
    $IPTABLES -t mangle -F
    
    # delete all custom chains
    $IPTABLES -X
    $IPTABLES -t nat -X
    $IPTABLES -t mangle -X

LDAP

  • /etc/ldap.conf Konfiguration
  • /etc/openldap Konfig Verzeichnis

LDAP Clients

SELinux

/etc/selinux Konfig Verzeichnis

  • setenforce 0 SELinux deaktivieren
  • setenforce 1 SELinux aktivieren

Grub

/boot/grub/menu.lst Konfig Datei

Grub neu installieren / reparieren / Error 17

Bei Ubuntu / Debian sollte man es erstmal mit grub-install /dev/hda versuchen, wenn man dann z.B. die Meldung The file /boot/grub/stage1 not read correctly. erhält, sollte man versuchen grub manuell neuzuinstallieren:

$ grub // Grub starten
grub> device (hd0) /dev/sda
grub> root (hd0,0)   // Partition auf der das Bootimage liegt
grub> setup (hd0)    // Grub im MBR installieren
grub> quit

Es ist immer praktisch z.B. bei Problemen mit Grub eine System Rescue CD zur Hand zu haben, da Grub z.B. auf den Ubuntu CD's nicht richtig mit Software RAID funktioniert (Ubuntu 8.10).

Samba

Samba 3

smb.conf einige Optionen sind ab Samba 3 geändert: http://us1.samba.org/samba/docs/man/manpages-3/smb.conf.5.html

username map

/etc/samba/smb.conf

[global]
username map = /etc/samba/smbusers.conf

/etc/samba/smbusers.conf oder z.B. /etc/samba/user.map

# This file allows you to map usernames from the clients to the server.
# Unix_name = SMB_name1 SMB_name2 ...
#
# Cf. section 'username map' in the manual page of smb.conf for more
# information.

root = administrator admin

passwd chat

http://us1.samba.org/samba/docs/man/manpages-3/smb.conf.5.html#PASSWDCHAT
Diese Einstellung wird grundsätzlich nur benötigt, wenn man vom Windows Client aus das Samba Passwort und UNIX Passwort ändern möchte, wenn nicht dann braucht man folgende Einstellungen nicht damit es funktioniert!:

passwd chat = ...
unix password sync = Yes
FIXME

Standarteinstellung ist:

passwd chat = *new*password* %n\n *new*password* %n\n *changed*

wenn man aber das System z.B. auf Deutsch umgestellt hat, gibt passwd natürlich keine englischen Meldung mehr aus, damit stimmt die Standarteinstellung nicht überein. Die Einstellung kann z.B. folgendermassen aussehen:
Beispiel für Slackware 10.2 in Deutsch:

passwd chat = *neues*kennwort* %n\n *kennwort*wiederholen* %n\n *kennwort*geändert*

Beispiel für Ubuntu 6.06 in Deutsch:

passwd chat = *enter*new*unix*password* %n\n *retype*new*unix*password* %n\n *kennwort*erfolgreich*geändert*

Wenn den Fehler in den Samba Log Files prüfen indem man folgendes in der smb.conf ändert, im endsprechen Sabma Log File des Clients mehrfach nach „error“ suchen. Diese Einstellungen und das Log File anschliessend unbedingt löschen!:

passwd chat debug = yes
log level = 100

Passwort mit z.B. aus PHP ändern:

(echo $KENNWORT; echo $KENNWORT) | smbpasswd -s -a $BENUTZERNAME

Bind 9 DNS (named)

  • /etc/bind/
  • /var/spool/bind/

Konfiguration

  • /etc/bind/named.conf standard Konfiguration, nicht verändern
  • /etc/bind/named.conf.local hier werden eigene Zonen usw. eingetragen
    //
    // Do any local configuration here
    //
    
    // DDNS mit dhcpd
    key dhcp_updater {
            algorithm hmac-md5;
            secret "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ==";
            };
    
    zone "0.168.192.in-addr.arpa" {
            type master;
            file "/etc/bind/192.168.0.rev";
            };
    
    zone "example.com" {
            type master;
            notify no;
            file "/etc/bind/db.example.local";
            };
  • /etc/bind/db.example.local
    ;
    ; BIND zone file for example.local
    ;
    $ttl 38400
    @               IN      SOA     server.example.local. root.example.local. (
                            2009061001
                            10800
                            3600
                            604800
                            38400 )
                    NS      server.example.local.
                    MX      10      server.example.local.
                    TXT     "Linux Server"
    ;
    server          IN      A       192.168.0.1
    dns             IN      CNAME   server.example.local.
    ns              IN      CNAME   server.example.local.
    mail            IN      CNAME   server.example.local.
    wlan            IN      A       192.168.0.4
                            TXT     "WLAN Access Point"
    pc01            IN      A       192.168.0.10
                            TXT     "Workstation 1"

    Konfigurationsdatei testen: named-checkconf example.local /etc/bin/db.example.local

    zone example.local/IN: loaded serial 20090610
    OK
  • /etc/bin/192.168.0.rev
    ;
    ; BIND reverse data file for 192.168.0.0
    ;
    $ttl 38400
    @               IN      SOA     server.example.local. root.example.local. (
                            2009061001
                            10800
                            3600
                            604800
                            38400 )
    ;
                    IN      NS      server.example.local.
    1               IN      PTR     server.example.local.
    4               IN      PTR     wlan.example.local.
    10              IN      PTR     pd01.example.local.
  • /etc/bind/named.conf.options falls nötig forward DNS-Server des ISP eintragen:
    options {
            directory "/var/cache/bind";
    
            forwarders {
                    123.123.123.123;
                    123.123.123.124;
            };
    };
  • /etc/bind/db.example.com Zonendatei von example.com
  • /etc/bind/192.168.0.rev Datei für Reverse DNS

Fehler (/var/log/syslog)

journal rollforward failed: journal out of sync with zone Zone Files in nicht mehr synchron mit Konfiguration, alle Dateien mit Endung .jnl löschen (z.B. /var/named/xyz.zone.jnl) und bind neustarten.

Links

MRTG (Multi Router Traffic Grapher)

  • cfgmaker --interfaces eth0 ppp0 public@localhost > /etc/mrtg.conf mrtg einrichten mit cfgmaker
  • env LANG=C mrtg /etc/mrtg.conf mrtg anschliessend starten
  • eventuell muss noch SNMP konfiguriert werden /etc/snmp/snmpd.conf, um auf die SNMP Informationen zugreifen zu können.

Jabber (Instant Messenger)

Server: Wildfire www.jivesoftware.org
Client: PidGin , PSI psi-im.org

dansguardian (squid Web Content filter)

FIXME

  1. cd /usr/src
  2. tar xvfz dansguardian-2.8.0.6.source.tar.gz
  3. cd dansguardian-2.8.0.6
  4. ./configure oder z.B. für Slackware: ./configure --cgidir=/var/www/cgi-bin/
  5. make
  6. make install

Software Raid (md)

FIXME

  • cat /proc/mdstat zeigt alle aktiven Software Raids an
  • mdadm --detail /dev/md0 zeigt Details über das Software Raid
  • mdadm --detail --scan zeigt alle erkannten Raids an
  • mdadm --manage --stop /dev/md0 Raid /dev/md0 stoppen (sollte natürlich weder gemountet sein noch das aktuelle root filesystem enthalten)
  • mdadm /dev/md0 --manage --add /dev/sdb1 Raid /dev/md0 Festplatte /dev/sdb1 hinzufügen
  • sfdisk -d /dev/hda | sfdisk /dev/hdb Partitionstabelle von /dev/hda auf /dev/hdb kopieren
  • Raid1 von einer alter Festplatte mounten (z.B. wenn Festplatte per USB-Adapter verbunden ist):
    • cat /proc/mdstat gucken ob Raid erkannt und angezeigt wird, dann einfach normal mounten
    • mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1 --auto md Raid /dev/md0 erzeugen mit vorhandener Partition /dev/sda1 auf Festplatte
    • mkdir /mnt/md0 Verzeichnis zum Mounten erstellen
    • mount /dev/md0 /mnt/md0 Dateisystem mounten
  • Raid 1 erstellen
    • mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
    • mdadm --create /dev/md0 --level=1 --raid-devices=2 --metadata=0.90 /dev/sda1 /dev/sdb1 Raid 1 mit Metadata v0.90 erstellen (abwärtskompatiebel, ggf. benötigt um mit GRUB von RAID booten zu können)
    • mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
  • Raid auf Knoppix verwenden
    • mdadm-startall sucht vorhandenes Raid
    • mount /dev/md0 /mnt/md0 Dateisystem auf Raid mounten (wenn kein LVM verwendet wird)
  • Vorhandenes Raid ohne mdadm.conf reaktivieren
    • mdadm /dev/md0 --assemble /dev/sda1 /dev/sdb1

LVM

FIXME

  • pvscan sucht nach physikalischen Volumes
  • pvdiplay
  • vgscan sucht nach LVM „Volume group“
  • vgdisplay

VMware

commands

  • vmstat -a
    procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
     r  b   swpd   free  inact active   si   so    bi    bo   in    cs us sy id wa
     0  1  49048   7148 697156  60456    0    0    31    18   24    16  0  7 92  0

FEHLER: Unable to build the vmmon module

Wenn man versucht z.B. VMware Server auf einer nicht unterstützen Platform zu installieren, stößt man oft auf den Fehler Unable to build the vmmon module. Dann kann man versuchen das inoffizielle Patch vmware-any-any-update-116.tgz oder höher anzuwenden (runme.pl). SOURCE

Consolen Bash

  • Befehle kombinieren:
    • Befehle nacheinander ausführen: befehl1 ; befehl2 ; befehl3
    • Befehle nacheinander ausführen wenn vorheriger Befehl erfolgreich (UND): befehl1 && befehl2 && befehl3
    • Befehle nur so lange ausführen bis ein Befehl erfolgreich (ODER): befehl1 || befehl2 || befehl3
  • Ausgaben umleiten:
    • beispielbefehl 2>&1 zeigt Standardausgabe (StOut) und Standarderror (StError) an
    • beispielbefehl > datei Standardausgabe in Datei (überschreiben)
    • beispielbefehl » datei Standardausgabe an Datei anhängen
    • beispielbefehl 2> datei Standarderror in Datei
    • beispielbefehl > datei 2>&1 Standardausgabe und Standarderror in Datei
    • beispielbefehl > ausgabedatei 2> fehlerdatei Standardausgabe und Standard-Error in separate Dateien
  • Pipes
    • who | sort Standardausgabe von who an standardeingabe von sort übergeben
  • alias
    • Konfiguration: alle User /etc/bashrc , aktueller Benutzer ~/.bashrc , Eintrag sieht dann z.B. so aus alias c=„clear“
    • alias alias anzeigen
    • alias test=„echo alias test“ alias test temporär für diese Sitzung konfigurieren

Consolen Befehle / Programme

  • touch /forcefsck erzwingt Dateisystem Prüfung auf root Dateisystem beim nächsten Start
  • mount -r -o remount / root Dateisystem schreibgeschützt mounten (z.B. um fsck durchführen zu könnnen ohne Neustart)
  • perl
    • perl -MCPAN -e shell startet perl shell
    • perl aktualisieren: perl -MCPAN -e shell
      install Bundle::CPAN
      reload cpan
      
      install IO::Zlib
      reload cpan
      
      install Bundle::LWP
      reload cpan
  • reset Terminal zurücksetzten
  • history Liste der letzten Befehle ausgeben
  • grep -R FOO /var/log/ Mit grep in Verzeichnis nach String suchen
  • grep -R -i 'FOO BAR' /var/log/ Mit grep in Verzeichnis nach String suchen
  • find -mtime +4 sucht nach geänderten Dateien/Verzeicnissen (4 Tag und älter)
  • find / -mtime 1 sucht in / nach nach geänderten Dateien/Verzeicnissen (1 steht für 1 x 24 Stunden)
  • tar -czf foo.tar.gz /root/ GZIP Archiv erstellen
  • tar xvfz foo.tar.gz GZIP Archiv enpacken
  • bunzip2 -k foo.tar.bz2 BZIP Archiv enpacken und danach datei nicht löschen!
  • ssh-keygen -b 1024 -t rsa -f ~/.ssh/id_rsa SSH RSA Key erzeugen
  • rsync über ssh
    • rsync -azC --delete -e ssh /home/foo bar.dyndns.org:/backup von Client auf Server synchronisieren
    • rsync -azC --delete -e ssh bar.dyndns.org:/home/foo /backup/ von Server auf Client synchronisieren
  • scp (secure copy) über ssh
    • scp -C ~/beispieldatei servername.dyndns.org:~/beispieldatei kopiert von Client auf Server
    • scp -C servername.dyndns.org:~/beispieldatei ~/beispieldatei kopiert von Server auf Client
    • scp -C root@servername.dyndns.org:~/beispieldatei ~/beispieldatei kopiert von Server als Benuzter root auf Client
  • cat /proc/asound/cards Soundgeräte/karten anzeigen
  • lsof | grep pcm oder lsof | grep snd Prozess anzeigen die Soundgeräte verwenden
  • mail aus terminal / cron lokal versenden: echo „Inhalt der E-Mail“ | mail -s „Betreff“ empfaenger Beispiel mit cron: df -h | mail -s „Freier Speicher von Dateiensystemen“ root
  • mail aus terminal / cron über exteren smtp server mit msmtp versenden:
    • msmtp v1.4.9 oder besser downloaden unter http://msmtp.sourceforge.net/ nach /usr/src/
    • bzip2 -d msmtp-1.4.9.tar.bz2
    • tar xvf msmtp-1.4.9.tar
    • cd msmtp-1.4.9
    • ./configure
    • make
    • make install
    • vi ~/.msmtprc
      defaults
      logfile ~/.msmtp.log
      host smtp.gmx.de
      from somebody@gmx.net
      auth login
      user somebody@gmx.de
      password your_password

      Handbuch: http://msmtp.sourceforge.net/doc/msmtp.html

    • sendmail virualusertable neu erzeugen: makemap hash virtusertable < virtusertable
    • chmod 600 ~/.msmtprc
    • Wenn man mail kommando zum Erstellen der E-Mail verwenden möchte:
      • vi ~/.mailrc set sendmail=„/usr/local/bin/msmtp“
      • mail -s „Betreff“ empfaenger@domain.de
    • Wenn man mutt zum Erstellen der E-Mail verwenden möchten:
      • vi ~/.muttrc set sendmail=„/usr/local/bin/msmtp“
      • mutt starten, mit m einen neue Mail erstellen …
  • mit netcat (nc) Dateien über Netzwerk kopieren
    Server: cat /foo/bar | nc 192.168.0.1 4000
    Client: nc -l -p 4000 | /tmp/foo
  • dd
    • MBR
      • dd if=/dev/sda of=/home/somebody/mbr_backup.bin bs=446 count=1 MBR in Datei speichern
      • dd if=/home/somebody/mbr_backup.bin of=/dev/sda bs=446 count=1 MBR aus Datei wiederherstellen
      • dd if=/dev/zero of=/dev/sda bs=446 count=1 MBR löschen
    • MBR und Partitionstabelle
      • dd if=/dev/sda of=/home/somebody/mbr_part_backup.bin bs=512 count=1 MBR und Partitionstabelle in Datei speichern
      • dd if=/home/somebody/mbr_part_backup.bin of=/dev/sda bs=512 count=1 MBR und Partitionstabelle aus Datei wiederherstellen
      • dd if=/dev/zero of=/dev/sda bs=512 count=1 MBR und Partitionstablle löschen
    • Festplatte löschen
      • dd if=/dev/zero of=/dev/sda VORSICHT: überschreibt die Festplatte /dev/hda vollständig mit „Nullen“ (nicht sicher)
      • dd if=/dev/random of=/dev/sda VORSICHT: überschreibt die Festplatte /dev/hda vollständig mit Zufallszahlen (nicht sehr sicher)
  • route
    • route add default gw 192.168.0.1 eth0 Default Gateway setzen
    • route Zeigt Routing Tabelle an
    • ip route show | grep default | awk '{ print $3}' Default Gateway greppen
  • watch cat /proc/mdstat zeigt Ausgabe des Befehl alle 2 Sekunden an (vorlaufende Ausgabe).
  • last zeigt die letzten erfolgreichen Anmeldungen am System an
  • lastb zeigt die letzten fehlerhalten Anmeldungen am System an
  • locale zeigt vom System benutzten Zeichensatz an
    LANG=de_DE.UTF-8
    LC_CTYPE="de_DE.UTF-8"
    LC_NUMERIC="de_DE.UTF-8"
    LC_TIME="de_DE.UTF-8"
    LC_COLLATE="de_DE.UTF-8"
    LC_MONETARY="de_DE.UTF-8"
    LC_MESSAGES="de_DE.UTF-8"
    LC_PAPER="de_DE.UTF-8"
    LC_NAME="de_DE.UTF-8"
    LC_ADDRESS="de_DE.UTF-8"
    LC_TELEPHONE="de_DE.UTF-8"
    LC_MEASUREMENT="de_DE.UTF-8"
    LC_IDENTIFICATION="de_DE.UTF-8"
    LC_ALL=
  • export LC_ALL=de_DE.UTF-8 ändert Umgebungsvariable (in .bashrc einfügen für dauerhaft Änderung)
  • 7z (7-Zip)
    • sudo tar czf /backup/pd-srv_backup_etc.tar.gz /etc
  • su -c './script.sh' - testuser Script ./script.sh als Benutzer testuser ausführen
  • rpm -aq zeigt alle installierten RPM Packete an
  • Windows (Samba) Freigabe mounten:
    mount -t cifs //192.168.1.1/freigabe /home/samba/freigabe/ -v -o user=username,pass=passwort

    cifs ersetzt smbfs auf neueren Distibutionen und ist ggf. auch unter mount.cifs verfügbar.

  • cat /sys/devices/system/clocksource/clocksource0/available_clocksource verfügbare Kernel Clock Sources ausgeben
    tsc acpi_pm pit jiffies
  • cat /sys/devices/system/clocksource/clocksource0/current_clocksource aktuelle Kernel Clock Source
  • cat /proc/cmdline Parameter mit denen der Kernel gestartet wurde
  • chroot /mnt/md0 Dateisystem root wechseln
    • chroot /mnt/md0 /bin/bash Dateisystem root wechseln und bestimmte shell starten
  • openssl
    • openssl x509 -in /etc/ssl/certs/ssl-cert-snakeoil.pem -noout -text
    • openssl x509 -in /etc/ssl/certs/ssl-cert-snakeoil.pem -noout -issuer
      issuer= /C=XX/ST=There is no such thing outside US/L=Everywhere/O=OCOSA/OU=Office for Complication of Otherwise Simple Affairs/CN=server.example.com/emailAddress=root@example.com
    • make-ssl-cert generate-default-snakeoil –force-overwrite Standard Zertifikat erneuern

Internetverbindung xDSL PPPoE 24h Zwangtrennung auf bestimmt Zeit einstellen per Cron-Job

eine Cron-Job für Benutzer „root“ z.B. um 6.00 Uhr einrichten.

Ubuntu

poff ; sleep 3 ; pon dsl-provider

Slackware mit rp-pppoe bis 10.2

adsl-stop ; sleep 3 ; adsl-start
cron job als root um 5 Uhr 0 5 * * * /usr/sbin/adsl-stop; sleep 5; /usr/sbin/adsl-start (in /var/spool/cron/crontabs/root einfügen oder crontab -e)

Slackware ab 11.0

pppoe-stop ; sleep 3 ; pppoe-start

Sicherheit

FIXME Es empfiehlt sich folgende Scripts / Programme zu installieren und als cron-job regelmässig auszufuehren:

Backup

Windows Bootsektor wiederherstellen

  • PC mit Ubuntu Live-CD starten (Installtions CD)
  • sudo apt-get install ms-sys Packet installieren
  • sudo fdisk -l Partitionen anzeigen
  • sudo ms-sys -–mbr /dev/sda schreibt Windows 2000/XP/Vista Bootsektor auf erste SATA Festplatte
pc/linux.txt · Zuletzt geändert: 2013/02/27 17:07 von pixeldoc