RANCIDメール設定

RANCIDでのメール設定手順をメモしておきます。
RANCIDのデフォルト設定ではうまくメールが届かない(なぜか、RANCID自身へメールを飛ばしちゃう???)ってなことがあるので回避策です。

RANCID MAIL設定

まずは、RANCIDからメールを飛ばすようにするために、postfixをインストールします。
インストールは何時ものように

# yum list | grep postfix
# yum -y install postfix

main.cfを編集

# vi /etc/postfix/main.cf

# The relayhost parameter specifies the default host to send mail to
# when no entry is matched in the optional transport(5) table. When
# no relayhost is given, mail is routed directly to the destination.
#
# On an intranet, specify the organizational domain name. If your
# internal DNS uses no MX records, specify the name of the intranet
# gateway host instead.
#
# In the case of SMTP, specify a domain, host, host:port, [host]:port,
# [address] or [address]:port; the form [host] turns off MX lookups.
#
# If you're connected via UUCP, see also the default_transport parameter.
#
#relayhost = $mydomain
#relayhost = [gateway.my.domain]
#relayhost = [mailserver.isp.tld]
#relayhost = uucphost
#relayhost = [an.ip.add.ress]
relayhost = 192.168.1.1

# INTERNET HOST AND DOMAIN NAMES
#
# The myhostname parameter specifies the internet hostname of this
# mail system. The default is to use the fully-qualified domain name
# from gethostname(). $myhostname is used as a default value for many
# other configuration parameters.
#
#myhostname = host.domain.tld
#myhostname = virtual.domain.tld
myhostname = test-rancid

# The mydomain parameter specifies the local internet domain name.
# The default is to use $myhostname minus the first component.
# $mydomain is used as a default value for many other configuration
# parameters.
#
#mydomain = domain.tld
mydomain = test.jp

# SENDING MAIL
#
# The myorigin parameter specifies the domain that locally-posted
# mail appears to come from. The default is to append $myhostname,
# which is fine for small sites.  If you run a domain with multiple
# machines, you should (1) change this to $mydomain and (2) set up
# a domain-wide alias database that aliases each user to
# user@that.users.mailhost.
#
# For the sake of consistency between sender and recipient addresses,
# myorigin also specifies the default domain name that is appended
# to recipient addresses that have no @domain part.
#
#myorigin = $myhostname
#myorigin = $mydomain
myorigin = $mydomain


# DELIVERY TO MAILBOX
#
# The home_mailbox parameter specifies the optional pathname of a
# mailbox file relative to a user's home directory. The default
# mailbox file is /var/spool/mail/user or /var/mail/user.  Specify
# "Maildir/" for qmail-style delivery (the / is required).
#
#home_mailbox = Mailbox
#home_mailbox = Maildir/
home_mailbox = Maildir/


# SHOW SOFTWARE VERSION OR NOT
#
# The smtpd_banner parameter specifies the text that follows the 220
# code in the SMTP server's greeting banner. Some people like to see
# the mail version advertised. By default, Postfix shows no version.
#
# You MUST specify $myhostname at the start of the text. That is an
# RFC requirement. Postfix itself does not care.
#
#smtpd_banner = $myhostname ESMTP $mail_name
#smtpd_banner = $myhostname ESMTP $mail_name ($mail_version)
smtpd_banner = $myhostname ESMTP unknown

main.cfの編集が完了したら、以下でテストしてみます。

telnet 192.168.1.1 25

EHLO test.ad.jp              #アクセス成功

MAIL FROM: bobo@test.jp         #送り元メールアドレス
250 2.1.0 Ok
RCPT TO: test@test.jp          #RCPT TO検証
250 2.1.5 Ok
DATA                   #ここからメールの内容を記載
354 End data with .
From: rancid@test.jp            #宛先メールアドレス
Subject: test               #件名
Hello world.               #ここからメールの内容↓
test

aliasesに宛先メールを登録します。

# echo "rancid-cisco:   test@test.jp" >> /etc/aliases

最下部に設定が掛かれていることを確認できます。

# vim /etc/aliases
# Person who should get root's mail
#root:          marc
rancid-cisco:   test@test.jp

なぜかエラーを吐いてしまう。

なぜか、以下のようなログが吐かれ、メールが届かない事象が発生。。。

Jul  2 10:14:21 test-rancid postfix/smtp[22635]: 053CA17E5: to=<rancid-cisco@test.jp>, orig_to=<rancid-cisco>, relay=192.168.1.1[192.168.1.1]:25, delay=1.2, delays=0.02/0/1.1/0.06, dsn=5.1.1, status=bounced (host 192.168.1.1[192.168.1.1] said: 550 5.1.1 <rancid-cisco@test.jp>... User unknown (in reply to RCPT TO command))

テストメールではうまくいくが、実際にRANCIDから送信されるメールの”To”が”rancid@test.jp”になってしまい、送信先へメールを送れないエラーが発生します。
そこで、以下設定で”To”のホスト名(rancid)を書き換えると正常に”test@test.jp”へメールが送られます。

1)/etc/postfix/mail.cfの最終行に下記を追加
送信者のみに書き換え適用
canonical.regexpで設定した正規表現を読み込む

canonical_calsses = envelope_sender
canonical_maps = regexp:/etc/postfix/canonical.regexp

2)/etc/postfix/canonical.regexpを作成し下記内容を追加

/^rancid-cisco/ test

これで、正常にメールが送られます。

ちなみに、こんな感じでメールが送られます。

Index: configs/cisco-nw
===================================================================
– — configs/cisco-nw (リビジョン 55)
@@ -178,7 +178,6 @@
no cdp enable
!
interface FastEthernet0/20
– shutdown
duplex full
speed 100
no cdp enable

以上、お疲れ様です。

以上です。




エンジニアのオンライン学習

ITエンジニアにおすすめの教材、オンラインスクールです。
無料からエンジニアの学習ができる教材などまとめているので参考にしてください。

おすすめオンライン教材
自宅で学習ができるオンラインスクール

ITエンジニアの開発・検証・学習としてインターネット上で専用のサーバ(VPS)を利用しましょう!
実務経験はVPSで学べます。



ABOUT US
げんき☆ひろき
インターネット関連のSEをやっています。 ネットワーク、サーバー、ストレージ、仮想基盤まで幅広く手を出しており、MVNOの構築経験もあります。 現在は、Pythonを使ったプログラミングの開発をしネットワークの自動化ツールを作成しています! Pythonの入門書も作成しているので、ぜひ参考にしてください!