Cualquiera que trabaje profesionalmente con alojamiento web conoce la amenaza que representan los usuarios infectados con malware, shells web, etc.. En el caso general se usa Maldet un guión no está mal. Se distingue por 3 cosas

  1. Es terriblemente lento
  2. Es terriblemente lento, y si lo pones en modo de monitoreo, se dañará con tu servidor
  3. Admite una base de datos propia con definiciones md5 / hex para código incorrecto.

Es su última característica lo que lo hace útil., porque, entre otras cosas, puede enviar archivos que no se han detectado hasta ahora e ingresarán a las bases de datos en una etapa posterior.. Como compartí en punto 1 y 2 su velocidad es sorprendentemente baja – a baja carga de la máquina, se escanearon 70k archivos en aproximadamente una hora y media. Por esta razón, comencé a ayudar a mi buen amigo ShadowX con malmon – Una alternativa a Maldet escrita en Python con un poco más de flexibilidad. Desafortunadamente por falta de tiempo (principalmente pero no solo) no hemos completado el proyecto, que no es muy utilizable en este momento – hay muchos errores que necesitan ser eliminados. En los últimos días tuve problemas con clientes infectados con CryptoPHP que tenían enormes archivos public_html ~ 60k + inods de usuario. Dado que se tuvo que escanear un total de más de 200k archivos, lo que tomaría aproximadamente 5+ horas decidí ajustar la configuración de maldet, para reducir los archivos que serán escaneados a un número y tiempo razonable. Cuando recogí el conf, noté las siguientes líneas

# Attempt to detect the presence of ClamAV clamscan binary
# and use as default scanner engine; up to four times faster
# scan performance and superior hex analysis. This option
# only uses ClamAV as the scanner engine, LMD signatures
# are still the basis for detecting threats.
# [ 0 = disabled, 1 = enabled; enabled by default ]
clamav_scan=1

Interesante… Aparentemente hay una oportunidad de usar ClamAV – que tampoco difiere en su alta velocidad, pero ¿por qué no intentarlo?. Lo instalé rápidamente

/scripts/update_local_rpm_versions --edit target_settings.clamav installed

/scripts/check_cpanel_rpms --fix --targets=clamav

Ejecuto el maldet en una pequeña carpeta – No veo diferencia en velocidad y comportamiento – usó su escáner perl en lugar del clamav. Después de una breve excavación a través de la fuente de maldet, encontré las siguientes líneas

 clamscan=`which clamscan 2> /dev/null`
 if [ -f "$clamscan" ] && [ "$clamav_scan" == "1" ]; then
        eout "{scan} found ClamAV clamscan binary, using as scanner engine..." 1
    for hit in `$clamscan -d $inspath/sigs/rfxn.ndb -d $inspath/sigs/rfxn.hdb $clamav_db -r --infected --no-summary -f $find_results 2> /dev/null | tr -d ':' | sed 's/.UNOFFICIAL//' | awk '{print$2":"$1}'`; do

Hmmm, hice uno cual clamscan y para mi gran sorpresa, descubrí que clamav no está en la RUTA, pero el estúpido Cpanel lo dejó solo en / usr / local / cpanel / 3rdparty / bin / desde donde usa sus archivos binarios. Una solución rápida solucionó el problema:

ln -s /usr/local/cpanel/3rdparty/bin/clamscan /usr/bin/clamscan

Al volver a escanear, maldet ya informa lo anterior

{scan} found ClamAV clamscan binary, using as scanner engine...

Después de usar ClamAV maldet, termina su escaneo 3-4-5 veces más rápido que antes. La prueba mostró – 70k inod-a los frotó durante aproximadamente 25 min que es sobre 3 veces y media más rápido que antes.

Antes de comenzar con otro odio al azar para 50 SO delgado quiero decir, que tengo que administrarlo todos los días y lo sé de primera mano singular bastante bien. Hoy me tomé el tiempo de probar la nueva característica mágica invisible y no vista para una actualización destructiva (seudo) 😀 . Lo primero que me sorprendió fue, que RedHat en su sabiduría infinita ha decidido dejar de admitir la arquitectura x86 🙄 . Напълно съм наясно че сме 2014-та година и сървърни процесори с 32 instrucciones de bits han faltado durante mucho tiempo. Мда ама какво правят потребителите на малки VPS-их64 лапа повече рам, así como míralo si tienes una máquina virtual delgada con 512 MB-1 GB de RAM, lucharás por cada megabyte y no desperdiciarás 20-30% solo para usar en el gran conjunto de instrucciones. Me equivoqué porque tenía instalado x86 CentOS y saqué un x64. Inmediatamente vi una diferencia en los ISO – ~ 100MB por mínimo 6.5. Maldije una vez más. Reinstalé mi máquina virtual y decidí ver qué tan bien RedHat hizo su trabajo – Exporté / var y / usr para separar particiones LVM 😈 . След инсталацията обнових всички пакети инсталирах си и apache, php, mysql и bindбеше интересно дали ще запалят сървисите. Отворих си като добра ученичка ръководството на CentOS за ъпдейта и започнах прилежно да го следва стъпка по стъпка. Cuando llegué al punto donde comenzó la actualización real, este puma me interrumpió, че имам критичен проблем 🙄 . Estoy revisando la salida detallada – mdaaaa / usr no puede estar en una partición separada 😆 Lo sabía, que no estaré decepcionado con Jim Whitehurst y compañía. Excepto “el extremo” problema había muchos mensajes sobre paquetes sin firmar, archivos de confiscación que no coinciden, etc.. WTF Ni siquiera había usado los terceros repositorios, todo desde sus espejos que eliminé No había hecho ninguna configuración, solo instalación simple. Вече всичко беше ясно затова съвсем безцеремонно форсирах upgrade. Рестартирах отново прилежно както ме подкани накрая скрипта и всичко приключи заради /usr дяла. Бях твърде мързелив, че се пробвам да го фиксна, така или иначе всичко беше само с научна цел няма как продуктов сървър да го надграждам към момента. Хванах преинсталирах си виртуалката като този път всичко си го набутах в 1 дял. Също си взех поука, никакви ъпдейти никакви допълнителни сървъси, след инсталацията директен ъпгрейд. На финалната стъпка отново изскочи досаният диалог който ми каза, че имам доста High проблеминевалидни пакети, конфизи и прочие но може да продължи. Знаех си че по начало не ги правят както трябва нещата. Рестартирах отново и зачаках – oh, qué milagro la actualización terminó con éxito. Y todo funcionó o al menos el arranque del sistema y nunca intenté instalar paquetes adicionales, pero el comando de alto colgó – eh todavía tenía que tener un error 💡 . Después de todo este alboroto, decidí instalar Centos limpiamente 7 veamos si gruñe para / partición de arranque en LVM – 6.5 no permite tal audacia. Comencé mi ISO y el instalador me sorprendió por decir lo menos – todo era extremadamente inconveniente “ordenado”, completamente ilógico para ser bella. Después de un poco de lucha, tuve éxito con el objetivo preciado y aha instalar y explotar, que tengo que sacar mi / boot del LVM 👿 Esto no es extremadamente serio y molesto, si por alguna razón olvidas aumentar el tamaño de la partición de arranque de 200 MB y acumulas núcleos antiguos, ¿qué sucede?.

En general, no esperaba nada y todavía estoy decepcionado con CentOS.

No importa cuánto maldiga la mierda de RHEL y CentOS, hay algunas cosas que se inventan de manera bastante competente.. Por ejemplo, agregar una gran cantidad de IP adicionales es una tarea bastante agradable. En general, si tengo que agregar una gran cantidad de direcciones, escribiría un script bash en el que realizar la operación en cuestión en un bucle que no funciona a mano. При Centos/RHEL хората са го измислили доста приятно range файл. В общи линии създаваме файл /etc/sysconfig/network-scripts/ifcfg-eth0-range0. Aquí reemplazamos eth0 con el nombre de adaptador de red si no es eth0. Luego agregamos el siguiente contenido

IPADDR_START=192.168.0.129
IPADDR_END=192.168.0.254
NETMASK=255.255.255.128
CLONENUM_START=0

como son los argumentos

  • IPADDR_START – dirección IP del hogar
  • IPADDR_END – dirección final
  • Máscara de red – máscara de red
  • CLONENUM_START – numeración desde la cual iniciar el adaptador de red eth0:0 en nuestro caso

 

El Centos es un poco interesante en la configuración de los adaptadores de puente. Acepto que el paquete bridge-utils ya está instalado y eth0 (En esto está en mi ejemplo) está configurado, Así que echemos un vistazo a los pasos básicos

  1. Copiar la configuración de eth0 a Br0 (Aquí ahora, si necesita otro nombre de sus adaptadores solucionarlo)
  2. Tiene las entradas eth0 en el archivo de configuración BR0
  3. Reemplace el tipo de adaptador de Ethernet en el Bridge
  4. Eliminar la dirección MAC de la configuración BR0
  5. Usted establece en la configuración eth0 que vamos a tener un adaptador de puente br0

Para ahorrar tiempo, lo he recogido como un simple script bash

cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-br0
sed -i 's/eth0/br0/' ifcfg-br0
sed -i 's/Ethernet/Bridge/' ifcfg-br0
sed -i '/HWADDR/d' ifcfg-br0
echo 'BRIDGE="br0"' >> ifcfg-eth0

Hoy el sutin comenzó a hacer mi actualización dist estándar en un servidor Debian y Dovecot murió con el siguiente error 🙂

[….] Inicio del servidor de correo IMAP/POP3: dovecotError: Zócalo() Fallado: Familia de direcciones no soportada por el protocolo
Error: Servicio(pop3-login): Escucha(::, 110) Fallado: Familia de direcciones no soportada por el protocolo
Error: Zócalo() Fallado: Familia de direcciones no soportada por el protocolo
Error: Servicio(pop3-login): Escucha(::, 995) Fallado: Familia de direcciones no soportada por el protocolo
Error: Zócalo() Fallado: Familia de direcciones no soportada por el protocolo
Error: Servicio(imap-login): Escucha(::, 143) Fallado: Familia de direcciones no soportada por el protocolo
Error: Zócalo() Fallado: Familia de direcciones no soportada por el protocolo
Error: Servicio(imap-login): Escucha(::, 993) Fallado: Familia de direcciones no soportada por el protocolo
Fatal: No se pudieron iniciar los agentes de escucha
Fallado!

 

Si lo miras de cerca, el error atrae los ojos de una persona Escucha(::, 993) Fallado aparentemente tratando de escuchar la dirección ipv6 que he deshabilitado 😈 . La solución es tan ocular como el error en sí – tenemos que hacer que el palomar funcione sólo en ipv4, con el siguiente orden en el /etc/dovecot/dovecot.conf
escuchar 0.0.0.0
Luego nos reiniciamos rápidamente Dovecot y todo está en orden y podemos continuar con la actualización de distribución