Instalar PHP 5.6 y PHP 7.0 con Nginx en CentOS 7.x
Con este tutorial instalaremos Nginx en CentOS 7.x por tu propia cuenta podrás preparar cualquier servidor con única y exclusivamente lo necesario, hablamos de PHP 5.6, PHP 7.0, Nginx, Antivirus ClamAV, Antimalware Maldetect, MariaDB (MySQL) y VSFTPD haciendo uso de los repositorios REMI y EPEL. Así que, sin mucho palabrerío, comenzamos.
Requisitos mínimos:
Ocupamos un servidor no importa si es un servidor dedicado, si es un servidor virtual o un servidor en la nube, esto básicamente aplica para todos, lo importante es que tu servidor tenga como mínimo 1GB de memoria RAM disponible, 10GB de disco duro, 10Mbps de Internet dedicado y 1 core al menos de 1 Ghz. No obstante con esto podemos comenzar nuestra aventura del aprendizaje en tan solo unos próximos y sencillos pasos, puedes igual hacer esto con alguna computadora vieja y no precisamente un servidor.
Es recomendado tener:
Una IP fija (puedes hacer uso de un hostname gratuito de NoIP si lo estás haciendo desde la comodidad de tu casa e instalarte el cliente para que vaya dando el update cada vez que reinicies el router, abrir puertos en tu router y apuntar el DMZ a la ip local de tu computador/servidor).
Ocupamos instalar lo siguiente:
CentOS 7.x x64 Minimal, es recomendable dejar que la distribución auto particione el disco duro principal de la máquina a no ser que seas alguien experimentado con la suficiente experiencia de distribuir este tipo de acciones, estableces tu zona horaria, creas tu usuario personalizado con permisos de administrador y nos vamos a la pantalla negra al terminar la instalación.
1) En primer lugar borramos los repositorios que no vamos a utilizar
# cd /etc/yum.repos.d # rm CentOS-Media.repo CentOS-CR.repo CentOS-Sources.repo google-cloud.repo CentOS-Debuginfo.repo CentOS-Vault.repo CentOS-fasttrack.repo epel-testing.repo
2) Luego asegurándonos de que los repositorios base y epel estén activos sin ningún otro adicional
Ahora vamos a editar los únicos dos repositorios que hemos dejado como existentes el cual deben de ser CentOS-Base.repo y epel.repo a no ser que tu instalación tenga puesto alguno adicional.
– Archivo CentOS-Base.repo
[base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 [updates] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 [extras] name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 [centosplus] name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra gpgcheck=1 enabled=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
– Archivo epel.repo
[epel] name=Extra Packages for Enterprise Linux 7 - $basearch metalink=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Debido a que EPEL necesita que instales el yum-plugin-priorities lo puedes hacer mediante
yum install -y yum-plugin-priorities
3) Actualizando yum, instalando el repositorio Remi, el paquete Memcached, el Antivirus ClamAV y cosas importantes que ocuparemos luego
Limpiamos el repositorio
Es importante primero limpiar el cache para cuando vamos a realizar un upgrade al sistema por lo que vamos utilizar los siguientes comandos.
# yum clean all # yum upgrade -y && yum autoremove -y # rm -rf /etc/yum.repos.d/*.rpmnew
Lo que hemos hecho es que hemos borrado todo rastro de los respositorios que tenemos instalado, esto nos sirve para tener un respositorio actualizado y por tener posible repositorios corruptos. Luego instalamos el paquete autoremove para que no nos tenemos que preocupar de borrar paquetes que no vamos a utilizar cuando borremos algun programa.
Instalar el repositorio REMI
Para empezar el repositorio de Remi proporciona versiones más recientes del software en los repositorios Core CentOS y Red Hat Enterprise Linux. Tener en cuenta que al mismo tiempo el repositorio de Remi depende del repositorio EPEL.
Las instrucciones siguientes utilizan los paquetes de 64 bits por lo tanto debes de asegurarte que tu servidor sea compactible.
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm # yum update -y
El repositorio de Remi es muy estable, gratuito y popular, así que no dude en agregar el repositorio a la lista de repositorios en su servidor.
Nota: debido a que Remi utiliza los nombres de paquetes que son los mismos que los nombres de paquetes en los repositorios oficiales.
Dejando sólo lo necesario
Sin embargo el repositorio Remi está desactivado de forma predeterminada. Para ello debemos de crear una nueva configuracion para el repositorio Remi de la forma siguiente.
Primero crear el repositorio default del Remi.
– remi.repo
# nano /etc/yum.repos.d/remi.repo
[remi] name=Remi's RPM repository for Enterprise Linux 7 - $basearch mirrorlist=http://rpms.remirepo.net/enterprise/7/remi/mirror enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
Segundo creamos un archivo para el repositio Remi PHP 7.0.
– remi-php70
# nano /etc/yum.repos.d/remi-php70.repo
[remi-php70] name=Remi's PHP 7.0 RPM repository for Enterprise Linux 7 - $basearch mirrorlist=http://rpms.remirepo.net/enterprise/7/php70/mirror enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
Por ultimo creamos un archivo para el repositio Remi PHP 5.6.
– remi-php56
# nano /etc/yum.repos.d/remi-php56
[remi-php56] name=Remi's PHP 5.6 RPM repository for Enterprise Linux 7 - $basearch mirrorlist=http://rpms.remirepo.net/enterprise/7/php56/mirror enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
Actualizamos los paquetes
Es muy importante tener todos los paquetes actualizados por lo que vamos utilizar los siguientes comandos.
# yum clean all # rm -rf /var/cache/yum # yum upgrade -y
En que consiste esto, primero limpiamos el cache y nos aseguramos de actualizar para los paquetes más recientes.
Instalando componentes
# yum groupinstall -y "SNMP Support" "Legacy UNIX Compatibility" "Development Tools" "Compatibility Libraries" # yum install -y mesa-libGL-devel mesa-libGLU-devel libXi-devel libXmu-devel freeglut-devel SDL-devel alsa-lib-devel freetype-devel giflib gsm gsm-devel imlib2 imlib2-devel libICE-devel libSM-devel libX11-devel libXau-devel libXdmcp-devel libXext-devel libXrandr-devel libXrender-devel libXt-devel libid3tag libogg-devel libvorbis-devel mesa-libGL-devel mesa-libGLU-devel xorg-x11-proto-devel zlib-devel libtheora libtheora-devel glibc gcc gcc-c++ autoconf automake libtool subversion ncurses-devel libdc1394 libdc1394-devel yasm nasm libmcrypt libmcrypt-devel libpq* libc-client-devel curl* *curl curl-devel openssl* libcurl* bzip2* bzip* libx* curl* png* jpeg* psmisc* inotify* # systemctl set-default multi-user.target # yum remove -y selinux-policy* firewall* # chkconfig iptables off chkconfig ip6tables off chkconfig ipset off
Breve explicación: Con el anterior comando, vamos a instalar varias librerías que ocuparan nuestros sitios web o determinados plugins, quizás no se usen todas, pero siempre es bueno tener instaladas todas las que anteriormente he escrito, aparte, adicionalmente se desactiva el SELinux y el Firewall por default del sistema para prevenir conflictos, bloqueos de puertos inesperados y cualquier detalle no deseado de lugar.
Instalar soporte PHP
Por esta razón es importante instalar en un servidor web el soporte para crear sitios dinámicos con PHP, para esto es necesario instalar en tu servidor Centos 7 los paquetes necesarios para poder procesar scripts PHP.
Por lo tanto para instalar PHP en Centos 7 sigue estos pasos.
Instalando PHP 5.6
# yum install -y php56-php php56-php-bcmath php56-php-cli php56-php-common php56-php-dba php56-php-devel php56-php-enchant php56-php-fpm php56-php-gd php56-php-gmp php56-php-imap php56-php-interbase php56-php-intl php56-php-ioncube-loader php56-php-ldap php56-php-litespeed php56-php-lz4 php56-php-magickwand* php56-php-mbstring php56-php-mcrypt php56-php-mysqlnd php56-php-odbc php56-php-opcache php56-php-pdo php56-php-pear php56-php-pecl-env php56-php-pecl-geoip php56-php-pecl-gnupg php56-php-pecl-igbinary php56-php-pecl-igbinary-devel php56-php-pecl-imagick php56-php-pecl-imagick-devel php56-php-pecl-inotify php56-php-pecl-json* php56-php-pecl-lzf php56-php-pecl-mailparse php56-php-pecl-memcache php56-php-pecl-memcached php56-php-pecl-msgpack php56-php-pecl-msgpack-devel php56-php-pecl-mysqlnd* php56-php-mysqlnd* php56-php-pecl-newt php56-php-pecl-redis php56-php-pecl-scrypt php56-php-pecl-sqlite* php56-php-sqlite* php56-php-pecl-uploadprogress php56-php-pecl-xmldiff php56-php-pecl-xmldiff-devel php56-php-pecl-yaml php56-php-pecl-zip php56-php-phpiredis* php56-php-process php56-php-pspell php56-php-snmp php56-php-soap php56-php-tidy php56-php-xml php56-php-xmlrpc php56-runtime
Instalando PHP 7.0
# yum install -y php70-php php70-php-bcmath php70-php-cli php70-php-common php70-php-dba php70-php-devel php70-php-enchant php70-php-fpm php70-php-gd php70-php-gmp php70-php-imap php70-php-interbase php70-php-intl php70-php-ioncube-loader php70-php-ldap php70-php-litespeed php70-php-lz4 php70-php-magickwand* php70-php-mbstring php70-php-mcrypt php70-php-mysqlnd php70-php-odbc php70-php-opcache php70-php-pdo php70-php-pear php70-php-pecl-env php70-php-pecl-geoip php70-php-pecl-gnupg php70-php-pecl-igbinary php70-php-pecl-igbinary-devel php70-php-pecl-imagick php70-php-pecl-imagick-devel php70-php-pecl-inotify php70-php-pecl-json* php70-php-pecl-lzf php70-php-pecl-mailparse php70-php-pecl-memcache php70-php-pecl-memcached php70-php-pecl-msgpack php70-php-pecl-msgpack-devel php70-php-pecl-mysqlnd* php70-php-mysqlnd* php70-php-pecl-newt php70-php-pecl-redis php70-php-pecl-scrypt php70-php-pecl-sqlite* php70-php-sqlite* php70-php-pecl-uploadprogress php70-php-pecl-xmldiff php70-php-pecl-xmldiff-devel php70-php-pecl-yaml php70-php-pecl-zip php70-php-phpiredis* php70-php-process php70-php-pspell php70-php-snmp php70-php-soap php70-php-tidy php70-php-xml php70-php-xmlrpc php70-runtime php-mysqlnd
El paquete PHP7 instala como dependencia el servidor Apache por lo que estamos instalando NGINX para nuestro uso vamos a deshabilitarlo para que no entre en conflicto los dos servidores web.
# chkconfig httpd off # service httpd stop
Instalar NGINX y MariaDB
NGINX
Para empezar NGINX es un servidor web gratuito en código abierto y muy potente, también puede ser utilizado como reverse proxy (proxy invertido) que puede ser muy util para cuando se maneja alto trafico, tener un nivel de seguridad más sostificado y quieres aumentar el rendimiento en tus sitios webs.
MariaDB
Entonces que es MariaDB es un fork de código abierto y libre del bien conocido MySQL un sistema de gestión de bases de datos, que fue desarrollada por unos integrantes detrás del equipo MySQL manteniendo que igual fuera libre y de código abierto.
Ahora que tenemos un servidor web y el servidor de la base de datos, vamos a realizar las siguientes instruciones para poder instalarlo a continuación.
Para empezar remplaza e inserta este codigo para NGINX y MariaDB.
# nano /etc/yum.repos.d/nginx.repo
[nginx] name=nginx repo baseurl=http://nginx.org/packages/mainline/centos/7/x86_64/ gpgkey=http://nginx.org/keys/nginx_signing.key gpgcheck=1 enabled=1
# nano /etc/yum.repos.d/maria.repo
[mariadb] name MariaDB baseurl = http://yum.mariadb.org/10.2/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 enabled=1
Actualizamos los repositorios y luego lo instalamos
# yum update -y # yum install -y nginx MariaDB-server MariaDB-client php-mysql
Configurando PHP 5.6 y PHP 7.0
En primer lugar vamos a crear los archivos de configuración del PHP, para esto debemos primero hacer un respaldo de nuestra configuración por defecto.
# mkdir php70 php56 # chmod 7777 php70 php56 # cp /etc/opt/remi/php70/php-fpm.conf /etc/opt/remi/php70/php-fpm.conf.orig # cp /opt/remi/php56/root/etc/php-fpm.conf /opt/remi/php56/root/etc/php-fpm.conf.orig
A continuación vamos configurar PHP-FPM 7.0
# nano /etc/opt/remi/php70/php-fpm.conf
include=/php70/*.conf [global] pid = /php70/php-fpm.pid error_log = /php70/error.log daemonize = yes
A continuación vamos configurar PHP-FPM 5.6
# nano /opt/remi/php56/root/etc/php-fpm.conf
include=/php56/*.conf [global] pid = /php56/php-fpm.pid error_log = /php56/error.log daemonize = yes
A continuación vamos configurar el pool PHP-FPM 7.0
# nano /php70/www.conf
[www] listen = 127.0.0.1:7000 user = www group = www pm = dynamic pm.max_children = 50 pm.start_servers = 3 pm.min_spare_servers = 3 pm.max_spare_servers = 12
A continuación vamos configurar el pool PHP-FPM 5.6
# nano /php56/www.conf
[www] listen = 127.0.0.1:5600 user = www group = www pm = dynamic pm.max_children = 50 pm.start_servers = 3 pm.min_spare_servers = 3 pm.max_spare_servers = 12
A continuación agremos el usuario apache y nobody al group de nginx
# usergroup add nginx # usermod -G nginx apache # usermod -G nginx nobody # useradd www # usermod -G nginx www
Finalmente nuestro usuario es en este ejemplo www , es recomendable que le pongamos una clave haciendo uso del siguiente comando
# passwd www
Activar servicios y configurando NGINX
Antes de que comencemos en utilizar los servicios web, base de datos y usar PHP primero debemos de asegurarnos de activar los servicios seguidamente verificar que los servicios trabajen adecuadamente.
Activando servicios
Primero debemos activar los servicios para que arranquen automaticamente cuando se reinicie el servidor
# chkconfig nginx on chkconfig mariadb on chkconfig php56-php-fpm on chkconfig php70-php-fpm on
Finalmente para estar seguro que esta todo bien reiniciaremos los servicios de MySQL y PHP
# service nginx restart service mariadb restart service php56-php-fpm restart service php70-php-fpm restart
Una vez que todo esta activado y no reportan errores al querer reiniciar los servicios entonces vamos a la parte de la configuración.
Configurando NGINX
Borramos la configuración por defecto y agregamos una configuracion nueva
# cd /etc/nginx # cp -a conf.d nginx.conf conf.d.old nginx.conf.old # rm -rf conf.d nginx.conf
Ahora inserta este codigo en el archivo nginx.conf a continuación
# nano /etc/nginx/nginx.conf
user nginx; worker_processes auto; worker_rlimit_nofile 65535; error_log /var/log/nginx/error.log crit; pid /var/run/nginx.pid; events { worker_connections 1024; use epoll; multi_accept on; } http { sendfile on; tcp_nopush on; tcp_nodelay on; client_header_timeout 1m; client_body_timeout 1m; client_header_buffer_size 2k; client_body_buffer_size 256k; client_max_body_size 256m; large_client_header_buffers 4 8k; send_timeout 30; keepalive_timeout 60 60; reset_timedout_connection on; server_tokens off; server_name_in_redirect off; server_names_hash_max_size 512; server_names_hash_bucket_size 512; log_format main '$remote_addr - $remote_user [$time_local] $request ' '"$status" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; log_format bytes '$body_bytes_sent'; #access_log /var/log/nginx/access.log main; access_log off; include /etc/nginx/mime.types; default_type application/octet-stream; gzip on; gzip_comp_level 9; gzip_min_length 512; gzip_buffers 8 64k; gzip_types text/plain text/css text/javascript text/js text/xml application/json application/javascript application/x-javascript application/xml application/xml+rss application/x-font-ttf image/svg+xml font/opentype; gzip_proxied any; gzip_disable "MSIE [1-6]\."; proxy_redirect off; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass_header Set-Cookie; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffers 32 4k; ssl_session_cache shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4"; proxy_cache_path /var/cache/nginx levels=2 keys_zone=cache:10m inactive=60m max_size=1024m; proxy_cache_key "$host$request_uri $cookie_user"; proxy_temp_path /var/cache/nginx/temp; proxy_ignore_headers Expires Cache-Control; proxy_cache_use_stale error timeout invalid_header http_502; proxy_cache_valid any 1d; map $http_cookie $no_cache { default 0; ~SESS 1; ~wordpress_logged_in 1; } open_file_cache max=10000 inactive=30s; open_file_cache_valid 60s; open_file_cache_min_uses 2; open_file_cache_errors off; include /etc/nginx/conf.d/*.conf; }
Crear una carpeta de configuracion para NGINX
Crearemos un carpeta de configuración y modificaremos los permisos para que corra correctamente el NGINX.
# cd /etc/nginx # mkdir conf.d # chmod 7777 -R /var/cache /opt/remi/php56/root/var/lib/php /opt/remi/php70/root/usr/include/php
A continuación configura el usuario www para NGINX
# nano /etc/nginx/conf.d/www.conf
server { listen *:80; server_name _; autoindex on; root /home/www/web; index index.php index.html index.htm; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location / { location ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|css|js)$ { expires max; } location ~ [^/]\.php(/|$) { fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; if (!-f $document_root$fastcgi_script_name) { return 404; } fastcgi_pass 127.0.0.1:5600; fastcgi_index index.php; include /etc/nginx/fastcgi_params; } } location ~* "/\.(htaccess|htpasswd)$" { deny all; return 404; } }
Optional: Si quieres agregar el estado del NGINX agregar el siguiente codigo
# nano /etc/nginx/conf.d/status.conf
server { listen *:81 default; server_name _; server_name_in_redirect off; location / { stub_status on; access_log off; } }
Finalizando
Finalmente solo resta configurar la version del PHP que queremos instalar en dicha pagina. Para empezar en la parte donde tienes que fijarte es la linea donde dice fastcgi_pass
. Así como en el ejemplo anterior para el usuario www /home/www/web tenemos fastcgi_pass 127.0.0.1:5600;
que indica la version PHP 5.6 si queremos la version 7.0 unicamente cambiar por fastcgi_pass 127.0.0.1:7000;
.
Luego necesitamos crear esta carpeta /home/www/web para comenzar alojar contenido.
Lo siguiente es que tienes ejecutar el comando.
# mkdir /home/www/web chown www:www -R /home/www
Nota: Es importante que a medidas vayas agregando sitios es importante que ocuparas ir variando los .conf dentro de /php56 y /php70 acorde a la versión de PHP y por lo que luego ir agregandolos en la carpeta de configuración del NGINX en /etc/nginx/conf.d
Si tu sitio es una instalación del WordPress para que te funcione las URL amigables en NGINX lo que deberas es agregar estas lineas a continuación.
location / { try_files $uri $uri/ /index.php?$args; }
Para más información lee la documentación oficial del WordPress la puedes encontrar aquí.
Por ultimo está etapa con:
# service nginx restart
4) Configurando Memcached, Instalando Maldetect, Actualizando ClamAV y concluyendo con VSFTPD
Instalar Memcached
Primero para instalar Memcached en CentOS utilice cualquiera de los siguientes comandos
# yum install -y memcached memcached-devel libmemcached libmemcached-devel*
El archivo de configuración de Memcached está disponible en/etc/sysconfig/Memcached
con los valores predeterminados establecidos de la siguiente manera:
nano /etc/sysconfig/memcached
PORT="11211" USER="memcached" MAXCONN="10240" CACHESIZE="10240" OPTIONS=""
El atributo PORT
especificado en el archivo anterior de la configuración indica el puerto que correra el memcached que por lo generalmente viene por defecto el puerto 11211
y utilizan el protocolo TCP y UDP.
Lo siguiente el atributo MAXCONN
representa el número máximo de conexiones simultáneas para el Memcached. Cambiarlo a un valor más alto generalmente es aceptable. Por lo que utilice el comando stats para buscar el atributo listen_disabled_num
este valor debe ser cero. Si el número es mayor, indica que hay perdidas en las conexiones y por lo tanto debe considerar la posibilidad de aumentar el valor MAXCONN
.
Lo ajustas a tu gusto y luego
# service memcached restart # chkconfig memcached on
Instalar Antivirus y Malware
Es muy importante tener instalado un antivirus en nuesto servidor por posibles virus que puede ser instalado y de la misma manera es buena practica en tener seguro nuestro servidor.
ClamAV
No hay muchos virus hechos para las distribuciones de Linux y como tal, la mayoría de las personas que utilizan estos sistemas ni siquiera se molestan en el uso de un antivirus.
ClamAV es un motor anti-virus de código abierto que se creo principalmente para detectar virus, troyanos, malware y otras amenazas. Soporta múltiples formatos de archivo y utiliza funciones de escáner en multi-thread para que su busqueda sea rapida. A continuación veremos como podemos tener seguro nuestro servidor siguiendo los pasos siguientes.
En primer lugar es instalar y obtener las últimas actualizaciones de firmas. Para hacer esto en CentOS aplicas el siguiente comando.
# yum install -y clamav clamav-data clamav-devel clamav-filesystem clamav-lib clamav-scanner clamav-scanner-systemd clamav-server clamav-server-systemd clamav-unofficial-sigs clamav-update
Maldetect
LMD no está disponible en los repositorios en línea, pero se distribuye como un tarball desde el sitio web del proyecto. Ese archivo el tarball contiene el código fuente de la última versión que siempre está disponible en el siguiente enlace, donde se puede descargar con:
# cd # wget http://www.rfxn.com/downloads/maldetect-current.tar.gz # tar -xvf maldetect-current.tar.gz # cd maldetect* # ./install.sh # ln -s /usr/local/maldetect/maldet /bin/maldet # ln -s /usr/local/maldetect/maldett /bin/lmd # hash -r # maldet -u # maldet -d # freshclam
Para ponerlo a trabajar en tiempo real basta con instalar inotify mediante yum install inotify* -y y seguido correr maldet -m /home, para poder escanear es tan simple y sencillo que solo tienes que correr maldet -a /home, entonces él hará un escaneo completo de tu directorio home (suele tardar bastante). Para que maldet automáticamente mueva amenazas o las detecte correctamente ocuparas configurar el conf.maldet ubicado en el directorio /usr/local/maldetect.
VSFTPD
Para empezar VSFTPD representa el daemon de protocolo de transferencia de archivos muy seguro. Puesto que es un servidor FTP con licencia GPL para sistemas UNIX, incluyendo Linux. Por lo cual es seguro y extremadamente rápido y estable.
Instalar y configurando VSFTPD
Primero vamos a instalar el servidor VSFTPD con el siguiente comando.
# yum install -y vsftpd
Una vez finalizada la instalación, es bueno mantener el archivo de configuración original para la copia de seguridad.
# cd /etc/vsftpd # cp vsftpd.conf vsftpd.conf.orig
Después inserta está configuración en el VSFTPD
# nano /etc/vsftpd/vsftpd.conf
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 anon_umask=022 anon_upload_enable=NO dirmessage_enable=YES xferlog_enable=YES dual_log_enable=YES connect_from_port_20=YES xferlog_std_format=YES chroot_local_user=YES allow_writeable_chroot=YES listen=YES listen_port=5656 pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES force_dot_files=YES ascii_upload_enable=YES ascii_download_enable=YES pasv_enable=YES pasv_max_port=12100 pasv_min_port=12000 use_localtime=YES ssl_enable=NO
En la línea listen_port=5656 podrás apuntar al puerto que gustes, para poderte conectar a FTP ocuparas establecer o tener establecida un password a tu usuario www o el que hayas creado, seguido de esto un cliente como el Filezilla o de tu preferencia
Finalmente agregamos el servicio se ejecute automaticamente tras reinciar el servidor.
# chkconfig vsftpd on
En conclusión
En resumen, en este sencillo tutorial, le mostramos cómo instalar NGINX, PHP, MariaDB y ClamAV en la versión estable en CentOS. Si tienes comentarios o tienes alguna duda no dudes en escribirnos.