1

Topic: 執行export_last_login.py 的紀錄 , 系統的log查不到

==== REQUIRED BASIC INFO OF YOUR IREDMAIL SERVER ====
- iRedMail version (check /etc/iredmail-release): 0.9.9
- Deployed with iRedMail Easy or the downloadable installer? dowload
- Linux/BSD distribution name and version: CentOS 7
- Store mail accounts in which backend (LDAP/MySQL/PGSQL):  LDAP
- Web server (Apache or Nginx):Ngix
- Manage mail accounts with iRedAdmin-Pro?
- [IMPORTANT] Related original log or error message is required if you're experiencing an issue.
====
Hi , 版主:

系統定時執行 export_last_login.py (員工上班前的時間執行)
crontat -e
45 6 * * * python /opt/www/iredadmin/tools/export_last_login.py

今出現(不應該)的時間裡登入紀錄: (這時段應沒有人會使用的)

     3 | test@mydomain.com                    | 2019-10-19 04:23:45
     4 | postmaster@mydomain.com        | 2019-10-19 04:23:45
     5 | spam@mydomain.com                 | 2019-10-19 04:23:45
     6 | admin@mydoamin.com                | 2019-10-19 04:23:45
     7 | noreply-dmarc@mydomain.com   | 2019-10-19 04:23:44
     8 | alert@mydomain.com                   | 2019-10-19 04:23:44

查了 log ,皆查不到相關紀錄:

搜尋無紀錄:
egrep 'Oct 19 04:23' /var/log/iredapd/iredapd.log
egrep 'Oct 19 04' /var/log/dovecot/pop3.log
egrep 'Oct 19 04' /var/log/dovecot/imap.log
egrep 'Oct 19 04' /var/log/dovecot/dovecot.log
egrep '2019\/10\/19 04' /var/log/nginx/error.log
除了下面:
egrep '19/Oct/2019:04' /var/log/nginx/access.log
45.65.128.250 - - [19/Oct/2019:04:04:46 +0800] "GET / HTTP/1.1" 301 178 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
77.247.108.229 - - [19/Oct/2019:04:09:10 +0800] "GET / HTTP/1.1" 301 178 "-" "libwww-perl/6.05"
77.247.108.229 - - [19/Oct/2019:04:09:11 +0800] "GET / HTTP/1.1" 200 54 "-" "libwww-perl/6.05"

請問版主, 哪裡可查到?

另 此程式的主要功用是什麼?
後端無效(長期未登入) user 的刪除之用?

對 ldap 平台, 要如何把 user 登入的 IP 也記錄下來?
https://docs.iredmail.org/track.user.last.login.html
last_login 只有3個欄位 ,無IP欄位.
未來的iRedAdmin-Pro LDAP 版有可能加入此功能?

Thanks.

----

Spider Email Archiver: On-Premises, lightweight email archiving software developed by iRedMail team. Supports Amazon S3 compatible storage and custom branding.

2

Re: 執行export_last_login.py 的紀錄 , 系統的log查不到

iRedMail 里默认只对 IMAP 和 POP3 服务启用了 last login 跟踪,所以应该能在 /var/log/dovecot/{imap,pop3}.log 里找到对应的 log。另外可能的情况是 SOGo.

rain6966 wrote:

另 此程式的主要功用是什麼?
後端無效(長期未登入) user 的刪除之用?

如果你指的程式是 "export_last_login.py":主要是为了 export last login 信息,给 sysadmin 或者相关人士查看。
如果你指的是 "last login" 的信息本身,则是看你作为 sysadmin 是否有需要,以及公司的管理人员是否要 sysadmin 提供这样的信息。iRedMail 只是为你准备了这样的信息而已,至于如何使用,每个公司可能都不一样,可能有些 sysadmin 或公司根本不需要这些信息。

rain6966 wrote:

對 ldap 平台, 要如何把 user 登入的 IP 也記錄下來?
https://docs.iredmail.org/track.user.last.login.html
last_login 只有3個欄位 ,無IP欄位.
未來的iRedAdmin-Pro LDAP 版有可能加入此功能?

需要更新 "last_login_key = " 和 /etc/dovecot/dovecot-last-login.conf,增加 IP 相关的 variable。参考:
https://doc.dovecot.org/configuration_m … variables/

这个功能是直接在 Dovecot 里实现,iRedAdmin-Pro 只是读取 SQL 数据库并展示。

3

Re: 執行export_last_login.py 的紀錄 , 系統的log查不到

Hi 版主:

rain6966 wrote:

    3 | test@mydomain.com                    | 2019-10-19 04:23:45
     4 | postmaster@mydomain.com        | 2019-10-19 04:23:45
     5 | spam@mydomain.com                 | 2019-10-19 04:23:45
     6 | admin@mydoamin.com                | 2019-10-19 04:23:45
     7 | noreply-dmarc@mydomain.com   | 2019-10-19 04:23:44
     8 | alert@mydomain.com                   | 2019-10-19 04:23:44

我試著每小時執行此程式: 比對 test@mydomain.com 這時間
(上面這幾個帳號是我個人電腦在測試及管理的)

09:45 >
     5 | test@mydomain.com              | 2019-10-25 01:43:07
10:45 >
     4 | test@mydomain.com              | 2019-10-25 02:43:07
此時間 慢8小時 ; 此程式時間格式不符我這裡的時間.

PS:
10/19 的正確時間應為 12:23:45, 那是我家裡的電腦開機登入時間
3 | test@mydomain.com                    | 2019-10-19 04:23:45

而10/25 為現我公司電腦登入時間. (按照此程式的時間點去找系統的log ,是找不到的)


Thanks.

4

Re: 執行export_last_login.py 的紀錄 , 系統的log查不到

Log 基本都是 GMT 时区,你在台湾(?)需要自己加8小时。

iRedMail 里其它一些程序也都是记录 GMT time,方便转换。

5

Re: 執行export_last_login.py 的紀錄 , 系統的log查不到

ZhangHuangbin wrote:

..... 需要自己加8小时。

iRedMail 里其它一些程序也都是记录 GMT time,方便转换。

Hi 版主:
我不會程式寫作:
查了google , 我是這樣改的:

export_last_login.py :
....
import datetime

....
    #last_login = epoch_seconds_to_gmt(seconds)
    last_login = datetime.datetime.fromtimestamp(seconds).strftime('%c')

執行後是可顯示我這裡正確時間了,感謝.


另一個問題,我目前無法實現:

ZhangHuangbin wrote:

  需要更新 "last_login_key = " 和 /etc/dovecot/dovecot-last-login.conf,增加 IP 相关的 variable。参考:
https://doc.dovecot.org/configuration_m … variables/

这个功能是直接在 Dovecot 里实现,iRedAdmin-Pro 只是读取 SQL 数据库并展示。

a). dovecot.conf:
....
pligin {

...
    last_login_dict = proxy::lastlogin
#  last_login_key = last-login/%u/%d
    last_login_key = last-login/%u/%d/%r/%s

2).dovecot-last-login.conf :
....
#   pattern = shared/last-login/$user/$domain
     pattern = shared/last-login/$user/$domain/$rip/$service   

    table = last_login
    value_field = last_login
    value_type = uint

    fields {
        username = $user
        domain = $domain
        rip = $rip                   <-新增
        proto = $service         <-新增
    }
}


c). 查詢 : rip  及 proto 無資料:

MariaDB [iredadmin]> select * from last_login where username = 'test@mydomain.com';
+-------------------+--------------+------------+-----+-------+
| username          | domain       | last_login | rip | proto |
+-------------------+--------------+------------+-----+-------+
| test@mydomain.com | mydomain.com | 1572073630 |     |       |
+-------------------+--------------+------------+-----+-------+
1 row in set (0.00 sec)

請版主能指點一下.

Thanks.

6

Re: 執行export_last_login.py 的紀錄 , 系統的log查不到

- 先将 test@mydomain.com 的 record 删除,再登陆一次做测试。
- 有些 columns 是只在 INSERT 的时候设置的,后续的 update 都不更新它们。这种情况你需要加个 SQL trigger 去更新它们。

7

Re: 執行export_last_login.py 的紀錄 , 系統的log查不到

Hi 版主:

ZhangHuangbin wrote:

- 先将 test@mydomain.com 的 record 删除,再登陆一次做测试。

刪除test@ 的 record 後 , 重登入:
MariaDB [iredadmin]> select * from last_login where username = 'test@mydomain.com';
+-------------------+--------------+------------+-------------+-------+
| username          | domain       | last_login | rip         | proto |
+-------------------+--------------+------------+-------------+-------+
| test@mydomain.com | mydomain.com | 1572256580 | xxx.xxx.xxx.xxx | pop3  |
+-------------------+--------------+------------+-------------+-------+
1 row in set (0.00 sec)

可以了, 感謝

8

Re: 執行export_last_login.py 的紀錄 , 系統的log查不到

你确定重新登陆后 rip 一栏会更新么?以及 proto。
改用 imap(webmail 也可以)登陆试试。

9

Re: 執行export_last_login.py 的紀錄 , 系統的log查不到

ZhangHuangbin wrote:

你确定重新登陆后 rip 一栏会更新么?以及 proto。
改用 imap(webmail 也可以)登陆试试。

Hi 版主:

IMAP 登入的 proto 欄位,確實無法正確紀錄 !(仍是 pop3)

但時間紀錄是正常.
# python /opt/www/iredadmin/tools/export_last_login.py
     1 | test@mydomain.com    | Tue Oct 29 08:42:05 2019 | xxx.xxx.xxx.xxx  | pop3


版主,請問這如何解?

Thanks.

10

Re: 執行export_last_login.py 的紀錄 , 系統的log查不到

看这里的 item 2:
https://forum.iredmail.org/post71276.html#p71276