OpenSSL Heratbleed

Sysadmin: OpenSSL Befehle und Tipps

Nachdem ich in den letzten Wochen immer mal wieder mit OpenSSL wegen Heartbleed und Co. zu tun hatte, gibt es hier mal ein paar wissenswerte Befehle und Tipps:

Einen Private Key mit 2048bit erzeugen:
openssl genrsa -out 2048

 

Einen Private Key mit 4096bit erzeugen:
openssl genrsa -out 4096

 

Einen CSR (Certificate Signing Request, Zertifikatsanforderung) erzeugen:
openssl req -new -key -out

Anschließend müssen ein paar Fragen beantwortet werden (Beispiel):
Country Name (2 letter code) [DE]: DE
State or Province Name (full name) [Some-State]: Germany
Locality Name (eg, city) []: Berlin
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Websenat
Organizational Unit Name (eg, section) []: Ecommerce

Wichtig für ein öffentliches Zertifikat ist der „Common Name“. Hier muss der Domainname angegeben werden:
Common Name (eg, YOUR name) []: domain.de
Email Address []: info@domain.de

Please enter the following 'extra' attributes to be sent with your certificate request
A challenge password []:
An optional company name []:

 

Passt der Private Key zum Zertifikat (Public Key Match):
openssl x509 -noout -modulus -in | openssl md5
openssl rsa -noout -modulus -in | openssl md5

Sind beide Werte identisch, passt es. Ansonsten nicht.

 

Das kann man natürlich auch mit dem CSR machen:
openssl req -noout -modulus -in | openssl md5

 

Komplettes Zertifikat anzeigen:
openssl x509 -noout -text -in

 

Hash anzeigen:
openssl x509 -noout -hash -in

 

MD5-Fingerprint anzeigen:
openssl x509 -noout -fingerprint -in

 

Ach ja, noch was: !!! DEN PRIVATE KEY NIE NIE NIE WEITERGEBEN !!!

iptables REJECT

Sysadmin: IP mit iptables sperren

Gerade mal auf einem meiner Server ins Log geschaut, warum so viele Anfragen auf die FTP/SFTP/FTPS Ports kommen:

Die Schuldigen wurden schnell identifiziert ;) Es sind noch Kunden von dapd die ihre Meldungen per FTP/SFTP/FTPS bezogen haben. Leider kann ich diese nicht anschreiben, denn ich kenne die Ansprechpartner nicht mehr. Daher habe ich beschlossen, die Anfragen gleich auf der Firewall zu blocken. Die zahlreichen Anfragen füllen nur unnötig das Logfile. Das ganz kann man ganz „komfortabel“ in der Linux-Konsole mit „iptables“ erledigen. Die folgende Regel sperrt die IP (xxx.xxx.xxx.xxx) für TCP-Port 21 (FTP):

iptables -I INPUT -p tcp -s xxx.xxx.xxx.xxx –dport 21 -j REJECT –reject-with tcp-reset

Man kann die Regel natürlich anpassen und damit auch andere Ports blocken. Manchmal gibt es ein paar Skriptkiddies oder ein paar Leute aus China, die meinen einen Server mit sinnlosen Anfragen bombardieren zu müssen. Regel anpassen + nutzen = Problem gelöst. Jetzt brauch ich nicht jedes Mal nach der Regel suchen, wenn ich die brauch ;)

Man kann so was auch teilweise auch automatisieren, z.B. mit Fail2ban und denyhosts.

ubuntu- oder Debian-Version herausfinden

Gerade kam die Frage auf, wie man herausfinden kann welche ubuntu- oder Debian-Linux-Version man installiert hat. Das bekommt man ganz einfach mit dem folgenden Befehl raus:

lsb_release -a

Ausgabe:

No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 5.0.9 (lenny)
Release:        5.0.9
Codename:       lenny

Für andere Linux Distributionen wird es sicherlich einen ähnlichen Befehl geben.

Linux monitoring tools

Here is a list of various Linux monitoring tools and statistics files:

Overall Tools:
top, vmstat, sar, ps, pstree, ipcs

CPU:
top, mpstat, tload, /proc/cpuinfo, x86info

Memory:
free, /proc/meminfo, slabtop, /proc/slabinfo, ipcs

I/O:
iostat, vmstat, sar

sar examples:

To display CPU utilization:

sar 3 100

To display paging activity:

sar -B 3 100

To display swapping activity:

sar -W 3 100

To display block I/O activity:

sar -b 3 100

To display block I/O activity for each block device:

sar -d 3 100

To display network activity:

sar -n DEV 3 100