Score:0

ฉันจะสร้าง VPN kill switch สำหรับ PrivateInternetAccess และ Wireguard ใน ufw หรือ iptables ได้อย่างไร

ธง cn

ฉันกำลังใช้ การรวบรวมสคริปต์การเชื่อมต่อด้วยตนเอง จาก PrivateInternetAccess บนเซิร์ฟเวอร์ Ubuntu ที่ไม่มีส่วนหัวของฉัน ฉันเริ่มสคริปต์การตั้งค่าในหน่วยบริการและจำเป็นต้องตรวจสอบให้แน่ใจว่าฉันไม่ได้เข้าถึงสิ่งใดนอกเครือข่ายท้องถิ่นของฉัน เมื่อใดก็ตามที่ Wireguard ขัดข้อง

/etc/systemd/system/pia.service

[หน่วย]
คำอธิบาย=PrivateInternetAccess (Wireguard สวิตเซอร์แลนด์)
After=network-online.target

[บริการ]
ผู้ใช้ = อูบุนตู
Group=อูบุนตู
ExecStart=/usr/bin/sudo PIA_USER=REDACTED PIA_PASS=REDACTED PIA_DNS=true PIA_PF=true DISABLE_IPV6=yes VPN_PROTOCOL=wireguard PREFERRED_REGION=swiss ./run_setup.sh
WorkingDirectory=/home/ubuntu/src/manual-connections

[ติดตั้ง]
WantedBy=multi-user.target

บันทึก Journalctl:

PIA_USER=ปกปิด

ได้รับอินพุต PIA_PASS แล้ว

กำลังตรวจสอบข้อมูลรับรองการเข้าสู่ระบบ...ตกลง!

PIA_TOKEN=ปกปิด

โทเค็นนี้จะหมดอายุใน 24 ชั่วโมงในวันพุธที่ 24 พฤศจิกายน เวลา 12:23:26 น. 2021

PIA_PF=จริง

ตัวแปร DISABLE_IPV6=yes ไม่ได้ขึ้นต้นด้วย 'n' สำหรับ 'no'
ค่าเริ่มต้นเป็นใช่

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

IPv6 ถูกปิดใช้งาน คุณสามารถเปิดใช้งานอีกครั้งด้วย:
sysctl -w net.ipv6.conf.all.disable_ipv6=0
sysctl -w net.ipv6.conf.default.disable_ipv6=0

ไม่มีการประกาศ AUTOCONNECT

อินพุตภูมิภาคคือ: สวิส

รับรายชื่อเซิร์ฟเวอร์...ตกลง!

ภูมิภาคที่เลือกคือสวิตเซอร์แลนด์

สคริปต์พบเซิร์ฟเวอร์ที่ดีที่สุดจากภูมิภาคที่คุณเลือก
เมื่อเชื่อมต่อกับ IP (ไม่ว่าจะเป็นโปรโตคอลใด) โปรดตรวจสอบ
ใบรับรอง SSL/TLS มีชื่อโฮสต์เพื่อให้คุณ
แน่ใจว่าคุณกำลังเชื่อมต่อกับเซิร์ฟเวอร์ที่ปลอดภัยซึ่งตรวจสอบโดย
ผู้มีอำนาจ PIA โปรดดูรายการ IP ที่ดีที่สุดและการจับคู่ด้านล่าง
ชื่อโฮสต์สำหรับแต่ละโปรโตคอล:
บริการ Meta 212.102.37.176 - zurich402
WireGuard 212.102.37.187 - zurich402
OpenVPN TCP 212.102.37.187 - zurich402
OpenVPN UDP 212.102.37.187 - zurich402

ใช้โทเค็นที่มีอยู่ REDACTED

VPN_PROTOCOL=ไวร์การ์ด

PIA_DNS=จริง

รับรายชื่อเซิร์ฟเวอร์...ตกลง!

ใช้โทเค็นที่มีอยู่ REDACTED

สคริปต์ ./get_region.sh เริ่มต้นด้วย
VPN_PROTOCOL=wireguard ดังนั้น เราจะเชื่อมต่อกับ WireGuard โดยอัตโนมัติ
โดยเรียกใช้คำสั่งนี้:
$ PIA_TOKEN=ปกปิด \
WG_SERVER_IP=212.102.37.205 WG_HOSTNAME=zurich402 \
PIA_PF=true ./connect_to_wireguard_with_token.sh

กำลังพยายามเชื่อมต่อกับ PIA WireGuard API บน 212.102.37.205...

กำลังพยายามปิดการเชื่อมต่อ PIA WG ในกรณีที่มีอยู่...
wg-quick: `pia' ไม่ใช่อินเทอร์เฟซ WireGuard

กำลังพยายามตั้งค่า DNS เป็น 10.0.0.243 ในกรณีที่คุณไม่มี resolvconf
การดำเนินการนี้จะล้มเหลวและคุณจะไม่ได้รับ VPN หากคุณมีปัญหา
เริ่มสคริปต์นี้โดยไม่มี PIA_DNS

พยายามเขียน /etc/wireguard/pia.conf...ตกลง!

กำลังพยายามสร้างอินเตอร์เฟส wireguard...
[#] ลิงค์ ip เพิ่มตัวป้องกันประเภท pia
[#] wg setconf pia /dev/fd/63
[#] ที่อยู่ ip -4 เพิ่ม 10.28.251.36 dev pia
[#] ip link ตั้ง mtu 1420 up dev pia
[#] resolvconf -a tun.pia -m 0 -x
[#] wg set pia fwmark 51820
[#] เส้นทาง ip -4 เพิ่ม 0.0.0.0/0 dev ตาราง pia 51820
[#] กฎ ip -4 เพิ่มไม่ fwmark 51820 ตาราง 51820
[#] กฎ ip -4 เพิ่มตารางหลัก suppress_prefixlength 0
[#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
[#] iptables-restore -n

สร้างอินเทอร์เฟซ WireGuard แล้ว

ณ จุดนี้ อินเทอร์เน็ตควรทำงานผ่าน VPN

หากต้องการยกเลิกการเชื่อมต่อ VPN ให้เรียกใช้:

--> wg-quick down pia <--

สคริปต์นี้เริ่มต้นด้วย PIA_PF=true

เริ่มการส่งต่อพอร์ตใน 5...4...3...2...1...

ขั้นตอนการเริ่มต้นเพื่อเปิดใช้งานการส่งต่อพอร์ตโดยการรันคำสั่งต่อไปนี้:
$ PIA_TOKEN=ปกปิด \
  PF_GATEWAY=212.102.37.205 \
  PF_HOSTNAME=ซูริค402 \
  ./port_forwarding.sh

ได้ลายเซ็นใหม่...โอเค!

ลายเซ็นถูกปกปิด
ข้อมูลน้ำหนักบรรทุกถูกปกปิด

--> พอร์ตคือ 22419 และจะหมดอายุในวันที่ 2022-01-25T00:25:25.06880542Z <--

กำลังพยายามผูกพอร์ต ... ตกลง!
ส่งต่อพอร์ต 22419
รีเฟรชในวันอังคารที่ 23 พฤศจิกายน 12:23:43 UTC 2021
หมดอายุในวันอังคารที่ 25 มกราคม 00:25:25 UTC 2022

สคริปต์นี้จะต้องเปิดใช้งานเพื่อใช้การส่งต่อพอร์ต และจะรีเฟรชทุกๆ 15 นาที

ฉันต้องการชุดกฎ UFW สำหรับเกตเวย์ที่อธิบายไว้ในบันทึก (ในขณะที่ยังสามารถเข้าถึงเครื่องอื่นๆ ของฉันในเครือข่ายท้องถิ่นได้) ฉันไม่สามารถเข้าใจวิธีการ ฉันพบคำแนะนำบางอย่างที่ใช้กับ OpenVPN เท่านั้น ไม่ใช่กับ Wireguard รุ่นใหม่

ฮาร์ดแวร์: Raspberry Pi 3 Model B Plus Rev 1.3
ระบบปฏิบัติการ: Ubuntu 21.10 (GNU/Linux 5.13.0-1010-raspi aarch64)

แสดงลิงค์ ip

1: จริง: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    ลิงค์ / ย้อนกลับ 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel สถานะ UP โหมด DEFAULT กลุ่มเริ่มต้น qlen 1000
    ลิงค์/อีเธอร์ REDACTED brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST, MULTICAST> mtu 1500 qdisc noop state DOWN mode กลุ่มเริ่มต้น qlen 1000 เริ่มต้น
    ลิงค์/อีเธอร์ REDACTED brd ff:ff:ff:ff:ff:ff
4: pia: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN โหมด DEFAULT กลุ่มเริ่มต้น qlen 1000
    ลิงค์/ไม่มี

โพสต์คำตอบ

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