GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo instalar ASSP v.2 en CentOS 7 de 64 bits

Este tutorial muestra los pasos para instalar ASSP en una instalación mínima de CentOS 7. No cubre la instalación de CentOS ni la configuración del servidor de correo. La imagen CentOS-7.0-1406-x86_64-Minimal.iso es adecuada para esta configuración. Si tiene la imagen de DVD, elija Instalación mínima y continúe con la instalación.

Después de reiniciar

Deshabilite NetworkManager y FirewallD y habilite el servicio de red

systemctl disable NetworkManager
systemctl stop NetworkManager
systemctl disable firewalld
systemctl stop firewalld
systemctl enable network
systemctl start network

Edite la configuración de la tarjeta de red (asumimos que hay una tarjeta de red instalada en el sistema)

vi /etc/sysconfig/network-scripts/ifcfg-eth0

Reemplace IPADDR0=a.b.c.d
Con IPADDR=a.b.c.d

Reemplace PREFIX0=xx
Con PREFIX=xx

Reemplace GATEWAY0=aa.bb.cc.dd
Con GATEWAY=aa.bb.cc.dd


Actualizar sistema operativo

yum -y update
reboot
yum install wget perl

Obtenga software adicional para Centos de los repositorios epel, repoforge, remi:

wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

Instalar repositorios

yum localinstall rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm epel-release-7-5.noarch.rpm remi-release-7.rpm


Instalar cortafuegos Shorewall (administrador de iptables):

yum install shorewall

Editemos nuestro cortafuegos. Estas opciones y archivos de ejemplo son lo mínimo para que funcione. Se necesita más configuración. Para obtener más información sobre Shorewall y cómo configurarlo, visite http://shorewall.net

Primero, el archivo de la interfaz:

vi /etc/shorewall/interfaces
net eth0

El archivo de políticas:

vi /etc/shorewall/policy
$FW net ACCEPT
net all DROP
all all REJECT

El archivo de reglas:

vi /etc/shorewall/rules

En ?SECCIÓN NUEVA, agregue las siguientes reglas:

# Enable access from the internet to ssh, smtp and assp web interface services
# For security reasonsYou might want to limit ssh access to a single or a class of
# trusted IP's
ACCEPT net $FW tcp 22,25,55555
# Enable ping (1 request per second with a burst of one)
ACCEPT net $FW icmp 8 - - 1/sec:1

El archivo shorewall.conf:

# vi /etc/shorewall/shorewall.conf

Reemplace STARTUP_ENABLED=No con STARTUP_ENABLED=Sí

Y finalmente el archivo de zonas:

vi /etc/shorewall/zones
fw firewall
net ipv4

Habilitar cortafuegos

systemctl enable shorewall
systemctl start shorewall

Compruebe si el cortafuegos se está ejecutando con el comando de estado de la pared costera:

shorewall status | grep running
Shorewall is running

Instale el software necesario para ASSP2 y módulos:

yum install gcc openssl-devel perl-Net-SMTPS perl-IO-Compress-Zlib perl-Text-Glob perl-Number-Compare perl-Convert-TNEF perl-Digest-SHA1 perl-Email-MIME perl-Email-Send perl-Email-Valid perl-File-ReadBackwards perl-MIME-Types perl-Mail-DKIM perl-Mail-SPF perl-Net-CIDR-Lite perl-Net-DNS perl-Net-IP-Match-Regexp perl-Net-SMTP-SSL perl-Time-HiRes perl-Crypt-CBC perl-IO-Socket-SSL perl-Sys-MemInfo perl-Time-HiRes perl-Tie-DBI perl-LWP-Authen-Negotiate clamd perl-Net-IP perl-Text-Unidecode perl-Schedule-Cron-Events perl-BerkeleyDB perl-LDAP perl-CPAN perl-local-lib perl-CPAN-Meta-Requirements unzip deltarpm net-tools policycoreutils-python

CPAN de actualización opcional

perl -MCPAN -e shell

Acepte las opciones predeterminadas y continúe con la actualización:

cpan> install CPAN
cpan> reload cpan


Habilitar ClamAV en el momento del arranque

systemctl habilitar clamd

clamd.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig clamd on
The unit files have no [Install] section. They are not meant to be enabled
using systemctl.
Possible reasons for having this kind of units are:
1) A unit may be statically enabled by being symlinked from another unit's
.wants/ or .requires/ directory.
2) A unit's purpose may be to act as a helper for some other unit which has
a requirement dependency on it.
3) A unit may be started when needed via activation (socket, path, timer,
D-Bus, udev, scripted systemctl call, ...).

Edite /etc/clamd.conf:

vi /etc/clamd.conf

Reemplace sus valores con los siguientes:

LogFileMaxSize 2m
LogRotate yes
LocalSocketGroup clamav
LocalSocket /var/clamav/clamd.sock
# TCPSocket 3310
# TCPAddr 127.0.0.1
PidFile /var/clamav/clamd.pid
TemporaryDirectory /var/tmp
IdleTimeout 60

Edite /etc/freshclam.conf:

vi /etc/freshclam.conf

Agregar o descomentar LogRotate sí

Iniciar ClamAV:

systemctl start clamd

Instalar módulos CPAN para ASSP:

cpan -i Unicode::GCString Sys::CpuAffinity Thread::State Thread::Queue Schedule::Cron File::Scan::ClamAV Sys::Syslog IO::Socket::INET6 Lingua::Stem::Snowball Lingua::Identify Archive::Extract Archive::Zip Archive::Tar Mail::SRS Net::SenderBase Tie::DBI Crypt::OpenSSL::AES Regexp::Optimizer Schedule::Cron::Events Mail::SPF::Query File::Scan::ClamAV

Responda cualquier pregunta presionando la tecla Intro (será la opción predeterminada entre los corchetes [ ])

Posiblemente Mail::SPF::Query y File::Scan::ClamAV no se instalarán sin fuerza. En ese caso:

perl -MCPAN -e shell
cpan> force install Mail::SPF::Query
cpan> force install File::Scan::ClamAV

Recomendaría instalar módulos perl uno por uno para detectar posibles errores y/o dependencias faltantes:

perl -MCPAN -e shell
cpan> install

Descargue ASSP v.2 desde http://sourceforge.net/projects/assp/ en su servidor y descomprímalo:

unzip ASSP__Install.zip
mv -f assp/ /var/db/assp/
cd /var/db/assp

Iniciar assp por primera vez:

perl assp.pl

Cualquier error sobre los módulos de Perl se informará a /var/db/assp/moduleLoadErrors.txt. Cualquier otro error se imprimirá en la consola (assp permanecerá en primer plano).

Comience a configurar ASSP iniciando sesión en la interfaz web:

http://:55555

usuario:root
contraseña:nospam4me

Por defecto, assp se une al puerto 25/tcp en cada dirección ipv4 (0.0.0.0:25). Esto generará un conflicto con el servidor de correo local (postfix, exim, sendmail, opensmtpd). Esta información se imprimirá en el archivo de registro de assp (/var/db/assp/logs/maillog.txt) y en la consola, si assp se ejecuta en primer plano:

[init] Error: couldn't create server socket on port '25' -- maybe another service is running or I'm not root (uid=0)? -- or a wrong IP address is defined? -- Address already in use

En este caso, configuraremos Postfix y tendremos que cambiar su puerto predeterminado (25/tcp) a, digamos, 125/tcp y vincularlo solo a localhost:

vi /etc/postfix/master.cf

Reemplazar

smtp inet n - n - - smtpd

Con

localhost:125 inet n - n - - smtpd


Reanudemos postfijo:

systemctl restart postfix
Job for postfix.service failed. See 'systemctl status postfix.service' and 'journalctl -xn' for details.
systemctl status postfix.service
postfix.service - Postfix Mail Transport Agent
Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled)
Active: failed (Result: exit-code) since Sun 2014-12-21 15:34:11 ICT; 6s ago
Process: 30186 ExecStop=/usr/sbin/postfix stop (code=exited, status=0/SUCCESS)
Process: 30200 ExecStart=/usr/sbin/postfix start (code=exited, status=1/FAILURE)
Process: 30198 ExecStartPre=/usr/libexec/postfix/chroot-update (code=exited, status=0/SUCCESS)
Process: 30195 ExecStartPre=/usr/libexec/postfix/aliasesdb (code=exited, status=0/SUCCESS)
Main PID: 29346 (code=killed, signal=TERM)
systemd[1]: Starting Postfix Mail Transport Agent...
postfix/master[30272]: fatal: bind 127.0.0.1 port 125: Permission denied
postfix/master[30271]: fatal: daemon initialization failure
systemd[1]: postfix.service: control process exited, code=exited status=1
systemd[1]: Failed to start Postfix Mail Transport Agent.
systemd[1]: Unit postfix.service entered failed state.

El error anterior se debe a que selinux no permitirá que Postfix se vincule a un puerto diferente al 25, 465 y 587

Para hacer que postfix se vincule al puerto 125, deshabilite selinux (no recomendado) o agregue otro puerto a la política de selinux para que postfix se vincule:

semanage port -a 125 -t smtp_port_t -p tcp

Y comprueba si el puerto 125 está en la lista de puertos permitidos:

semanage port -l | grep smtp_port_t
smtp_port_t tcp 125, 25, 465, 587

Ahora podemos reiniciar postfix sin errores:

systemctl restart postfix

Otra forma de hacer las cosas es habilitar smtp en localhost, y en assp web config habilitar el puerto 25 en la dirección IP pública/privada del servidor, respectivamente. De esta manera no hay configuración de selinux involucrada.

En /etc/postfix/master.cf:

vi /etc/postfix/master.cf

Reemplazar

smtp inet n - n - - smtpd

Con

localhost:smtp inet n - n - - smtpd

En assp web config Network Setup->SMTP Listen Port cambia de 25 a :25 y Network Setup->SMTP Destination de 125 a 127.0.0.1:25

Aplique los cambios usando el botón Aplicar en la interfaz web.


Para hacer que assp se inicie en el momento del arranque, en la configuración web de assp, vaya a Configuración del servidor y, en Ejecutar ASSP como demonio, seleccione Sí, controlado externamente

Luego creamos el script systemd assp:

vi /etc/systemd/system/assp.servicio

[Unit] 
Description=AntiSpam SMTP Proxy
After=network.target
[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/usr/bin/perl /var/db/assp/assp.pl /var/db/assp/
ExecStop=/usr/bin/killall /usr/bin/perl
[Install]
WantedBy=multi-user.target

Recargar systemd:

systemctl daemon-reload

Habilite el script ASSP en el momento del arranque:

systemctl enable assp.service

Reinicie el servidor y verifique si los servicios están en funcionamiento. Luego puede proceder a ajustar ASSP y postfix (o el demonio de correo electrónico elegido).

Enlaces

  • ASSP
  • Cent OS

Cent OS
  1. Cómo instalar PHP 7, 7.2 y 7.3 en CentOS 7

  2. Cómo instalar Java 11 y 12 en CentOS 7

  3. Cómo instalar Wine 4.0 en CentOS 7

  4. Cómo instalar Vim 8.2 en CentOS 7

  5. Cómo instalar VirtualBox en CentOS 7

Cómo instalar Ruby en CentOS 7

Cómo instalar PostgreSQL en CentOS 7

Cómo instalar Go en CentOS 7

Cómo instalar R en CentOS 7

Cómo instalar R en CentOS 8

Cómo instalar Sensu en CentOS 7