{"id":1460,"date":"2016-06-18T16:00:08","date_gmt":"2016-06-18T14:00:08","guid":{"rendered":"https:\/\/www.my-it-brain.de\/wordpress\/?p=1460"},"modified":"2016-10-21T23:27:33","modified_gmt":"2016-10-21T21:27:33","slug":"ssh-logins-in-rhelcentosfedora-auditieren","status":"publish","type":"post","link":"https:\/\/www.my-it-brain.de\/wordpress\/ssh-logins-in-rhelcentosfedora-auditieren\/","title":{"rendered":"SSH-Logins in RHEL\/CentOS\/Fedora auditieren"},"content":{"rendered":"<p>SSH-Logins werden unter RHEL, CentOS und Fedora in der Datei <em>\/var\/log\/secure<\/em> protokolliert. Dieser Artikel beschreibt, wie man bei einem Audit den zum im Log protokollierten RSA-Fingerprint passenden SSH-Key identifiziert.<\/p>\n<p>In dem hier beschriebenen Szenario wird angenommen, dass SSH-Logins ausschlie\u00dflich \u00fcber Public-Key-Authentifizierung zugelassen sind und die \u00f6ffentlichen SSH-Schl\u00fcssel an zentraler Stelle im Dateisystem abgelegt sind. Dar\u00fcber hinaus enth\u00e4lt jeder SSH-Schl\u00fcssel die E-Mail-Adresse des dazugeh\u00f6rigen Benutzers.<\/p>\n<p>Authentifiziert sich ein Benutzer mit seinem \u00f6ffentlichen SSH-Schl\u00fcssel an einem RHEL-, CentOS- oder Fedora-System, wird dies im Log <em>\/var\/log\/secure<\/em> wie folgt dokumentiert:<\/p>\n<pre>Jun 18 15:34:55 hostname sshd[846]: Accepted publickey for tronde from X.X.X.X port 61362 ssh2: RSA cd:22:29:38:f7:e2:49:b1:a6:2f:8d:8f:cc:69:d7:c2\r\n<\/pre>\n<p>Neben Datum, Uhrzeit und dem verwendeten Benutzernamen wird hier der RSA-Fingerabdruck des verwendeten SSH-Publickey dokumentiert. Um nun herauszufinden, welcher SSH-Public-Key zu diesem Fingerabdruck geh\u00f6rt, nutze ich ein kleines Bash-Skript[1. <a href=\"https:\/\/github.com\/Tronde\/My-IT-Scripts\/blob\/master\/bash\/rhel-scripts\/match_ssh-pubkey.sh\" target=\"_blank\">Das Skript auf GitHub<\/a>]:<\/p>\n<pre>#!\/bin\/bash\r\n# Beschreibung:\r\n# Dieses Skript gleicht einen RSA-Hash aus dem Log \/var\/log\/secure mit den\r\n# vorhandenen SSH-Public-Keys ab. Bei Uebereinstimmung wird der entsprechende\r\n# Key ausgegeben.\r\n#\r\n# Der RSA-Hash wird dem Skript als Argument uebergeben.\r\n#\r\n# Autor: Joerg Kastning &lt;joerg.kastning(aet)uni-bielefeld(punkt)de&gt;\r\n\r\n# Hauptteil #######################################################\r\nrsa_fprint=\"$1\"\r\nprintf \"RSA-Fingerprint:\\n${rsa_fprint}\\n\\n\"\r\nfor key in *.pub\r\ndo\r\n  tmp1=`\/usr\/bin\/ssh-keygen -lf ${key}`\r\n  set - $tmp1\r\n  tmp2=`echo \"$2\"`\r\n  if [[ \"${rsa_fprint}\" = \"${tmp2}\" ]]\r\n  then\r\n    printf \"Der zugehoerige SSH-Key lautet:\\n${tmp1}\\n\"\r\n    exit 0\r\n  fi\r\ndone\r\nprintf \"Es wurde kein SSH-Key gefunden, welcher zu dem uebergebenen RSA-Fingerprint passt.\"\r\nexit 0\r\n<\/pre>\n<p>Diesem Skript wird der RSA-Fingerabdruck als Argument \u00fcbergeben. Das Skript generiert anschlie\u00dfend den RSA-Fingerabdruck aller SSH-Schl\u00fcssel in dem Verzeichnis, in dem das Skript aufgerufen wird und vergleicht diese mit dem \u00fcbergebenen Fingerabdruck. Bei \u00dcbereinstimmung wird der zugeh\u00f6rige SSH-Schl\u00fcssel ausgegeben. Beispiel:<\/p>\n<pre>$ .\/match_ssh-pubkey.sh cd:22:29:38:f7:e2:49:b1:a6:2f:8d:8f:cc:69:d7:c2\r\nRSA-Fingerprint:\r\ncd:22:29:38:f7:e2:49:b1:a6:2f:8d:8f:cc:69:d7:c2\r\n\r\nDer zugehoerige SSH-Key lautet:\r\n2048 cd:22:29:38:f7:e2:49:b1:a6:2f:8d:8f:cc:69:d7:c2  foo@example.com (RSA)\r\n$\r\n<\/pre>\n<p>In diesem Beispiel geh\u00f6rt der verwendete SSH-Schl\u00fcssel dem Benutzer Foo. Auf diese Weise kann ein Audit mit einfachen Mitteln durchgef\u00fchrt werden.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>SSH-Logins werden unter RHEL, CentOS und Fedora in der Datei \/var\/log\/secure protokolliert. Dieser Artikel beschreibt, wie man bei einem Audit den zum im Log protokollierten RSA-Fingerprint passenden SSH-Key identifiziert. In dem hier beschriebenen Szenario wird angenommen, dass SSH-Logins ausschlie\u00dflich \u00fcber Public-Key-Authentifizierung zugelassen sind und die \u00f6ffentlichen SSH-Schl\u00fcssel an zentraler Stelle im Dateisystem abgelegt sind. Dar\u00fcber<span class=\"continue-reading\"> <a href=\"https:\/\/www.my-it-brain.de\/wordpress\/ssh-logins-in-rhelcentosfedora-auditieren\/\">[Weiterlesen&#8230;]<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_metis_text_type":"","_metis_text_length":0,"_post_count":0,"footnotes":""},"categories":[51],"tags":[403,430,305,402,161],"class_list":["post-1460","post","type-post","status-publish","format-standard","hentry","category-linux","tag-audit","tag-osbn","tag-planet","tag-public-key-authentifizierung","tag-ssh"],"_links":{"self":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/1460","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/comments?post=1460"}],"version-history":[{"count":2,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/1460\/revisions"}],"predecessor-version":[{"id":1462,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/1460\/revisions\/1462"}],"wp:attachment":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/media?parent=1460"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/categories?post=1460"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/tags?post=1460"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}