คำถามติดแท็ก iptables

iptables อนุญาตให้สร้างกฎเพื่อกำหนดพฤติกรรมการกรองแพ็คเก็ต

1
วิธีการอนุญาต SMTP ขาออกบน iptables Debian Linux
หากฉันเลือกที่จะอนุญาตการรับส่งข้อมูลทั้งหมดใน chain ( iptables -P OUTPUT ACCEPT) ส่งทางไปรษณีย์( ) ส่งดี ทันทีที่ฉันล็อคเซิร์ฟเวอร์ของฉันด้วยกฎเหล่านี้เมลขาออกจะหยุดทำงาน ทุกอย่างทำงานได้ซึ่งแปลก มีใครเห็นอะไรบ้างในที่นี่ที่จะป้องกันไม่ให้ส่งเมลขาออกของฉัน ฉันนิ่งงันได้ดูกฎเหล่านี้ซ้ำแล้วซ้ำอีกและลองใช้เวอร์ชั่นต่าง ๆ มากมาย iptables -F iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -p tcp --sport 22 …
13 linux  iptables  email  smtp 

4
ส่งต่อพอร์ตไปยังแอปพลิเคชันในเนมสเปซเครือข่ายด้วย vpn
ฉันสามารถตั้งค่าเนมสเปซเครือข่ายสร้างช่องทางด้วย openvpn และเริ่มแอปพลิเคชันที่ใช้ช่องทางนี้ภายในเนมสเปซ จนถึงตอนนี้ดีมาก แต่แอปพลิเคชันนี้สามารถเข้าถึงได้ผ่านเว็บอินเตอร์เฟสและฉันไม่สามารถหาวิธีกำหนดเส้นทางคำขอไปยังเว็บอินเตอร์เฟสภายใน LAN ของฉัน ฉันทำตามคำแนะนำจาก @schnouki อธิบายวิธีตั้งค่าเนมสเปซเครือข่ายและเรียกใช้ OpenVPN ภายใน ip netns add myvpn ip netns exec myvpn ip addr add 127.0.0.1/8 dev lo ip netns exec myvpn ip link set lo up ip link add vpn0 type veth peer name vpn1 ip link set vpn0 up ip …

2
Linux iptables การส่งต่อพอร์ต ssh (การปฏิเสธของดาวอังคาร)
ฉันมีเกตเวย์ Linux ที่ทำงาน NAT สำหรับเครือข่ายในบ้านของฉัน ฉันมีเครือข่ายอื่นที่ฉันต้องการส่งต่อแพ็กเก็ตอย่างโปร่งใส แต่ไปยัง / จาก IP / พอร์ตเฉพาะ (เช่นไม่ใช่ VPN) นี่คือตัวอย่าง IP และพอร์ตที่ใช้งานได้: Source Router Remote Gateway Remote Target 192.168.1.10 -> 192.168.1.1 -> 1.2.3.4 -> 192.168.50.50:5000 ฉันต้องการให้เครื่อง Source สามารถพูดคุยกับพอร์ตเฉพาะใน Remote Target ได้ราวกับว่ามันเป็นเส้นทางโดยตรงจากเราเตอร์ บนเราเตอร์ eth0 เป็นเครือข่ายส่วนตัวและ eth1 นั้นเชื่อมต่ออินเทอร์เน็ต Remote Gateway เป็นเครื่องลีนุกซ์ตัวอื่นที่ฉันสามารถเข้าไปได้และสามารถกำหนดเส้นทางไปยัง Remote Target ได้โดยตรง ความพยายามในการแก้ปัญหาอย่างง่ายของฉันคือการตั้งค่าการส่งต่อพอร์ต ssh บนเราเตอร์เช่น: …

1
วิธีที่จะทำให้การรับส่งข้อมูลทั้งหมดผ่านอินเทอร์เฟซเดียวใน Linux
ฉันมีอินเตอร์เฟสที่เขียนด้วยตนเอง tun0 ( อิงTUN / TAP ) ที่เอาต์พุตสิ่งที่ได้รับ ฉันต้องการปริมาณข้อมูลทั้งหมดของระบบเพื่อให้ไหลผ่านอินเทอร์เฟซนี้ บทบาทของอินเตอร์เฟสคือ: เพื่อหาแพ็กเก็ตที่มีแนวโน้มว่าจะถูกเซ็นเซอร์และทำการอุโมงค์ ผ่านการรับส่งข้อมูลอื่น ๆ ทั้งหมดโดยไม่มีการแตะต้อง อย่างที่คุณคิดว่าฉันกำลังพยายามสร้างเครื่องมือต่อต้านมะเร็ง การตัดสินใจเกี่ยวกับการทันเนลจะต้องดำเนินการภายในกระบวนการ tun0 เพราะมีเพียงเราเท่านั้นที่สามารถใช้ DNS ที่เชื่อถือได้ ฉันต้องการให้คุณช่วยแสดงวิธีทำให้ปริมาณการรับส่งข้อมูลทั้งหมดผ่านอินเทอร์เฟซที่เขียนเอง tun0 หาก tun0 ต้องการการเปลี่ยนแปลงฉันขอให้คุณแจ้งการเปลี่ยนแปลงดังกล่าว ด้านล่างเป็นวิธีที่ฉันพยายามทำให้ทราฟฟิกทั้งหมดผ่าน tun0 และล้มเหลว (pings ล้มเหลว) การรวบรวม gcc tun0.c sudo ./a.out การกำหนดค่า sudo ip addr add 10.0.0.1/24 dev tun0 สร้างตารางจอห์น $ cat /etc/iproute2/rt_tables # # reserved …
12 linux  iptables  ip  route 

1
ทำไมไฟร์วอลล์ของฉัน (iptables) รบกวนในบริดจ์ของฉัน (brctl)
ฉันตั้งค่าบริดจ์br0"แนบ" เป็นสองอินเตอร์เฟส: eth0ส่วนต่อประสานทางกายภาพของฉันเชื่อมต่อกับ LAN จริง vnet0เป็นอินเตอร์เฟสเสมือน KVM (เชื่อมต่อกับ Windows VM) และฉันมีกฎไฟร์วอลล์เดียวนี้ในห่วงโซ่การส่งต่อ: iptables -A FORWARD -j REJECT ตอนนี้ ping เดียวที่ทำงานคือจาก VM ไปยังโฮสต์ br0อินเตอร์เฟซที่เป็นเจ้าของที่อยู่ IP ของเครื่องโฮสต์ของฉัน eth0และvnet0อย่า "เป็นเจ้าของ" IP ใด ๆ จากมุมมองโฮสต์ Windows VM มีการกำหนดค่า IP แบบคงที่ หากเปลี่ยนiptablesกฎของฉันเป็นACCEPT(หรือใช้ข้อ จำกัด มากขึ้นiptables -A FORWARD -o br0 -j ACCEPT) ทุกอย่างทำงานได้ดี! (เช่นฉันสามารถ ping เครื่อง LAN ใด …

1
คำจำกัดความของ addrtype ใน iptables คืออะไร
ฉันกระตือรือร้นที่จะใช้addrtypeร่วมกับ-srcกฎในหนึ่งในห่วงโซ่ตัวกรองของฉันเช่นเพื่อที่จะวาง ips bogon: -A INPUT -p tcp --dport 80 -m addrtype --src-type UNICAST ! -s 127.0.0.0/8 -j WEB หน้าคนบอกว่าต่อไปนี้ addrtype โมดูลนี้จับคู่แพ็คเก็ตตามประเภทที่อยู่ ประเภทที่อยู่ถูกใช้ภายในสแต็กเครือข่ายเคอร์เนลและจัดประเภทที่อยู่ออกเป็นกลุ่มต่างๆ คำจำกัดความที่แน่นอนของกลุ่มนั้นขึ้นอยู่กับเลเยอร์เฉพาะของโปรโตคอลที่สาม ประเภทที่อยู่ต่อไปนี้เป็นไปได้: UNSPEC ที่อยู่ที่ไม่ระบุ (เช่น 0.0.0.0) UNICAST ที่อยู่ยูนิคาสต์ LOCAL ที่อยู่ท้องถิ่น ออกอากาศที่อยู่ออกอากาศ ANYCAST แพ็กเก็ต anycast MULTICAST ที่อยู่แบบหลายผู้รับ BLACKHOLE ที่อยู่ blackhole ไม่สามารถเข้าถึงที่อยู่ที่ไม่สามารถเข้าถึงได้ PROHIBIT ที่อยู่ห้าม โยนแก้ไข แก้ไข NAT XRESOLVE มันไม่ชัดเจนในสิ่งที่คำจำกัดความที่แน่นอนและบอกว่ามันขึ้นอยู่กับโปรโตคอลเลเยอร์ 3 …
11 iptables 

3
มันจะดีกว่าที่จะตั้งกฎใน ip6tables หรือปิดการใช้งาน ipv6?
ฉันมีการกำหนดค่าเครือข่ายต่อไปนี้: # ifconfig -a eth0 Link encap:Ethernet HWaddr 00:e0:1c:73:02:09 inet addr:10.1.4.41 Bcast:10.1.255.255 Mask:255.255.0.0 inet6 addr: fe80::2e0:4cff:fe75:309/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:858600 errors:0 dropped:0 overruns:0 frame:0 TX packets:1069549 errors:0 dropped:0 overruns:5 carrier:0 collisions:0 txqueuelen:1000 RX bytes:142871181 (136.2 MiB) TX bytes:717982640 (684.7 MiB) lo Link encap:Local Loopback inet …
11 iptables  ipv6 

1
จะเข้าใจได้อย่างไรว่าทำไมแพ็กเก็ตถูกพิจารณาว่าเป็น "iptables" ที่ไม่ถูกต้อง
ฉันตั้งค่าiptablesกฎบางอย่างเพื่อให้บันทึกและวางแพ็กเก็ตที่ไม่ถูกต้อง ( --state INVALID) การอ่านบันทึกฉันจะเข้าใจได้อย่างไรว่าทำไมแพ็คเก็ตจึงถือว่าไม่ถูกต้อง ตัวอย่างเช่นต่อไปนี้: Nov 29 22:59:13 htpc-router kernel: [6550193.790402] ::IPT::DROP:: IN=ppp0 OUT= MAC= SRC=31.13.72.7 DST=136.169.151.82 LEN=40 TOS=0x00 PREC=0x00 TTL=242 ID=5104 DF PROTO=TCP SPT=80 DPT=61597 WINDOW=0 RES=0x00 ACK RST URGP=0

2
วิธี จำกัด การเข้าถึงอินเทอร์เน็ตสำหรับผู้ใช้เฉพาะบน LAN โดยใช้ iptables ใน Linux
สมมติว่ามีผู้ใช้สองคนบน LAN, A และ B ฉันจะ จำกัด ผู้ใช้ A จากการเข้าถึงอินเทอร์เน็ตโดยใช้กฎ iptables และบันทึกกฎเพื่อให้หลังจากรีบูตพวกเขายังคงมีประสิทธิภาพ สมมติว่าฉันต้องการอนุญาตการเข้าถึงของผู้ใช้ในบางครั้ง; ฉันจะเปิดใช้งานอีกครั้งได้อย่างไร ฉันใช้ Ubuntu Linux 10.04 มันจะดีถ้าใครแสดงวิธีการทำจากบรรทัดคำสั่งเพราะฉันมักจะเข้าสู่เครื่องโดยใช้การเข้าสู่ระบบในท้องถิ่น

4
การป้องกัน Fail2ban ด้วย IPtables ไม่ทำงานบน Debian Lenny [ย้ายพอร์ต ssh]
ฉันเพิ่งตัดสินใจทำการบำรุงรักษาความปลอดภัย ฉันเห็นบันทึกของฉันและมีความพยายามต่อต้านเซิร์ฟเวอร์ SSH ของฉัน ตอนแรกผมย้ายออกไปพอร์ต SSH จากเริ่มต้นที่ 22 หลังจากที่ผมอ่านบางอย่างเกี่ยวกับfail2ban , BlockHostsและDenyHosts ฉันดูที่แรก: มันง่ายในการกำหนดค่าทุกอย่างเข้าใจได้ แต่เมื่อฉันพยายามที่จะ "ตรวจสอบการป้องกัน" การทดสอบจะล้มเหลว ทุกอย่างดูเหมือนจะดี แต่ฉันยังสามารถเข้าถึงเซิร์ฟเวอร์ได้ ฉันยังทดสอบ IPtables: # iptables -I INPUT -j DROP- หลังจากนั้นการเชื่อมต่อ SSH ของฉันหายไป (ดังนั้นสิ่งที่ฉันต้องการ) จากนั้น# iptables -I INPUT -s 84.x.y.z -j DROPซึ่งทำงานเกินไป แต่สิ่งที่ Fail2ban ทำในกฎนั้นไม่ได้ผล: ( $ sudo iptables -L) Chain INPUT (policy ACCEPT) …

2
กฎ IPTables เพื่ออนุญาตการเชื่อมต่อ SSH ขาเข้า
จุดประสงค์ของสคริปต์นี้คืออนุญาตการรับส่งข้อมูลผ่าน VPN เท่านั้นยกเว้น localhost <-> localhost และทราฟฟิก SSH ขาเข้า แต่เมื่อฉันรันสคริปต์ผ่าน SSH ฉันถูกตัดการเชื่อมต่อและถูกบังคับให้รีสตาร์ท vm เกิดอะไรขึ้นกับสคริปต์ของฉัน #!/bin/bash iptables -F #Allow over VPN iptables -A INPUT -i tun+ -j ACCEPT iptables -A OUTPUT -o tun+ -j ACCEPT #Localhost iptables -A INPUT -s 127.0.0.1/8 -j ACCEPT iptables -A OUTPUT -d 127.0.0.1/8 -j ACCEPT #VPN …
11 iptables 

2
Iptables: จับคู่ทราฟฟิกขาออกกับ conntrack และเจ้าของ ทำงานร่วมกับหยดแปลก ๆ
ในสคริปต์ iptables ของฉันฉันได้ทดลองเขียนกฎที่ละเอียดที่สุดเท่าที่จะทำได้ ฉัน จำกัด ผู้ใช้ที่ได้รับอนุญาตให้ใช้บริการใดส่วนหนึ่งเพื่อความปลอดภัยและเป็นแบบฝึกหัดการเรียนรู้ การใช้ iptables v1.4.16.2 บน Debian 6.0.6 ที่รันเคอร์เนล 3.6.2 อย่างไรก็ตามฉันมีปัญหาฉันยังไม่ค่อยเข้าใจ พอร์ตขาออกสำหรับผู้ใช้ทั้งหมด มันใช้งานได้ดีอย่างสมบูรณ์แบบ ฉันไม่มีกฎการติดตามสถานะทั่วไป ## พอร์ตขาออก 81 $ IPTABLES - เอาท์พุท -p tcp - พอร์ต 81 -m conntrack - สถานะใหม่, ก่อตั้งขึ้น -j ACCEPT $ IPTABLES - อินพุต -p tcp --sport 81 -s $ MYIP -m conntrack …

3
ทำไมฉันไม่สามารถใช้นโยบายปฏิเสธในการเชื่อมต่อ iptables ของฉันได้
ขณะนี้ฉันมีการตั้งค่า OUTPUT chain เป็น DROP ฉันต้องการเปลี่ยนเป็นปฏิเสธเพื่อให้ฉันรู้ว่าไฟร์วอลล์ของฉันหยุดฉันไม่ให้ไปที่อื่นแทนที่จะมีปัญหากับบริการใด ๆ ที่ฉันพยายามเข้าถึง (ปฏิเสธทันทีแทนที่จะหมดเวลา) อย่างไรก็ตาม iptables ดูเหมือนจะไม่สนใจสิ่งนี้ หากฉันแก้ไขไฟล์กฎที่บันทึกไว้ด้วยตนเองและพยายามกู้คืนไฟล์ฉันจะได้รับiptables-restore v1.4.15: Can't set policy 'REJECT' on 'OUTPUT' line 22: Bad policy nameและปฏิเสธที่จะโหลดกฎ หากฉันพยายามตั้งค่านี้ด้วยตนเอง ( iptables -P OUTPUT REJECT) ฉันจะได้รับiptables: Bad policy name. Run 'dmesg' for more information.แต่ไม่มีเอาต์พุตเป็น dmesg ฉันยืนยันว่ากฎที่เหมาะสมนั้นได้รับการรวบรวมไว้ในเคอร์เนลและฉันได้รีบูตเครื่องเพื่อให้แน่ใจว่าโหลดแล้ว: # CONFIG_IP_NF_MATCH_TTL is not set CONFIG_IP_NF_FILTER=y *** CONFIG_IP_NF_TARGET_REJECT=y …


2
Tunnel yum traffic ผ่านเซิร์ฟเวอร์อื่นผ่าน ssh
ฉันกำลังใช้เดสก์ท็อป Fedora อยู่ด้านหลังพร็อกซีขององค์กรที่บล็อกyumการรับส่งข้อมูล (โดยเฉพาะ*.gzและ*.bz2) ฉันเข้าถึงเครื่อง RedHat แยกต่างหากผ่านทาง ssh ซึ่งสามารถดาวน์โหลดอะไรก็ได้ที่มันชอบ เมื่อฉันทำyum updateและคำสั่ง yum อื่น ๆ : เป็นไปได้ไหมที่กำหนดเส้นทางการรับส่งข้อมูลไปยังเครื่อง RedHat เพื่อทำการดาวน์โหลดสำหรับฉัน ฉันไม่สามารถเข้าถึงรูทบนเครื่อง RedHat แต่ฉันสามารถเข้าสู่ระบบและใช้ wget เพื่อดาวน์โหลดไฟล์ ถ้าเป็นเช่นนั้นได้อย่างไร

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