Désactiver le protocole python2.6 ssl3 sur centos6

Pour savoir pourquoi vous devez l'interdire, recherchez SSL POODLE. Si vous remplacez sslv23 par tlsv1 depuis le serveur, les clients utilisant encore sslv23 ne pourront pas se connecter. Ici, vous devez patcher python lui-même.

Étape 1

Téléchargez et décompressez le paquet source python2.6

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

Étape 2

Appliquer le patch

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

Exécutez cette commande après avoir placé ce fichier dans ~ /

patch < ~/disable-ssl3.patch

Étape 3

Reconstruire

rpmbuild -ba python.spec

Tout ce que vous avez à faire est d'installer le dernier rpm.

Tester si l'utilisation de ssl3 a été effectivement interdite

openssl s_client -connect ip:port -ssl3

Si la prise de contact échoue en raison d'une erreur, elle réussira.

Recommended Posts

Désactiver le protocole python2.6 ssl3 sur centos6
Utiliser le protocole de mesure avec Python
Lire les données des tampons de protocole avec Python3
Désactiver la validation SSL sans utiliser verify = False dans les requêtes Python
2017-03-17 CentOS 6.8> Python 3.6.0 introduit / démarré / arrêté dans virutalenv
Quadtree en Python --2
CURL en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Python2.7 + CentOS7 + OpenCV3
Unittest en Python
Époque en Python
Discord en Python
Désactiver CentOS 7 selinux
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
Hashable en Python
DirectLiNGAM en Python
CentOS8 --Installer --Python3
LiNGAM en Python
Aplatir en Python
Aplatir en python
Option pour désactiver le tampon stdout / stderr en Python
Liste triée en Python
Mettez matplotlib dans Centos7.
AtCoder # 36 quotidien avec Python
Texte de cluster en Python
AtCoder # 2 tous les jours avec Python
Daily AtCoder # 32 en Python
Daily AtCoder # 6 en Python
Modifier les polices en Python
Motif singleton en Python