ค้นหาเว็บไซต์

ติดตั้งและกำหนดค่า ConfigServer Security & Firewall (CSF) ใน Linux


หากคุณดูประกาศรับสมัครงานที่เกี่ยวข้องกับไอทีทุกที่ คุณจะสังเกตเห็นความต้องการผู้เชี่ยวชาญด้านความปลอดภัยอย่างต่อเนื่อง นี่ไม่เพียงหมายความว่าความปลอดภัยทางไซเบอร์เป็นสาขาวิชาที่น่าสนใจ แต่ยังเป็นสาขาวิชาที่ทำกำไรได้มากอีกด้วย

ด้วยเหตุนี้ ในบทความนี้ เราจะอธิบายวิธีการติดตั้งและกำหนดค่า ConfigServer Security & Firewall (เรียกอีกอย่างว่า CSF) ซึ่งเป็นชุดรักษาความปลอดภัยเต็มรูปแบบสำหรับ Linux และแบ่งปันกรณีการใช้งานทั่วไปสองสามกรณี จากนั้น คุณจะสามารถใช้ CSF เป็นไฟร์วอลล์และระบบตรวจจับความล้มเหลวในการบุกรุก/เข้าสู่ระบบ เพื่อทำให้เซิร์ฟเวอร์ที่คุณรับผิดชอบแข็งแกร่งขึ้น

เรามาเริ่มกันเลย

การติดตั้งและกำหนดค่า CSF ใน Linux

ในการเริ่มต้น โปรดทราบว่า Perl และ libwww เป็นข้อกำหนดเบื้องต้นในการติดตั้ง CSF บนการกระจายที่รองรับ (RHEL ) และ CentOS, openSUSE, Debian และ Ubuntu) เนื่องจากควรจะพร้อมใช้งานตามค่าเริ่มต้น คุณจึงไม่จำเป็นต้องดำเนินการใดๆ เว้นแต่ขั้นตอนใดขั้นตอนหนึ่งต่อไปนี้จะส่งคืนข้อผิดพลาดร้ายแรง (ในกรณีนี้ ให้ใช้ระบบการจัดการแพ็คเกจเพื่อติดตั้งการขึ้นต่อกันที่หายไป)

yum install perl-libwww-perl
apt install libwww-perl

ขั้นตอนที่ 1 – ดาวน์โหลด CSF

cd /usr/src
wget https://download.configserver.com/csf.tgz

ขั้นตอนที่ 2 - แยก tarball CSF

tar xzf csf.tgz
cd csf

ขั้นตอนที่ 3 – เรียกใช้สคริปต์การติดตั้ง CSF

ส่วนนี้ของกระบวนการจะตรวจสอบว่ามีการติดตั้งการขึ้นต่อกันทั้งหมด สร้างโครงสร้างไดเร็กทอรีและไฟล์ที่จำเป็นสำหรับอินเทอร์เฟซเว็บ ตรวจจับพอร์ตที่เปิดอยู่ในปัจจุบัน และเตือนให้คุณรีสตาร์ท csf และ lfd< daemons หลังจากที่คุณเสร็จสิ้นการกำหนดค่าเริ่มต้นแล้ว

sh install.sh
perl /usr/local/csf/bin/csftest.pl

ผลลัพธ์ที่คาดหวังของคำสั่งข้างต้นจะเป็นดังนี้:

Testing ip_tables/iptable_filter...OK
Testing ipt_LOG...OK
Testing ipt_multiport/xt_multiport...OK
Testing ipt_REJECT...OK
Testing ipt_state/xt_state...OK
Testing ipt_limit/xt_limit...OK
Testing ipt_recent...OK
Testing xt_connlimit...OK
Testing ipt_owner/xt_owner...OK
Testing iptable_nat/ipt_REDIRECT...OK
Testing iptable_nat/ipt_DNAT...OK

RESULT: csf should function on this server

ขั้นตอนที่ 4: ปิดใช้งานไฟร์วอลล์และกำหนดค่า CSF

ปิดการใช้งาน ไฟร์วอลล์ หากทำงานและกำหนดค่า CSF

systemctl stop firewalld
systemctl disable firewalld

เปลี่ยน TESTING="1" เป็น TESTING="0" (ไม่เช่นนั้น lfd daemon จะไม่เริ่มทำงาน) และรายการที่อนุญาตทั้งขาเข้าและขาออก พอร์ตเป็นรายการที่คั่นด้วยเครื่องหมายจุลภาค (TCP_IN และ TCP_OUT ตามลำดับ) ใน /etc/csf/csf.conf ดังที่แสดงในเอาต์พุตด้านล่าง : :

Testing flag - enables a CRON job that clears iptables incase of
configuration problems when you start csf. This should be enabled until you
are sure that the firewall works - i.e. incase you get locked out of your
server! Then do remember to set it to 0 and restart csf when you're sure
everything is OK. Stopping csf will remove the line from /etc/crontab
#
lfd will not start while this is enabled
TESTING = "0"

Allow incoming TCP ports
TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995"

Allow outgoing TCP ports
TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995"

เมื่อคุณพอใจกับการกำหนดค่าแล้ว ให้บันทึกการเปลี่ยนแปลงและกลับสู่บรรทัดคำสั่ง

ขั้นตอนที่ 5 - รีสตาร์ทและทดสอบ CSF

systemctl restart {csf,lfd}
systemctl enable {csf,lfd}
systemctl is-active {csf,lfd}
csf -v

ณ จุดนี้ เราพร้อมที่จะเริ่มตั้งค่าไฟร์วอลล์และกฎการตรวจจับการบุกรุกตามที่กล่าวไว้ต่อไป

การตั้งค่ากฎ CSF และการตรวจจับการบุกรุก

ก่อนอื่น คุณจะต้องตรวจสอบกฎไฟร์วอลล์ปัจจุบันดังนี้:

csf -l

คุณยังสามารถหยุดหรือโหลดซ้ำได้ด้วย:

csf -f
csf -r

ตามลำดับ อย่าลืมจดจำตัวเลือกเหล่านี้ คุณจะต้องใช้เมื่อดำเนินการ โดยเฉพาะเพื่อตรวจสอบหลังจากทำการเปลี่ยนแปลงและรีสตาร์ท csf และ lfd

ตัวอย่างที่ 1 – การอนุญาตและการห้ามที่อยู่ IP

เพื่ออนุญาตการเชื่อมต่อขาเข้าจาก 192.168.0.10

csf -a 192.168.0.10

ในทำนองเดียวกัน คุณสามารถปฏิเสธการเชื่อมต่อที่มาจาก 192.168.0.11 ได้

csf -d 192.168.0.11

คุณสามารถลบกฎแต่ละข้อข้างต้นได้หากต้องการ

csf -ar 192.168.0.10
csf -dr 192.168.0.11

โปรดทราบว่าการใช้ -ar หรือ -dr ข้างต้นจะลบกฎการอนุญาตและปฏิเสธที่มีอยู่ซึ่งเชื่อมโยงกับที่อยู่ IP ที่กำหนด

ตัวอย่างที่ 2 – การจำกัดการเชื่อมต่อขาเข้าตามแหล่งที่มา

ขึ้นอยู่กับวัตถุประสงค์การใช้งานเซิร์ฟเวอร์ของคุณ คุณอาจต้องการจำกัดการเชื่อมต่อขาเข้าให้เป็นหมายเลขที่ปลอดภัยบนพื้นฐานพอร์ต โดยเปิด /etc/csf/csf.conf และค้นหา CONNLIMIT คุณสามารถระบุหลายพอร์ตได้ คู่การเชื่อมต่อคั่นด้วยเครื่องหมายจุลภาค ตัวอย่างเช่น,

CONNLIMIT = "22;2,80;10"

จะอนุญาตเฉพาะการเชื่อมต่อขาเข้า 2 และ 10 จากแหล่งเดียวกันไปยังพอร์ต TCP 22 และ 80 ตามลำดับ

ตัวอย่างที่ 3 – การส่งการแจ้งเตือนทางอีเมล

มีประเภทการแจ้งเตือนหลายประเภทที่คุณสามารถเลือกได้ มองหาการตั้งค่า EMAIL_ALERT ใน /etc/csf/csf.conf และตรวจสอบให้แน่ใจว่าได้ตั้งค่าเป็น "1" เพื่อรับการแจ้งเตือนที่เกี่ยวข้อง ตัวอย่างเช่น,

 
LF_SSH_EMAIL_ALERT = "1"
LF_SU_EMAIL_ALERT = "1"

จะทำให้การแจ้งเตือนถูกส่งไปยังที่อยู่ที่ระบุใน LF_ALERT_TO ทุกครั้งที่มีคนเข้าสู่ระบบผ่าน SSH ได้สำเร็จหรือสลับไปยังบัญชีอื่นโดยใช้คำสั่ง su

ตัวเลือกการกำหนดค่า CSF และการใช้งาน

ตัวเลือกต่อไปนี้ใช้เพื่อแก้ไขและควบคุมการกำหนดค่า csf ไฟล์การกำหนดค่าทั้งหมดของ csf อยู่ภายใต้ไดเรกทอรี /etc/csf หากคุณแก้ไขไฟล์ใดๆ ต่อไปนี้ คุณจะต้องรีสตาร์ท csf daemon เพื่อทำการเปลี่ยนแปลง

  • csf.conf : ไฟล์การกำหนดค่าหลักสำหรับการควบคุม CSF
  • csf.allow : รายการที่อยู่ IP และ CIDR ที่อนุญาตบนไฟร์วอลล์
  • csf.deny : รายการที่อยู่ IP และ CIDR ที่ถูกปฏิเสธบนไฟร์วอลล์
  • csf.ignore : รายการที่อยู่ IP และ CIDR ที่ถูกละเว้นบนไฟร์วอลล์
  • csf.*ignore : รายการไฟล์ละเว้นต่างๆ ของผู้ใช้ IP

ลบไฟร์วอลล์ CSF

หากคุณต้องการลบไฟร์วอลล์ CSF ออกทั้งหมด เพียงเรียกใช้สคริปต์ต่อไปนี้ซึ่งอยู่ภายใต้ไดเรกทอรี /etc/csf/uninstall.sh

/etc/csf/uninstall.sh

คำสั่งดังกล่าวจะลบไฟร์วอลล์ CSF พร้อมไฟล์และโฟลเดอร์ทั้งหมด

สรุป

ในบทความนี้ เราได้อธิบายวิธีการติดตั้ง กำหนดค่า และใช้ CSF เป็นไฟร์วอลล์และระบบตรวจจับการบุกรุก โปรดทราบว่าคุณลักษณะเพิ่มเติมมีการระบุไว้ใน csf.conf

ตัวอย่างเช่น หากคุณอยู่ในธุรกิจเว็บโฮสติ้ง คุณสามารถรวม CSF เข้ากับโซลูชันการจัดการ เช่น Cpanel, WHM หรือ Webmin ที่รู้จักกันดี

คุณมีคำถามหรือความคิดเห็นเกี่ยวกับบทความนี้หรือไม่? โปรดส่งข้อความถึงเราโดยใช้แบบฟอร์มด้านล่าง เราหวังว่าจะได้ยินจากคุณ!