ไฟร์วอลล์บนเครื่องโฮสต์และการอนุญาตรายการแอปพลิเคชัน
กำหนดค่าไฟร์วอลล์บนเครื่องโฮสต์ (Windows Defender Firewall, iptables) และรายการแอปพลิเคชันที่อนุญาต เพื่อบล็อกซอฟต์แวร์ที่ไม่ได้รับอนุญาตไม่ให้ทำงาน
ไฟร์วอลล์บนเครื่องโฮสต์และการอนุญาตรายการแอปพลิเคชัน เป็นบทเรียน Cloud & IT Cert Prep ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cloud & IT Cert Prep และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cloud & IT Cert Prep มีบทเรียนทั้งหมด 4 บทเรียน
ไฟร์วอลล์บนโฮสต์เทียบกับไฟร์วอลล์เครือข่าย
ไฟร์วอลล์เครือข่าย อยู่ที่ขอบเขตเครือข่ายและกรองการรับส่งข้อมูลระหว่างส่วนต่าง ๆ ของเครือข่าย ส่วน ไฟร์วอลล์บนโฮสต์ ทำงานบนอุปกรณ์ปลายทางแต่ละเครื่อง และกรองการรับส่งข้อมูลเข้าและออกจากเครื่องนั้นโดยเฉพาะ ไฟร์วอลล์บนโฮสต์ช่วยเสริมการป้องกันแบบหลายชั้น แม้ผู้โจมตีจะหลบผ่านไฟร์วอลล์เครือข่ายได้ ไม่ว่าจะผ่าน VPN บุคคลภายในที่ถูกเจาะระบบ หรือการเคลื่อนที่ด้านข้างจากโฮสต์อื่นที่ติดมัลแวร์ ไฟร์วอลล์บนโฮสต์ก็ยังบังคับใช้กฎการรับส่งข้อมูลภายในเครื่องได้ ไฟร์วอลล์ประเภทนี้สำคัญเป็นพิเศษสำหรับแล็ปท็อปที่อยู่นอกขอบเขตองค์กรและเชื่อมต่อกับเครือข่ายที่ไม่น่าเชื่อถือ
Windows Defender Firewall
Windows Defender Firewall (WDF) คือไฟร์วอลล์บนโฮสต์ในตัวของ Windows รุ่นใหม่ทั้งหมด โดยรองรับโพรไฟล์สามแบบ ได้แก่ Domain (เชื่อมต่อกับโดเมนองค์กร จึงมักอนุญาตมากกว่า) Private (เครือข่ายภายในบ้านที่เชื่อถือได้) และ Public (เครือข่ายที่ไม่น่าเชื่อถือ จึงมีข้อจำกัดมากที่สุด) กฎของ WDF สามารถกรองตามพอร์ต โพรโทคอล เส้นทางแอปพลิเคชัน IP ระยะไกล และข้อมูลประจำตัวผู้ใช้ ส่วนสแนปอิน MMC ของ Windows Defender Firewall with Advanced Security (WFAS) และ Group Policy ช่วยให้จัดการกฎไฟร์วอลล์จากศูนย์กลางสำหรับเครื่องที่เข้าร่วมโดเมนทั้งหมดในองค์กรได้
# Windows: create inbound firewall rule
netsh advfirewall firewall add rule \
name='Block Telnet' \
dir=in \
action=block \
protocol=TCP \
localport=23
# PowerShell equivalent
New-NetFirewallRule \
-DisplayName 'Block Telnet Inbound' \
-Direction Inbound \
-Protocol TCP \
-LocalPort 23 \
-Action Blockiptables และ nftables บน Linux
ไฟร์วอลล์บนโฮสต์ Linux ใช้เฟรมเวิร์กระดับเคอร์เนล Netfilter ซึ่งกำหนดค่าได้ผ่าน iptables (แบบเดิมที่ยังใช้งานอย่างแพร่หลาย) หรือ nftables รุ่นใหม่ กฎต่าง ๆ จัดเป็นสาย (INPUT, OUTPUT, FORWARD) ภายในตาราง (filter, nat, mangle) นโยบายเริ่มต้นควรเป็น DROP พร้อมกฎ ACCEPT อย่างชัดเจนสำหรับการรับส่งข้อมูลที่จำเป็น ซึ่งเป็นแนวทางปฏิเสธเป็นค่าเริ่มต้น เครื่องมือระดับสูงกว่าอย่าง ufw (Ubuntu) และ firewalld (RHEL/CentOS) มีส่วนติดต่อที่ใช้งานง่ายกว่า แต่ยังคงใช้ Netfilter อยู่เบื้องหลัง
# iptables: deny-by-default with selective allow
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Allow established connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow SSH from specific subnet only
iptables -A INPUT -s 10.10.0.0/24 -p tcp --dport 22 -j ACCEPT
# Allow HTTPS
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Save rules
iptables-save > /etc/iptables/rules.v4กฎไฟร์วอลล์ระดับแอปพลิเคชัน
ไฟร์วอลล์บนโฮสต์สามารถบังคับใช้กฎใน ระดับแอปพลิเคชัน ได้ โดยกรองการรับส่งข้อมูลตามแอปพลิเคชันที่สร้างข้อมูลนั้น ไม่ใช่กรองเฉพาะตามพอร์ต Windows Defender Firewall รองรับกฎตามแอปพลิเคชัน เช่น อนุญาตให้ C:\Program Files\MyApp\app.exe สร้างการเชื่อมต่อขาออก ขณะบล็อกทุกอย่างที่เหลือบนพอร์ตเดียวกัน วิธีนี้ป้องกันมัลแวร์ไม่ให้ยึดพอร์ตที่ได้รับอนุญาตด้วยการแอบอ้างเป็นแอปพลิเคชันที่เชื่อถือได้ กฎระดับแอปพลิเคชันมีประสิทธิภาพมากกว่ากฎที่พิจารณาเฉพาะพอร์ตอย่างเห็นได้ชัด เนื่องจากกฎแบบหลังอาจถูกหลบเลี่ยงได้ด้วยการผูกมัลแวร์เข้ากับพอร์ตทั่วไป เช่น 443
# Windows: firewall rule scoped to a specific app
New-NetFirewallRule \
-DisplayName 'Allow Chrome HTTPS' \
-Direction Outbound \
-Program 'C:\Program Files\Google\Chrome\Application\chrome.exe' \
-Protocol TCP \
-RemotePort 443 \
-Action Allow
# Blocks any OTHER process trying to use port 443
# unless that process also has an explicit ALLOW ruleการอนุญาตรายการแอปพลิเคชันคืออะไร
การอนุญาตรายการแอปพลิเคชัน (เดิมเรียกว่าการจัดทำบัญชีขาว) คือการควบคุมความปลอดภัยที่อนุญาตให้เฉพาะแอปพลิเคชันที่ได้รับอนุมัติอย่างชัดเจนทำงานบนอุปกรณ์ปลายทางได้ ไฟล์ปฏิบัติการใดก็ตามที่ไม่อยู่ในรายการอนุญาตจะถูกบล็อก ไม่ว่าจะเป็นมัลแวร์หรือเพียงซอฟต์แวร์ที่ไม่ได้รับอนุมัติก็ตาม วิธีนี้เป็นการป้องกันมัลแวร์ที่มีประสิทธิภาพ เพราะแม้แต่มาลแวร์รูปแบบใหม่หรือมัลแวร์แบบซีโรเดย์ก็จะถูกบล็อกหากไม่อยู่ในรายการที่อนุมัติ ความท้าทายอยู่ที่การดำเนินงาน การจัดการรายการอนุญาตในสภาพแวดล้อมขนาดใหญ่และเปลี่ยนแปลงอยู่เสมอต้องมีกระบวนการจัดการการเปลี่ยนแปลงที่成熟 และหากปรับแต่งไม่ดี จะทำให้มีคำขอความช่วยเหลือจำนวนมาก
Windows AppLocker
AppLocker คือฟีเจอร์ควบคุมแอปพลิเคชันในตัวของ Windows ซึ่งมีในรุ่น Enterprise และ Education โดยกรองการทำงานตาม เส้นทาง (บล็อกไฟล์ปฏิบัติการจาก %TEMP% หรือไดเรกทอรีที่ผู้ใช้เขียนได้) แฮชของไฟล์ (อนุญาตเฉพาะแฮชที่ทราบว่าเชื่อถือได้) หรือ publisher (อนุญาตซอฟต์แวร์ที่ลงลายเซ็นโดย Microsoft หรือ Adobe) นโยบาย AppLocker ปรับใช้ผ่าน Group Policy และบันทึกลง Windows Event Log (รหัสเหตุการณ์ 8003 = ถูกบล็อก) การเรียกใช้ AppLocker ใน Audit Mode ก่อน โดยบันทึกการบล็อกโดยไม่บังคับใช้จริง ช่วยให้ทีมปรับแต่งรายการอนุญาตได้ก่อนเริ่มบังคับใช้
# AppLocker rule examples (Group Policy)
# Block executables in user-writable locations
Path Rule: C:\Users\*\AppData\*.exe -> DENY
Path Rule: C:\Windows\Temp\*.exe -> DENY
# Allow by publisher (certificate)
Publisher Rule: O=Microsoft, CN=* -> ALLOW
Publisher Rule: O=Adobe, CN=Adobe Acrobat -> ALLOW
# Hash rule for specific approved version
Hash Rule: SHA256:a1b2c3d4... -> ALLOW
# Check AppLocker events:
Get-WinEvent -LogName 'Microsoft-Windows-AppLocker/EXE and DLL'Windows Defender Application Control (WDAC)
WDAC เป็นรุ่นต่อยอดที่มีประสิทธิภาพสูงกว่า AppLocker โดยบังคับใช้ในระดับเคอร์เนลแทนพื้นที่ผู้ใช้ ต่างจาก AppLocker ตรงที่ WDAC ไม่สามารถถูกหลบเลี่ยงได้ด้วยสิทธิ์ผู้ดูแลระบบภายในเครื่อง ทำให้เป็นการควบคุมที่เหมาะสำหรับสภาพแวดล้อมที่มีความปลอดภัยสูง นโยบาย WDAC เขียนในรูปแบบ XML และแปลงเป็นไฟล์นโยบายไบนารีที่ปรับใช้ผ่าน MDM (Intune) หรือ Group Policy นอกจากนี้ WDAC ยังเปิดใช้การผสานรวมกับ Intelligent Security Graph (ISG) ซึ่งใช้บริการประเมินชื่อเสียงบนคลาวด์ของ Microsoft เพื่ออนุญาตซอฟต์แวร์ที่มีชื่อเสียงน่าเชื่อถือโดยอัตโนมัติ ช่วยลดภาระในการคัดเลือกรายการอนุญาตด้วยตนเอง
ความท้าทายของการอนุญาตรายการ
การอนุญาตรายการมีประสิทธิภาพสูง แต่ต้องใช้ความพยายามในการดำเนินงานมาก ความท้าทายที่พบบ่อย ได้แก่ LOLBins (ไบนารีที่ใช้ประโยชน์จากเครื่องมือที่มีอยู่ในระบบ) ซึ่งผู้โจมตีใช้เครื่องมือระบบ Windows เช่น PowerShell, wscript.exe และ mshta.exe ที่มักอยู่ในรายการอนุญาตทุกเครื่อง ดังนั้นการอนุญาตรายการต้องจำกัดวิธีเรียกใช้เครื่องมือเหล่านี้ ไม่ใช่จำกัดเพียงว่าจะให้เครื่องมือทำงานหรือไม่ ภาษาสคริปต์ (PowerShell, Python) มักอยู่ในรายการอนุญาต แต่สามารถใช้เรียกใช้โค้ดอันตรายได้ ผลบวกลวง ซึ่งหมายถึงซอฟต์แวร์ที่ถูกต้องตามกฎหมายแต่ถูกบล็อกโดยรายการอนุญาต จะทำให้มีคำขอไปยังฝ่ายช่วยเหลือและแรงกดดันให้ลดความเข้มงวดของการควบคุม โปรแกรมการอนุญาตรายการที่成熟จะแก้ปัญหา LOLBins ด้วยนโยบายโหมดภาษาที่จำกัดเพิ่มเติม
# Restricting PowerShell with Constrained Language Mode
# Applied via WDAC when non-WDAC code runs
$ExecutionContext.SessionState.LanguageMode
# Full Language mode -> normal PowerShell
# Constrained Language -> no .NET, no COM objects
# Blocks many attack techniques
# Via Group Policy: force PowerShell logging
# Computer Config > Admin Templates > Windows Components
# > Windows PowerShell
# Enable: Module Logging, Script Block Logging, Transcriptionการอนุญาตรายการเทียบกับการปฏิเสธรายการ
การอนุญาตรายการ อนุญาตเฉพาะรายการที่ได้รับอนุมัติอย่างชัดเจนและบล็อกทุกอย่างที่เหลือ ซึ่งเป็นแนวทางความปลอดภัยที่แข็งแกร่งกว่า การปฏิเสธรายการ (การจัดทำบัญชีดำ) บล็อกเฉพาะรายการที่ทราบแน่ชัดว่าเป็นอันตราย และอนุญาตทุกอย่างที่เหลือ ซึ่งเป็นรูปแบบดั้งเดิมของโปรแกรมป้องกันไวรัส การปฏิเสธรายการใช้ไม่ได้ผลกับภัยคุกคามที่ไม่รู้จัก ส่วนการอนุญาตรายการก็ใช้ไม่ได้ผลกับ LOLBins และรายการอนุญาตที่กว้างเกินไป โปรแกรมความปลอดภัยที่ зрел成熟ส่วนใหญ่ใช้การอนุญาตรายการเป็นการควบคุมหลักสำหรับระบบสำคัญ พร้อมใช้การตรวจจับตามพฤติกรรม (EDR) เพื่อตรวจจับการใช้งานแอปพลิเคชันที่ได้รับอนุญาตในทางที่ผิด สำหรับระบบที่มีความสำคัญน้อยกว่า การใช้รายการปฏิเสธที่ปรับแต่งอย่างเหมาะสมร่วมกับการเฝ้าติดตามพฤติกรรมอาจเพียงพอ
การใช้ไฟร์วอลล์ร่วมกับการอนุญาตรายการ
ไฟร์วอลล์บนโฮสต์และการอนุญาตรายการแอปพลิเคชันเป็น การควบคุมแบบหลายชั้นที่เสริมกัน รายการอนุญาตป้องกันไม่ให้โค้ดที่ไม่ได้รับอนุญาตทำงาน ส่วนไฟร์วอลล์ป้องกันไม่ให้โค้ดที่ได้รับอนุญาตแต่ถูกเจาะระบบสร้างการเชื่อมต่อเครือข่ายที่ไม่ได้รับอนุญาต ทั้งสองอย่างร่วมกันใช้หลักสิทธิ์เท่าที่จำเป็นทั้งในระดับแอปพลิเคชันและระดับเครือข่ายบนอุปกรณ์ปลายทาง การเพิ่ม EDR เป็นชั้นที่สามจะสร้างการป้องกันแบบหลายชั้น โดยการควบคุมแต่ละรายการจะตรวจจับสิ่งที่รายการอื่นอาจพลาดไป ทำให้ต้นทุนและความซับซ้อนของการโจมตีอุปกรณ์ปลายทางให้สำเร็จเพิ่มขึ้นอย่างมาก
# Endpoint defense-in-depth stack
Layer 1: Application Allowlisting (WDAC)
-> Blocks unauthorized executables from running
Layer 2: Host-Based Firewall (WDF)
-> Blocks unauthorized network connections
-> Even from allowlisted apps on non-standard ports
Layer 3: EDR (CrowdStrike/Defender for Endpoint)
-> Detects behavioral anomalies in allowed processes
-> Catches LOLBin misuse, process injection
-> Provides forensic telemetry for investigationการบันทึกและตรวจสอบไฟร์วอลล์
คุณค่าของไฟร์วอลล์บนโฮสต์ขึ้นอยู่กับบันทึกที่สร้างขึ้น เปิดใช้ การบันทึกการเชื่อมต่อที่ถูกบล็อก เพื่อเก็บข้อมูลความพยายามโจมตีและการละเมิดนโยบาย เปิดใช้ การบันทึกการเชื่อมต่อที่ได้รับอนุญาต สำหรับกฎที่มีความอ่อนไหว เช่น กฎที่อนุญาตเครื่องมือดูแลระบบ เพื่อรักษาหลักฐานการตรวจสอบ ส่งต่อบันทึกไฟร์วอลล์ไปยัง SIEM เพื่อเชื่อมโยงเหตุการณ์ รูปแบบการเชื่อมต่อขาออกที่ถูกบล็อกจากโฮสต์เดียวซ้ำ ๆ อาจบ่งชี้ว่ามัลแวร์กำลังพยายามติดต่อกลับไปยังเซิร์ฟเวอร์ควบคุม บน Windows บันทึกไฟร์วอลล์จะเขียนไว้ที่ %systemroot%\System32\LogFiles\Firewall\pfirewall.log โดยค่าเริ่มต้น และควรส่งต่อผ่าน Windows Event Forwarding (WEF) หรือตัวแทนบันทึก
# Enable Windows Firewall logging via PowerShell
Set-NetFirewallProfile -All \
-LogBlocked True \
-LogAllowed True \
-LogMaxSizeKilobytes 16384 \
-LogFileName '%systemroot%\System32\LogFiles\Firewall\pfirewall.log'
# Linux: log dropped packets with iptables
iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 5/min -j LOG \
--log-prefix 'IPtables-Dropped: ' --log-level 4
iptables -A LOGGING -j DROPตรวจสอบอย่างรวดเร็ว
ทดสอบความเข้าใจแนวคิด CompTIA Security+ (SY0-701) จากบทเรียนนี้
ทบทวนบทเรียน
ในบทเรียนนี้ คุณได้เรียนรู้ว่า ไฟร์วอลล์บนโฮสต์ (Windows Defender Firewall, iptables) กรองการรับส่งข้อมูลแยกตามอุปกรณ์ปลายทาง โดยใช้แนวทางปฏิเสธเป็นค่าเริ่มต้นและกฎที่จำกัดขอบเขตตามแอปพลิเคชัน การอนุญาตรายการแอปพลิเคชัน (AppLocker, WDAC) บล็อกไฟล์ปฏิบัติการที่ไม่ได้รับอนุญาต รวมถึงมัลแวร์ ไม่ให้ทำงาน และ การใช้ไฟร์วอลล์ การอนุญาตรายการ และ EDR เป็นชั้น ๆ จะสร้างการป้องกันแบบหลายชั้นที่เพิ่มต้นทุนการโจมตีอย่างมาก บทถัดไป เราจะศึกษา 최? การยืนยันตัวตนอีเมล: SPF, DKIM และ DMARC
คำถามที่พบบ่อย
บทเรียน “ไฟร์วอลล์บนเครื่องโฮสต์และการอนุญาตรายการแอปพลิเคชัน” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ไฟร์วอลล์บนเครื่องโฮสต์และการอนุญาตรายการแอปพลิเคชัน” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cloud & IT Cert Prep ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cloud & IT Cert Prep มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ไฟร์วอลล์บนเครื่องโฮสต์และการอนุญาตรายการแอปพลิเคชัน”
กำหนดค่าไฟร์วอลล์บนเครื่องโฮสต์ (Windows Defender Firewall, iptables) และรายการแอปพลิเคชันที่อนุญาต เพื่อบล็อกซอฟต์แวร์ที่ไม่ได้รับอนุญาตไม่ให้ทำงาน คุณปฏิบัติ Cloud & IT Cert Prep ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cloud & IT Cert Prep หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cloud & IT Cert Prep บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “ไฟร์วอลล์บนเครื่องโฮสต์และการอนุญาตรายการแอปพลิเคชัน” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cloud & IT Cert Prep นี้ได้ไหม
ได้ บทเรียน Cloud & IT Cert Prep ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- แพลตฟอร์ม Antivirus, EDR และ XDR
- การเสริมความแข็งแกร่งให้ OS: การติดตั้งแพตช์ การกำหนดค่าพื้นฐาน และเกณฑ์มาตรฐาน CIS
- การจัดการอุปกรณ์เคลื่อนที่ (MDM) และนโยบาย BYOD
- ไฟร์วอลล์บนเครื่องโฮสต์และการอนุญาตรายการแอปพลิเคชัน