nmap

ARP-Scan mit nmap

nmap -sP -n <Netzwerk>/<Submask>

Für die unterschiedlichen Scan-Arten: nmap -h

Portrange spezifizieren

nmap <adresse> -p<von>-<bis>

Um Ports auszugrenzen: –exclude-ports <von-bis>

SYNScan als Alternative zu ping bzw. ICMP

nmap -sS -n <adresse>

 

 

AIDE

Advanced Intrusion Detection Environment – AIDE

Regeln festlegen in

vim /etc/aide.conf

Parameter

p Permission
i Inode
n Number of Links
u File Owner
g File Group
s Filesize
S Growing Size.
b Block Count
m Modification Time
c File Access Timestamp
md5 MD5 Checksum
sha1 SHA1 Checksum

Config überprüfen

aide --config-check

Initial Datenbank anlegen

aide -i

Output FIle

Festgelegt in /etc/aide.conf in der Zeile database_out.
Defaultmäßig /var/lib/aide/aide.db.new, das .new sollte gelöscht werden.

 Systemchek anhand Datenbank

aide --check
Note: Datenbank, Binary, Config und auch die Man Pages sollten auf ein Seperates Medium kopiert werden. Von dort kann ein Check ausgeführt werden.

 Datenbank updaten

aide --update
 
 
 
 
 
Veröffentlicht unter IDS

AppArmor

Sicherheitsmanagement mit AppArmor

Config Dateien

/etc/apparmor.d/

Beispielprofile

/etc/apparmor/profiles/extra

Profile

WIldcards für Daten und Ordner

*       Ersätzt Nummern und Characters außer /
**      Ersätzt Nummern und Characters  mit / (Für Unterordner)
?       Ersätzt einzelne Characters außer /
[abc]   a, b oder c
[a-d]   a, b, c oder d
{ab,cd} ab oder cd

Berechtigungen

i  Read Mode
w  Write Mode
a  Append Mode
l  Link Mode
k  Lock Mode
m  Allow Executable Mapping Mode
ix Inherit Execute Mode
px Discrete Profile Execute Mode
cx = px + Local Profile
cix = cx + check for local Profile
Px Discrete Profile Execute Mode
Cx, Cix
ux Unconstrained Execute Mode
Ux Unconstrained Execut

 

IPTABLES

Bruteforce Attacken ausschließen

Hier werden vier Verbindungen innerhalb von zehn Minuten zugelassen. Alle weiteren Verbindungen werden geblockt.

iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m
recent --set --name SSH
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m
recent --update --seconds 600 --hitcount 4 --rttl --name SSH -j LOG --
log-prefix "SSH BRUTE FORCE PROTECTION "
iptables -A INPUT -i eth0 -p tcp --dport 22 -m state --state NEW -m
recent --update --seconds 600 --hitcount 4 --rttl --name SSH -j DROP

 

 

SUDO

SUDO nutzen

Die Reihen mit „Defaults“ und „ALL“ müssen auskommentiert werden.

<user|group> <host>=(<user>) <command1>, <comman2>, ...

User darf sich mit sudo su – als root anmelden ohne Passwort

<user> ALL=(ALL) NOPASSWD:ALL

Der User Webmaster darf den Webserver an/ausschalten

webmaster ALL=(ALL) NOPASSWD:/etc/init./apache2 *

Aliases

User_Alias POWERUSER = tux, ding, bum
Cmnd_Alias POWEROFF = /sbin/shuwdown *
Host_Alias HOST = localhost
POWERUSER HOST = (root) POWEROFF

 

 

 

Veröffentlicht unter SUDO

Chroot Jail

Beispiel für Jail

  1. Erstelle verzeichnisse
    1. mkdir /jail
    2. mkdir /jail/bin
    3. mkdir /jail/lib64
  2. Kopiere Dateien nach /jail/bin
    1. cp /bin/bash /bin/ls /bin/sh /jail/bin
  3. Prüfe die Abhängigkeiten von bash, ls und sh und kopiere diese:
    1. ldd bash
    2. cp /lib64/<lib> /jail/lib64
  4. Ausführen:
    1. chroot /jail

 

Vorkehrungen zur Serversicherung

SUID root Permissions prüfen

Betroffene Dateien werden wie folgt aufgeführt:

find / -type f -perm -u=s -ls

Aufführen von Dateien, welche ausführbar und beschreibbar sind:

find / -type f -perm -o=w,u=x -ls

 Betroffene Dateien überwachen

  1. Erstelle Script und lasse Cron Job laufen. Lege die Files sinngemäß ab. (Unter Punkt 2. aufgeführe Maßnahmen sollten hierbei auch beachtet werden.)
  2. Installiere das Paket secchek, welches das selbe tut plus weitere security features bietet. Tägliche Checks sind:
    1. Unregelmäßigkeiten in /etc/passwd. Z.B. gleiche UIDs.
    2. Unregelmäßigkeiten in /etc/shadow. Z.B. kein PW gesetzt.
    3. Unregelmäßigkeiten in /etc/group.
    4. root user. Ob die werte von umask und Umgebungsvariablen sicher sind.
    5. Ob Systembenutzer in /etc/ftpusers aufgeführt sind.
    6. Prüft in /etc/aliases ob Mail aliases Programme ausführen.
    7. Prüft ob die .rhosts eines Benutzers ein + enthält.
    8. Prüft ob Home Directorys der User beschreibbar für andere sind oder anderen Usern zugehörig sind.
    9. Prüft nach Dot-Files im Home Ordner und ob diese beschreibbar für andere User sind oder ob sie anderen usern gehören.
    10. Gleiches für die Mailbox.
    11. Prüft ob der NFS export global geshared ist.
    12. Prüft ob der NFS import die nouserid Option hat.
    13. Prüft ob die NICs in gemischten Modi laufen.
    14. Listet geladene Module.
    15. Listet offene Ports.

Wöchentliche Checks sind:

    1. Prüft mit John, ob die Passwörter sicher sind. (Nicht unter SLES11)
    2. Schaut per md5 nach geänderten Dateien.
    3. Listet alle SUID/SGID Files.
    4. Listet Executables, welche von Group oder Others beschreibbar sind.
    5. Listet alles Dateien, welche von Others beschreibbar sind.
    6. Listet alles Devices des Systems.

Reports werden unter /var/lib/seccheck/security-report-* abgelegt.

 

Unnötige Dienste deaktivieren

  1. yast -> Services -> System Services -> Unnötige Dienste deaktivieren
  2. Wenn gar nicht benötigt das Paket deinstallieren

Unnötige User löschen

  1. yast -> Security and Users -> User Group Management -> „Aufräumen“

 

Unnötige Ports sperren

  1. Das Paket nmap installieren
  2. nmap -v -A <ip>
  3. Auswerten, welche Ports nötig und welche überflüssig sind.
  4. yast -> Security and Users -> Firewall -> Allowed Service
  5. Aus der Allowed Services Liste überflüssige Ports löschen. Auch in Advanced Ports überprüfen.

File Permission

Spezielle Filepermissions

  • t (1)
    • Sticky Bit
    • Files: –
    • Ordner: Dateien in diesem Ordner können nur vom Owner oder root gelöscht werden.
  • s (2)
    • SGID (set Group ID)
    • Files: Eine Datei läuft unter der angegebenen Group ID.
    • Ordner: Dateien, die in diesem Ordner angelegt werden gehören der angegebenen Gruppe. Nicht der Primary Group des users.
  • s (4)
    • SUID (set User ID)
    • Files: Eine ausgeführte Datei läuft unter der der angegebenen User ID.
    • Ordner: –

Systemweites Permission-Level setzen

Definitionsdateien

Vordefinierte Permissions sind zu finden unter:

  • /etc/permissions
  • /etc/permissions.easy
  • /etc/permissions.local
  • /etc/permissions.secure
  • /etc/permissions.paranoid

Dazu gibt sind definitionen für einzelne Programme zu finden unter:

  • /etc/permissions.d

Definitionen anwenden

  1. Automatisch: yast security -> Prefered Security Configurations -> OK
  2. Manuel: vim /etc/sysconfig/security -> Danach SuSEconfig ausführen.