Ablaufdatum von SSL-Zertifikat herausfinden
Oft stellt sich die Frage, wie lange ein Zertifikat noch gültig ist oder welche Version gerade live ist. Daher hier eine kleine Liste mit nützlichen Argumenten für OpenSSL.
SSL-Abfrage einer Webseite
echo | openssl s_client -servername $DOMAIN -connect HOST:PORT 2>/dev/null | openssl x509 -noout -enddate
$DOMAIN ist die Domain der Webseite, z. B. blog.medi.li, und HOST:PORT der Host oder die IP und der Port, meist 443, also z. B. blog.medi.li:443
Ablaufdatum eines .pem- oder .crt-Zertifikats
openssl x509 -enddate -noout -in file.pem
oder
cat file.pem | openssl x509 -noout -enddate
Ablaufdatum einer PKCS12-Datei
openssl pkcs12 -in mycert.p12 -nodes | openssl x509 -noout -enddate
Hinweis zu nginx
Der Webserver nginx benötigt übrigens ein Reload-Signal, um ein aktualisiertes Zertifikat neu zu laden!
Mermaid Support für das Blog
Mermaid ist eine Javascript basiertes diagram und Chart Lib, bei der man mit einfachen text bausteinen, Diagramme Schreiben kann.
Beispiele
~~~mermaid
graph TB
A --> B
B --> C
~~~
~~~mermaid
erDiagram
CUSTOMER }|..|{ DELIVERY-ADDRESS : has
CUSTOMER ||--o{ ORDER : places
CUSTOMER ||--o{ INVOICE : "liable for"
DELIVERY-ADDRESS ||--o{ ORDER : receives
INVOICE ||--|{ ORDER : covers
ORDER ||--|{ ORDER-ITEM : includes
PRODUCT-CATEGORY ||--|{ PRODUCT : contains
PRODUCT ||--o{ ORDER-ITEM : "ordered in"
~~~
~~~mermaid
stateDiagram-v2
[*] --> Still
Still --> [*]
Still --> Moving
Moving --> Still
Moving --> Crash
Crash --> [*]
~~~
~~~mermaid
gitGraph
commit
commit
branch two
commit
checkout main
commit
branch three
checkout three
commit
commit
checkout main
commit
commit
branch one
checkout one
commit
checkout two
commit
checkout main
merge two
checkout one
merge two
merge three
commit
commit
checkout main
merge one
~~~
~~~mermaid
sequenceDiagram
title: FancySequenceDiagramaccDescription Test a description
participant Alice
participant Bob
participant John as John<br />Second Line
rect rgb(20, 20, 100)
rect rgb(0, 5, 200)
Alice ->> Bob: Hello Bob, how are you?
Bob-->>John: How about you John?
end
Bob--x Alice: I am good thanks!
Bob-x John: I am good thanks!
Note right of John: John thinks a long<br />long time, so long<br />that the text does<br />not fit on a row.
Bob-->Alice: Checking with John...
Note over John:wrap: John looks like he's still thinking, so Bob prods him a bit.
Bob-x John: Hey John - we're still waiting to know<br />how you're doing
Note over John:nowrap: John's trying hard not to break his train of thought.
Bob-x John:wrap: John! Are you still debating about how you're doing? How long does it take??
Note over John: After a few more moments, John<br />finally snaps out of it.
end
alt either this
Alice->>+John: Yes
John-->>-Alice: OK
else or this
Alice->>John: No
else or this will happen
Alice->John: Maybe
end
par this happens in parallel
Alice -->> Bob: Parallel message 1
and
Alice -->> John: Parallel message 2
end
~~~
Second Line rect rgb(20, 20, 100) rect rgb(0, 5, 200) Alice ->> Bob: Hello Bob, how are you? Bob-->>John: How about you John? end Bob--x Alice: I am good thanks! Bob-x John: I am good thanks! Note right of John: John thinks a long
long time, so long
that the text does
not fit on a row. Bob-->Alice: Checking with John... Note over John:wrap: John looks like he's still thinking, so Bob prods him a bit. Bob-x John: Hey John - we're still waiting to know
how you're doing Note over John:nowrap: John's trying hard not to break his train of thought. Bob-x John:wrap: John! Are you still debating about how you're doing? How long does it take?? Note over John: After a few more moments, John
finally snaps out of it. end alt either this Alice->>+John: Yes John-->>-Alice: OK else or this Alice->>John: No else or this will happen Alice->John: Maybe end par this happens in parallel Alice -->> Bob: Parallel message 1 and Alice -->> John: Parallel message 2 end
Oder in einfacher
~~~mermaid
sequenceDiagram
Alice->>+John: Hello John, how are you?
Alice->>+John: John, can you hear me?
John-->>-Alice: Hi Alice, I can hear you!
John-->>-Alice: I feel great!
~~~
~~~mermaid
pie
"Dogs" : 42.96
"Cats" : 50.05
"Rats" : 10.01
~~~
Links
Eine Verabschiedung von 2 netten Kollegen, mit Grillen in Waren
Netzwerk Spielereien
UDP-Verbindung mit netcat und tcpdump prüfen
Auf dem Zielhost kann man z. B. mit tcpdump schauen, ob Pakete ankommen.
tcpdump -n port 10011 -vv
Und von einem anderen Host kann man diesen Port z. B. mit netcat anpingen.
nc -vz -u 192.168.100.100 10011
Netcat als Sender und Empfänger über UDP benutzen
Mit -l kann man netcat auch lauschen lassen (Empfänger).
nc -luk 192.168.100.100 20000
Und mit -uv eine Verbindung von einem anderen Client herstellen und etwas zum Host senden (Sender).
nc -uv 192.168.100.100 20000
hello host!<ENTER>
Das sollte auf dem Empfänger ein hello host! ausgeben.
SPF-Record erstellen und prüfen
SPF (Sender Policy Framework) ist ein recht einfaches Verfahren, um Missbrauch der eigenen E-Mails ein wenig zu verhindern. Mit dem SPF-Domain-Record gibt man an, aus welchen Netzen E-Mails der eigenen Domain versendet werden dürfen.
SPF-Record abfragen
Der einfachste Weg ist wohl, mit host oder dig eine einfache DNS-Abfrage zu machen. Das geht z. B. mit
host -t TXT gmx.de | grep -i spf
dig heise.de TXT | grep -i spf
dig gmx.de TXT | grep -i spf
dig gmx.net TXT | grep -i spf
nslookup -q=TXT gmx.net | grep -i spf
Bedeutung der Felder
| Feld | Bedeutung |
|---|---|
| v | Version des Records, z. B. v=spf1 |
| ip4 | IPv4-Adresse oder Adressbereich, z. B. ip4:1.2.3.0/24 |
| ip6 | IPv6-Adresse oder Adressbereich, z. B. ip6:2a02:2e0:3fe:1001::/64 |
| a | Ein A- oder AAAA-Record der befragten (oder explizit angegebenen) Domäne, der die IP-Adresse des Senders enthält |
| mx | Ein MX-Record der befragten (oder explizit angegebenen) Domäne, der die IP-Adresse des Senders enthält |
| -all | Alle anderen hier nicht aufgeführten Sender sind nicht autorisiert und sollen abgewiesen werden. |
| ~all | Softfail, nicht autorisierte Sender; der Empfänger soll diesen Fehlschlag aber großzügig behandeln. |
| ?all | Neutral, die Direktive definiert Sender, über deren Legitimität nichts ausgesagt werden soll; der Sender muss so behandelt werden, als wäre kein Qualifikator angegeben. |
| include | Eine zusätzliche SPF-Anfrage zur im Include-Statement angegebenen Domain, die die IP-Adresse des Senders enthält, z. B. include:_spfdiv.heise.de |
| redirect | Der SPF-Record einer anderen Domain soll eingeholt und ausgewertet werden, z. B. redirect=gmx.net |
Beispiel
Aus den Testabfragen sollte sich der restliche Aufbau von selbst erklären.
Im Grunde ist es immer „Version, Regelwerk der eigenen Infrastruktur, Rest mit all“.
Beispiel: v=spf1 mx:mx.domain.com a:domain.com ip4:1.2.3.0/24 ~all