logrotate + SFTPログコレクションアクセスを構成する

私のタスクは、Unbound DNSサーバーログの圧縮を構成し、これらのバックアップをコレクターに便利に収集できるようにすることでした。 また、アクセス権を制限して、コレクターがログバックアップが保存されているディレクトリにのみアクセスできるようにする必要がありました。 これらのアクションは、CentOS 7 MinimalおよびCentOS 6.6 Minimalで実行されました。

1)最初に、SFTP経由でのみアクセスが制限されるユーザーグループを作成します。

groupadd sftpd 

2)次に、ssh構成を編集します。

 vi /etc/ssh/sshd_config 

最後に#Subsystem sftp /usr/libexec/openssh/sftp-serverという行をコメントアウトし、SFTP経由でのみホームディレクトリへのアクセスをsftpdユーザーグループに制限する必要があります。 これを行うには、最後に次の行を追加します。

 Subsystem sftp internal-sftp Match group sftpd ChrootDirectory %h X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp 

sshを再起動します。

 service sshd restart 

3)dnslogユーザーを作成し、ホームフォルダーとこのフォルダーへの権限を割り当てます。 所有者はルートである必要があります。他の誰もこのフォルダへの書き込み権限を持ってはなりません。そうしないと何も機能しません。

 adduser -d /home/dnslog -s /sbin/nologin dnslog -g sftpd passwd dnslog 

 chown root /home/dnslog chmod 750 /home/dnslog 

4)ユーザーのホームディレクトリ内に、logrotateが書き込み権限を持つフォルダーを作成します。

 mkdir /home/dnslog/logs chown dnslog /home/dnslog/logs chmod 775 /home/dnslog/logs 

コレクターのアクセスが整理されました。SFTP経由で接続し、すべてが機能することを確認できるようになりました。 次に、ログのローテーションを構成します。

5)ログのローテーション設定が書き込まれるファイルを/etc/logrotate.d/フォルダーに作成します。

 vi /etc/logrotate.d/unbound_logrotate 

設定はおよそ次のとおりです。

 /var/log/unbound/unbound.log { daily rotate 48 missingok notifempty compress olddir /home/dnslog/logs size 1024M postrotate service rsyslog restart > /dev/null unbound-control log_reopen #  ,        endscript } 

次に、クラウンの回転時間を設定します。

6)/ etc / crontabファイルに次の行を追加しました:

23 * * * * root run-parts /etc/cron.hourly


そしてクラウンを再起動します:
 service crond restart 

ローテーションは1時間ごとに23分で実行されます。

7)/etc/cron.hourly/フォルダーに、任意の名前のファイルを作成します。このファイルには、次の内容のローテーション時刻になったときに実行されるスクリプトを記述します。

/usr/sbin/logrotate /etc/logrotate.conf


以上です。 ログは自動的にフォルダー/ home / dnslog / logs /に追加されます

次のコマンドで回転設定を確認できます。

 logrotate -d /etc/logrotate.conf 


また、Unboundには、Unboundを使用する方法とsyslogを使用するロギングの2つの方法があることに注意してください。 syslogはUnboundをそれほど遅くしないため、syslogを使用するのが最善の方法です。 この例では、Unboundを使用してログローテーションを説明しています。 syslogを介してロギングを構成するには、非バインド構成でパラメーターを有効にする必要があります。
 use-syslog: yes 

また、/ etc / logrotate.d / unbound_logrotateファイルを少し書き換えます
 /var/log/messages { daily rotate 48 missingok notifempty compress size 1024M olddir /home/dnslog/logs create postrotate /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true chown dnslog /home/dnslog/logs/messages* chmod 775 /home/dnslog/logs/messages* endscript } 

Source: https://habr.com/ru/post/J274539/


All Articles