Computer >> คอมพิวเตอร์ >  >> สมาร์ทโฟน >> Linux

เริ่มต้นใช้งาน iptables ใน Linux

บทช่วยสอนโดยละเอียดนี้จะช่วยให้คุณเริ่มต้นใช้งาน iptables ซึ่งเป็นไฟร์วอลล์ที่ผ่านการทดสอบ เชื่อถือได้ และใช้งานได้จริงใน Linux

เครื่อง Linux นั้นค่อนข้างปลอดภัย จากการศึกษาพบว่า Linux ได้รับการออกแบบในลักษณะที่ปลอดภัย ถึงแม้ว่าคุณลักษณะด้านความปลอดภัยทั้งหมดที่มาพร้อมกับการติดตั้ง Linux คุณจำเป็นต้องกำหนดค่าคุณลักษณะเหล่านี้อย่างถูกต้องเพื่อให้ทำงานให้กับคุณได้ ฉันจะแนะนำคุณตลอดขั้นตอนการตั้งค่าหนึ่งในเครื่องมือที่ช่วยรักษาความปลอดภัยให้กับเครื่องของคุณ นั่นคือไฟร์วอลล์ เราจะใช้ไฟร์วอลล์ iptables ใน Linux สำหรับแบบฝึกหัดนี้ ฉันสมมติว่าคุณกำลังใช้เซิร์ฟเวอร์ที่ใช้ Red Hat Enterprise Linux 4 หรือคล้ายกัน อย่างไรก็ตาม ขั้นตอนส่วนใหญ่ควรทำงานได้ดีกับลีนุกซ์รุ่นอื่นๆ ด้วย. ในบทความนี้ เราจะตั้งค่าไฟร์วอลล์บนเซิร์ฟเวอร์ Linux ที่ใช้ Apache Web Server, FTP และ SSH

ให้เราดูก่อนว่าแอปพลิเคชันเหล่านี้ใช้พอร์ตใดและพอร์ตใดจำเป็นต้องเปิดพอร์ตบนไฟร์วอลล์

เว็บเซิร์ฟเวอร์ Apache ทำงานบนพอร์ต 80 โดยค่าเริ่มต้น Apache จะเซิร์ฟเวอร์เนื้อหาเว็บทั้งหมดของเราบนพอร์ตนี้ ดังนั้น เราจำเป็นต้องเปิดพอร์ตนี้ไว้บนไฟร์วอลล์ บริการ SSH ทำงานบนพอร์ต 22 เราต้องสามารถเชื่อมต่อกับเซิร์ฟเวอร์ของเราจากระยะไกลเพื่อทำงาน ดังนั้นเราจึงเปิดไว้ FTP ทำงานบนพอร์ต 21 และจำเป็นต้องเปิดพอร์ตเพื่อการสื่อสารด้วย

ถัดไป ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง iptables แล้ว เรียกใช้คำสั่งนี้ในฐานะผู้ใช้รูท:

# rpm -qa | grep iptables

หากคุณติดตั้ง iptables ระบบควรให้เวอร์ชันของ iptables ที่คุณติดตั้งไว้ ในกรณีที่คุณทำไม่ได้ คุณสามารถลองทำสิ่งต่อไปนี้เพื่อเริ่มต้นใช้งาน:

# yum ติดตั้ง iptables

# /etc/init.d/iptables เริ่ม

วิธีตรวจสอบชนิดของการกำหนดค่า iptables ที่กำลังทำงานอยู่:

# iptables –list
Chain INPUT (นโยบาย ACCEPT)
ปลายทางต้นทางที่เลือกเป้าหมาย prot

ลูกโซ่ FORWARD (นโยบายยอมรับ)
เป้าหมาย prot เลือกปลายทางต้นทาง

Chain OUTPUT (นโยบายยอมรับ)
เป้าหมาย prot เลือกปลายทางต้นทาง

คำสั่งนี้จะแสดงรายการกฎไฟร์วอลล์ทั้งหมดที่ตั้งไว้ในปัจจุบัน ฉันจะดำเนินการตามสมมติฐานว่าคุณไม่มีกฎไฟร์วอลล์ในการกำหนดค่า iptables บนกล่อง Linux ของคุณ ตอนนี้ มากำหนดค่าไฟร์วอลล์เพื่ออนุญาตการสื่อสารแบบเปิดบนพอร์ต 80 สำหรับเว็บเซิร์ฟเวอร์ของคุณ 22 สำหรับ SSH และพอร์ต 21 สำหรับ FTP นอกจากนี้ เราจะทำให้แน่ใจว่าเราบล็อกการสื่อสารไปยังพอร์ตอื่นนอกเหนือจากที่ระบุ

นี่คือสคริปต์การกำหนดค่าสคริปต์ไฟร์วอลล์ สร้างไฟล์ใหม่และเรียกมันว่า iptable-firewall.sh . คัดลอกข้อความต่อไปนี้ลงไป:

#!/bin/sh

ANY=”0/0″
OPEN_PORTS=”21 22 80″

iptables -P ยอมรับอินพุต
iptables -P ยอมรับไปข้างหน้า
iptables -P ยอมรับเอาต์พุต

# ล้าง (-F) กฎเฉพาะทั้งหมด
iptables -F INPUT
iptables -F FORWARD
iptables -F OUTPUT

สำหรับพอร์ตใน $OPEN_PORTS
do
iptables -A INPUT -i eth0 -p tcp -s $ANY -d $ANY –destination-port $port –syn -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -s $ANY -d $ANY –destination-port $port –syn -j ACCEPT
done

iptables -A INPUT -i eth1 -p icmp -s $ANY -d $ANY -j ยอมรับ

#อนุญาตการเชื่อมต่อที่เกี่ยวข้อง/จัดตั้งขึ้น
iptables -A INPUT -i eth0 -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth1 -m state –state ESTABLISHED,RELATED -j ยอมรับ

#ฆ่าอย่างอื่น
iptables -A INPUT -i eth0 -j DROP
iptables -A INPUT -i eth1 -j DROP

#write สำหรับการบูต
iptables-save> /etc/sysconfig/iptables

ตอนนี้ให้บันทึกไฟล์ด้านบน ให้สิทธิ์ที่เรียกใช้งานได้แล้วเรียกใช้:

# chmod +x iptable-firewall.sh

# ./iptable-firewall.sh

ตอนนี้ตรวจสอบกฎไฟร์วอลล์ของคุณ:

# iptables –list

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

หากบรรทัดคำสั่งทั้งหมดนี้ทำให้คุณดูน่ากลัว โปรดดูบทแนะนำวิธีตั้งค่า Firestarter ซึ่งเป็น Linux Firewall ที่ใช้งานง่าย ซึ่งมีอินเทอร์เฟซแบบกราฟิกที่ใช้งานง่าย