ວິທີການໃຊ້ 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 ຂອງມັນ, ແຕ່ເມື່ອທ່ານຄຸ້ນເຄີຍກັບມັນ, ທ່ານຈະຮູ້ສຶກບໍ່ເສຍຄ່າເພື່ອປ່ຽນແລະຂະຫຍາຍກົດລະບຽບຂອງມັນ.