Score:1

การเพิ่มกฎใน iptables หมายความว่าจะมีผลทันทีหรือไม่

ธง in

ฉันวิ่ง sudo iptables -A INPUT -p tcp -m tcp --dport 2222 -j ยอมรับ ใน bash จากนั้นพยายามเชื่อมต่อกับเครื่องนั้นผ่านเครื่องอื่นบน LAN / ซับเน็ตเดียวกันผ่านพอร์ต 2222 ด้วย PuTTY และใช้งานไม่ได้

ฉันอาจต้องรีสตาร์ท iptables หลังจากเพิ่มกฎเพื่อให้มีผลหรือไม่ ถ้าเป็นเช่นนั้นฉันจะทำอย่างไร

นี่คือผลลัพธ์ของ iptables -S:

-P อินพุตยอมรับ
-P ไปข้างหน้าลดลง
-P เอาต์พุตยอมรับ
-N นักเทียบท่า
-N DOCKER-ISOLATION-STAGE-1
-N DOCKER-ISOLATION-STAGE-2
-N นักเทียบท่า-ผู้ใช้
-อินพุต -p tcp -m tcp --dport 2222 -j ยอมรับ
-A ไปข้างหน้า -j นักเทียบท่า-ผู้ใช้
-A ส่งต่อ -j DOCKER-ISOLATION-STAGE-1
-A FORWARD -o docker0 -m conntrack --ctstate ที่เกี่ยวข้อง ก่อตั้ง -j ยอมรับ
-A ไปข้างหน้า -o นักเทียบท่า 0 -j นักเทียบท่า
-A ไปข้างหน้า -i docker0 ! -o นักเทียบท่า 0 -j ยอมรับ
-A ไปข้างหน้า -i docker0 -o docker0 -j ยอมรับ
-A FORWARD -o br-4f5770ea8905 -m conntrack --ctstate ที่เกี่ยวข้อง ก่อตั้ง -j ยอมรับ
-A ส่งต่อ -o br-4f5770ea8905 -j นักเทียบท่า
-ไปข้างหน้า -i br-4f5770ea8905 ! -o br-4f5770ea8905 -j ยอมรับ
-A ไปข้างหน้า -i br-4f5770ea8905 -o br-4f5770ea8905 -j ยอมรับ
-นักเทียบท่า -d 172.18.0.2/32 ! -i br-4f5770ea8905 -o br-4f5770ea8905 -p tcp -m tcp --dport 3306 -j ยอมรับ
-นักเทียบท่า -d 172.18.0.3/32 ! -i br-4f5770ea8905 -o br-4f5770ea8905 -p tcp -m tcp --dport 8080 -j ยอมรับ
-นักเทียบท่า -d 172.18.0.3/32 ! -i br-4f5770ea8905 -o br-4f5770ea8905 -p tcp -m tcp --dport 443 -j ยอมรับ
-นักเทียบท่า -d 172.18.0.7/32 ! -i br-4f5770ea8905 -o br-4f5770ea8905 -p tcp -m tcp --dport 6379 -j ยอมรับ
-นักเทียบท่า -d 172.18.0.8/32 ! -i br-4f5770ea8905 -o br-4f5770ea8905 -p tcp -m tcp --dport 3306 -j ยอมรับ
-นักเทียบท่า -d 172.18.0.10/32 ! -i br-4f5770ea8905 -o br-4f5770ea8905 -p tcp -m tcp --dport 3306 -j ยอมรับ
-นักเทียบท่า -d 172.18.0.3/32 ! -i br-4f5770ea8905 -o br-4f5770ea8905 -p tcp -m tcp --dport 80 -j ยอมรับ
-A DOCKER-ISOLATION-STAGE-1 -i docker0 ! -o docker0 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -i br-4f5770ea8905 ! -o br-4f5770ea8905 -j DOCKER-ISOLATION-STAGE-2
-A DOCKER-ISOLATION-STAGE-1 -j ผลตอบแทน
-A DOCKER-ISOLATION-STAGE-2 -o docker0 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -o br-4f5770ea8905 -j DROP
-A DOCKER-ISOLATION-STAGE-2 -j ผลตอบแทน
-A นักเทียบท่า-ผู้ใช้ -j ผลตอบแทน

นี่คือผลลัพธ์ของ sudo iptables --line-numbers -L INPUT:

เชนอินพุท (ยอมรับนโยบาย)
num target prot เลือกปลายทางต้นทาง
1 ยอมรับ tcp -- ที่ไหนก็ได้ tcp dpt:2222
in flag
[คำตอบนี้เมื่อหลายปีก่อน](https://askubuntu.com/a/243180/1222991) ยังคงใช้ได้ในปัจจุบัน โดยทั่วไป หากคุณต้องการให้บางสิ่งมีผลในทันที `ufw` เป็นเครื่องมือที่คุณต้องการ มันจะบันทึกการเปลี่ยนแปลงกฎเป็น `iptables` และนำไปใช้อย่างเงียบ ๆ ในพื้นหลัง
Doug Smythies avatar
gn flag
ใช่ กฎ iptables ที่เพิ่มจะมีผลทันที เราต้องการให้คุณโพสต์กฎ iptables ทั้งหมดเพื่อให้สามารถช่วยเหลือเพิ่มเติมได้ แต่อาจเป็นไปได้ว่าคุณต้องแทรกกฎนั้นในขั้นตอนก่อนหน้านี้ แทนที่จะผนวกกฎนั้น
in flag
@DougSmythies - ฉันเพิ่มชุดกฎ iptables ทั้งหมด ขอบคุณ!
in flag
@matigo - ฉันลอง `sudo ufw allow 2222` ไม่สำเร็จ ฉันจะอ่านคำตอบนั้น iab - ต้องไปทำธุระด่วน ขอบคุณ!
Doug Smythies avatar
gn flag
ชุดกฎ iptables ของคุณไม่ใช่ปัญหา คุณแน่ใจหรือว่าคอมพิวเตอร์กำลังฟังพอร์ต 2222
Score:6
ธง in

ใช่ การเพิ่มกฎผ่านคำสั่ง iptables จะมีผลทันที

สันนิษฐานว่าคุณต้องการเพิ่มกฎ ACCEPT สำหรับพอร์ต เนื่องจากคุณต้องการแทนที่กฎที่บล็อกพอร์ตทั้งหมดหรือส่วนใหญ่

อย่างไรก็ตาม คุณได้เพิ่มกฎด้วย -ก ซึ่งจะผนวกกฎเข้ากับตาราง เนื่องจากคุณมีกฎการบล็อกอยู่แล้ว (โดยใช้บางอย่างเช่น DROP หรือ REJECT) กฎใหม่จะถูกเพิ่มเข้าไปหลังจากนั้น ซึ่งทำให้ไม่มีประสิทธิภาพ

หากคุณต้องการให้สิ่งนี้ทำงาน คุณต้องแทรกกฎ (-I #) ก่อนกฎการบล็อก หรือเพิ่มกฎในตำแหน่งที่ถูกต้องในไฟล์ปรับแต่งและโหลดกฎทั้งหมดอีกครั้ง (หรือใช้บางอย่างเช่น ufw หรือ firewalld เพื่อทำสิ่งนี้ให้คุณ) คุณจะได้รับรายการกฎที่เป็นตัวเลขด้วย iptables --line-numbers -L อินพุต และใส่กฎใหม่ของคุณที่หรือก่อนหน้าตำแหน่งของกฎการบล็อกของคุณ

หากสมมติฐานว่าคุณมีกฎการปิดกั้นนั้นผิด คุณต้องกลับไปตรวจสอบว่ามีสิ่งใดที่เปิดพอร์ตอยู่หรือไม่ คุณสามารถใช้ได้ netstat -nl | เกรป 2222 หรือ เอสเอส -nlt | เกรป 2222 และหากไม่มีอยู่ในรายการ แสดงว่าไม่มีสิ่งใดรับฟังอยู่บนพอร์ต

จากผลลัพธ์ที่คุณเพิ่มลงในคำถาม ตาราง INPUT จะว่างเปล่า (ยกเว้นกฎการยอมรับของคุณ) และ -P อินพุตยอมรับ พูดว่ายอมรับสิ่งที่ไม่ตรงกับกฎในตารางอินพุต

in flag
นี่คือเอาต์พุต `sudo iptables -S` ของฉัน: https://pastebin.com/4We0DhaP ไม่มีอะไรดูเหมือนกฎการปิดกั้นสำหรับฉัน แต่ฉันกลัวที่จะบอกว่าฉันไม่รู้จัก iptables ดีนัก..
in flag
`sudo iptables --line-numbers -L INPUT` ส่งคืน https://pastebin.com/VcVveE8W
user10489 avatar
in flag
ดูเหมือนว่าคุณไม่มีกฎการปิดกั้นอินพุตและพอร์ตที่คุณพยายามเปิดในไฟร์วอลล์นั้นเปิดอยู่แล้ว ฉันคิดว่าคุณกำลังแก้ไขปัญหาผิด และคุณต้องอธิบายสิ่งที่คุณพยายามทำให้สำเร็จแทน อาจไม่มีอะไรฟังอยู่บนพอร์ต

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา