เสื้อคลุม CGI สำหรับ RFC2136 NSUPDATE
เข้ากันได้กับ AVM Fritz! Box, Ubiquiti Edgerouter และอีกมากมาย
ปุ่ม HMAC เพื่อส่งการอัปเดตไปยัง Nimeservers จะถูกเข้ารหัส
ชื่อสำคัญและข้อความรหัสผ่านเป็นชื่อผู้ใช้และรหัสผ่านสำหรับสคริปต์
จุดสิ้นสุดเริ่มต้น
ใช้โดย Avm Fritz! Box
| รับพารามิเตอร์ | คำอธิบาย | ตัวอย่าง |
|---|---|---|
| โหมด | ควบคุมหากที่อยู่ IP ควรเลือกจากพารามิเตอร์การสืบค้นหรือจากส่วนหัวคำขอ | all : ใช้พารามิเตอร์และการร้องขอ IP, request : ใช้ IP คำขอ, parameter : ใช้พารามิเตอร์การสืบค้น |
| ชื่อผู้ใช้ | ชื่อของคีย์ HMAC ที่ใช้โดย nsupdate | exampleddns = /var/www/dyndns-cgi/keys/hmac-exampleddns.enc |
| รหัสผ่าน | วลีรหัสผ่านที่ใช้ในการถอดรหัสคีย์ HMAC | |
| โดเมน | โดเมนที่จะอัปเดต | ddns.example.com |
| IP4 | ที่อยู่ IPv4 ที่จะใช้ | 127.0.0.1 |
| IP6 | ที่อยู่ IPv6 ที่จะใช้ | :: 1 |
| ip | ที่อยู่ IPv4 หรือ IPv6 ที่จะใช้พารามิเตอร์จะถูกละเว้นเมื่อกำหนด ip4 หรือ ip6 | 127.0.0.1 |
Dyndns เวอร์ชัน 1
จุดสิ้นสุดต้องใช้การรับรองความถูกต้องพื้นฐาน HTTP
| รับพารามิเตอร์ | คำอธิบาย | ตัวอย่าง |
|---|---|---|
| host_id | โดเมนที่จะอัปเดต | ddns.example.com |
| MYIP | ที่อยู่ IPv4 หรือ IPv6 ที่จะใช้ | 127.0.0.1 |
Dyndns เวอร์ชัน 2
ใช้โดย Ubiqiti Edgerouter
จุดสิ้นสุดต้องใช้การรับรองความถูกต้องพื้นฐาน HTTP
| รับพารามิเตอร์ | คำอธิบาย | ตัวอย่าง |
|---|---|---|
| ชื่อโฮสต์ | โดเมนที่จะอัปเดต | ddns.example.com |
| MYIP | ที่อยู่ IPv4 หรือ IPv6 ที่จะใช้ | 127.0.0.1 |
# original endpoint
curl " https://ns.example.com/cgi-bin/dyndns.cgi?username=exampleddns&password=eeh2phioyaa6ro1eiphuaRiuthee8EiJ&ip4=127.0.0.1&ip6=::1 " # dyndns1
# picked from ubiquiti edge router
curl -u exampleddns:eeh2phioyaa6ro1eiphuaRiuthee8EiJ " https://ns.example.com/nic/dyndns?action=edit&started=1&hostname=YES&host_id=ddns.example.com&myip=127.0.0.1 " # dyndns2
# picked from ubiquiti edge router
curl -u exampleddns:eeh2phioyaa6ro1eiphuaRiuthee8EiJ " https://ns.example.com/nic/update?system=dyndns&hostname=ddns.example.com&myip=127.0.0.1 " มีตัวอย่าง Ansible ใน Ansible- Example.yml เช่นกัน
apt install dnsutils nginx-full libnginx-mod-http-lua fcgiwrapวางไฟล์บนระบบ Debian/ Ubuntu ของคุณเช่นเดียวกับที่อยู่ใน SRC/ Folder
หากคุณเรียกใช้การกระจาย Linux อื่นคุณอาจต้องทำการเปลี่ยนแปลงบางอย่าง
การกำหนดค่าที่จำเป็นทั้งหมดสามารถพบได้ใน SRC/ETC/NGINX/DYNDNS_CGI.CONF
จะต้องรวมอยู่ในโฮสต์เสมือนจริงของ Nginx
ตัวอย่างการกำหนดค่าโฮสต์เสมือนสามารถพบได้ใน SRC/ETC/NGINX/SITES-enabled/Example.conf
สร้างรหัสผ่าน:
perry@localhost ~ $ pwgen 32 1
eeh2phioyaa6ro1eiphuaRiuthee8EiJสร้างคีย์ HMAC:
perry@localhost ~ $ dnssec-keygen -a HMAC-SHA512 -b 512 -n HOST exampleddns
Kexampleddns.+165+26667
perry@localhost ~ $ cat Kexampleddns.+165+26667.private
Private-key-format: v1.3
Algorithm: 165 (HMAC_SHA512)
Key: 0L0iTAPeXmyWbu0wJMsWw52GqVfeL22aZE2xmhlNcrXNdCgF3262ifx2yIuJs+T1H8CWdV+79HClWOzwvnn/LA==
Bits: AAA=
Created: 20210925150939
Publish: 20210925150939
Activate: 20210925150939เข้ารหัสคีย์ด้วยรหัสผ่าน:
root@localhost ~# echo -n "0L0iTAPeXmyWbu0wJMsWw52GqVfeL22aZE2xmhlNcrXNdCgF3262ifx2yIuJs+T1H8CWdV+79HClWOzwvnn/LA==" | openssl enc -aes-256-cbc -e -iter 1000 -a -salt > /var/www/dyndns-cgi/keys/hmac-exampleddns.enc
enter aes-256-cbc encryption password: eeh2phioyaa6ro1eiphuaRiuthee8EiJ
Verifying - enter aes-256-cbc encryption password: eeh2phioyaa6ro1eiphuaRiuthee8EiJเพิ่มคีย์ลงในชื่อ bind9 ของคุณ:
key exampleddns {
algorithm hmac-sha512;
secret "0L0iTAPeXmyWbu0wJMsWw52GqVfeL22aZE2xmhlNcrXNdCgF3262ifx2yIuJs+T1H8CWdV+79HClWOzwvnn/LA==";
};แน่นอนตอนนี้คุณต้อง เพิ่มนโยบายการอัปเดตไปยังโซน เช่นกัน