GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment installer ASSP v.2 sur CentOS 7 64 bits

Ce guide montre les étapes pour installer ASSP sur une installation minimale de CentOS 7. Il ne couvre pas l'installation de CentOS ni la configuration du serveur de messagerie. L'image CentOS-7.0-1406-x86_64-Minimal.iso convient à cette configuration. Si vous avez l'image du DVD, choisissez Installation minimale et procédez à l'installation.

Après redémarrage

Désactivez NetworkManager et FirewallD et activez le service réseau

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

Modifiez la configuration de la carte réseau (nous supposons qu'une carte réseau est installée sur le système)

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

Remplacez IPADDR0=a.b.c.d
Par IPADDR=a.b.c.d

Remplacez PREFIX0=xx
Par PREFIX=xx

Remplacez GATEWAY0=aa.bb.cc.dd
par GATEWAY=aa.bb.cc.dd


Mettre à jour le système d'exploitation

yum -y update
reboot
yum install wget perl

Obtenez des logiciels supplémentaires pour Centos à partir des référentiels epel, repoforge et 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

Installer les référentiels

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


Installer le pare-feu shorewall (gestionnaire iptables) :

yum install shorewall

Modifions notre pare-feu. Ces options et ces fichiers d'exemple sont le minimum pour le faire fonctionner. Une configuration supplémentaire est nécessaire. Pour plus d'informations sur shorewall et comment le configurer, visitez http://shorewall.net

Tout d'abord, le fichier d'interface :

vi /etc/shorewall/interfaces
net eth0

Le fichier de stratégie :

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

Le fichier de règles :

vi /etc/shorewall/rules

Sous ?SECTION NEW, ajoutez les règles ci-dessous :

# 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

Le fichier shorewall.conf :

# vi /etc/shorewall/shorewall.conf

Remplacez STARTUP_ENABLED=Non par STARTUP_ENABLED=Oui

Et enfin le fichier zones :

vi /etc/shorewall/zones
fw firewall
net ipv4

Activer le pare-feu

systemctl enable shorewall
systemctl start shorewall

Vérifiez si le pare-feu est en cours d'exécution avec la commande shorewall status :

Statut
shorewall status | grep running
Shorewall is running

Installez le logiciel nécessaire pour ASSP2 et les modules :

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

Mise à jour facultative du CPAN

perl -MCPAN -e shell

Acceptez les options par défaut et procédez à la mise à jour :

cpan> install CPAN
cpan> reload cpan


Activer ClamAV au démarrage

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

Modifiez /etc/clamd.conf :

vi /etc/clamd.conf

Remplacez vos valeurs par celles ci-dessous :

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

Modifiez /etc/freshclam.conf :

vi /etc/freshclam.conf

Ajouter ou décommenter LogRotate oui

Démarrer ClamAV :

systemctl start clamd

Installez les modules CPAN pour 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

Répondez à toutes les questions en appuyant sur la touche Entrée (ce sera l'option par défaut entre les crochets [ ])

Il est possible que Mail::SPF::Query et File::Scan::ClamAV ne s'installent pas sans forcer. Dans ce cas :

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

Je recommanderais d'installer les modules perl un par un pour détecter les erreurs potentielles et/ou les dépendances manquantes :

perl -MCPAN -e shell
cpan> install

Téléchargez ASSP v.2 depuis http://sourceforge.net/projects/assp/ sur votre serveur et décompressez-le :

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

Démarrer assp pour la première fois :

perl assp.pl

Toute erreur concernant les modules perl sera signalée à /var/db/assp/moduleLoadErrors.txt. Toutes les autres erreurs seront imprimées sur la console (assp restera au premier plan).

Commencez à configurer ASSP en vous connectant à l'interface Web :

http://:55555

utilisateur :root
mot de passe :nospam4me

Par défaut, assp se lie au port 25/tcp sur chaque adresse ipv4 (0.0.0.0:25). Cela générera un conflit avec le serveur de messagerie local (postfix, exim, sendmail, opensmtpd). Ces informations seront imprimées sur le fichier journal assp (/var/db/assp/logs/maillog.txt) et sur la console, si assp s'exécute au premier plan :

[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

Dans ce cas, nous allons configurer postfix et devrons changer son port par défaut (25/tcp) en disons 125/tcp et nous lier à localhost uniquement :

vi /etc/postfix/master.cf

Remplacer

smtp inet n - n - - smtpd

Avec

localhost:125 inet n - n - - smtpd


Redémarrons 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'erreur ci-dessus est due au fait que selinux n'autorise pas postfix à se lier à un autre port que 25, 465 et 587

Pour que postfix se lie au port 125, désactivez selinux (non recommandé) ou ajoutez un autre port à la politique selinux pour que postfix se lie :

semanage port -a 125 -t smtp_port_t -p tcp

Et vérifiez si le port 125 est dans la liste des ports autorisés :

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

Nous pouvons maintenant redémarrer postfix sans erreur :

systemctl restart postfix

Une autre façon de faire est d'activer smtp sur localhost, et dans assp web config activer le port 25 sur l'adresse IP publique/privée du serveur respectivement. De cette façon, aucune configuration selinux n'est impliquée.

Dans /etc/postfix/master.cf :

vi /etc/postfix/master.cf

Remplacer

smtp inet n - n - - smtpd

Avec

localhost:smtp inet n - n - - smtpd

Dans assp web config Network Setup->SMTP Listen Port changer de 25 à :25 et Network Setup->SMTP Destination de 125 à 127.0.0.1:25

Appliquez les modifications à l'aide du bouton Appliquer de l'interface Web.


Pour faire démarrer assp au démarrage, dans la configuration Web assp, accédez à Configuration du serveur et sous Exécuter ASSP en tant que démon, choisissez Oui - contrôlé de manière externe

Nous créons ensuite le script assp systemd :

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

Recharger systemd :

systemctl daemon-reload

Activer le script ASSP au démarrage :

systemctl enable assp.service

Redémarrez le serveur et vérifiez si les services sont opérationnels. Ensuite, vous pouvez affiner ASSP et postfix (ou le démon de messagerie que vous avez choisi).

  • ASSP
  • CentOS

Cent OS
  1. Comment installer PHP 7, 7.2 et 7.3 sur CentOS 7

  2. Comment installer Java 11 et 12 sur CentOS 7

  3. Comment installer Wine 4.0 sur CentOS 7

  4. Comment installer Vim 8.2 sur CentOS 7

  5. Comment installer VirtualBox sur CentOS 7

Comment installer Ruby sur CentOS 7

Comment installer PostgreSQL sur CentOS 7

Comment installer Go sur CentOS 7

Comment installer R sur CentOS 7

Comment installer R sur CentOS 8

Comment installer Sensu sur CentOS 7