Score:0

ย้อนกลับพร็อกซีเพื่อนำผู้ใช้ต่าง ๆ ไปยังตำแหน่งที่สอดคล้องกัน

ธง gt
kyb

ฉันมีเซิร์ฟเวอร์ หนึ่งในหน้าที่ของมันคือ ซิงก์ซิง. แอพนี้ไม่มีการให้สิทธิ์ต่อผู้ใช้ เฉพาะผู้ดูแลระบบเท่านั้น ดังนั้นฉันจึงตัดสินใจเรียกใช้อินสแตนซ์ Syncthing ที่แตกต่างกันสำหรับผู้ใช้แต่ละคน

สำหรับขั้นตอนการอนุญาตฉันต้องการใช้ชื่อผู้ใช้และรหัสผ่านยูนิกซ์ (จาก /etc/passwd)

ฉันกำลังใช้ nginx เป็น reverse proxy และตัวยืนยันการอนุญาต คุณช่วยกรุณาตรวจสอบความคิดของฉันและช่วยฉันด้วยตัวอย่าง

รูปแบบบริการตัวอย่าง:

  • Syncthing user1 ฟัง 127.0.0.1:8384
  • Syncthing user2 ฟัง 127.0.0.1:8385
  • Syncthing user3 ฟัง 127.0.0.1:8386
  • Nginx (หรืออื่น ๆ ) รับฟังทุกอินเทอร์เฟซรวมถึง IPv6 บนพอร์ต HTTPS เริ่มต้น 0.0.0.0:433

ที่อยู่จะเป็น https://synxrage.local/syncthing. พอร์ตต้องไม่ปรากฏใน URL

ขึ้นอยู่กับพร็อกซีผู้ใช้ที่ได้รับอนุญาตซึ่งส่งตรงไปยังพอร์ตภายในที่แตกต่างกัน และผู้ใช้จะเห็นแผงการดูแลระบบของเขา

vidarlo avatar
ar flag
สิ่งนี้ตอบคำถามของคุณหรือไม่ [ฉันจะส่งต่อคำขอจากเว็บเซิร์ฟเวอร์ของฉันได้อย่างไร](https://serverfault.com/questions/1035016/how-can-i-forward-requests-from-my-web-server)
in flag
@vidarlo ไม่ได้จริงๆ ปัญหาที่เกิดขึ้นจริง (ใช้แบ็กเอนด์ที่แตกต่างกันสำหรับผู้ใช้ที่ผ่านการรับรองความถูกต้องที่แตกต่างกัน) ไม่ได้กล่าวถึงที่นั่น ฉันไม่รู้ว่าเป็นไปได้ไหม
in flag
[ตั๋วนี้](https://trac.nginx.org/nginx/ticket/439) แนะนำตัวแปร [`$remote_user`](http://nginx.org/en/docs/http/ngx_http_core_module.html#var_remote_user ). ควรใช้สิ่งนี้เพื่อกำหนดเซิร์ฟเวอร์ส่วนหลังที่จะใช้
kyb avatar
gt flag
kyb
ขอบคุณพวกคุณสำหรับความคิดเห็น
Score:1
ธง in

โอเค มันทำให้ฉันรำคาญ และมันก็ค่อนข้างง่ายโดยใช้ $remote_user ตัวแปร.

ในการเปิดใช้งาน PAM auth คุณต้องทำบางสิ่ง:

ติดตั้ง nginx-พิเศษ:

sudo apt -y ติดตั้ง nginx-extras

สร้าง /etc/pam.d/nginx และเพิ่มเนื้อหาต่อไปนี้:

การตรวจสอบสิทธิ์รวมถึงการตรวจสอบสิทธิ์ทั่วไป
บัญชีรวมบัญชีทั่วไป

อนุญาตให้ nginx อ่านไฟล์เงา:

sudo usermod -aG เงา www-data

คำแนะนำ พบที่นี่.

ตอนนี้คุณสามารถกำหนดค่า nginx

# กำหนดค่าหนึ่งอัปสตรีมต่อผู้ใช้
#ระบุชื่อผู้ใช้ที่เข้าสู่ระบบ

ผู้ใช้ต้นน้ำ {
    เซิร์ฟเวอร์ localhost:8384;
}

ผู้ใช้ต้นน้ำ {
    เซิร์ฟเวอร์ localhost:8385;
}

ผู้ใช้อัปสตรีม {
    เซิร์ฟเวอร์ localhost:8386;
}

# ตอนนี้กำหนดค่าพร็อกซีย้อนกลับจริง

เซิร์ฟเวอร์ {
    ฟัง 80 default_server;

    ที่ตั้ง / {
        # เพิ่มการตรวจสอบแพม
        auth_pam "การตรวจสอบ PAM";
        auth_pam_service_name "nginx";

        # กำหนดค่าพร็อกซีย้อนกลับเพื่อเชื่อมต่อกับแบ็กเอนด์ต่อผู้ใช้
        proxy_pass http://$remote_user;
    }
}
kyb avatar
gt flag
kyb
มีวิธีจัดการต้นน้ำแบบไดนามิกหรือไม่ ฉันหมายถึงการเพิ่มหรือลบผู้ใช้ขึ้นอยู่กับการเปลี่ยนแปลงรายชื่อผู้ใช้ในขณะรันไทม์ ฉันคิดว่าสำหรับคณิตศาสตร์ที่ใช้ UID: UID-1000+8384? โดยที่ UID คือ ID ผู้ใช้ Linux ผู้ใช้รายแรกมักจะมี id 1,000
kyb avatar
gt flag
kyb
ขอบคุณมาก!!

โพสต์คำตอบ

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