Deaktivieren Sie das python2.6 ssl3-Protokoll in centos6

Um herauszufinden, warum Sie es verbieten müssen, suchen Sie nach SSL POODLE. Wenn Sie sslv23 vom Server durch tlsv1 ersetzen, können Clients, die noch sslv23 verwenden, keine Verbindung herstellen. Hier müssen Sie Python selbst patchen.

Schritt 1

Laden Sie das Python2.6-Quellpaket herunter und entpacken Sie es

wget http://vault.centos.org/6.5/updates/Source/SPackages/python-2.6.6-52.el6.src.rpm
mkdir -p ~/rpmbuild/SOURCES
cd ~/rpmbuild/SOURCES
wget http://vault.centos.org/6.5/updates/Source/SPackages/python-2.6.6-52.el6.src.rpm
rpm2cpio python-2.6.6-52.el6.src.rpm | cpio -idmv

Schritt 2

Wenden Sie den Patch an

disable-ssl3.patch


--- /dev/null
+++ b/SOURCES/python-2.6-disable-ssl3.patch
@@ -0,0 +1,17 @@
+--- Python-2.6.6.orig/Modules/_ssl.c
++++ Python-2.6.6/Modules/_ssl.c
+@@ -359,7 +386,12 @@ newPySSLObject(PySocketSockObject *Sock, char *key_file, char *cert_file,
+     }
+ 
+     /* ssl compatibility */
+-    SSL_CTX_set_options(self->ctx, SSL_OP_ALL);
++    long options = SSL_OP_ALL;
++    if (proto_version != PY_SSL_VERSION_SSL2)
++        options |= SSL_OP_NO_SSLv2;
++    if (proto_version != PY_SSL_VERSION_SSL3)
++        options |= SSL_OP_NO_SSLv3;
++    SSL_CTX_set_options(self->ctx, options);
+ 
+     verification_mode = SSL_VERIFY_NONE;
+     if (certreq == PY_SSL_CERT_OPTIONAL)
+
--- a/SOURCES.bak/python.spec
+++ b/SOURCES/python.spec
@@ -47,7 +47,7 @@
 Summary: An interpreted, interactive, object-oriented programming language
 Name: %{python}
 Version: 2.6.6
-Release: 52%{?dist}
+Release: 52%{?dist}_1
 License: Python
 Group: Development/Languages
 Provides: python-abi = %{pybasever}
@@ -453,6 +453,7 @@ Patch171: python-2.6.6-CVE-2013-4238-hostname-check-bypass-in-SSL-module.patch
 # (rhbz#1002983)
 Patch172: python-2.6.6-ssl-memory-leak-_get_peer_alt_names.patch
 
+Patch10000: python-2.6-disable-ssl3.patch
 
 # The core python package contains just the executable and manpages; most of
 # the content is now in the -libs subpackage.
@@ -790,6 +791,8 @@ mv Modules/cryptmodule.c Modules/_cryptmodule.c
 
 %patch172 -p1
 
+%patch10000 -p1
+
 # Don't build these crypto algorithms; instead rely on _hashlib and OpenSSL:
 for f in md5module.c md5.c shamodule.c sha256module.c sha512module.c; do
     rm Modules/$f

Führen Sie diesen Befehl aus, nachdem Sie diese Datei in ~ / abgelegt haben

patch < ~/disable-ssl3.patch

Schritt 3

Wiederaufbauen

rpmbuild -ba python.spec

Alles was Sie tun müssen, ist die letzte Drehzahl zu installieren.

Testen, ob die Verwendung von ssl3 tatsächlich verboten wurde

openssl s_client -connect ip:port -ssl3

Wenn der Handshake aufgrund eines Fehlers fehlschlägt, ist er erfolgreich.

Recommended Posts

Deaktivieren Sie das python2.6 ssl3-Protokoll in centos6
Verwenden Sie das Messprotokoll mit Python
Lesen Sie die Protokollpufferdaten mit Python3
Deaktivieren Sie die SSL-Validierung, ohne in Python-Anforderungen verify = False zu verwenden
2017-03-17 CentOS 6.8> Python 3.6.0 wurde in virutalenv eingeführt / gestartet / gestoppt
Quadtree in Python --2
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Metaanalyse in Python
Python2.7 + CentOS7 + OpenCV3
Unittest in Python
Epoche in Python
Zwietracht in Python
Deaktivieren Sie CentOS 7 Selinux
Deutsch in Python
DCI in Python
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Plink in Python
Konstante in Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python
Reflexion in Python
Chemie mit Python
Hashbar in Python
DirectLiNGAM in Python
CentOS8 --Installieren - Python3
LiNGAM in Python
In Python reduzieren
In Python flach drücken
Option zum Deaktivieren des stdout / stderr-Puffers in Python
Sortierte Liste in Python
Legen Sie matplotlib in Centos7.
Täglicher AtCoder # 36 mit Python
Clustertext in Python
AtCoder # 2 jeden Tag mit Python
Täglicher AtCoder # 32 in Python
Täglicher AtCoder # 6 in Python
Bearbeiten Sie Schriftarten in Python
Singleton-Muster in Python