Score:0

ไม่สามารถเชื่อมต่อเพื่อเปิดพอร์ตที่ปลอดภัยบน Ubuntu

ธง tk

ฉันเปิดพอร์ต 8443 ที่ฉันเรียกใช้เซิร์ฟเวอร์ Clickhouse ฉันสามารถเชื่อมต่อกับ SSH บนพอร์ต 22 ฉันยังสามารถเชื่อมต่อกับ 8443 ผ่านอุโมงค์ SSH ได้ แต่ฉันไม่สามารถเชื่อมต่อกับโฮสต์นั้นได้ตามปกติ ฉันกำลังพยายามเชื่อมต่อจากเครื่อง Windows หากเกี่ยวข้องกัน ฉันยังเปิดพอร์ตขาออก (ค่อนข้างแน่ใจว่ามันซ้ำซ้อน)

ฉันพยายามปิดใช้งานไฟร์วอลล์ จากนั้นฉันก็สามารถเชื่อมต่อได้ อะไรจะผิด?

user@myhost:~/d/clickhouse$ สถานะ sudo ufw
ถึงการดำเนินการจาก
-- ------ ----
22/tcp อนุญาตได้ทุกที่                  
9440/tcp อนุญาตได้ทุกที่                  
8443/tcp อนุญาตได้ทุกที่                  
8443 อนุญาตได้ทุกที่                  
22/tcp (v6) อนุญาตทุกที่ (v6)             
9440/tcp (v6) อนุญาตได้ทุกที่ (v6)             
8443 (v6) อนุญาตได้ทุกที่ (v6)             
8443/tcp (v6) อนุญาตได้ทุกที่ (v6)

user@myhost:~/d/clickhouse$ sudo lsof -iTCP -sTCP:LISTEN -P
คำสั่ง PID ผู้ใช้ ประเภท FD ขนาดอุปกรณ์/ปิด ชื่อโหนด
systemd-r 841 systemd-resolve 13u IPv4 26021 0t0 TCP localhost:53 (LISTEN)
vsftpd 901 รูท 3u IPv6 26299 0t0 TCP *:21 (ฟัง)
sshd 1037 รูท 3u IPv4 29181 0t0 TCP *:22 (ฟัง)
sshd 1037 รูท 4u IPv6 29183 0t0 TCP *:22 (ฟัง)
นักเทียบท่า-pr 86081 รูท 4u IPv6 520074 0t0 TCP *:8088 (ฟัง)
นักเทียบท่า-pr 287023 รูท 4u IPv6 1831110 0t0 TCP *:8086 (ฟัง)
นักเทียบท่า-pr 318522 รูท 4u IPv6 2109586 0t0 TCP *:9440 (ฟัง)
นักเทียบท่า-pr 318537 รูท 4u IPv6 2110806 0t0 TCP *:8443 (ฟัง)
โหนด 354955 ผู้ใช้ 18u IPv4 2274703 0t0 TCP localhost:34575 (LISTEN)

user@myhost:~/d/clickhouse$ netstat -an | เกรป "ฟัง"
tcp 0 0 127.0.0.53:53 0.0.0.0:* ฟัง     
tcp 0 0 0.0.0.0:22 0.0.0.0:* ฟัง     
tcp 0 0 127.0.0.1:34575 0.0.0.0:* ฟัง     
tcp6 0 0 :::21 :::* ฟัง     
tcp6 0 0 :::8086 :::* ฟัง     
tcp6 0 0 :::22 :::* ฟัง     
tcp6 0 0 :::8088 :::* ฟัง     
tcp6 0 0 :::8443 :::* ฟัง     
tcp6 0 0 :::9440 :::* ฟัง 

อัปเดต:

บนเซิร์ฟเวอร์ที่ฉันวิ่ง sudo tcpdump -ni eth0 พอร์ต 8443 จากนั้นฉันก็วิ่งบนเครื่องไคลเอนต์ nc -zv 192.168.1.58 8443:

user@myhost:~$ sudo tcpdump -ni eth0 พอร์ต 8443
tcpdump: เอาต์พุต verbose ถูกระงับ ใช้ -v หรือ -vv สำหรับการถอดรหัสโปรโตคอลแบบเต็ม
กำลังฟัง eth0, ประเภทลิงก์ EN10MB (Ethernet), ขนาดการดักจับ 262144 ไบต์
15:05:51.368952 IP 192.168.1.70.59364 > 192.168.1.58.8443: ค่าสถานะ [S], seq 2263747478, ชนะ 64240, ตัวเลือก [mss 1460,sackOK,TS val 1434934937 ecr 0,nop,wscale 7], ความยาว 7
15:05:52.380268 IP 192.168.1.70.59364 > 192.168.1.58.8443: ค่าสถานะ [S], seq 2263747478, ชนะ 64240, ตัวเลือก [mss 1460,sackOK,TS val 1434935948 ecr 0,nop,wscale 7], ความยาว 7
15:05:54.460280 IP 192.168.1.70.59364 > 192.168.1.58.8443: ค่าสถานะ [S], seq 2263747478, ชนะ 64240, ตัวเลือก [mss 1460,sackOK,TS val 1434938028 ecr 0,nop,wscale 7], ความยาว 7
15:05:58.540705 IP 192.168.1.70.59364 > 192.168.1.58.8443: ค่าสถานะ [S], seq 2263747478, ชนะ 64240, ตัวเลือก [mss 1460,sackOK,TS val 1434942109 ecr 0,nop,wscale 7], ความยาว 7
15:06:06.940802 IP 192.168.1.70.59364 > 192.168.1.58.8443: ค่าสถานะ [S], seq 2263747478, ชนะ 64240, ตัวเลือก [mss 1460,sackOK,TS val 1434950509 ecr 0,nop,wscale 7], ความยาว 7
15:06:23.581056 IP 192.168.1.70.59364 > 192.168.1.58.8443: ค่าสถานะ [S], seq 2263747478, ชนะ 64240, ตัวเลือก [mss 1460,sackOK,TS val 1434967149 ecr 0,nop,wscale 7], ความยาว 7
15:06:56.221198 IP 192.168.1.70.59364 > 192.168.1.58.8443: ค่าสถานะ [S], seq 2263747478, ชนะ 64240, ตัวเลือก [mss 1460,sackOK,TS val 1434999788 ecr 0,nop,wscale 7], ความยาว 7

และ เอ็นซี ล้มเหลวกับข้อความ nc: การเชื่อมต่อกับพอร์ต 192.168.1.58 8443 (tcp) ล้มเหลว: การเชื่อมต่อหมดเวลา

ผลลัพธ์ของ sudo ufw สถานะ verbose

user@myhost:~$ sudo ufw สถานะอย่างละเอียด
สถานะ: ใช้งานอยู่
การบันทึก: เปิด (ต่ำ)
ค่าเริ่มต้น: ปฏิเสธ (ขาเข้า) อนุญาต (ขาออก) ปฏิเสธ (กำหนดเส้นทาง)
โปรไฟล์ใหม่: ข้าม

ถึงการดำเนินการจาก
-- ------ ----
22/tcp อนุญาตในทุกที่                  
9440/tcp อนุญาตในทุกที่                  
8443/tcp อนุญาตในทุกที่                  
8443 อนุญาตในทุกที่                  
22/tcp (v6) อนุญาตในทุกที่ (v6)             
9440/tcp (v6) อนุญาตในทุกที่ (v6)             
8443 (v6) อนุญาตให้เข้าได้ทุกที่ (v6)             
8443/tcp (v6) อนุญาตในทุกที่ (v6)  

ฉันสามารถเชื่อมต่อกับบริการได้หากปิดใช้งานไฟร์วอลล์:

nc -zv 192.168.1.58 8443 
การเชื่อมต่อกับพอร์ต 192.168.1.58 8443 [tcp/*] สำเร็จ!

ฉันสามารถเชื่อมต่อกับบริการด้วยที่อยู่ IPv4 หากปิดใช้งานไฟร์วอลล์: ป้อนคำอธิบายรูปภาพที่นี่

Wayne Vosberg avatar
bd flag
เมื่อมองแวบแรก ดูเหมือนว่าคุณได้เปิด 8443 (ufw) บน IPv4 แต่กำลังฟังเฉพาะบน IPv6 (เอาต์พุต lsof/netstat) ลอง `sudo ufw ปิดการใช้งาน` และดูว่าใช้งานได้หรือไม่
Wayne Vosberg avatar
bd flag
เพื่อให้ชัดเจน `ufw ปิดการใช้งาน 'เป็นเพียงการทดสอบอย่างรวดเร็ว ถ้ามันใช้งานได้ให้ทำ `sudo ufw enable` และเปิด 8443 บน IPv6 ด้วย (บางอย่างเช่น `sudo ufw allow from any to any port 8443`
Dmitrij Kultasev avatar
tk flag
@WayneVosberg ใช้งานได้กับไฟร์วอลล์ที่ปิดใช้งาน หลังจากนั้นฉันรันคำสั่งของคุณและยังไม่สามารถเชื่อมต่อได้ ฉันอัปเดตคำถามด้วยผลลัพธ์ใหม่สำหรับ netstat/lsof
Dmitrij Kultasev avatar
tk flag
ฉันยังพยายามเรียกใช้ `sudo ufw allow proto tcp from any to any port 8443` อัปเดตส่วน `สถานะ ufw` ด้วย
raj avatar
cn flag
raj
เอาต์พุต `netstat` ของคุณแสดงว่าบริการบางอย่างกำลังฟังพอร์ต 8443 **เฉพาะที่อยู่ IPv6** ไม่มีสิ่งใดรับฟังบนพอร์ต 8443 บนที่อยู่ IPv4 สิ่งนี้ไม่เกี่ยวกับไฟร์วอลล์ แต่เกี่ยวกับการกำหนดค่าบริการเอง ด้วยเหตุผลบางอย่าง บริการจะผูกกับที่อยู่ IPv6 เท่านั้น คุณต้องตรวจสอบการกำหนดค่า
Dmitrij Kultasev avatar
tk flag
@raj ฉันจะเชื่อมต่อได้อย่างไรโดยระบุที่อยู่ IPv4 เมื่อไฟร์วอลล์ถูกปิดใช้งาน (เพิ่มภาพหน้าจอ)
raj avatar
cn flag
raj
ฉันสามารถเดาได้ - มีการกำหนดค่าบางอย่างบนเซิร์ฟเวอร์ของคุณที่เปลี่ยนเส้นทางการเชื่อมต่อจาก IPv4 เป็น IPv6 หรือไม่ ฉันเห็นว่าบริการของคุณกำลังทำงานในคอนเทนเนอร์ Docker ดังนั้น "บางสิ่ง" อาจอยู่ที่ใดที่หนึ่งในระดับ Docker ระหว่างโฮสต์ OS ของคุณและบริการเอง และไฟร์วอลล์อาจรบกวน "บางสิ่ง" นั้น ฉันคิดว่ามันจะดีกว่าถ้าบริการฟังโดยตรงบน IPv4
Dmitrij Kultasev avatar
tk flag
เป็นเรื่องแปลกที่ฉันเห็นจาก `docker ps` ที่พอร์ตถูกส่งต่อไปยังพอร์ต IPv4 รวมถึงจากการกำหนดค่าทั้งหมด ฉันเห็นเหมือนกัน: `2229b0ce11e7 test/clickhouse "/entrypoint.sh" 2 วันที่แล้ว เพิ่มขึ้น 2 วัน 8123/tcp, 9000/tcp, 0.0.0.0:8443->8443/tcp, 9009/tcp, 0.0.0.0:9440->9440/tcp clickhouse`
Score:1
ธง tk

ในที่สุดฉันก็แก้ไขได้โดยใช้คำสั่งต่อไปนี้: เส้นทาง sudo ufw อนุญาตโปรโต tcp จากพอร์ตใด ๆ ไปยังพอร์ต 8443

โพสต์คำตอบ

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