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