ວິທີການໃຊ້ Fail2ban ເພື່ອຮັບປະກັນຄວາມປອດໄພ Linux Server ຂອງທ່ານ


ການປັບປຸງຄວາມປອດໄພຂອງເຊີບເວີຂອງທ່ານຄວນແມ່ນ ໜຶ່ງ ໃນບັນດາບຸລິມະສິດອັນດັບ ໜຶ່ງ ຂອງທ່ານເມື່ອກ່ຽວກັບການຈັດການກັບ linux server. ໂດຍການທົບທວນເບິ່ງບັນທຶກຂອງເຊີບເວີຂອງທ່ານ, ທ່ານອາດຈະພົບຄວາມພະຍາຍາມທີ່ແຕກຕ່າງກັນ ສຳ ລັບການເຂົ້າລະບົບຂອງ ກຳ ລັງແຮງ, ນໍ້າຖ້ວມເວັບ, ການຂຸດຄົ້ນການຊອກຫາແລະອື່ນໆ.

ດ້ວຍໂປແກຼມປ້ອງກັນການບຸກລຸກເຊັ່ນ: fail2ban, ທ່ານສາມາດກວດເບິ່ງບັນທຶກຂອງເຊີບເວີຂອງທ່ານແລະເພີ່ມກົດ iptables ພິເສດເພື່ອບລັອກທີ່ຢູ່ IP ທີ່ມີປັນຫາ.

ບົດແນະ ນຳ ນີ້ຈະສະແດງວິທີການຕິດຕັ້ງ fail2ban ແລະຕັ້ງຄ່າການຕັ້ງຄ່າຂັ້ນພື້ນຖານເພື່ອປົກປ້ອງລະບົບ Linux ຂອງທ່ານຈາກການໂຈມຕີແບບແຮງ.

Fail2ban ແມ່ນຂຽນໄວ້ໃນ python ແລະຂໍ້ ກຳ ນົດດຽວແມ່ນຕ້ອງຕິດຕັ້ງ python:

  • Fail2ban ສາຂາ 0.9.x ຮຽກຮ້ອງໃຫ້ Python> = 2.6 ຫລື Python> = 3.2
  • Fail2ban ສາຂາ 0.8.x ຮຽກຮ້ອງໃຫ້ Python> = 2.4
  • ການເຂົ້າເຖິງຮາກຂອງລະບົບຂອງທ່ານ
  • ທາງເລືອກ, iptables ຫຼື showewall ແລະ sendmail

ວິທີການຕິດຕັ້ງ Fail2Ban ໃນ Linux Systems

ການຕິດຕັ້ງ fail2ban ແມ່ນຂ້ອນຂ້າງງ່າຍດາຍ:

ຫນ້າທໍາອິດ, ປັບປຸງຊຸດຂອງທ່ານ, ເປີດໃຊ້ຫ້ອງສະຫມຸດ Epel ແລະຕິດຕັ້ງ fail2ban ຕາມທີ່ສະແດງ.

# yum update
# yum install epel-release
# yum install fail2ban

ຫນ້າທໍາອິດ, ປັບປຸງຊຸດຂອງທ່ານແລະຕິດຕັ້ງ fail2ban ດັ່ງທີ່ສະແດງ.

# apt-get update && apt-get upgrade -y
# apt-get install fail2ban

ທາງເລືອກ, ຖ້າທ່ານຕ້ອງການເປີດໃຊ້ງານສະ ໜັບ ສະ ໜູນ ອີເມວ (ສຳ ລັບການແຈ້ງເຕືອນທາງຈົດ ໝາຍ), ທ່ານສາມາດຕິດຕັ້ງ mailmail.

# yum install sendmail                   [On CentOS/RHEL]
# apt-get install sendmail-bin sendmail  [On Debian/Ubuntu]

ເພື່ອເປີດໃຊ້ fail2ban ແລະ sendmail ໃຊ້ ຄຳ ສັ່ງຕໍ່ໄປນີ້:

# systemctl start fail2ban
# systemctl enable fail2ban
# systemctl start sendmail
# systemctl enable sendmail

ວິທີການຕັ້ງຄ່າ Fail2ban ໃນ Linux Systems

ໂດຍຄ່າເລີ່ມຕົ້ນ, fail2ban ໃຊ້ແຟ້ມ .conf ຕັ້ງຢູ່/etc/fail2ban/ເຊິ່ງອ່ານກ່ອນ. ເຖິງຢ່າງໃດກໍ່ຕາມ, ເອກະສານເຫຼົ່ານັ້ນສາມາດຖືກຄອບງໍາໂດຍ .local ແຟ້ມທີ່ຕັ້ງຢູ່ໃນລະບົບດຽວ.

ດັ່ງນັ້ນ, ເອກະສານ .local ບໍ່ ຈຳ ເປັນຕ້ອງລວມເອົາການຕັ້ງຄ່າທັງ ໝົດ ຈາກແຟ້ມ .conf , ແຕ່ມີພຽງແຕ່ຂໍ້ທີ່ທ່ານຕ້ອງການທີ່ຈະປະຕິເສດເທົ່ານັ້ນ. ຕ້ອງມີການປ່ຽນແປງໃນແຟ້ມ .local , ບໍ່ແມ່ນຢູ່ໃນ .conf . ນີ້ຈະປ້ອງກັນບໍ່ໃຫ້ຂຽນທັບການປ່ຽນແປງໃນເວລາທີ່ການຍົກລະດັບຊຸດ fail2ban.

ສຳ ລັບຈຸດປະສົງຂອງບົດແນະ ນຳ ນີ້, ພວກເຮົາຈະຄັດລອກແຟ້ມ fail2ban.conf ທີ່ມີຢູ່ແລ້ວໄປທີ່ fail2ban.local.

# cp /etc/fail2ban/fail2ban.conf /etc/fail2ban/fail2ban.local

ຕອນນີ້ທ່ານສາມາດເຮັດການປ່ຽນແປງໃນເອກະສານ .local ໂດຍການ ນຳ ໃຊ້ຕົວແກ້ໄຂຂໍ້ຄວາມທີ່ທ່ານມັກ. ຄຸນຄ່າທີ່ທ່ານສາມາດແກ້ໄຂແມ່ນ:

  • loglevel - ນີ້ແມ່ນລະດັບຂອງລາຍລະອຽດທີ່ຕ້ອງລົງທະບຽນ. ທາງເລືອກທີ່ເປັນໄປໄດ້ແມ່ນ:
    • ຄວາມ ສຳ ຄັນ
    • ຜິດພາດ
    • ຄຳ ເຕືອນ
    • ໃບແຈ້ງເຕືອນ
    • ຂໍ້ມູນ
    • DEBUG

    • STDOUT - ສົ່ງຂໍ້ມູນໃດໆ
    • STDERR - ສົ່ງຂໍ້ຜິດພາດໃດໆ
    • SYSLOG - ການເຂົ້າສູ່ລະບົບໂດຍອີງໃສ່ຂໍ້ຄວາມ
    • ເອກະສານ - ຜົນຜະລິດເຂົ້າໃນເອກະສານ

    ໜຶ່ງ ໃນເອກະສານ ສຳ ຄັນທີ່ສຸດໃນ fail2ban ແມ່ນ jail.conf ທີ່ ກຳ ນົດຄ່າຄຸກຂອງທ່ານ. ນີ້ແມ່ນບ່ອນທີ່ທ່ານ ກຳ ນົດການບໍລິການ ສຳ ລັບການທີ່ບໍ່ສາມາດເປີດໃຊ້ງານໄດ້.

    ດັ່ງທີ່ພວກເຮົາໄດ້ກ່າວມາກ່ອນ .conf ເອກະສານສາມາດປ່ຽນແປງໄດ້ໃນລະຫວ່າງການຍົກລະດັບ, ດັ່ງນັ້ນທ່ານຄວນສ້າງເອກະສານ jail.local ບ່ອນທີ່ທ່ານສາມາດ ນຳ ໃຊ້ການດັດແປງຂອງທ່ານ.

    ອີກວິທີ ໜຶ່ງ ທີ່ຈະເຮັດຄືການຄັດລອກໄຟລ໌ .conf ດ້ວຍ:

    # cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
    

    ໃນກໍລະນີທີ່ທ່ານ ກຳ ລັງໃຊ້ CentOS ຫຼື Fedora, ທ່ານຈະຕ້ອງປ່ຽນລະບົບ backend ໃນ jail.local ຈາກ“ auto” ໄປເປັນ“ systemd”.

    ຖ້າທ່ານ ກຳ ລັງໃຊ້ Ubuntu/Debian, ມັນບໍ່ ຈຳ ເປັນຕ້ອງມີການແກ້ໄຂນີ້, ເຖິງແມ່ນວ່າພວກເຂົາໃຊ້ systemd ກໍ່ຕາມ.

    ໄຟລ໌ຄຸກຈະຊ່ວຍໃຫ້ SSH ໂດຍຄ່າເລີ່ມຕົ້ນ ສຳ ລັບ Debian ແລະ Ubuntu, ແຕ່ບໍ່ແມ່ນຢູ່ໃນ CentOS. ຖ້າທ່ານຕ້ອງການເປີດໃຊ້ມັນ, ພຽງແຕ່ປ່ຽນສາຍຕໍ່ໄປນີ້ໃນ /etc/fail2ban/jail.local:

    [sshd]
    enabled = true
    

    ທ່ານສາມາດ ກຳ ນົດສະຖານະການພາຍຫຼັງທີ່ທີ່ຢູ່ IP ຖືກບລັອກ. ສໍາລັບຈຸດປະສົງນັ້ນ, fail2ban ໃຊ້ bantime, ເວລາຊອກຫາແລະ maxretry.

    • ເວລາກາງຄືນ - ນີ້ແມ່ນ ຈຳ ນວນວິນາທີທີ່ທີ່ຢູ່ IP ຈະຍັງຄົງຖືກຫ້າມ (ເລີ່ມຕົ້ນ 10 ນາທີ).
    • ເວລາຊອກຫາ - ຈຳ ນວນເວລາລະຫວ່າງຄວາມພະຍາຍາມເຂົ້າສູ່ລະບົບ, ກ່ອນທີ່ເຈົ້າພາບຈະຖືກຫ້າມ. (ຄ່າເລີ່ມຕົ້ນ 10 ນາທີ). ເວົ້າອີກຢ່າງ ໜຶ່ງ ວ່າ, ຖ້າ fail2ban ກຳ ນົດຈະບລັອກທີ່ຢູ່ IP ຫຼັງຈາກການພະຍາຍາມເຂົ້າສູ່ລະບົບ 3 ຄັ້ງທີ່ລົ້ມເຫລວ, 3 ຄວາມພະຍາຍາມເຫລົ່ານັ້ນ, ຕ້ອງໄດ້ເຮັດພາຍໃນໄລຍະເວລາຊອກຫາ (10 ນາທີ).
    • maxretry - ຈຳ ນວນຄວາມພະຍາຍາມທີ່ຈະຕ້ອງໄດ້ເຮັດກ່ອນທີ່ຈະຖືກ ນຳ ໃຊ້. (ຄ່າເລີ່ມຕົ້ນ 3).

    ແນ່ນອນ, ທ່ານຈະຕ້ອງການ whitelist ທີ່ຢູ່ IP ທີ່ແນ່ນອນ. ເພື່ອ ກຳ ຫນົດຄ່າ IP address ດັ່ງກ່າວເປີດ /etc/fail2ban/jail.local ກັບບັນນາທິການຕົວ ໜັງ ສືທີ່ທ່ານມັກແລະບໍ່ສະດວກຕໍ່ສາຍຕໍ່ໄປນີ້:

    ignoreip = 127.0.0.1/8  ::1
    

    ຈາກນັ້ນ, ທ່ານສາມາດໃສ່ທີ່ຢູ່ IP ທີ່ທ່ານຕ້ອງການທີ່ຈະບໍ່ສົນໃຈ. ທີ່ຢູ່ IP ຄວນແຍກອອກຈາກພື້ນທີ່ຫລືຈຸດ.

    ຖ້າທ່ານຕ້ອງການທີ່ຈະໄດ້ຮັບການແຈ້ງເຕືອນທາງຈົດ ໝາຍ ຕໍ່ເຫດການ, ທ່ານຈະຕ້ອງ ກຳ ນົດຄ່າຕໍ່ໄປນີ້ໃນ /etc/fail2ban/jail.local:

    • destemail - ທີ່ຢູ່ mail, ເຊິ່ງທ່ານຈະໄດ້ຮັບແຈ້ງການ.
    • Sendername - ຜູ້ສົ່ງທີ່ທ່ານຈະເຫັນເມື່ອໄດ້ຮັບຂໍ້ຄວາມ.
    • ຜູ້ສົ່ງ - ທີ່ຢູ່ອີເມວຈາກທີ່ fail2ban ຈະສົ່ງອີເມວ.

    ຄ່າເລີ່ມຕົ້ນ mta (ຕົວແທນສົ່ງຈົດ ໝາຍ) ຖືກຕັ້ງຄ່າສົ່ງ mailmail.

    ເພື່ອຈະໄດ້ຮັບແຈ້ງການທາງອີເມວ, ທ່ານຍັງຈະຕ້ອງປ່ຽນການຕັ້ງຄ່າ "ການກະ ທຳ" ຈາກ:

    Action = %(action_)s
    

    ໜຶ່ງ ໃນສິ່ງດັ່ງກ່າວ:

    action = %(action_mw)s
    action = %(action_mwl)s
    

    • % (action_mw) s - ຈະຫ້າມເຈົ້າພາບແລະສົ່ງອີເມວດ້ວຍລາຍງານ whois.
    • % (action_mwl) s - ຈະຫ້າມເຈົ້າພາບ, ໃຫ້ຂໍ້ມູນ whois ແລະຂໍ້ມູນທີ່ກ່ຽວຂ້ອງທັງ ໝົດ ຈາກແຟ້ມບັນທຶກ.

    ການຕັ້ງຄ່າຄຸກເພີ່ມເຕີມ Fail2ban

    ເຖິງຕອນນີ້ພວກເຮົາໄດ້ເບິ່ງຕົວເລືອກການຕັ້ງຄ່າຂັ້ນພື້ນຖານແລ້ວ. ຖ້າທ່ານຕ້ອງການຕັ້ງຄ່າຄຸກທ່ານ ຈຳ ເປັນຕ້ອງເປີດໃຊ້ໃນເອກະສານ jail.local. syntax ແມ່ນງ່າຍດາຍຫຼາຍ:

    [jail_to_enable]
    . . .
    enabled = true
    

    ບ່ອນທີ່ທ່ານຄວນຈະເຂົ້າຄຸກແທນທີ່ຈະຖືກຄຸກຕົວຈິງ, ຍົກຕົວຢ່າງ,“ sshd”. ໃນເອກະສານ jail.local, ຄ່າຕໍ່ໄປນີ້ຈະຖືກ ກຳ ນົດໄວ້ ສຳ ລັບການບໍລິການ ssh:

    [sshd]
    
    port = ssh
    logpath = %(sshd_log)s
    

    ທ່ານສາມາດເປີດໃຊ້ຕົວກອງທີ່ຈະຊ່ວຍໃຫ້ສາມາດລະບຸໄດ້ວ່າເສັ້ນຢູ່ໃນທ່ອນໄມ້ບໍ່ຖືກຕ້ອງ. ຄ່າຕົວກອງແມ່ນຕົວຈິງອ້າງອີງໃສ່ເອກະສານທີ່ມີຊື່ບໍລິການຕາມດ້ວຍ .conf. ຕົວຢ່າງ: /etc/fail2ban/filter.d/sshd.conf.

    syntax ແມ່ນ:

    filter = service
    

    ຍົກຕົວຢ່າງ:

    filter = sshd
    

    ທ່ານສາມາດກວດເບິ່ງຕົວກອງທີ່ມີຢູ່ໃນໄດເລກະທໍລີຕໍ່ໄປນີ້: /etc/fail2ban/filter.d/.

    Fail2ban ມາພ້ອມກັບລູກຄ້າທີ່ສາມາດໃຊ້ ສຳ ລັບການທົບທວນແລະປ່ຽນແປງການຕັ້ງຄ່າໃນປະຈຸບັນ. ເນື່ອງຈາກມັນມີຫລາຍທາງເລືອກ, ທ່ານສາມາດເຂົ້າປື້ມຄູ່ມືຂອງມັນດ້ວຍ:

    # man fail2ban-client 
    

    ນີ້ທ່ານຈະເຫັນບາງ ຄຳ ສັ່ງພື້ນຖານທີ່ທ່ານສາມາດໃຊ້ໄດ້. ເພື່ອທົບທວນສະຖານະພາບຂອງ fail2ban ປະຈຸບັນຫຼື ສຳ ລັບການ ຈຳ ຄຸກສະເພາະ, ທ່ານສາມາດໃຊ້:

    # fail2ban-client status
    

    ຜົນໄດ້ຮັບຈະເບິ່ງຄ້າຍຄືກັນກັບນີ້:

    ສຳ ລັບ ຈຳ ຄຸກແຕ່ລະຄົນ, ທ່ານສາມາດແລ່ນໄດ້:

    # fail2ban-client status sshd
    

    ໃນ ໜ້າ ຈໍຂ້າງລຸ່ມນີ້, ທ່ານຈະເຫັນວ່າຂ້ອຍໄດ້ລົ້ມເຫລວເຂົ້າສູ່ລະບົບຫລາຍຄັ້ງໂດຍບໍ່ມີຈຸດປະສົງດັ່ງນັ້ນ fail2ban ສາມາດບລັອກທີ່ຢູ່ IP ຈາກທີ່ຂ້ອຍພະຍາຍາມເຊື່ອມຕໍ່:

    Fail2ban ແມ່ນລະບົບປ້ອງກັນການບຸກລຸກທີ່ມີເອກະສານທີ່ດີເລີດ, ເຊິ່ງໃຫ້ຄວາມປອດໄພພິເສດແກ່ລະບົບ Linux ຂອງທ່ານ. ມັນຕ້ອງໃຊ້ເວລາບາງເວລາເພື່ອ ນຳ ໃຊ້ເຂົ້າໃນການຕັ້ງຄ່າແລະ syntax ຂອງມັນ, ແຕ່ເມື່ອທ່ານຄຸ້ນເຄີຍກັບມັນ, ທ່ານຈະຮູ້ສຶກບໍ່ເສຍຄ່າເພື່ອປ່ຽນແລະຂະຫຍາຍກົດລະບຽບຂອງມັນ.