UFW บล็อกทั้งหมดแม้เมื่อฉันตั้งกฎให้อนุญาต


14

ฉันใช้เซิร์ฟเวอร์อูบุนตูตอนนี้ฉันพยายามเปิดใช้งานไฟร์วอลล์โดยใช้คำสั่งเหล่านี้:

ufw default deny incoming
ufw default allow outgoing

ufw allow ssh
ufw allow www
ufw allow https

ufw enable

ฉันได้ลองทำสิ่งufw default deny incomingสุดท้าย แต่ก็ยังไม่มีโชคเมื่อฉันเปิดใช้งานไฟร์วอลล์มันจะบล็อกทุกสิ่งเมื่อฉันตั้งค่าเริ่มต้นเป็นปฏิเสธ แต่เมื่อฉันตั้งค่าให้อนุญาตมันทำงานได้ดีเหมือนกฎถูกเพิกเฉย สิ่งที่อาจทำให้เกิดสิ่งนี้

แก้ไข

นี่คือผลลัพธ์ของฉันiptables -L -v -n ฉันยังพยายามเสนอทางออก แต่ก็ยังไม่มีโชคก็ทำงานได้ดีเพียง แต่เมื่อฉันทำให้มันdefault allow incoming

Chain INPUT (policy DROP 30 packets, 1764 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 2 packets, 104 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-after-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-after-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:137
    0     0 ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:138
    0     0 ufw-skip-to-policy-input  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:139
    0     0 ufw-skip-to-policy-input  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:445
    0     0 ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:67
    0     0 ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:68
    0     0 ufw-skip-to-policy-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type BROADCAST

Chain ufw-after-logging-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] "

Chain ufw-after-logging-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] "

Chain ufw-after-logging-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-after-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 3
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 4
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 11
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 12
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 8
    0     0 ufw-user-forward  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-before-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ufw-logging-deny  all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 3
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 4
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 11
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 12
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 8
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp spt:67 dpt:68
    0     0 ufw-not-local  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            224.0.0.251          udp dpt:5353
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            239.255.255.250      udp dpt:1900
    0     0 ufw-user-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-before-logging-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-logging-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-logging-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ufw-user-output  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-logging-allow (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW ALLOW] "

Chain ufw-logging-deny (2 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID limit: avg 3/min burst 10
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] "

Chain ufw-not-local (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type LOCAL
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type MULTICAST
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type BROADCAST
    0     0 ufw-logging-deny  all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-reject-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-reject-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-reject-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-skip-to-policy-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-skip-to-policy-input (7 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-skip-to-policy-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-track-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-track-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-track-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate NEW
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate NEW

Chain ufw-user-forward (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-input (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:443

Chain ufw-user-limit (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 5 LOG flags 0 level 4 prefix "[UFW LIMIT BLOCK] "
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain ufw-user-limit-accept (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-user-logging-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-logging-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-logging-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-output (1 references)
 pkts bytes target     prot opt in     out     source               destination         

1
คุณช่วยฉันหน่อยได้ไหม? ทำufw enableแล้ววางผลลัพธ์ของsudo iptables -L -v -nคำถามของคุณ ฉันอยากรู้ว่าสิ่งที่อยู่ภายใต้netfilter/ iptablesสิ่งที่จริงทำกับกฎ ufw :)
โธมัสวอร์ด

คำสั่งสองคำแรกนั้นไม่จำเป็น สิ่งที่คุณต้องทำคือเปิดใช้งาน UFW และจะใช้การปฏิเสธค่าเริ่มต้นในการอนุญาต
mchid

Oooh, mchid ถูกต้องนั่นเป็นค่าเริ่มต้นคุณไม่ต้องการมัน ต้องบอกว่าฉันยังต้องการดูiptablesข้อมูลหากไม่รวมสองบรรทัดแรกคุณยังคงมีปัญหานี้อยู่
โธมัสวอร์ด

ฉันเพิ่มผลลัพธ์ของไฟล์ iptables ของฉันแล้ว
engma

คำตอบ:


13

เปิดเทอร์มินัลแล้วพิมพ์คำสั่งต่อไปนี้:

เริ่มต้นด้วยการรีเซ็ตซึ่งจะลบกฎที่มีอยู่ทั้งหมด:

sudo ufw reset

ต่อไป,

sudo ufw app list

รายการนี้จะแสดงโปรไฟล์แอปพลิเคชันที่มีเช่น OpenSSH และอื่น ๆ ในการรับข้อมูลเกี่ยวกับแอปให้พิมพ์คำสั่งต่อไปนี้เช่นในตัวอย่างนี้:

sudo ufw app info OpenSSH

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

Profile: OpenSSH
Title: Secure shell server, an rshd replacement
Description: OpenSSH is a free implementation of the Secure Shell protocol.

Port:
  22/tcp

หากต้องการอนุญาตการเข้าถึง OpenSSH คุณสามารถใช้กฎต่อไปนี้:

sudo ufw allow 22/tcp

ซึ่งแตกต่างจาก Debian, www และ https โดยปกติจะไม่รวมอยู่ในโปรไฟล์แอปอย่างไรก็ตามเรารู้ว่าสิ่งเหล่านี้ทำงานบนพอร์ต 80 และ 443 ดังนั้นให้ใช้คำสั่งต่อไปนี้:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

ถ้าคุณต้องการเพิ่ม UDP ก็ทำได้เช่นกัน

sudo ufw allow 80/udp
sudo ufw allow 443/udp

ปิดใช้งานและเปิดใช้งาน ufw เพื่อใช้การเปลี่ยนแปลง:

sudo ufw disable
sudo ufw enable

ในการแสดงกฎของคุณ:

sudo ufw status

ในที่สุดด้านหนึ่งที่เป็นมิตรน้อยของ ufw คือวิธีที่กฎปฏิเสธมักจะเป็นคนที่กล้าหาญให้กฎ ตัวอย่างเช่นคุณไม่สามารถตั้งค่าทุกอย่างให้ปฏิเสธแล้วตั้งค่าพอร์ตให้อนุญาต พอร์ตทั้งหมดจะยังคงถูกบล็อก ดูที่นี่สำหรับข้อมูลเพิ่มเติม


คุณสามารถเพิ่มกฎเหล่านี้เพื่อป้องกันพอร์ตทั้งหมดยกเว้น 22, 53, 80 และ 443 ฉันได้เพิ่มพอร์ต 53 เพื่ออนุญาตคำขอ DNS หากคุณไม่จำเป็นต้องทำการสืบค้น DNS เพียงแค่ปรับเปลี่ยนกฎตามนั้น

หากต้องการตั้งค่ากฎการบล็อกเหล่านี้สำหรับการรับเข้าเท่านั้นคุณจะใช้sudo ufw deny in 1:22/tcpตัวอย่าง อีกทางหนึ่งคือกำหนดไว้สำหรับการส่งออกsudo ufw deny out 1:22/tcpและอื่น ๆ

sudo ufw deny 1:21/tcp
sudo ufw deny 1:21/udp
sudo ufw deny 23:52/tcp
sudo ufw deny 23:52/udp
sudo ufw deny 54:79/tcp
sudo ufw deny 54:79/udp
sudo ufw deny 81:442/tcp
sudo ufw deny 81:442/udp
sudo ufw deny 444:65535/tcp
sudo ufw deny 444:65535/udp

ขอบคุณมากสำหรับคำตอบของคุณ แต่ฉันต้องการบล็อกพอร์ตทั้งหมดยกเว้นพอร์ตเหล่านั้นฉันควรใช้ufw default block incomingหลังจากตั้งกฎเหล่านั้นหรือไม่
engma

@ Developer106 ไม่เมื่อคุณเปิดใช้งาน ufw การบล็อกขาเข้าถูกตั้งค่าเป็นค่าเริ่มต้น sudo ufw status verboseคุณสามารถตรวจสอบโดยการดำเนินการคำสั่งต่อไปในขั้วเปิด หากฉันไม่ผิดพลาดการตั้งค่ากฎนั้นจะไม่อนุญาตพอร์ตที่อนุญาตของคุณอย่างชัดเจน หากคุณต้องการปิดกั้นพอร์ตทั้งหมดยกเว้นพอร์ตฉันขอแนะนำให้คุณตรวจสอบกระทู้นี้ตามที่พวกเขาทำ มันละเอียดมากบล็อกทั้งหมดยกเว้นพอร์ตเหล่านั้นและคุณจะมีพอร์ตเปิดที่คุณต้องการ ubuntuforums.org/showthread.php?t=1893751
mchid

@ Developer106 ฉันได้เพิ่มกฎบางอย่างเพื่อป้องกันทั่วโลกทั้งหมดยกเว้น 22, 53, 80, และ 443 และปฏิเสธหรือบล็อกพอร์ตอื่น ๆ
mchid

ตกลงมันใช้งานได้เฉพาะเมื่อระบุว่าจะปฏิเสธoutถ้าฉันพูดdenyโดยไม่บอกว่ามันออกมาโดยเฉพาะมันก็ยังไม่ทำงาน อะไรคือสาเหตุของสิ่งนั้น
engma

@ Developer106 ใช้งานไม่ได้มันไม่ปิดกั้นหรือไม่อนุญาต?
mchid

7

FYI: ในกรณีที่คนอื่นมีปัญหานี้

ในรายละเอียดการส่งออก iptables ฉันสังเกตเห็นกฎ ufw จะหายไปในกลุ่ม INPUT, OUTPUT และ FORWARD ระบบของฉันสิ้นสุดลงเช่นนี้เมื่อฉันรัน iptables -F เพื่อลบกฎ FW ที่กำหนดเองหลังจากเปิดใช้งาน ufw ในบางครั้ง ปรากฏว่า ufw ไม่ได้เพิ่มกฎระดับบนสุดกลับมาถ้าโซ่บางส่วนของตัวเองมีอยู่แล้วใน iptables

ฉันสิ้นสุดการยกเลิกการติดตั้ง ufw รีบูตรัน 'iptables -F' (เพื่อลบกฎ iptables ก่อนหน้านี้ที่ยังคงทำงานอยู่) จากนั้นทำการติดตั้งและกำหนดค่า ufw ใหม่ กฎ ufw ระดับบนสุดตอนนี้กลับมาแล้ว การถอนการติดตั้ง / ติดตั้งใหม่อาจไม่จำเป็น เพียงแค่ลบกฎ ufw ทั้งหมดออกจาก iptables โดยการปิดการใช้งาน ufw และการรีบูตเครื่องอาจทำได้

นี่คือสิ่งที่กลุ่มระดับบนสุดควรมีลักษณะ (บน Debian 9.4)

Chain INPUT (policy DROP)
target     prot opt source               destination         
ufw-before-logging-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-before-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-logging-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-reject-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-track-input  all  --  0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ufw-before-logging-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-before-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-logging-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-reject-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-track-forward  all  --  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ufw-before-logging-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-before-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-logging-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-reject-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-track-output  all  --  0.0.0.0/0            0.0.0.0/0           

1
ปัญหานี้แก้ไขได้สำหรับฉันด้วย
Technophobe01

1
ใช้iptables -Xเพื่อลบเชนที่ไม่ใช่ builtin ทั้งหมดจากนั้นรีสตาร์ทufwก็ใช้งานได้สำหรับฉัน
Tblue

0

ฉันได้รับปัญหาเดียวกันการตั้งค่าแบบเมาบางufwและfail2banfu ** ed up chain iptables ทุกอย่างถูกบล็อกทันทีที่ฉันเริ่ม ufw - แม้ว่าจะไม่มีกฎในufwสายโซ่ก็ตาม ufwรีเซ็ตไม่ได้ช่วย ฉันติดตั้งใหม่ทั้งหมดมันใช้งานได้ดี

sudo apt-get purge ufw
sudo apt-get install ufw

สวัสดีมาโซ คุณต้องทำการกำหนดค่าเพิ่มเติมหลังจากติดตั้งใหม่หรือไม่?
ฮีจิน

0

สำหรับฉันปัญหานี้ได้รับการแก้ไขโดยการตั้งค่ากฎจาก

sudo ufw default deny outgoing
sudo ufw default allow outgoing

นั่นเป็นสิ่งเดียวที่ทำงานได้ไม่อนุญาตให้ใช้พอร์ต 53 อนุญาตให้ใช้ DNS ฯลฯ

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