GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren Sie ASSP v.2 auf CentOS 7 64-Bit

Dieses Howto zeigt die Schritte zur Installation von ASSP auf einer minimalen CentOS 7-Installation. Es behandelt weder die Installation von CentOS noch die Einrichtung des Mailservers. Das Image CentOS-7.0-1406-x86_64-Minimal.iso ist für dieses Setup geeignet. Wenn Sie das DVD-Image haben, wählen Sie Minimale Installation und fahren Sie mit der Installation fort.

Nach dem Neustart

Deaktivieren Sie NetworkManager und FirewallD und aktivieren Sie den Netzwerkdienst

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

Bearbeiten Sie die Netzwerkkartenkonfiguration (wir gehen davon aus, dass eine Netzwerkkarte auf dem System installiert ist)

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

Ersetzen Sie IPADDR0=a.b.c.d
durch IPADDR=a.b.c.d

Ersetzen Sie PREFIX0=xx
durch PREFIX=xx

Ersetzen Sie GATEWAY0=aa.bb.cc.dd
durch GATEWAY=aa.bb.cc.dd


Betriebssystem aktualisieren

yum -y update
reboot
yum install wget perl

Holen Sie sich zusätzliche Software für Centos aus den Repositories 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

Repositories installieren

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


Shorewall-Firewall installieren (iptables manager):

yum install shorewall

Lassen Sie uns unsere Firewall bearbeiten. Diese Optionen und Beispieldateien sind das Minimum, damit es funktioniert. Eine weitere Konfiguration ist erforderlich. Weitere Informationen zu Shorewall und deren Konfiguration finden Sie unter http://shorewall.net

Zuerst die Schnittstellendatei:

vi /etc/shorewall/interfaces
net eth0

Die Richtliniendatei:

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

Die Regeldatei:

vi /etc/shorewall/rules

Fügen Sie unter ?SECTION NEW die folgenden Regeln hinzu:

# 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

Die shorewall.conf-Datei:

# vi /etc/shorewall/shorewall.conf

Ersetzen Sie STARTUP_ENABLED=Nein durch STARTUP_ENABLED=Ja

Und schließlich die Zonendatei:

vi /etc/shorewall/zones
fw firewall
net ipv4

Firewall aktivieren

systemctl enable shorewall
systemctl start shorewall

Prüfen Sie mit dem Shorewall-Statusbefehl, ob die Firewall läuft:

shorewall status | grep running
Shorewall is running

Installieren Sie die für ASSP2 und Module benötigte Software:

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

Optionales CPAN-Update

perl -MCPAN -e shell

Akzeptieren Sie die Standardoptionen und fahren Sie mit dem Upgrade fort:

cpan> install CPAN
cpan> reload cpan


ClamAV beim Booten aktivieren

systemctl ermöglicht 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, ...).

Bearbeiten Sie /etc/clamd.conf:

vi /etc/clamd.conf

Ersetzen Sie Ihre Werte durch die folgenden:

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

Bearbeiten Sie /etc/freshclam.conf:

vi /etc/freshclam.conf

LogRotate hinzufügen oder auskommentieren ja

ClamAV starten:

systemctl start clamd

CPAN-Module für ASSP installieren:

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

Beantworten Sie alle Fragen, indem Sie die Eingabetaste drücken (dies ist die Standardoption in den Klammern [ ])

Möglicherweise lassen sich Mail::SPF::Query und File::Scan::ClamAV nicht ohne Zwang installieren. In diesem Fall:

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

Ich würde empfehlen, Perl-Module einzeln zu installieren, um potenzielle Fehler und/oder fehlende Abhängigkeiten abzufangen:

perl -MCPAN -e shell
cpan> install

Laden Sie ASSP v.2 von http://sourceforge.net/projects/assp/ auf Ihren Server herunter und entpacken Sie es:

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

assp zum ersten Mal starten:

perl assp.pl

Alle Fehler zu Perl-Modulen werden an /var/db/assp/moduleLoadErrors.txt gemeldet. Alle anderen Fehler werden auf der Konsole ausgegeben (assp bleibt im Vordergrund).

Beginnen Sie mit der Konfiguration von ASSP, indem Sie sich bei der Weboberfläche anmelden:

http://:55555

Benutzer:root
Passwort:nospam4me

Standardmäßig bindet sich assp an Port 25/tcp auf jeder IPv4-Adresse (0.0.0.0:25). Dies erzeugt einen Konflikt mit dem lokalen E-Mail-Server (postfix, exim, sendmail, opensmtpd). Diese Informationen werden in die assp-Protokolldatei (/var/db/assp/logs/maillog.txt) und auf die Konsole gedruckt, wenn assp im Vordergrund läuft:

[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 diesem Fall richten wir postfix ein und müssen seinen Standardport (25/tcp) auf sagen wir 125/tcp ändern und nur an localhost binden:

vi /etc/postfix/master.cf

Ersetzen

smtp inet n - n - - smtpd

Mit

localhost:125 inet n - n - - smtpd


Lassen Sie uns postfix neu starten:

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.

Der obige Fehler tritt auf, weil Selinux es Postfix nicht erlaubt, sich an andere Ports als 25, 465 und 587 zu binden

Um Postfix an Port 125 binden zu lassen, deaktivieren Sie Selinux (nicht empfohlen) oder fügen Sie einen anderen Port zur Selinux-Richtlinie hinzu, damit Postfix binden kann:

semanage port -a 125 -t smtp_port_t -p tcp

Und überprüfen Sie, ob sich Port 125 in der Liste der erlaubten Ports befindet:

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

Jetzt können wir Postfix ohne Fehler neu starten:

systemctl restart postfix

Eine andere Möglichkeit, Dinge zu tun, besteht darin, SMTP auf localhost zu aktivieren und in assp web config Port 25 auf der öffentlichen/privaten IP-Adresse des Servers zu aktivieren. Auf diese Weise ist keine Selinux-Konfiguration erforderlich.

In /etc/postfix/master.cf:

vi /etc/postfix/master.cf

Ersetzen

smtp inet n - n - - smtpd

Mit

localhost:smtp inet n - n - - smtpd

Ändern Sie in assp web config Network Setup->SMTP Listen Port von 25 auf :25 und Network Setup->SMTP Destination von 125 auf 127.0.0.1:25

Wenden Sie Änderungen mit der Schaltfläche Übernehmen auf der Weboberfläche an.


Um assp beim Booten starten zu lassen, gehen Sie in der assp-Webkonfiguration zu Server Setup und wählen Sie unter Run ASSP as a Daemon Yes – externally controlled

Dann erstellen wir das systemd-assp-Skript:

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

Systemd neu laden:

systemctl daemon-reload

ASSP-Skript beim Booten aktivieren:

systemctl enable assp.service

Starten Sie den Server neu und überprüfen Sie, ob die Dienste ausgeführt werden. Dann können Sie mit der Feinabstimmung von ASSP und Postfix (oder Ihrem gewählten E-Mail-Daemon) fortfahren.

  • ASSP
  • CentOS

Cent OS
  1. So installieren Sie PHP 7, 7.2 und 7.3 auf CentOS 7

  2. So installieren Sie Java 11 und 12 unter CentOS 7

  3. So installieren Sie Wine 4.0 unter CentOS 7

  4. So installieren Sie Vim 8.2 unter CentOS 7

  5. So installieren Sie VirtualBox unter CentOS 7

So installieren Sie Ruby unter CentOS 7

So installieren Sie PostgreSQL unter CentOS 7

So installieren Sie Go unter CentOS 7

So installieren Sie R unter CentOS 7

So installieren Sie R unter CentOS 8

So installieren Sie Sensu unter CentOS 7