- updatedb laufen lassen um locate nutzen zu koennen - drucken einrichten: system-config-printer (als api fuer cups der auf Port 631 laeuft) - permissions: x=1, w=2, r=4 - umask=000 -> 777-000 = 777 (default permission of created files) (x-bit wird nie mehr gesetzt bei redhat) - Falls SElinux aktiv: ls -Z (Security-Context listen) - /etc/init.d/ -> service start/stop/restart/status/reload zum Kontrollieren der Services im Commandline - Konfigurations für Netzwerk: /etc/sysconfig/network - elinks und lftp Handling - yum um nachträglich per Commandline Packete inklusive Abhängigkeiten zu installieren. Vorher Repositories einrichten - cat << EOF > /etc/yum.respos.d/my.repos [my] name=My Red Hat baseurl=file:/inst/redhat/Server gpgcheck=0 EOF - yum update / yum list - yum whatprovides elinks - system-config-securitylevel um firewall und selinux zu konfigurieren - lvm-groessen kann man nicht im text-mode installer anpassen - lshal lspci lsusb für Diagnose von Hardware - Firewall temporär disablen: iptables -F - NFS-Share einrichten über /etc/exports und exportfs -a und kontrollieren via showmount -e - NFS restarten service nfs stop/start - Persistenz von Services checken: chkconfig --list sendmail Sendmail in Runlevel 4 aktivieren: chkconfig --level 4 sendmail off - Kommando rhn_register zum nachträglichen Registrieren im RedhatNetwork - init=/bin/sh oder single oder emergency oder 3 für runlevel beim grub-booten - grub: suchen der /boot-partition -> find (hd0,1)/grub/grub.conf und cat (hd0,1)/grub/grub.conf - chattr und lsattr für erweiterte Attribute auf Filesystemen - Label checken: e2label /dev/hda1 neu schreiben: e2label /dev/hda1 /boot - Um ACLs auf Filesystemen nutzen zu können (getfacl/setfacl) muss das Filesystem mit der Option acl gemountet werden. setfacl -m user:michael:r-x / - Expliziter Automount-Eintrag in /etc/auto.misc: linux -ro,soft,intr ftp.example.org:/pub/linux damit unterhalb von /misc/linux ein mount auftaucht - Installation von RPM-Packete: rpm -ivh Deinstallation: rpm -e List von installierten Packeten: rpm -qa Files zu Packeten: rpm -ql Alle Files checken: rpm --verify -a Bestimmtes File checken: rpm --verify --file /bin/vi - Source-Rpms kann man normal installieren und dann mittels rpmbuild -ba in /usr/src/redhat/ bauen - utmpdump /var/log/wtmp - useradd, userdel, usermod, chage, system-config-users, pwconf/grpconf,pwunconf,grpunconf - /etc/pam.d/su und die Bedeutung für Gruppe wheel für su - Quota: usrquota,grpquota als Optionen für die Homeverzeichnis-FS setzen, remounten und per quotacheck -cugm aktivieren. Erzeugt //aquoa.*-Files - Mittels edquota -u oder edquota -g Quotas für User/Gruppen auf den Filesystemen setzen. Mittels Option -p ist Vererbung möglich - quotaon/quotaoff - Statistik: quotacheck -amv und repquota -a - umask wird systemweit auf 002 in /etc/bashrc gesetzt - Über g+s kann man Gruppen-Directories behandeln in denen alle Mitglieder einer Gruppe alle Files bearbeiten können - NIS: /etc/yp.conf <- Domain und NIS-Server eintragen. ypbind-Service starten (chkconfig ypbind on) /etc/nsswitch.conf bearbeiten - LDAP: nss_ldap und openldap RPM-Packete müssen installiert sein. /etc/ldap.conf und /etc/openldap/ldap.conf bearbeiten - system-config-authentication verwenden - at, atq, /etc/cron|at.allow/deny - Kernel bauen: src.rpm besorgen, cd /usr/src/redhat/SPECS, rpmbuild -bp --target=`uname -m` kernel-2.6.spec - Apache: Packet mod_ssl für https. Packet system-config-httpd für Konfiguration. Packet httpd-manual für Dokumentation Objekte unterhalb von /var/www sind system_u und httpd_sys_content_t zugeordnet. chcon -R -u system_u /var/www && chcon -R -t httpd_sys_content_t /var/www Syntax checken: httpd -t httpd -S Packet crypto-utils installieren um "genkeys --days 120 localhost" machen zu können. Files gehen nach /etc/pki/tls/ - Squid: Eventuell ist ein Natting erforderlich: iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-ports 3128 Für SELinux: setsebool -P squid_connect_any 1 - NFS: Packet system-config-nfs. Ports für Firewall freischalten: TCP/UDP 111 32764,32765,32766,32767 setsebool -P nfs_export_all_rw 1 sowie: nfs_export_all_ro, allow_nfsd_anon_write , allow_gssd_read_tmp - Samba: system-config-samba, net rpc join -U root bzw. net rpc join -S DC -U root chmod 1777 /home/PublicShare (o+t) -> Es darf nicht jeder alles mit allen Files anstellen, sondern nur die Eigentümmer dürfen umbennenen und löschen - Bind: Packete: caching-nameserver system-config-bind Slave-Server: zone "example.org" IN { type slave; file "slaves/example.com.org"; masters { 192.168.30.5 }; }; Fordwarding-Only Nameserver: options { directory "/var/named"; forward only; forwarders { 207.217.120.83; 207.217.126.81; }; }; - Mail: dovecot für IMAP(s)/POP3(s). Zertifikate liegen in /etc/pki/dovecot. dovecot-openssl.cnf editieren und mit /usr/share/doc/dovecot-/examples/mkcert.sh bauen - POP3 per telnet testen: user pass list retr - Sendmail: sendmail.mc -< DAEMON_OPTIONS(...127.0.0.1...) auskommentieren accept_unresolvable_domains auskommentieren und relays in /etc/mail/access Eventuell auf postfix umschwenken: alternatives --config mta - X11: system-config-display, Windowmanager umstellen: switchdesk, Xorg -configure - NAT: iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE - ROUTING: /etc/sysctl.conf bzw. temporär: echo 1 > /proc/sys/net/ipv4/ip_forward Es handelt sich um eine rein praktische Pruefung von insgesamt 3 1/2 Stunden Dauer. Man kriegt einen eigenen Rechner und muss dann folgendes tun: Auftakt: Zugang fuer root hacken. Rechner komplett vorinstalliert, aber man hat das root-Passwort nicht. Wenn man das nicht kann, muss man gleich nach Hause gehen .... RHCT-Block: Netzwerkkonfiguration nach Vorgabe einrichten (Auf Redhat-Besonderheiten achten) Verschiedene User und Gruppen einrichten. Sekundaere Gruppenmitgleidschaften einrichten acls setzen koennen mit setfacl/getfacl Bedeutung von g+s auf Verzeichnissen Kernelupdate installieren Einer vorhandenen NIS-Domaine beitreten, inklusive automounter-konfiguration fuer homes SElinux enablen (Hier muss man fuer spaetere Services alle wichtigen booleschen Variablen kennen) Partitionen neu anlegen Filesystem erzeugen und mounten Raid0 erzeugen Bestehendes lvm-volume verkleinern ipp-Netzwerk drucker einrichten und zum Default machen ntp-server eintragen cron-job einrichten RHCE-Block quota einrichten und aktivieren fuer ein bestimmtes User-Home mit bestimmten vorgegebenen Werten pop3 aktivieren und nur für bestimmtes netzwerk freigeben smtp aktivieren fuer empfang von rechnern aus einem bestimmten netz und empfang fuer user harry von ueberall her (Relaying) apache aktivieren und bestimmtes index.html in documentroot ablegen ftpd aktivieren fuer anonymous fuer bestimmtes netzwerk samba fuer bestimmte workgroup aktivieren und fuer einen bestimmten user ein bestimmtes share zum Lesen aktivieren Nfs-Freigabe einrichten sshd einrichten und fuer bestimmtes netz freigeben zusatz-Aufgaben fuer RHCE-Block: Bestimmtes zertifikat fuer imaps erzeugen und imaps aktivieren und nur für bestimmtes netzwerk freischalten squid aktivieren fuer bestimmtes netzwerk und auf port 8080 setzen vhost fuer httpd auf einem zweiten dns-namen einrichten Bei mir aufgetretene Probleme: - dovecot hat seinen dovecot user nicht angelegt - Die Aktivierung von selinux hat alle moeglichen Effekte auf die Dienste. sealert war nicht installiert - hosts.allow und hosts.deny genau anschauen fuer Freigabe/Verhindern von Zugriffen aus verschiedenen Netzwerken (Oder alternativ iptables nutzen) - quota funktionierte nicht sauber. home war ein verkleinertes lvm-volume - quotaon ging nicht (selinux-effekt?) - samba ports in der firewall vergessen - nfs-freigabe muessen durch eine aktivierte firefall und ein aktiviertes selinux durch (nicht trivial) der test ob die Freigabe funktioniert ist nicht moeglich .... blindflug Fazit: Unter realen Bedingungen kriegt man das alles selbstverstaendlich hin, aber bei einem Timelimit ohne M√∂glichkeit der Recherche laeuft einem irgendwann die Zeit davon. Erschwerend hinzu kommt, dass alle Services nach einem Reboot laufen muessen, und man schwer von extern testen kann, ob alles wie gefordet eingerichtet ist. Folgender Aufbau: - dovecot und quota testen mit korrupter passwd-zeile - RH in Testnetz (10.1.0.0/24) - RH tritt einzurichtender NIS-Domaene test.baltic-online.de bei - RH muss ueber automounter ein home fuer nisuser1 kriegen - Richte pop3/ftpd(anon)/ssh/squid/imaps fuer alle rechner aus 10.1.0.0/24 ein. Von 10.0.0.0 darf kein Zugriff moeglich sein - Richte samba fuer alle rechner aus 10.1.0.0/24 ein. Von 10.0.0.0 darf kein Zugriff moeglich sein Lesender Zugriff nur fuer einen bestimmten User. Ansonsten browsable - NFS-Share fuer alle rechner aus 10.1.0.0/24 ein. Von 10.0.0.0 darf kein Zugriff moeglich sein - Apache einrichten - zusaetzlichen vhost-Eintrag (Zugriff über dns-alias auf gleicher IP) Nicht vergessen: - system-config-printer nutzen - quotacheck -cumg und edquota -u - /etc/hosts.deny: ALL:ALL - /etc/hosts.allow: ALL: localhost, 192.168.34.0/255.255.255.0 - SElinux: Packet setroubleshoot / Kommandos: sealert -b und system-config-selinux - IPTABLES-Logging: /etc/sysconfig/iptables: -j LOG --log-prefix "Rejected" - /etc/mail/access: 192.168.34 RELAY und To:chr@baltic-online.de RELAY - SMTP-Relay-Test über telnet smtp: HELO MAIL FROM: RCPT TO: DATA . - AUTOFS: /etc/auto.master <- /nfs/home /etc/auto.home && mkdir /nfs/home && /etc/auto.home < * / smbclient /// -U - BIND yum install bind yum install caching-nameserver # Caching-only-Nameserver: cp /etc/named.caching-nameserver.conf /etc/named.conf # Forwarding-Nameserver: In /etc/named.conf dazu unter options {}, Der Rest kann raus forward only forwarders { 10.0.0.9; }; # Slave-Server: In /etc/named.conf dazu. Der Rest kann raus zone "baltic-online.de" IN { type slave; file "slaves/baltic-online.de"; masters { 10.0.0.9; }; }; - SQUID Standard-Port 3218 Kein TCP-Wrapper ACL hinzufügen füer remote Netze, Default erlaubt nur: localhost