Chuyển đến nội dung

DevOps VN

DevOps là phải lười ~_~

Danh mục

  • Cơ sở dữ liệu (11)
    • Elasticsearch (2)
    • Mysql (1)
    • Oracle (2)
    • Posgresql (4)
  • Code (12)
    • BashShell (4)
    • batch (1)
    • Powershell (2)
    • Python (6)
  • Hệ thống (74)
    • Ảo hoá (7)
    • Container (7)
    • Linux (39)
    • Mail server (1)
    • Web server (2)
    • Windows (12)
  • NETWORK (11)
    • F5 ADC (1)
    • Firewall Juniper SRX (1)
  • Trick (32)

Lưu trữ

  • Tháng bảy 2025 (1)
  • Tháng ba 2025 (1)
  • Tháng sáu 2024 (1)
  • Tháng năm 2024 (1)
  • Tháng tư 2024 (1)
  • Tháng Một 2024 (1)
  • Tháng mười hai 2023 (1)
  • Tháng năm 2022 (2)
  • Tháng hai 2022 (1)
  • Tháng bảy 2021 (1)
  • Tháng sáu 2021 (2)
  • Tháng năm 2021 (3)
  • Tháng tư 2021 (1)
  • Tháng Một 2021 (1)
  • Tháng mười hai 2020 (1)
  • Tháng mười 2020 (1)
  • Tháng chín 2020 (1)
  • Tháng sáu 2020 (2)
  • Tháng năm 2020 (2)
  • Tháng tư 2020 (3)
  • Tháng ba 2020 (5)
  • Tháng hai 2020 (1)
  • Tháng Một 2020 (2)
  • Tháng chín 2019 (2)
  • Tháng tám 2019 (13)
  • Tháng bảy 2019 (7)
  • Tháng sáu 2019 (4)
  • Tháng năm 2019 (5)
  • Tháng tư 2019 (1)
  • Tháng hai 2019 (3)
  • Tháng Một 2019 (8)
  • Tháng mười hai 2018 (1)
  • Tháng mười một 2018 (2)
  • Tháng mười 2018 (8)

Thẻ: cảnh báo log in thành công qua SSH

Thông báo khi có user SSH thành công qua email

Thông báo khi có user SSH thành công qua email

Khi có user log in vào máy qua SSH, các file trong thư mục /etc/profile.d/ sẽ được thực thi. Lợi dụng việc này, ta sẽ viết script để tự động gửi mail thông báo khi có ai đó log in thành công
Thiết kế:

/opt/batch/backup_web/mail.py   File gửi mail, được viết bằng python
/etc/profile.d/notify_login.sh  File sh, sẽ được chạy mỗi khi login, file này sẽ gọi tới file python ở trên để gửi mail

Nội dung cả 2 file:
File mail.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
# coding=utf-8
import sys
import smtplib
import os
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email import Encoders
import datetime
def mail(to='abcd@gmail.com', subject='Email backup du lieu', text='day la body', attach='/var/log/secure'):
  gmail_user='abcd@gmail.com'
  gmail_pwd='ebzrmwozqckeqcoa'
  msg = MIMEMultipart()
  msg['From'] = 'abcd@gmail.com'
  msg['To'] = to
  msg['Subject'] = subject
  msg.attach(MIMEText(text+"\r\n"+datetime.datetime.today().strftime('%Y-%m-%d')))

  part = MIMEBase('application', 'octet-stream')
  part.set_payload(open(attach, 'rb').read())
  Encoders.encode_base64(part)
  part.add_header('Content-Disposition',
          'attachment; filename="%s"' % os.path.basename(attach))
  msg.attach(part)

  mailServer = smtplib.SMTP("smtp.gmail.com", 587)
  mailServer.ehlo()
  mailServer.starttls()
  mailServer.ehlo()
  mailServer.login(gmail_user, gmail_pwd)
  mailServer.sendmail(gmail_user, to, msg.as_string())
  # Should be mailServer.quit(), but that crashes...
  mailServer.close()

mail(subject=sys.argv[1], text=sys.argv[2], attach=sys.argv[3])

File sh

#!/bin/bash

sendmailpy=/opt/batch/backup_web/mail.py
ACCESS_IP=`/bin/echo $SSH_CLIENT | awk '{ print $1 }'`
SUBJECT="$ACCESS_IP Đã truy cập"
BODY="$(date) => $SSH_CLIENT đã truy cập bằng user $USER"
attach_local=/var/log/secure
/bin/nohup /usr/bin/python $sendmailpy $SUBJECT "$BODY" $attach_local >> /var/log/ssh_login_$(date +%F) &

Thông tin về email sử dụng để gửi cảnh báo được định nghĩa trong file mail.py
Lưu ý: Sử dụng trên gmail thấy google chặn đăng nhập đối với các user sử dụng password chính, còn đối với các user bật xác minh 2 bước, sử dụng pass ứng dụng thì google cho đăng nhập thoải mái. các bạn lưu ý.

Đăng vào ngày 08/24/2019Danh mục BashShell, Code, Hệ thống, Linux, Python, TrickThẻ bảo mật máy chủ linux, cảnh báo log in thành công qua SSH, Thông báo khi có user SSH thành công qua email
Tự hào được phát triển từ WordPress