Cài đặt Fail2Ban để bảo bảo vệ SSH trên Linux

Thảo luận trong 'Web Security' bắt đầu bởi DDos, 23/03/18, 02:03 PM.

  1. DDos

    DDos Super Moderator Thành viên BQT

    Tham gia: 22/10/13, 08:10 PM
    Bài viết: 1,504
    Đã được thích: 273
    Điểm thành tích:
    83
    Fail2ban là 1 chương trình được viết bằng python có nhiệm vụ chặn các ip kết nối đến server dựa vào các dấu hiệu nghi ngờ mà ip đó để lại trong file log của hệ thống hoặc dịch vụ. Ví dụ như có quá nhiều lần sử dụng mật khẩu không hợp lệ, truy cập không hợp lệ hoặc các dấu hiệu bất thường khác mà có thể nhận biết được.

    Mỗi luật trong fail2ban (jail) bao gồm 3 thành phần: luật lọc(filter) và luật chặn(action) và file log cần lọc. Fail2ban đếm số lần 1 ip vi phạm luật lọc(filter) trong 1 khoảng thời gian xác định, nếu số lần vi phạm vượt quá 1 ngưỡng cho trước thì ip đó sẽ bị chặn kêt nối đến server bởi luật chặn(action). Các thông số khoảng thời gian quét, ngưỡng giới hạn, thời gian chặn ip hay vị trí file log sẽ được cấu hình riêng cho từng jail.

    [​IMG]

    Sử dụng Fail2ban để bảo vệ ssh trong Linux.
    1. Cài đặt Fail2ban
      Ubuntu/Debian: sudo apt-get install fail2ban
      CentOS: yum install fail2ban
    2. Cấu hình Fail2ban:
      vi /etc/fail2ban/jail.conf

      [DEFAULT]

      # "ignoreip" can be an IP address, a CIDR mask or a DNS host. Fail2ban will not
      # ban a host which matches an address in this list. Several addresses can be
      # defined using space separator.

      ignoreip = 127.0.0.1

      # "bantime" is the number of seconds that a host is banned.

      bantime = 600

      # A host is banned if it has generated "maxretry" during the last "findtime"
      # seconds.

      findtime = 600

      # "maxretry" is the number of failures before a host get banned.

      maxretry = 3

      Trong đó:
      • ignoreip: là địa chỉ IP mà bạn không muốn block
      • bantime: khoảng thời gian (giây) block IP
      • findtime: khoảng thời gian (giây) một IP phải login thành công
      • maxretry: số lần đăng nhập sai tối đa

    3. Cấu hình Fail2Ban bảo vệ SSH

      vi /etc/fail2ban/jail.local

      [ssh-iptables]

      enabled = true
      filter = sshd
      action = iptables[name=SSH, port=ssh, protocol=tcp]
      # sendmail-whois[name=SSH, dest=root, sender=fail2ban@example.com]
      logpath = /var/log/secure
      maxretry = 3
      bantime = 7200

      Trong đó

      • enabled: tắt bật chế độ bảo vệ.
      • filter: giữ mặc định để sử dụng file cấu hình /etc/fail2ban/filter.d/sshd.conf
      • action: fail2ban sẽ ban địa chỉ IP nếu match filter /etc/fail2ban/action.d/iptables.conf.
      • logpath: đường dẫn file log fail2ban sử dụng để theo dõi
      • maxretry: số lần login false tối đa
      • bantime: thời gian ban IP

    4. Khởi động Service Fail2Ban
      chkconfig --level 23 fail2ban on
      service fail2ban start
     
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
    maldet thích bài này.
Tags: