Guest viewing is limited

compilar socat en entorno ubuntu para ubuntu 12.04

††LUCIFER††

Bueno os dejo como crearnos nuestra version socat con ubuntu...


Aunque podemos instalar socat poniendo en terminal:


apt-get install socat


Pero en caso que queramos compilar la ultima version de socat por nosotros mismos, haremos los pasos siguientes:


A) Instalamos las librerias necesarias para que nos funcione ./configure, para ellos:


Code:
apt-get install autotools-dev


Code:
apt-get install automake


Code:
apt-get install autoconf


Code:
apt-get install libtoolize


Code:
apt-get install build-essential


Code:
apt-get install g++


B) Instalamos librerias tcp-wrappers necesarias, para ello:


Code:
apt-get install libwrap0-dev




C) Nos descargamos la ultima version socat de su pagina oficial:


Index of /socat/download




D) descomprimimos los archivos por ejemplo en /usr/local/bin/


E) En caso que nos hallamos descargado la ultima version pues en terminal ponemos:


cd /usr/local/bin/socat-2.0.0-b5


F) A continuacion en terminal ponemos sudo ./configure




http://**********.us/a/img826/135/soca1.png




G) Como este pograma lleva el protocolo SSLv2 que esta obsoleto por muchos problemas de seguridad esta eliminado de ubuntu ultimas versiones,por lo tanto si ahora usaramos make, daria error en ese protocolo ya que esta eliminado de ubuntu, por lo tanto vamos a eliminarlo nosotros antes de seguir compilando:


g.1) abrimos el archivo sslcls.c de la carpeta /usr/local/bin/socat-2.0.0-b5


y eliminamos esto:




Code:
SSL_METHOD *sycSSLv2_client_method(void) {
 SSL_METHOD *result;
 Debug("SSLv2_client_method()");
 result = SSLv2_client_method();
 Debug1("SSLv2_client_method() -> %p", result);
 return result;
}


SSL_METHOD *sycSSLv2_server_method(void) {
 SSL_METHOD *result;
 Debug("SSLv2_server_method()");
 result = SSLv2_server_method();
 Debug1("SSLv2_server_method() -> %p", result);
 return result;
}




g.2) Abrimos el archivo xio-openssl.c de la carpeta /usr/local/bin/socat-2.0.0-b5 y buscamos esta parte:




Code:
if (!server) {
 if (me_str != 0) {
 if (!strcasecmp(me_str, "SSLv2") || !strcasecmp(me_str, "SSL2")) {
 method = sycSSLv2_client_method();
 } else if (!strcasecmp(me_str, "SSLv3") || !strcasecmp(me_str, "SSL3")) {
 method = sycSSLv3_client_method();
 } else if (!strcasecmp(me_str, "SSLv23") || !strcasecmp(me_str, "SSL23") ||
 !strcasecmp(me_str, "SSL")) {
 method = sycSSLv23_client_method();
 } else if (!strcasecmp(me_str, "TLSv1") || !strcasecmp(me_str, "TLS1") ||
 !strcasecmp(me_str, "TLS")) {
 method = sycTLSv1_client_method();
 } else {
 Error1("openssl-method=\"%s\": unknown method", me_str);
 method = sycSSLv23_client_method()/*!*/;
 }
 } else {
 method = sycSSLv23_client_method()/*!*/;
 }
 } else /* server */ {
 if (me_str != 0) {
 if (!strcasecmp(me_str, "SSLv2") || !strcasecmp(me_str, "SSL2")) {
 method = sycSSLv2_server_method();
 } else if (!strcasecmp(me_str, "SSLv3") || !strcasecmp(me_str, "SSL3")) {
 method = sycSSLv3_server_method();
 } else if (!strcasecmp(me_str, "SSLv23") || !strcasecmp(me_str, "SSL23") ||
 !strcasecmp(me_str, "SSL")) {
 method = sycSSLv23_server_method();
 } else if (!strcasecmp(me_str, "TLSv1") || !strcasecmp(me_str, "TLS1") ||
 !strcasecmp(me_str, "TLS")) {
 method = sycTLSv1_server_method();
 } else {
 Error1("openssl-method=\"%s\": unknown method", me_str);
 method = sycSSLv23_server_method()/*!*/;
 }
 } else {
 method = sycSSLv23_server_method()/*!*/;
 }
 }


y la ponemos por ejemplo de esta manera:




Code:
if (!server) {
 if (me_str != 0) {
 if (!strcasecmp(me_str, "SSLv23") || !strcasecmp(me_str, "SSL23")) {
 method = sycSSLv3_client_method();
 } else if (!strcasecmp(me_str, "SSLv3") || !strcasecmp(me_str, "SSL3")) {
 method = sycSSLv3_client_method();
 } else if (!strcasecmp(me_str, "SSLv23") || !strcasecmp(me_str, "SSL23") ||
 !strcasecmp(me_str, "SSL")) {
 method = sycSSLv23_client_method();
 } else if (!strcasecmp(me_str, "TLSv1") || !strcasecmp(me_str, "TLS1") ||
 !strcasecmp(me_str, "TLS")) {
 method = sycTLSv1_client_method();
 } else {
 Error1("openssl-method=\"%s\": unknown method", me_str);
 method = sycSSLv23_client_method()/*!*/;
 }
 } else {
 method = sycSSLv23_client_method()/*!*/;
 }
 } else /* server */ {
 if (me_str != 0) {
 if (!strcasecmp(me_str, "SSLv23") || !strcasecmp(me_str, "SSL23")) {
 method = sycSSLv3_server_method();
 } else if (!strcasecmp(me_str, "SSLv3") || !strcasecmp(me_str, "SSL3")) {
 method = sycSSLv3_server_method();
 } else if (!strcasecmp(me_str, "SSLv23") || !strcasecmp(me_str, "SSL23") ||
 !strcasecmp(me_str, "SSL")) {
 method = sycSSLv23_server_method();
 } else if (!strcasecmp(me_str, "TLSv1") || !strcasecmp(me_str, "TLS1") ||
 !strcasecmp(me_str, "TLS")) {
 method = sycTLSv1_server_method();
 } else {
 Error1("openssl-method=\"%s\": unknown method", me_str);
 method = sycSSLv23_server_method()/*!*/;
 }
 } else {
 method = sycSSLv23_server_method()/*!*/;
 }
 }




H) Bueno pues ya podemos continuar, ahora en consola terminal ponemos:


Code:
sudo make




http://**********.us/a/img688/3074/soca2.png


I) y luego para terminar:




Code:
sudo make install




http://**********.us/a/img269/769/soca3.png




y eso es todo:




http://**********.us/a/img405/6017/soca4.png
 

Similar threads

G
Replies
7
Views
987
paco-50
P
K
Replies
84
Views
3K
Javilonas
Javilonas
P
Replies
0
Views
527
ptergrand
P
anatulfo
Replies
6
Views
3K
Arduramix
Arduramix
Back
Top