Archiv

Archive for the ‘RHCSA’ Category

System unter Verwendung von Remote-NTP-Servern für die Synchronisation der Systemzeit konfigurieren

2011/10/17 Kommentare aus

NTP  (Network Time Protocol) ist ein Protokoll um die Systemzeit mit anderen Rechnern zu synchronisieren. Verwendet wird dabei Port 123 UDP (wichtig für die Konfiguration der Firewall).

Die Konfiguration des NTP Clients ist sehr einfach zu bewerkstelligen.  Zuerst sollte ein geographisch möglichst nahe liegender NTP-Server gewählt werden. Natürlich kann auch ein Firmeneigener NTP-Server verwendet werden – ein Microsoft Domain Controller stellt beispielsweise auch bereits standardmäßig diesen Dienst bereit. NTP berücksichtigt zwar die Latenz des Netzwerkes, dennoch sind genauere Ergebnisse bei kürzeren Antwortzeiten des NTP-Servers zu erwarten. Eine Übersicht über vorhandene Zeitserver ist unter http://www.pool.ntp.org/ einsehbar.

Für Österreich wären Beispielsweise folgende Server naheliegend:

server 0.at.pool.ntp.org
server 1.at.pool.ntp.org
server 2.at.pool.ntp.org
server 3.at.pool.ntp.org

Die Einstellung der zu verwendenden Zeitserver erfolgt in der Konfigurationsdatei des NTP Clients, /etc/ntp.conf. Dort bereits vorhandene „server“-Einträge einfach auskommentieren oder mit den gewünschten Werten überschreiben. Abschliessend:

chkconfig ntpd on	# beim Hochfahren starten
service ntpd start	# NTP-Client starten

Durch Verwendung des NTP Protokolls ist die Systemzeit nun immer exakt.

Kategorien:RHCSA Schlagwörter: ,

Dateien mit tar, gzip und bzip2 archivieren und komprimieren

2011/01/01 Kommentare aus

Archivieren und Komprimieren mittels tar

tar ist ein Archivierungsprogramm, das im einfachsten Fall mehrere Dateien zu einem Archiv zusammenfasst. gzip und bzip2 sind Komprimierungsprogramme, wobei bzip2 effizienter als gzip ist. Jedes dieser Programme lässt sich natürlich einzeln ausführen,  sobald man aber mehr als eine Datei komprimieren möchte sollte tar mit gzip oder bzip2 kombiniert werden.

tar -cvzf myarchive.tar.gz /etc
tar -cvjf myarchive.tar.bz2 /etc

Mit obigen Befehlen würde jeweils der Inhalt des Verzeichnisses /etc archiviert und komprimiert, einmal mit gzip und einmal mit bzip2. Erklärung der Optionen:

c Erstellen eines Archives.

v verbose, Es werden umfangreichere Rückmeldungen geliefert

z Komprimierung mittels gzip

j Komprimierung mittels bzip2

f Das Archiv wird als Datei myarchive.tar.gz erstellt

Hierbei sollte die Dateiendung beachtet werden. tar ist eines der wenigen Programme die eine bestimmte Dateiendung voraussetzt. Dateien die mittels gzip komprimiert wurden sollten auf .tar.gz oder .tgz enden, bzip2 komprimierte Dateien auf .tar.bz2.

Extrahieren von tar-Archiven

tar -xvzf myarchive.tar.gz
tar -xvjf myarchive.tar.gz

Im ersten Beispiel wird ein gzip (z) komprimiertes tar-Archiv im aktuellen Verzeichnis extrahiert (x). Der zweite Befehl unterscheidet sich nur durch die Verwendung der Option „j“ anstatt „z“ vom ersten, hierbei wird bzip2 zur Dekomprimierung angewandt.

Kategorien:RHCSA Schlagwörter: , , , ,

mit HTTP/FTP Dateifreigabedienste einrichten

2010/12/26 Kommentare aus

HTTP

Zur nachträglichen Installation des Apache Webservers:

yum install httpd

Service starten/beim hochfahren starten:

service httpd start
chkconfig httpd on

Die Konfigurationsdateien des Webservers befinden sich unter /etc/httpd/, die default-Einstellungen sind aber für eine einfache Dateifreigabe via HTTP durchaus ausreichend und bedürfen keiner weiteren Anpassung.

Dateien unter /var/www/html sind nach Aktivieren des Webservers bereits automatisch verfügbar. Das Ziel der Freigabe von Dateien über HTTP ist damit bereits erreicht. Zu beachten ist dass der Webserver auch die Rechte haben muss, die Dateien zu lesen! Falls keine index.html/index.php und keine Dateien in diesem Verzeichnis vorhanden sind wird eine Standardseite angezeigt.

FTP

Neuinstallation:

Basis Server -> Jetzt anpassen

Server -> FTP-Server

Web Dienste -> Web-Server

Installation von der Kommandozeile

yum install vsftpd

Konfiguration

Standardmäßig sind anonyme und Benutzerlogins aktiviert. Read-only Freigabe ist damit bereits gegeben. Um Dateien freizugeben diese einfach in das Heimatverzeichnis des Benutzers „ftp“ kopieren, standardmäßig ist das /var/ftp.

Um anonyme Uploads zu erlauben sind die folgenden Zeilen in /etc/vsftpd/vsftpd.conf einzutragen:

anon_upload_enable=YES
anon_mkdir_enable=YES

Der Benutzer hat damit das Recht Dateien hinaufzuladen und Verzeichnisse zu erstellen, darf jedoch weder  Dateien oder Verzeichnisse löschen noch diese umbenennen. Um Vollzugriff und damit das auch das Löschen und Verändern von Dateien und Verzeichnissen zu erlauben ist noch die Zeile

anon_other_write_enable=YES

einzutragen.

Die Linux-Dateirechte müssen Schreibzugriffe auf das Verzeichnis ebenfalls erlauben.

chmod a+w /var/ftp/pub

Außerdem muß der SELinux Kontext geändert werden, um anonyme Schreibzugriffe zu ermöglichen:

semanage –a –t public_content_rw_t /var/ftp/pub
restorecon /var/ftp/pub
setsebool allow_ftpd_anon_write 1

Die geänderte Konfiguration ist nun mit

service vsftpd reload

neu einzulesen, damit diese wirksam wird.

Netzwerk konfigurieren:

/etc/sysconfig/network

NETWORKING=”yes”

/etc/sysconfig/network-scripts/ifcfg-eth0

BOOTPROTO=”dhcp” ONBOOT=”yes”

Dienst starten

chkconfig vsftpd on
service vsftpd start

Ausnahmen in Firewall hinzufügen

Firewall: Zugriff auf FTP erlauben

system-config-firewall -> Anpassen -> FTP

Kategorien:RHCSA Schlagwörter: , , , , ,

einen VNC-Server bereitstellen, mit dem mehrere Desktops gleichzeitig genutzt werden können

2010/12/26 Kommentare aus

Neuinstallation:

Rechnername setzen.

Netzwerk konfigurieren -> eth0 bearbeiten -> automatisch verbinden

Basis Server -> Jetzt anpassen

Desktops -> Desktop

Optionale Pakete: tigervnc-server

Installation von der Kommandozeile:

Eine minimale Konfiguration umfasst die Paketgruppe “Desktop” und das Paket “vnc-server”.

yum groupinstall Desktop
yum install vnc-server

Konfiguration

editieren von /etc/sysconfig/vncservers :

VNCSERVERS=“1:root 2:bob 3:alice“
VNCSERVERARGS[1]=”-geometry 800x600 –nolisten tcp -localhost”
VNCSERVERARGS[2]=”-geometry 1024x768”

-geometry 800×600 bestimmt die Fenstergröße, für root in diesem Fall 800×600 Pixel.

-nolisten tcp verhindert X Verbindungen via TCP auf den VNC Server.

-localhost erlaubt nur Verbindungen über einen sicheren Tunnel (siehe VNC-Verbindung)

Hier wird also für den Benutzer root eine Auflösung von 800×600 eingestellt, keine X Verbindungen via TCP erlaubt und eine Verbindung über einen sicheren Tunnel erzwungen. Der Benutzer bob bekommt eine Auflösung von 1024×768 und darf eine direkte und unverschlüsselte Verbindung mit seinem VNC-Client aufbauen. Für alice gelten die Default-Einstellungen. Da VNC standardmäßig unverschlüsselt übertragen wird empfiehlt sich die Verwendung nur innerhalb eines vertrauenswürdigen lokalen Netzwerkes bzw. durch eine sichere Tunnelverbindung.

Passwort setzen

vncpasswd

Legt  die Datei  .vnc/passwd im Heimatverzeichnis des momentan eingeloggten Benutzers an. Um Passworte für die jeweiligen Benutzer zu setzen kann man sich nun unter dem entsprechenden Benutzernamen  einloggen und vncpasswd ausführen oder auch einfach das Ziel angeben und daraufhin den entsprechenden Eigentümer setzen:

mkdir –p /home/bob/.vnc          # .vnc in bob's Heimatverzeichnis anlegen
vncpasswd /home/bob/.vnc/passwd  # Passwortdatei anlegen
chown –R bob.bob /home/bob/.vnc  # bob als Eigentümer festlegen

Dienst starten

chkconfig vncserver on        # beim booten starten
service vncserver start       # Dienst jetzt starten

Ausnahmen in Firewall hinzufügen

netstat –tan

Listet offene TCP-Ports auf. Geöffnete Ports des VNC-Servers sind als 5900 + Displaynummer erkenntlich, also z.B. Port 5901 für Benutzer root, Display 1. In diesem Beispiel sollten also 127.0.0.1:5901, 0.0.0.0:5902 sowie 0.0.0.0:5903 (Displays für root, bob und alice) geöffnet sein. Falls der VNC-Server nur eine Verbindung über einen SSH-Tunnel erlaubt (-localhost) muss keine Ausnahme für externe VNC-Ports hinzugefügt werden, da die Verbindung  ausschließlich via SSH erfolgt.

Zugriff auf externe Ports 5902-5903 TCP erlauben:

system-config-firewall-tui

Anpassen -> Vor -> Hinzufügen: Port 5902-5903 Protokoll tcp

Zugriffskontrolllisten (Access Control Lists, ACLs) festlegen und verwalten

2010/12/26 Kommentare aus

Das Dateisystem muss mit der Option „acl“ (siehe /etc/fstab) gemountet sein um erweiterte Rechte nutzen zu können.

Anzeigen der gesetzten Zugriffsrechte einer Datei oder eines Verzeichnisses erfolgt mit

ls –l

Bei gesetzten erweiterten Rechten erscheint ein „+“ in der Ausgabe von „ls –l“:

-rw-r—r--+

Erweiterte Rechte lassen sich mit dem Befehl getfacl ausgeben:

getfacl datei

Ausgegeben wird eine einfache Liste (Access Control List), die die Rechte eines Benutzers oder einer Gruppe beschreibt.

Modifizieren der ACL:

Setzen von Lese-, Schreib – und Ausführ-Rechten für Benutzer „benutzer“  mit

setfacl –m u:benutzer:rwx

Setzen von Lese- und Ausführ-Rechten für Gruppe  „gruppe“  mit

setfacl –m g:gruppe:r-x
Kategorien:RHCSA Schlagwörter: , , ,

sgid-Verzeichnisse für gemeinsame Nutzung verwenden

2010/12/26 Kommentare aus

Um ein Verzeichnis für die gemeinsame Nutzung zu erstellen muss zuerst eine Gruppe erstellt werden und die Benutzer die den gemeinsamen Ordner verwenden darin aufgenommen werden.

groupadd gruppe1                # Gruppe gruppe1 zur Zusammenarbeit erstellen

usermod -aG gruppe1 tux         # tux, alice und bob Mitglieder der
usermod -aG gruppe1 alice       # Gruppe gruppe1 machen
usermod -aG gruppe1 bob

Danach ist der gemeinsame Ordner zu erstellen und die Dateirechte entsprechend zu setzen.

mkdir /collaboration            # gemeinsamen Ordner erstellen
chgrp gruppe1 /collaboration    # gruppe1 zum Eigentümer machen
chmod 3775 /collaboration       # set group ID, set sticky bit

Set group ID bedeutet dass neu erstellte Dateien und Ordner automtisch Eigentum der Gruppe gruppe1 sind. Das gesetzte Sticky Bit erlaubt nur dem Eigentümer einer Datei diese zu löschen, obwohl jedes Mitglied der Gruppe Schreibzugriff hat aud diesen Ordner hat.

Kategorien:RHCSA Schlagwörter: , ,

Standardberechtigungen verwalten: ugo/rwx auflisten, interpretieren, ändern

2010/12/26 Kommentare aus

Setzen der Standard Unix-Rechte mit chmod für Benutzer (user), Gruppe (group) und Andere (other)

Unix permissions anzeigen mit

ls -l

read:  4

write:  2

execute:  1

User  Group  Other
rw    r      r  

entspricht oktal 644 (user: 4+2, group: 4, other:  4). Der Eigentümer hat Schreib- und Leserechte, Gruppe und Andere haben nur Leserechte.

Das Setzen der Dateirechte erfolgt mit dem Kommando chmod, z.B.:

chmod u=rw,g=r,o=r datei

oder auch gleich oktal:

chmod 644 datei

= setzen genau dieser Rechte, z.B. chmod o=r datei

+ hinzufügen dieser Rechte, z.B. chmod u+x datei

entfernen dieser Rechte, z.B. chmod u-x datei

rx (Lesen und Ausführen, oktal 4+1 = 5) ist nowendig um in ein Verzeichnis wechseln zu können sowie ein ausführbares Programm oder ein Shellskript zu starten.

Set User ID:

chmod u+s datei

die Datei wird mit Rechten ihres Eigentümers ausgeführt, z.B. passwd

Set Group ID:

chmod g+s datei

die Datei wird mit Rechten ihrer Gruppe ausgeführt

Set User/Group ID bei Verzeichnissen:

Neu angelegte Dateien bzw. Ordner in diesem Verzeichnis erhalten die gesetzte Benutzer/Gruppen ID des Verzeichnisses.

Kategorien:RHCSA Schlagwörter: , ,

lokale Benutzer- und Gruppenkonten verwalten: Kennwörter erstellen, löschen und ändern; Ablaufdatum von Kennwörtern ändern, Gruppenmitgliedschaften ändern

2010/12/26 Kommentare aus

Lokale Benutzer werden über die Dateien /etc/passwd, /etc/shadow, /etc/group und /etc/gshadow verwaltet. Es ist  wichtig diese Dateien und die Bedeutung ihres Inhalts zu kennen, jedoch sollten diese nicht von Hand verändert werden. Es gibt verschiedene Programme zur Benutzerverwaltung, die diese Arbeit erledigen.

In /etc/passwd sind alle lokalen Benutzer aufgeführt. Diese Datei liegt in folgendem Format vor:

username:password:uid:gid:description:homedir:shell

Inhalt der Felder von links nach rechts:

  1. Der Benutzername.
  2. Das Benutzerpasswort.
  3. Die Benutzer-ID.
  4. Die Gruppen-ID.
  5. Beschreibung des Kontos.
  6. Das Heimatverzeichnis des Benutzers.
  7. Die Login-Shell des Benutzers.

Die Datei /etc/shadow enthält das verschlüsselte Passwort, sowie Information zu diesem.

username:password:lastpwchange:minpwchange:maxpwage:pwchangewarn:inactive:expire

Inhalt der Felder von links nach rechts:

  1. Der Benutzername
  2. Das verschlüsselte Kennwort.
  3. Die Anzahl von Tagen zwischen dem 01.01.1970 und der letzten Kennwortänderung.
  4. Die Zeit in Tagen, die zwischen zwei Kennwortänderungen liegen muß.
  5. Die Zeit in Tagen, wie lange ein Kennwort gültig ist.
  6. Die Zeit in Tagen, wie lange der Benutzer vor dem Auslaufen des Kennworts gewarnt wird.
  7. Die Zeit in Tagen bis das Konto nach dem Auslaufen des Kennworts gesperrt wird
  8. Auslaufen des Kontos in Tagen seit dem 01.01.1970.

Die Datei /etc/group enthält alle lokal vorhandenen Gruppen:

groupname:password:gid:members

Inhalt der Felder von links nach rechts:

  1. Der Name der Gruppe.
  2. Das Gruppenpasswort.
  3. Die Gruppen-ID.
  4. Die Mitglieder der Gruppe, durch Leerzeichen getrennt.

useradd

Benutzer können einfach mit dem Befehl useradd hinzugefügt werden. Das Programm kennt mehrere Parameter, es lassen sich unter anderem User-ID, Gruppen-ID, Heimatverzeichnis und Login-Shell bestimmen:

useradd tux                 # Benutzer tux hinzufügen
useradd -U 502 tux          # hier mit User-ID 502
useradd -d /home/frank tux  # tux bekommt das Heimatverzeichnis /home/frank
useradd -m tux              # Benutzer und Heimatverzeichnis werden erstellt

userdel

Dieser Befehl entfernt die Einträge für den Benutzer username aus den Dateien /etc/passwd und /etc/group. Mit der Option -r wird zusätzlich das Homeverzeichnis des Benutzers geleert und entfernt:

userdel -r tux    # Konto und Heimatverzeichnis des Benutzers werden gelöscht

usermod

Benutzerkonten lassen sich mittels usermod manipulieren. Hiermit können unter anderem Haupt- und Nebengruppe, Login-Shell und Heimatverzeichnis geändert werden sowie Benutzerkonten deaktiviert werden:

usermod -L alice           # alice's Konto sperren
usermod -U alice           # Sperrung aufheben
usermod -aG gruppe2 alice  # alice wird Mitglied der Gruppe gruppe2
usermod -g gruppe1 alice   # alice bekommt die Hauptgruppe gruppe1 zugewiesen
usermod -u 0 tux           # tux bekommt die UID 0 und hat root-Privilegien!

groups

Der Befehl groups listet lediglich die Gruppen auf, in denen ein Benutzer Mitglied ist:

groups bob           # listet die Gruppen auf, in denen bob Mitglied ist

chage

chage ändert die Informationen über die Gültigkeit eines Userpassworts:

chage –E 2010-12-24 tux  # tux’s Konto läuft am 24.12.2010 ab.
chage -M 30 tux          # Maximales Passwortalter 30 Tage
chage alice              # alice’s Informationen werden interaktiv abgefragt

mit cron und at die Aufgabenplanung konfigurieren

2010/12/26 Kommentare aus

Der cron-Daemon ist eine Jobsteuerung von Unix bzw. unixartigen Betriebssystemen wie Linux, BSD oder Mac OS X, die wiederkehrende Aufgaben (cronjobs) automatisch zu einer bestimmten Zeit ausführen kann.

Häufig führt der Cron-Daemon wichtige Programme für die Instandhaltung des Systems aus, wie zum Beispiel Dienste für das regelmäßige Archivieren und Löschen von Logdateien.

Crontab

Der Begriff selbst leitet sich ab von griechisch chronos = die Zeit und lat. tabula = die Tafel, oder das Brett und bedeutet demnach soviel wie „Stundenplan“. Die auszuführenden Befehle werden in einer benutzereigenen Tabelle gespeichert, der sogenannten crontab. Diese Tabelle besteht aus sechs Spalten; die ersten fünf dienen der Zeitangabe (Minute, Stunde, Tag, Monat, Wochentag), alle weiteren Zeichen bis zum Zeilenumbruch werden als der auszuführende Befehl aufgefasst. Die einzelnen Spalten werden durch Leerzeichen oder Tabulatoren getrennt.

Beispiel einer Crontab:

#M    S   T M W    Befehl
5     *   * * *    /usr/bin/message.sh    # fünf Minuten nach jeder vollen Stunde
*/5   *   * * *    /usr/bin/message.sh    # alle 5 Minuten
59    23  * * 0    gzip /var/log/messages # einmal pro Woche Sonntags um 23:59 Uhr
0     0   * * *    gzip /var/log/auth.log # täglich um 00:00 Uhr
20,30 1   * * 1-5  /usr/bin/work.sh       # Montags bis Freitags jeweils um 01:20 und 01:30

Die Struktur ist wie folgt zu verstehen:

* * * * * auszuführender Befehl
┬ ┬ ┬ ┬ ┬
│ │ │ │ │
│ │ │ │ └──── Wochentag (0-7) (Sonntag =0 oder =7)
│ │ │ └────── Monat (1-12)
│ │ └──────── Tag (1-31)
│ └────────── Stunde (0-23)
└──────────── Minute (0-59)

Um den einen cronjob zu erstellen führen Sie den Befehl crontab aus:

crontab –e              # eigenen crontab erstellen/ändern
crontab –e –u alice     # alice’s crontab ändern

at

at Führt Kommandos zur bestimmten Zeit aus.

atq Listet die momentan laufenden Jobs des Benutzers auf, root darf die laufenden Jobs aller Benutzer anzeigen. Die Ausgabe erfolgt im Format: Job Nummer, Datum, Stunde, Queue, und Benutzername.

atrm beendet Jobs, durch ihre Jobnummer identifiziert.

batch führt Befehle aus wenn die Systemauslastung es erlaubt, d.h. wenn die durchschnittliche Systemauslast unter 0,8 fällt, oder den Wert der atd beim Starten übergeben wurde.

Kategorien:RHCSA Schlagwörter: , , , ,

Netzwerkservices verwalten: Status überprüfen, starten, beenden, so konfigurieren, dass sie beim Booten starten

2010/12/26 Kommentare aus

Status eines Dienstes abfragen:

service httpd status       # status des Webservers abrufen
service –status-all        # Status aller Dienste abrufen

Dienste starten/stoppen:

service httpd start        # Webserver starten
service httpd stop         # Webserver stoppen

Dienst neu starten, Konfiguration neu einlesen:

service httpd restart      # Webserver neu starten
service httpd reload       # Konfiguration neu einlesen

Dienst bei Systemstart starten:

chkconfig httpd on         # httpd startet beim booten
chkconfig httpd off        # httpd startet nicht beim booten

Dienst bei Eintreten in einen bestimmten Runlevel starten:

chkconfig –level 3 httpd on       # httpd startet nur in Runlevel 3
chkconfig –level 345 httpd on     # httpd startet in Runlevel 3, 4 und 5

Eine Alternative zu chkconfig bietet das Programm ntsysv. Dieses bearbeitet beim Aufruf ohne weitere Parameter den aktuellen Runlevel und legt fest welche Dienste in diesem gestartet werden sollen. Über die Option –levels kann dem Programm mitgeteilt werden welche Runlevel editiert werden sollen:

ntsysv               # Bearbeiten des aktuellen Runlevels
ntsysv --levels 345  # Runlevel 3,4 und 5 werden editiert

Welche Dienste werden in welchen Runleveln gestartet?

chkconfig httpd –list      # in welchen Runleveln wird httpd gestartet?
        httpd     0:Aus    1:Aus    2:Ein      3:Ein      4:Ein      5:Ein      6:Aus
Kategorien:RHCSA Schlagwörter: , , , , , ,