จะอนุญาตให้ใช้ IP ที่มี IPTABLES ได้อย่างไร


29

นี่คือ iptables ของฉันฉันจะสร้างมันได้อย่างไรเพื่อที่ฉันจะอนุญาตช่วงของ ip บน ETH1 (10.51.xx)

# Generated by iptables-save v1.4.4 on Thu Jul  8 13:00:14 2010
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:fail2ban-ssh - [0:0]
-A INPUT -p tcp -m multiport --dports 22 -j fail2ban-ssh 
-A INPUT -i lo -j ACCEPT 
-A INPUT -d 127.0.0.0/8 ! -i lo -j REJECT --reject-with icmp-port-unreachable 
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 143 -j ACCEPT 
-A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT 
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT 
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 
-A INPUT -j REJECT --reject-with icmp-port-unreachable 
-A FORWARD -j REJECT --reject-with icmp-port-unreachable 
-A OUTPUT -j ACCEPT 
-A fail2ban-ssh -j RETURN 
COMMIT

คำตอบ:


39

หากคุณต้องการอนุญาตเฉพาะช่วงที่อยู่ IP ภายใน 10.50.0.0 (เช่นจาก 10.50.10.20 ถึง 10.50.10.80) คุณสามารถใช้คำสั่งต่อไปนี้:

iptables -A INPUT -i eth1 -m iprange --src-range 10.50.10.20-10.50.10.80 -j ACCEPT

หากคุณต้องการอนุญาตให้ใช้ทั้งช่วงคุณสามารถใช้สิ่งนี้แทน:

iptables -A INPUT -i eth1 -s 10.50.0.0/16 -j ACCEPT

ดูหน้าคน iptablesและคำถามนี้ที่นี่ใน ServerFault: รายการที่อนุญาตที่อนุญาต IP (เข้า / ออก) โดยใช้ iptables


ฉันจะวางสายนี้ที่ไหน
Mike Curry

เหล่านี้คือคำสั่งที่คุณจะเรียกใช้จากบรรทัดคำสั่ง: [root @ host ~] # iptables -A INPUT -i eth1 -s 10.50.0.0/16 -j ACCEPT
runlevelsix

1
ใช้ "10.50.10.20-10.50.10.80", "-80" อาจจะไม่ทำในสิ่งที่คุณต้องการ
basic6

@runlevelsix ถ้าฉันต้องการอนุญาตสำหรับช่วง ip เช่น 10.0.0.0 ถึง 10.255.255.255 ฉันจะใช้ 10.0.0.0/24 หรือไม่
RoboBear

@MikeCurry นี่เป็นการระบุว่าจะรันอะไรบน command -line / จากเทอร์มินัลของคุณ หรือคุณสามารถเพิ่มกฎนี้ลงในไฟล์กฎ iptables ใน /etc/iptables/rulesets.d (หากคุณใช้ Debian Linux) โดยลบ "iptables" และช่องว่างดังต่อไปนี้ออกจากบรรทัด: -A INPUT -i eth1 - m iprange - src-range 10.50.10.20-10.50.10.80 -j ยอมรับ
RoboBear


1

ดีที่คุณได้เห็นสิ่งที่คุณต้องการที่จะอนุญาตให้ผู้ IP ที่หา แต่ 10.51.xx ใน CIDR 10.50.0.0/16แปลว่า 127.0.0.0/8ดังนั้นมันจะเป็นสิ่งที่ชอบสายสำหรับอินเตอร์เฟซที่มีการย้อนกลับ


1
iptables -A INPUT -i eth1 -m iprange --src-range 10.50.10.20-80 -j ACCEPT

อาจให้ข้อผิดพลาดต่อไปนี้:

iptables: Applying firewall rules: xt_iprange: range 10.50.10.20-80 is reversed and will never match

หากต้องการแก้ไขให้ใส่ ip เต็มแทนเช่นนี้

iptables -A INPUT -i eth1 -m iprange --src-range 10.50.10.20-10.50.10.80 -j ACCEPT

Ref .: http://blog.capitar.com/iptables-ip-range-reversed/

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.