Score:0

การส่งต่อพอร์ตระยะไกลทำงานบน TCP/1194 แต่ไม่ใช่บน TCP/443 แม้ว่าจะไม่ได้ใช้พอร์ต 443 บนเซิร์ฟเวอร์ก็ตาม

ธง cn

ฉันมีปัญหาแปลกๆ

ฉันสร้าง Linode ใหม่เพื่อทำหน้าที่เป็นจุดสิ้นสุดการขุดอุโมงค์

ฉันสามารถส่งต่อพอร์ต 1194 จากระยะไกลได้สำเร็จ ดังนั้นตอนนี้จึงเชื่อมต่อกับ linode-server@1194 ไปยังพอร์ต 1194 ของเครื่องของฉันได้สำเร็จ และฉันสามารถเชื่อมต่อกับ VPN ของฉันได้โดยเชื่อมต่อกับพอร์ต 1194 บนเซิร์ฟเวอร์ linode

คำสั่งด้านล่างคือสิ่งที่ฉันใช้ (คำสั่งที่ใช้งานได้):

ssh -N -R 1194:localhost:1194 [email protected]

ตอนนี้ผมต้องการ port forward 443 ด้วย ฉันลองสิ่งนี้:

ssh -N -R 443:192.168.1.122:443 [email protected]

เซิร์ฟเวอร์ภายในของฉันกำลังฟัง 192.168.1.122 โดยตั้งใจ (ไม่ใช่ localhost)

อย่างไรก็ตาม คำสั่งดังกล่าวไม่สามารถเปิดพอร์ต 443 บนเซิร์ฟเวอร์ได้ ฉันได้รับข้อผิดพลาดด้านล่าง:

คำเตือน: การส่งต่อพอร์ตระยะไกลล้มเหลวสำหรับการฟังพอร์ต 443

ดังนั้นฉันจึงตรวจสอบเซิร์ฟเวอร์ linode ว่ามีอะไรทำงานบนพอร์ต 443 หรือไม่ ไม่มีอะไร:

user@linode-server:~$ sudo netstat -tulpn
การเชื่อมต่ออินเทอร์เน็ตที่ใช้งานอยู่ (เฉพาะเซิร์ฟเวอร์)
Proto Recv-Q Send-Q Local Address ที่อยู่ต่างประเทศ State PID/ชื่อโปรแกรม    
tcp 0 0 0.0.0.0:1194 0.0.0.0:* ฟัง 7438/sshd: ผู้ใช้       
tcp 0 0 127.0.0.53:53 0.0.0.0:* ฟัง 411/systemd-resolve 
tcp 0 0 0.0.0.0:22 0.0.0.0:* ฟัง 2377/sshd: /usr/sbi 
tcp 0 0 0.0.0.0:25 0.0.0.0:* ฟัง 1513/หลัก         
tcp6 0 0 :::1194 :::* ฟัง 7438/sshd: ผู้ใช้       
tcp6 0 0 :::22 :::* ฟัง 2377/sshd: /usr/sbi 
tcp6 0 0 :::25 :::* ฟัง 1513/master         
udp 0 0 127.0.0.53:53 0.0.0.0:* 411/systemd-แก้ไข 
user@linode-server:~$ 

ไม่มีซอฟต์ไฟร์วอลล์บนเซิร์ฟเวอร์ และปิดไฟร์วอลล์ระบบคลาวด์ Linode ฉันก็ยังทำไม่ได้

ฉันไม่รู้เลยว่าทำไมการส่งต่อ 443 ไม่ทำงาน

ป.ล.- การตรวจสอบผู้ใช้ทำงานได้ดีในขณะที่สร้างอุโมงค์

ฉันไม่แน่ใจว่าจะช่วยได้หรือไม่ แต่ sshd_config ของฉันมีลักษณะดังนี้:

user@linode-server:~$ cat /etc/ssh/sshd_config | grep -v "^#" | grep -v "^$"
รวม /etc/ssh/sshd_config.d/*.conf
PermitRootเข้าสู่ระบบหมายเลข
เลขที่ยืนยันรหัสผ่าน
หมายเลขใบอนุญาตว่างรหัสผ่าน
ChallengeResponseAuthentication เลขที่
ใช้ PAM ใช่
GatewayPort ใช่
X11การส่งต่อใช่
เลขที่พิมพ์
ยอมรับEnv LANG LC_*
ระบบย่อย sftp /usr/lib/openssh/sftp-server
user@linode-server:~$

และเพื่อชี้แจงไม่มีอะไรใน /etc/ssh/sshd_config.d/

แบบฟอร์มการบันทึกอย่างละเอียด sshd บนเซิร์ฟเวอร์ linode:

...
14 ส.ค. 09:00:32 น. เชื่อมต่อ sshd[9499]: คีย์สาธารณะที่เลื่อนออกไปสำหรับ pi จาก *HIDDEN: พอร์ต IP สาธารณะที่บ้านของฉัน* 49180 ssh2 [preauth]
14 ส.ค. 09:00:32 น. เชื่อมต่อ sshd[9499]: พบคีย์ RSA *HIDDEN* ที่ /home/pi/.ssh/authorized_keys:1
14 ส.ค. 09:00:32 น. เชื่อมต่อ sshd[9499]: ยอมรับคีย์สาธารณะสำหรับ pi จาก *HIDDEN: พอร์ต IP สาธารณะที่บ้านของฉัน* 49180 ssh2: RSA *HIDDEN* 
14 ส.ค. 09:00:32 น. เชื่อมต่อ sshd[9499]: pam_unix(sshd:session): เซสชันเปิดสำหรับผู้ใช้ pi โดย (uid=0)
14 ส.ค. 09:00:32 น. เชื่อมต่อ systemd-logind[578]: เซสชันใหม่ 157 ของผู้ใช้ pi
14 ส.ค. 09:00:32 น. เชื่อมต่อ sshd[9499]: ลูกผู้ใช้อยู่ใน pid 9579
14 ส.ค. 09:00:32 น. เชื่อมต่อ sshd[9579]: ผูก [0.0.0.0]:443: ปฏิเสธการอนุญาต
14 ส.ค. 09:00:32 น. เชื่อมต่อ sshd[9579]: ข้อผิดพลาด: ผูก [::]:443: ปฏิเสธการอนุญาต
14 ส.ค. 09:00:32 น. เชื่อมต่อ sshd[9579]: ข้อผิดพลาด: channel_setup_fwd_listener_tcpip: ไม่สามารถฟังพอร์ต: 443
...

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

เพิ่งเจอ ที่นี่ อาจเป็นเพราะ 443 เป็นพอร์ตพิเศษ ตอนนี้ฉันไม่ต้องการใช้ผู้ใช้รูทเพื่อเปิดใช้งานการส่งต่อระยะไกลบน 443 ฉันได้ล็อคเซิร์ฟเวอร์ linode และไม่สามารถเข้าสู่ระบบในฐานะรูทได้ (และฉันไม่ต้องการอนุญาตการเข้าสู่ระบบรูท) ตามลิงค์ด้านบนครับ ใช้ได้ ตั้งค่าแคปบนเซิร์ฟเวอร์ linode แต่ฉันจะทำอย่างไรเนื่องจากคำสั่งเปิดช่องสัญญาณถูกเรียกใช้จากในเครื่องของฉัน ทางเลือกของฉันคืออะไร? ฉันรู้ว่าการใช้พอร์ตที่สูงกว่าบนเซิร์ฟเวอร์ linode อาจใช้งานได้ แต่ฉันไม่ต้องการทำเช่นนั้น ฉันต้องการให้เป็นพอร์ต 443 ดังนั้นฉันจึงไม่จำเป็นต้องจำพอร์ต

cn flag
คุณได้ลองใช้หมายเลขพอร์ตระดับต่ำอื่น ๆ เช่น 444?
Score:0
ธง cv

ปัญหาคือไม่มีสิ่งใดฟังอยู่บนพอร์ต 443 จำเป็นต้องมีกระบวนการฟังบนพอร์ต 443 เพื่อให้คุณทำการเชื่อมต่อกับพอร์ต 443 หากคุณดูที่ netstat คุณจะเห็นว่าขณะนี้คุณมีกระบวนการที่กำลังฟังอยู่บนพอร์ต 1194 ซึ่งเป็นสาเหตุที่การเชื่อมต่อกับพอร์ต 1194 สำเร็จ คุณต้องเปลี่ยนกระบวนการนั้นเพื่อฟังพอร์ต 443

tcp 0 0 0.0.0.0:1194 0.0.0.0:* ฟัง 7438/sshd: pi
cn flag
ฉันคิดว่าคุณเข้าใจผิดแล้วเพื่อน การส่งต่อพอร์ตระยะไกล ssh ควรจะเปิด 443 คุณเห็น 1194 เปิดเพราะการส่งต่อพอร์ตระยะไกลสำหรับ 1194 ใช้งานได้
Score:0
ธง cn

บนเซิร์ฟเวอร์ภายใน เริ่มต้นการส่งต่อพอร์ตระยะไกลจากพอร์ต 8080 แทน (พอร์ตที่ไม่มีสิทธิพิเศษ)

ssh -N -R 8080:192.168.1.122:443 [email protected]

บนเซิร์ฟเวอร์ linode ติดตั้งเครื่องมือที่เรียกว่า โซแคท และใช้คำสั่งด้านล่างเพื่อส่งต่อในเครื่องจาก 8080 เป็น 443 บนเซิร์ฟเวอร์ linode และใช้งานได้ทันที :)

sudo socat TCP-LISTEN:443,fork TCP:0.0.0.0:8080
cn flag
หากใช้งานได้ให้ยอมรับคำตอบของคุณเอง!

โพสต์คำตอบ

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