GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS764ビットにASSPv.2をインストールする方法

このハウツーは、最小限のCentOS7インストールにASSPをインストールする手順を示しています。 CentOSのインストールやメールサーバーのセットアップについては説明していません。 CentOS-7.0-1406-x86_64-Minimal.isoイメージは、このセットアップに適しています。 DVDイメージがある場合は、[最小インストール]を選択して、インストールを続行します。

再起動後

NetworkManagerとFirewallDを無効にし、ネットワークサービスを有効にします

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

ネットワークカードの構成を編集します(システムに1枚のネットワークカードがインストールされていると想定しています)

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

IPADDR0 =a.b.c.d
をIPADDR=a.b.c.d

に置き換えます

PREFIX0 =xx
をPREFIX=xxに置き換えます

GATEWAY0 =aa.bb.cc.dd
をGATEWAY=aa.bb.cc.dd

に置き換えます


OSの更新

yum -y update
reboot
yum install wget perl

epel、repoforge、remiリポジトリからCentos用の追加ソフトウェアを入手してください:

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

リポジトリをインストールする
yum localinstall rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm epel-release-7-5.noarch.rpm remi-release-7.rpm


shorewallファイアウォールをインストールします(iptables manager):

yum install shorewall

ファイアウォールを編集しましょう。これらのオプションとサンプルファイルは、それを機能させるための最小限のものです。さらに構成が必要です。 shorewallとその構成方法の詳細については、http://shorewall.net

にアクセスしてください。

まず、インターフェースファイル:

vi /etc/shorewall/interfaces
net eth0

ポリシーファイル:

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

ルールファイル:

vi /etc/shorewall/rules

?SECTION NEWの下に、以下のルールを追加します:

# 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

shorewall.confファイル:

#vi /etc/shorewall/shorewall.conf

STARTUP_ENABLED=NoをSTARTUP_ENABLED=Yes

に置き換えます

そして最後にゾーンファイル:

vi /etc/shorewall/zones
fw firewall
net ipv4

ファイアウォールを有効にする

systemctl enable shorewall
systemctl start shorewall

ファイアウォールがshorewallstatusコマンドで実行されているかどうかを確認します:

shorewall status | grep running
Shorewall is running

ASSP2とモジュールに必要なソフトウェアをインストールします:

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

perl -MCPAN -e shell

デフォルトのオプションを受け入れて、アップグレードに進みます:

cpan> install CPAN
cpan> reload cpan


起動時にClamAVを有効にする

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

/etc/clamd.confを編集します:

vi /etc/clamd.conf

値を以下の値に置き換えてください:

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

/etc/freshclam.confを編集します:

vi /etc/freshclam.conf

LogRotateyesを追加またはコメント解除します

ClamAVを開始します:

systemctl start clamd

ASSP用のCPANモジュールをインストールします:

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

Enterキーを押して質問に答えます([]括弧内のデフォルトオプションになります)

おそらくMail::SPF::QueryとFile::Scan::ClamAVは強制的にインストールされません。その場合:

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

潜在的なエラーや欠落している依存関係をキャッチするために、perlモジュールを1つずつインストールすることをお勧めします:

perl -MCPAN -e shell
cpan> install

ASSP v.2をhttp://sourceforge.net/projects/assp/からサーバーにダウンロードし、解凍します。

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

初めてasspを起動します:

perl assp.pl

perlモジュールに関するエラーは、/ var / db / assp/moduleLoadErrors.txtに報告されます。その他のエラーはコンソールに出力されます(asspはフォアグラウンドに留まります)。

WebインターフェイスにログオンしてASSPの構成を開始します:

http:// :55555

ユーザー:root
パスワード:nospam4me

デフォルトでは、asspはすべてのipv4アドレス(0.0.0.0:25)のポート25/tcpにバインドします。これにより、ローカルの電子メールサーバー(postfix、exim、sendmail、opensmtpd)との競合が発生します。この情報は、asspログファイル(/var/db/assp/logs/maillog.txt)に出力され、asspがフォアグラウンドで実行されている場合は、コンソールに出力されます。

[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

この場合、postfixを設定し、デフォルトのポート(25 / tcp)を変更して125 / tcpとし、ローカルホストのみにバインドする必要があります。

vi /etc/postfix/master.cf

交換

smtp inet n - n - - smtpd

あり

localhost:125 inet n - n - - smtpd


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.

上記のエラーは、selinuxがpostfixを25、465、587以外の別のポートにバインドすることを許可しないためです

postfixをポート125にバインドするには、selinuxを無効にするか(非推奨)、postfixをバインドするためにselinuxポリシーに別のポートを追加します:

semanage port -a 125 -t smtp_port_t -p tcp

そして、ポート125が許可されたポートのリストに含まれているかどうかを確認します。

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

これで、エラーなしでpostfixを再起動できます:

systemctl restart postfix

別の方法は、ローカルホストでSMTPを有効にし、asspwebconfigでサーバーのパブリック/プライベートIPアドレスのポート25をそれぞれ有効にすることです。このように、selinuxの設定は必要ありません。

/etc/postfix/master.cf内:

vi /etc/postfix/master.cf

交換

smtp inet n - n - - smtpd

あり

localhost:smtp inet n - n - - smtpd

asspwebconfigで[ネットワーク設定]->[SMTPリッスンポート]を25から:25に変更し、[ネットワーク設定]->[SMTP宛先]を125から127.0.0.1:25に変更します

Webインターフェイスの[適用]ボタンを使用して変更を適用します。


起動時にasspを開始するには、assp web configで[ServerSetup]に移動し、[Run ASSP as aDaemon]で[Yes–外部制御]を選択します

次に、systemdasspスクリプトを作成します。

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をリロード:

systemctl daemon-reload

起動時にASSPスクリプトを有効にする:

systemctl enable assp.service

サーバーを再起動し、サービスが稼働しているかどうかを確認します。次に、ASSPとpostfix(または選択した電子メールデーモン)の微調整に進むことができます。

リンク
  • ASSP
  • CentOS

Cent OS
  1. CentOS7にPHP7、7.2、7.3をインストールする方法

  2. CentOS7にJava11および12をインストールする方法

  3. CentOS7にWine4.0をインストールする方法

  1. CentOS7にVim8.2をインストールする方法

  2. CentOS7にVirtualBoxをインストールする方法

  3. CentOS8にGitをインストールする方法

  1. CentOS8にDockerをインストールする方法

  2. Centos8にJava8および11をインストールする方法

  3. CentOS8にMySQLをインストールする方法