Score:0

ufw อนุญาตการรับส่งข้อมูลขาเข้าทั้งหมดเพื่อตอบสนองต่อคำขอขาออกหรือไม่

ธง zm

ฉันสับสนว่า ufw ทำงานอย่างไร ฉันค้นหาไซต์แล้ว แต่ปัญหาส่วนใหญ่หยุดการเข้าชม ปัญหาของฉันทำให้การเข้าชมเข้ามาได้

ฉันได้ตั้งค่า ufw เพื่ออนุญาตเฉพาะพอร์ต ssh ที่กำหนดเองของฉัน อย่างไรก็ตาม ฉันกำลังเรียกใช้โปรแกรมจาวาบนเซิร์ฟเวอร์ที่เชื่อมต่อกับเซิร์ฟเวอร์อื่นผ่านพอร์ต 4246 และยังอนุญาตให้ข้อมูลทั้งหมดจากเซิร์ฟเวอร์อื่นเข้าสู่เซิร์ฟเวอร์ของฉัน แม้ว่าฉันจะไม่ได้ตั้งค่าพอร์ต 4246/tcp เปิดอยู่ก็ตาม ฉันไม่อนุญาต http หรือ https ใด ๆ แต่คำสั่ง apt ทั้งหมดทำงานโดยไม่มีปัญหาเช่นกัน

ตามที่ฉันเข้าใจแล้ว ฟังก์ชันเริ่มต้นของ ufw คือ "ปฏิเสธ (ขาเข้า) อนุญาต (ขาออก)" นี่หมายความว่าตราบใดที่การเชื่อมต่อถูกสร้างขึ้นจากภายในเซิร์ฟเวอร์ที่อนุญาตให้ใช้ข้อมูลใด ๆ ในการตอบสนอง? มีวิธีจริงในการป้องกันสิ่งนี้และอนุญาตเฉพาะข้อมูลหากกำหนดค่าเป็น ufw โดยไม่คำนึงว่ามีการเชื่อมต่อจากภายในเซิร์ฟเวอร์หรือไม่

ขอบคุณล่วงหน้า!

ar flag
"*นี่หมายความว่าตราบเท่าที่มีการสร้างการเชื่อมต่อจากภายในเซิร์ฟเวอร์ที่อนุญาตให้ใช้ข้อมูลใด ๆ ในการตอบสนอง?*" **ใช่!**
Doug Smythies avatar
gn flag
คุณสามารถทำสิ่งที่คุณต้องการได้ แต่การใช้ iptables โดยตรงอาจง่ายกว่า UFW หากคุณต้องการนโยบายเริ่มต้นของ DROP สำหรับเชน OUTPUT คุณจะต้องจัดการสิ่งต่างๆ เช่น DNS และ DHCP ด้วยกฎ iptables แต่ละรายการ นอกเหนือจากทราฟฟิกพอร์ต ssh ที่คุณกำหนดเอง
ar flag
"*ฉันยังไม่อนุญาต http หรือ https ใดๆ แต่คำสั่ง apt ทั้งหมดก็ใช้งานได้โดยไม่มีปัญหาเช่นกัน*" นี่คือวิธีการทำงานของอินเทอร์เน็ต เว็บเบราว์เซอร์เช่น crome หรือในกรณีนี้ โปรแกรม `apt` ส่งข้อความไปยังพอร์ต 80 (หรือ 443) ของเว็บเซิร์ฟเวอร์และบอกให้ส่งข้อมูล (หน้าเว็บ) กลับโดยใช้พอร์ต XXXXXX โดยที่ XXXXXX เป็นตัวเลขสุ่ม เมื่อคุณ "ปฏิเสธ (ขาเข้า)" จะไม่ปฏิเสธแพ็กเก็ตขาเข้าที่แพ็กเก็ตขาออกร้องขอโดยเฉพาะ
ar flag
ดู[คำถามและคำตอบนี้](https://stackoverflow.com/questions/2301075/client-use-high-port-number)สำหรับคำตอบที่เฉพาะเจาะจงมากขึ้นเกี่ยวกับวิธีการทำงานของพอร์ตชั่วคราว/ไม่ลงทะเบียน
Doug Smythies avatar
gn flag
@ user68186 : "ไม่ปฏิเสธแพ็กเก็ตขาเข้าที่แพ็กเก็ตขาออกร้องขอโดยเฉพาะ" ดี ufw (ซึ่งเป็นเพียงส่วนหน้าสำหรับ iptables) ทำเช่นนั้นตามค่าเริ่มต้น แต่ไม่จำเป็นต้องยอมรับการตอบกลับดังกล่าวหากพวกเขาไม่ต้องการ
ar flag
@DougSmythies ยุติธรรมพอ บางทีคุณอาจเขียนคำตอบได้
zm flag
ขอบคุณสำหรับข้อมูล @ user68186 และตอบคำถามบางส่วน
Score:0
ธง gn

คำถามเกี่ยวกับ UFW แต่คำตอบนี้ใช้ iptables โดยตรงและอาจไม่ใช่สิ่งที่ต้องการ

คุณสามารถบล็อกแพ็กเก็ตเครือข่ายขาออกและขาเข้าได้ ยกเว้นแพ็กเก็ต SSH ของคุณด้วยสคริปต์ iptables นี้:

#!/bin/sh
FWVER=0.01
#
# ask1393247 Smythies 2022.02.16 เวอร์ชั่น:0.01
# ดูที่นี่:
# https://askubuntu.com/questions/1393247/does-ufw-allow-all-incoming-traffic-in-response-to-outbound-requests?noredirect=1#comment2409932_1393247
# เรียกใช้เป็น sudo บน s19
#เริ่มต้นจากด้านล่าง:
#
# ask1368071 Smythies 2021.10.08 เวอร์ชั่น:0.01
# ดูที่นี่:
# https://askubuntu.com/questions/1368071/iptables-that-only-allow-incoming-traffic-to-openssh-and-block-all-other-traffic
# เรียกใช้เป็น sudo บน s19
# รายการบันทึกใช้สำหรับแต่ละแพ็กเก็ต ssh ใหม่เท่านั้น ดูเหมือนว่าไม่มีเหตุผลที่จะบันทึกทุกแพ็กเก็ต ssh แต่ก็สามารถทำได้
#

echo "กำลังโหลดรุ่นชุดกฎ ask1393247 $FWVER..\n"

# ตำแหน่งของโปรแกรม iptables
#
IPTABLES=/sbin/iptables

#การตั้งค่าอินเทอร์เฟซและที่อยู่ภายนอกและภายในสำหรับเครือข่าย
#
# ตั้งค่าสำหรับคอมพิวเตอร์ Smythies s19 (สำหรับการทดสอบ) แก้ไขสำหรับคอมพิวเตอร์ของ ask1393247
EXTIF="br0"
EXTIP="192.168.111.136"
เครือข่าย="192.168.111.0/24"
จักรวาล="0.0.0.0/0"

# ล้างการกำหนดค่าใด ๆ ก่อนหน้านี้
#ระวังตรงนี้ ฉันสามารถทำได้ใน s19 แต่ไม่รู้
# เกี่ยวกับคอมพิวเตอร์ของผู้ใช้รายอื่น
#
echo " กำลังล้างกฎที่มีอยู่และตั้งค่านโยบายเริ่มต้น.."
$IPTABLES -P อินพุตลดลง
$IPTABLES -F อินพุต
$IPTABLES -P เอาต์พุตลดลง
$IPTABLES -F เอาต์พุต
$IPTABLES -P ยอมรับไปข้างหน้า
$IPTABLES -F ส่งต่อ
$IPTABLES -t แนท -F

# ลบเชนที่ผู้ใช้กำหนด
$IPTABLES -X
# รีเซ็ตตัวนับ IPTABLES ทั้งหมด
$IPTABLES -Z
# Smythies: แม้ว่าการอ้างอิงของฉันจะไม่มี แต่ฉันคิดว่าสิ่งนี้จำเป็น
$IPTABLES -t แนท -Z

# อินเทอร์เฟซย้อนกลับถูกต้อง
#
$IPTABLES -A อินพุต -i lo -s $UNIVERSE -d $UNIVERSE -j ยอมรับ

# อนุญาตให้ทราฟฟิกที่เกี่ยวข้องกลับมาที่เซิร์ฟเวอร์
# ด้วยเหตุผลที่ไม่ทราบสาเหตุ ask1393247 ไม่ต้องการเวอร์ชันทั่วไป จึงแสดงความคิดเห็นออกไป)
#$IPTABLES -A INPUT -i $EXTIF -s $UNIVERSE -d $EXTIP -m state --state ESTABLISHED,RELATED -j ยอมรับ
# ask1393247 ดูเหมือนจะต้องการสิ่งนี้:
เสียงสะท้อน "ธง 1"
$IPTABLES -A INPUT -i $EXTIF -s $UNIVERSE -d $EXTIP -m state --state ESTABLISHED,RELATED -p tcp --dport 22 -j ยอมรับ
เสียงสะท้อน "ธง 2"

# อนุญาตและบันทึกการเชื่อมต่อ SSH ใหม่ ไม่จำเป็นหากคุณไม่ต้องการบันทึกเซสชัน แต่คุณต้องเพิ่ม NEW ด้านบน
# หมายเหตุ: ฉันใช้พอร์ต 22 เพราะไม่มีใครสามารถมาที่นี่ได้ เปลี่ยนเป็นพอร์ตของคุณ
#
$IPTABLES -A INPUT -i $EXTIF -m state --state NEW -p tcp -s $UNIVERSE -d $EXTIP --dport 22 -j LOG --log-prefix "ssh traffic:" --log-ข้อมูลระดับ
$IPTABLES -A INPUT -i $EXTIF -m state --state NEW -p tcp -s $UNIVERSE -d $EXTIP --dport 22 -j ยอมรับ

# ตอนนี้ปล่อย ssh เท่านั้น:
$IPTABLES -A OUTPUT -o $EXTIF -p tcp --sport 22 -m state --state ESTABLISHED,RELATED -j ยอมรับ

# หมายเหตุ: หากคอมพิวเตอร์ของคุณใช้ DCHP คุณจะต้องอนุญาตทั้งขาเข้าและขาออก

# เสร็จแล้ว.
#
echo ask1393247 กฎชุดเวอร์ชัน $FWVER เสร็จแล้ว

และนี่คือผลลัพธ์:

doug@s19:~/iptables/misc$ sudo iptables -xvnL
Chain INPUT (นโยบาย DROP 133 แพ็คเก็ต, 11819 ไบต์)
    pkts bytes target prot เลือกใช้ปลายทางต้นทาง
       0 0 ยอมรับทั้งหมด -- จริง * 0.0.0.0/0 0.0.0.0/0
     202 13689 ยอมรับ tcp -- br0 * 0.0.0.0/0 192.168.111.136 สถานะที่เกี่ยวข้อง ก่อตั้ง tcp dpt:22
       4 280 LOG tcp -- br0 * 0.0.0.0/0 192.168.111.136 state NEW tcp dpt:22 LOG flag 0 level 6 prefix "ssh traffic:"
       4 280 ยอมรับ tcp -- br0 * 0.0.0.0/0 192.168.111.136 สถานะ ใหม่ tcp dpt:22

เชน FORWARD (นโยบายยอมรับ 0 แพ็กเก็ต 0 ไบต์)
    pkts bytes target prot เลือกใช้ปลายทางต้นทาง

Chain OUTPUT (นโยบาย DROP 14 แพ็คเก็ต, 3240 ไบต์)
    pkts bytes target prot เลือกใช้ปลายทางต้นทาง
     164 25505 ยอมรับ tcp -- * br0 0.0.0.0/0 0.0.0.0/0 tcp spt:22 รัฐที่เกี่ยวข้อง ก่อตั้ง
zm flag
ขอบคุณสำหรับข้อมูลเกี่ยวกับส่วน "มีวิธีป้องกันสิ่งนี้จริงหรือไม่" ของคำถาม ไม่น่าเป็นไปได้ที่ฉันจะใช้สิ่งนี้ แต่เป็นข้อมูลที่มีประโยชน์ ฉันจะทำเครื่องหมายเป็นคำตอบ

โพสต์คำตอบ

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