การบล็อกพอร์ตทั้งหมด (เข้าและออก) นั้นง่าย แต่ก็ยากสำหรับคำว่า "ยกเว้น" ฉันไม่ทราบกฎใด ๆ ที่เป็นไปตามเงื่อนไข
PS: ฉันรู้ว่าคำถามนี้ไม่มีอะไรใหม่ แต่ที่จริงแล้วฉันไม่พบสิ่งใดที่ช่วยได้ ดังนั้นช่วยฉันหน่อยได้ไหม!
การบล็อกพอร์ตทั้งหมด (เข้าและออก) นั้นง่าย แต่ก็ยากสำหรับคำว่า "ยกเว้น" ฉันไม่ทราบกฎใด ๆ ที่เป็นไปตามเงื่อนไข
PS: ฉันรู้ว่าคำถามนี้ไม่มีอะไรใหม่ แต่ที่จริงแล้วฉันไม่พบสิ่งใดที่ช่วยได้ ดังนั้นช่วยฉันหน่อยได้ไหม!
คำตอบ:
ก่อนอื่น! เป็นสัญลักษณ์ไม่ได้
iptables -A INPUT -p tcp -m tcp -m multiport ! --dports 80,443 -j DROP
ประการที่สองกฎที่คุณเขียนอาจไม่ได้ผลลัพธ์ที่คาดหวัง คุณทิ้งทุกอย่างรวมถึงการตอบสนองต่อการเชื่อมต่อที่พอร์ต 80 ดังนั้นคุณจะไม่สามารถเชื่อมต่อกับมันเพื่อวัตถุประสงค์ของเว็บเซิร์ฟเวอร์
กฎเหล่านี้อนุญาตให้มีการเชื่อมต่อที่เกี่ยวข้องและที่เชื่อมโยงดังนั้นเว็บเซิร์ฟเวอร์ควรทำงานหากเป็นจริงสิ่งที่คุณพยายามทำ
iptables -A INPUT -p tcp -m tcp -m multiport --dports 80,443 -j ACCEPT
<insert further allowed list here>
iptables -A INPUT -m conntrack -j ACCEPT --ctstate RELATED,ESTABLISHED
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -j DROP
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -j DROP
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -j DROP
!
หนีเช่นนี้\!
หากใช้ Bash shell?
!
ไม่จำเป็นต้องหลบหนี ขออภัยเกี่ยวกับการเตือนที่ผิดพลาด
# Set the default policy of the INPUT chain to DROP
iptables -P INPUT DROP
# Accept incomming TCP connections from eth0 on port 80 and 443
iptables -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
สิ่งนี้จะให้สิ่งที่คุณต้องการ
คุณสามารถตั้งค่าการกระทำเริ่มต้นของคุณเป็น DROP แล้วสร้างกฎข้อยกเว้นเพื่ออนุญาต 80 และ 443 ดังนี้:
# Setting default policies:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
# Exceptions to default policy
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # HTTP
iptables -A INPUT -p tcp --dport 443 -j ACCEPT # HTTPS
iptables จะผ่านรายการ 'ข้อยกเว้น' จนกว่าจะพบการแข่งขัน จากนั้นจะดำเนินการตามที่ระบุโดย-j
พารามิเตอร์ (ACCEPT ในกรณีนี้) หากไม่พบคู่ที่ตรงกันจะกลับไปใช้นโยบายเริ่มต้นและวางแพ็กเก็ต
โปรดทราบว่าด้วยวิธีนี้การแก้ปัญหาโดเมนย่อยใด ๆ จะถูกล็อคออก ตัวอย่างเช่นด้วยวิธีนี้คุณจะใช้งานได้บน www.mydomain.com ถูกต้องทั้งหมด แต่โดเมนย่อยของคุณสมมติว่า www.sub.mydomain.com จะไม่เปิดขึ้นสำหรับข้อผิดพลาด DNS
iptables -nvL
หรือไม่
ssh
อย่าทำอย่างนี้มากกว่า