Für CentOS wird empfohlen, die -lss3
Flagge Ihrer Compile-Zeile hinzuzufügen . Unterstützender Link .
Sie können auch versuchen, OpenSSL über denselben Link wie oben statisch in Ihren Build einzubinden. Ersetzen des Speicherorts Ihrer *.a
Dateien:
#!/bin/bash # Emerge openssl with static-libs to obtain all the *.a mkdir -p heartbleed.d cd heartbleed.d ar x /usr/lib/libssl.a ar x /usr/lib/libcrypto.a ar x /usr/lib/libgmp.a ar x /usr/lib/libz.a cd .. gcc -o heartbleed heartbleed.d/*.o heartbleed.c -ldl
Wenn Sie sich auf Debian befinden (zur Vollständigkeit weiß ich, dass sich diese Frage auf CentOS 6.x bezieht), dann haben Sie dieses Problem. Dann könnte dieser Link Ihnen bei Ihrem Problem helfen, da er die folgende Lösung bietet:
$ gcc heartbleed.c -o heartbleed -Wl,-Bstatic -lssl -Wl,-Bdynamic -lssl3 -lcrypto $ uname -a Linux xxxxx Debian 3.2.54-2 x86_64 GNU/Linux $ ls -al heartbleed -rwxr-xr-x 1 x x357603 Apr 11 23:20 heartbleed
Dieser Link ist etwas verwirrend, er stellt das genaue Problem 2013 dar, sagt aber nur, dass der Header zum Kompilieren aktualisiert wurde. Also vielleicht dreimal die Header-Datei auf Kommentare überprüfen?
Eine andere Lösung für Ihr Problem könnte die Antwort auf Folgendes sein. Welche Version von OpenSSL läuft in Ihrem Netzwerk? Hier ist ein Auszug aus HeartBleed.com
Welche Versionen von OpenSSL sind betroffen?
Status verschiedener Versionen:
OpenSSL 1.0.1 bis einschließlich 1.0.1f (einschließlich) sind anfällig. OpenSSL 1.0.1g ist NICHT anfällig. Der Zweig OpenSSL 1.0.0 ist NICHT anfällig. Der Zweig OpenSSL 0.9.8 ist NICHT anfällig
Es wurde in OpenSSL Version 1.0.1g gepatcht: Aus dem OpenSSL Security Advisory :
Betroffene Benutzer sollten auf OpenSSL 1.0.1g aktualisieren. Benutzer, die nicht sofort ein Upgrade durchführen können, können OpenSSL alternativ mit -DOPENSSL_NO_HEARTBEATS erneut kompilieren.
Sie können ältere Versionen mit diesem Flag erneut kompilieren, wenn Sie kein Upgrade durchführen können.