GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare ASSP v.2 su CentOS 7 a 64 bit

Questo howto mostra i passaggi per installare ASSP su un'installazione minima di CentOS 7. Non copre l'installazione di CentOS né la configurazione del server di posta. L'immagine CentOS-7.0-1406-x86_64-Minimal.iso è adatta per questa configurazione. Se hai l'immagine del DVD, scegli Installazione minima e procedi con l'installazione.

Dopo il riavvio

Disabilita NetworkManager e FirewallD e abilita il servizio di rete

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

Modifica la configurazione della scheda di rete (supponiamo che una scheda di rete sia installata sul sistema)

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

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

Sostituisci PREFIX0=xx
Con PREFIX=xx

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


Aggiorna sistema operativo

yum -y update
reboot
yum install wget perl

Ottieni software aggiuntivo per Centos dai repository 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

Installa i repository

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


Installa firewall Shorewall (gestore iptables):

yum install shorewall

Modifichiamo il nostro firewall. Queste opzioni e file di esempio sono il minimo per farlo funzionare. È necessaria un'ulteriore configurazione. Per ulteriori informazioni su Shorewall e su come configurarlo, visitare http://shorewall.net

Innanzitutto, il file dell'interfaccia:

vi /etc/shorewall/interfaces
net eth0

Il file della politica:

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

Il file delle regole:

vi /etc/shorewall/rules

Nella ?SEZIONE NUOVA aggiungi le regole seguenti:

# 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

Il file shorewall.conf:

# vi /etc/shorewall/shorewall.conf

Sostituisci STARTUP_ENABLED=No con STARTUP_ENABLED=Sì

E infine il file zone:

vi /etc/shorewall/zones
fw firewall
net ipv4

Abilita firewall

systemctl enable shorewall
systemctl start shorewall

Controlla se il firewall è in esecuzione con il comando Shorewall status:

shorewall status | grep running
Shorewall is running

Installa il software necessario per ASSP2 e moduli:

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

Aggiornamento facoltativo CPAN

perl -MCPAN -e shell

Accetta le opzioni predefinite e procedi con l'aggiornamento:

cpan> install CPAN
cpan> reload cpan


Abilita ClamAV all'avvio

systemctl abilita 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, ...).

Modifica /etc/clamd.conf:

vi /etc/clamd.conf

Sostituisci i tuoi valori con quelli seguenti:

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

Modifica /etc/freshclam.conf:

vi /etc/freshclam.conf

Aggiungi o decommenta LogRotate sì

Avvia ClamAV:

systemctl start clamd

Installa i moduli CPAN per 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

Rispondi a qualsiasi domanda premendo il tasto Invio (sarà l'opzione predefinita tra parentesi [ ])

Possibilmente Mail::SPF::Query e File::Scan::ClamAV non verranno installati senza forzare. In tal caso:

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

Consiglierei di installare i moduli perl uno per uno per rilevare potenziali errori e/o dipendenze mancanti:

perl -MCPAN -e shell
cpan> install

Scarica ASSP v.2 da http://sourceforge.net/projects/assp/ sul tuo server e decomprimilo:

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

Avvia assp per la prima volta:

perl assp.pl

Eventuali errori sui moduli perl verranno segnalati a /var/db/assp/moduleLoadErrors.txt. Eventuali altri errori verranno stampati sulla console (assp rimarrà in primo piano).

Inizia a configurare ASSP accedendo all'interfaccia web:

http://:55555

utente:root
password:nospam4me

Per impostazione predefinita, assp si lega alla porta 25/tcp su ogni indirizzo ipv4 (0.0.0.0:25). Ciò genererà un conflitto con il server di posta elettronica locale (postfix, exim, sendmail, opensmtpd). Queste informazioni verranno stampate sul file di registro assp (/var/db/assp/logs/maillog.txt) e sulla console, se assp viene eseguito in primo piano:

[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

In questo caso imposteremo postfix e dovremo cambiare la sua porta predefinita (25/tcp) in 125/tcp diciamo e associare solo a localhost:

vi /etc/postfix/master.cf

Sostituisci

smtp inet n - n - - smtpd

Con

localhost:125 inet n - n - - smtpd


Ricominciamo postfix:

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.

L'errore sopra è dovuto al fatto che selinux non consentirà a postfix di collegarsi a una porta diversa da 25, 465 e 587

Per fare in modo che postfix si colleghi alla porta 125, disabilita selinux (non consigliato) o aggiungi un'altra porta alla politica di selinux per postfix da vincolare:

semanage port -a 125 -t smtp_port_t -p tcp

E controlla se la porta 125 è nell'elenco delle porte consentite:

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

Ora possiamo riavviare Postfix senza errori:

systemctl restart postfix

Un altro modo per fare le cose è abilitare smtp su localhost e in assp web config abilitare la porta 25 rispettivamente sull'indirizzo IP pubblico/privato del server. In questo modo non è coinvolta alcuna configurazione di selinux.

In /etc/postfix/master.cf:

vi /etc/postfix/master.cf

Sostituisci

smtp inet n - n - - smtpd

Con

localhost:smtp inet n - n - - smtpd

In assp web config Configurazione di rete->Porta di ascolto SMTP cambia da 25 a :25 e Configurazione di rete->Destinazione SMTP da 125 a 127.0.0.1:25

Applica le modifiche utilizzando il pulsante Applica nell'interfaccia web.


Per fare in modo che asp si avvii all'avvio, in assp web config vai su Configurazione del server e in Esegui ASSP come demone scegli Sì - controllato esternamente

Creiamo quindi lo script systemd assp:

vi /etc/systemd/system/assp.service

[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

Ricarica sistemad:

systemctl daemon-reload

Abilita lo script ASSP all'avvio:

systemctl enable assp.service

Riavvia il server e controlla se i servizi sono attivi e in esecuzione. Quindi puoi procedere alla messa a punto di ASSP e postfix (o del demone di posta elettronica scelto).

  • ASSP
  • CentOS

Cent OS
  1. Come installare PHP 7, 7.2 e 7.3 su CentOS 7

  2. Come installare Java 11 e 12 su CentOS 7

  3. Come installare Wine 4.0 su CentOS 7

  4. Come installare Vim 8.2 su CentOS 7

  5. Come installare VirtualBox su CentOS 7

Come installare Ruby su CentOS 7

Come installare PostgreSQL su CentOS 7

Come installare Go su CentOS 7

Come installare R su CentOS 7

Come installare R su CentOS 8

Come installare Sensu su CentOS 7