ນີ້ແມ່ນຄໍາສັ່ງ sslsplit ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍບ່ອນເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS online emulator
ໂຄງການ:
NAME
sslsplit -- ການສະກັດ SSL/TLS ໂປ່ງໃສ ແລະສາມາດຂະຫຍາຍໄດ້
ສະຫຼຸບສັງລວມ
sslsplit [-kCKOPZdDgGsrReumjplLSFi] -c ຊັ້ນ proxy specs [ ... ]
sslsplit [-kCKOPZdDgGsrReumjplLSFi] -c ຊັ້ນ -t dir proxy specs [ ... ]
sslsplit [-OPZdDgGsrReumjplLSFi] -t dir proxy specs [ ... ]
sslsplit -E
sslsplit -V
sslsplit -h
ລາຍລະອຽດ
SSLsplit ເປັນເຄື່ອງມືສໍາລັບການໂຈມຕີໂດຍຜູ້ຊາຍໃນກາງຕໍ່ກັບເຄືອຂ່າຍເຂົ້າລະຫັດ SSL / TLS
ການເຊື່ອມຕໍ່. ການເຊື່ອມຕໍ່ຖືກຂັດຂວາງຢ່າງໂປ່ງໃສຜ່ານທີ່ຢູ່ເຄືອຂ່າຍ
ເຄື່ອງຈັກການແປພາສາແລະໂອນໄປຫາ SSLsplit. SSLsplit ຢຸດ SSL/TLS ແລະລິເລີ່ມ
ການເຊື່ອມຕໍ່ SSL/TLS ໃໝ່ກັບທີ່ຢູ່ປາຍທາງເດີມ, ໃນຂະນະທີ່ບັນທຶກຂໍ້ມູນທັງໝົດ
ສົ່ງຕໍ່. SSLsplit ມີຈຸດປະສົງເພື່ອເປັນປະໂຫຍດສໍາລັບເຄືອຂ່າຍ forensics ແລະ penetration
ການທົດສອບ.
SSLsplit ສະຫນັບສະຫນູນ TCP ທໍາມະດາ, SSL ທໍາມະດາ, HTTP ແລະ HTTPS ເຊື່ອມຕໍ່ທັງສອງ IPv4 ແລະ
IPv6. ສໍາລັບການເຊື່ອມຕໍ່ SSL ແລະ HTTPS, SSLsplit ສ້າງ ແລະເຊັນຊື່ X509v3
ໃບຢັ້ງຢືນໃນການບິນ, ອີງໃສ່ໃບຢັ້ງຢືນຂອງເຄື່ອງແມ່ຂ່າຍຕົ້ນສະບັບຫົວຂໍ້ DN ແລະ
ສ່ວນຂະຫຍາຍ subjectAltName. SSLsplit ສະຫນັບສະຫນູນຢ່າງເຕັມສ່ວນ Server Name Indication (SNI) ແລະແມ່ນ
ສາມາດເຮັດວຽກກັບກະແຈ RSA, DSA ແລະ ECDSA ແລະ DHE ແລະ ECDHE cipher suites. ຂຶ້ນກັບ
ເວີຊັນຂອງ OpenSSL, SSLsplit ຮອງຮັບ SSL 3.0, TLS 1.0, TLS 1.1 ແລະ TLS 1.2, ແລະ
ທາງເລືອກ SSL 2.0 ເຊັ່ນກັນ. SSLsplit ຍັງສາມາດໃຊ້ໃບຢັ້ງຢືນທີ່ມີຢູ່ແລ້ວເຊິ່ງ
ກະແຈສ່ວນຕົວສາມາດໃຊ້ໄດ້, ແທນທີ່ຈະສ້າງລະຫັດປອມ. SSLsplit ຮອງຮັບ NULL-
ນຳໜ້າໃບຮັບຮອງ CN ແລະສາມາດປະຕິເສດຄຳຮ້ອງຂໍ OCSP ໃນຮູບແບບທົ່ວໄປ. ສໍາລັບ HTTP ແລະ HTTPS
ການເຊື່ອມຕໍ່, SSLsplit ເອົາສ່ວນຫົວຄໍາຕອບສໍາລັບ HPKP ເພື່ອປ້ອງກັນລະຫັດສາທາລະນະ
pinning, ສໍາລັບ HSTS ເພື່ອໃຫ້ຜູ້ໃຊ້ຍອມຮັບໃບຢັ້ງຢືນທີ່ບໍ່ຫນ້າເຊື່ອຖື, ແລະທາງເລືອກອື່ນ
ໂປຣໂຕຄໍເພື່ອປ້ອງກັນການປ່ຽນໄປໃຊ້ QUIC/SPDY.
SSLsplit ສະຫນັບສະຫນູນເຄື່ອງຈັກ NAT ຈໍານວນຫນຶ່ງ, ການສົ່ງຕໍ່ແບບຄົງທີ່ແລະການຄົ້ນຫາ SNI DNS ໄປຫາ
ກໍານົດປາຍທາງຕົ້ນສະບັບຂອງການເຊື່ອມຕໍ່ທີ່ປ່ຽນເສັ້ນທາງ (ເບິ່ງ NAT ENGINES ແລະ PROXY
SPECIFICATIONS ຂ້າງລຸ່ມນີ້).
ເພື່ອປະຕິບັດການໂຈມຕີຕົວຈິງ, ທ່ານຍັງຈໍາເປັນຕ້ອງໄດ້ປ່ຽນເສັ້ນທາງການຈະລາຈອນໄປຫາລະບົບ
ການເຮັດວຽກ sslsplit. ທາງເລືອກຂອງທ່ານລວມມີການແລ່ນ sslsplit ໃນ router ທີ່ຖືກຕ້ອງ, ARP
spoofing, ND spoofing, DNS poisoning, deploying a rogue access point (ເຊັ່ນ: ໃຊ້ hostap
ໂໝດ), ການຟື້ນຟູທາງກາຍະພາບ, ການຕັ້ງຄ່າ VLAN ທີ່ເປັນອັນຕະລາຍ ຫຼືການສີດເສັ້ນທາງ, / etc / hosts
ການດັດແກ້ແລະອື່ນໆ. SSLsplit ບໍ່ໄດ້ປະຕິບັດການປ່ຽນເສັ້ນທາງການຈະລາຈອນຕົວຈິງ.
OPTIONS
-c pemfile
ໃຊ້ໃບຢັ້ງຢືນ CA ຈາກ pemfile ເພື່ອເຊັນໃບຮັບຮອງທີ່ຖືກປອມແປງໃນເວລາບິນ. ຖ້າ pemfile
ຍັງມີລະຫັດສ່ວນຕົວ CA ທີ່ກົງກັນ, ມັນຍັງຖືກໂຫລດ, ຖ້າບໍ່ດັ່ງນັ້ນມັນຈະຕ້ອງເປັນ
ສະຫນອງໃຫ້ກັບ -kທີ່ຢູ່ ຖ້າຫາກວ່າ pemfile ຍັງມີຕົວກໍານົດການກຸ່ມ Diffie-Hellman, ພວກມັນ
ຍັງມີການໂຫຼດ, ຖ້າບໍ່ດັ່ງນັ້ນເຂົາເຈົ້າສາມາດໄດ້ຮັບການສະຫນອງໃຫ້ -gທີ່ຢູ່ ຖ້າຫາກວ່າ -t ຍັງໄດ້ມອບໃຫ້,
SSLsplit ຈະປອມໃບຮັບຮອງພຽງແຕ່ຖ້າບໍ່ມີໃບຢັ້ງຢືນທີ່ກົງກັນຢູ່ໃນ
ສະໜອງບັນຊີໃບຢັ້ງຢືນ.
-C pemfile
ໃຊ້ໃບຢັ້ງຢືນ CA ຈາກ pemfile ເປັນໃບຢັ້ງຢືນພິເສດໃນລະບົບຕ່ອງໂສ້ໃບຢັ້ງຢືນ.
ນີ້ແມ່ນຈໍາເປັນຖ້າຫາກວ່າ CA ມອບໃຫ້ -k ແລະ -c ແມ່ນ sub-CA, ໃນກໍລະນີໃດກໍ່ຕາມ
ໃບຮັບຮອງ CA ລະດັບປານກາງ ແລະໃບຢັ້ງຢືນ CA ຮາກຈະຕ້ອງຖືກລວມຢູ່ໃນ
ຕ່ອງໂສ້ໃບຢັ້ງຢືນ.
-d ແຍກອອກຈາກ TTY ແລະດໍາເນີນການເປັນ daemon, ບັນທຶກຂໍ້ຄວາມຂໍ້ຜິດພາດໄປຫາ syslog ແທນ
ຄວາມຜິດພາດມາດຕະຖານ.
-D ດໍາເນີນການໃນໂຫມດດີບັກ, ບັນທຶກຂໍ້ມູນການດີບັ໊ກຈໍານວນຫລາຍໃຫ້ກັບຄວາມຜິດພາດມາດຕະຖານ. ອັນນີ້
ບັງຄັບໃຫ້ໂຫມດທາງຫນ້າແລະບໍ່ສາມາດໃຊ້ໄດ້ກັບ -d.
-e ເຄື່ອງຈັກ
ການນໍາໃຊ້ ເຄື່ອງຈັກ ເປັນເຄື່ອງຈັກ NAT ເລີ່ມຕົ້ນສໍາລັບ proxy specs ໂດຍບໍ່ມີເຄື່ອງຈັກ NAT ຢ່າງຊັດເຈນ,
ທີ່ຢູ່ປາຍທາງແບບຄົງທີ່ ຫຼືຮູບແບບ SNI. ເຄື່ອງຈັກ ສາມາດເປັນເຄື່ອງຈັກ NAT ໃດ
ສະຫນັບສະຫນູນໂດຍລະບົບ, ເປັນກັບຄືນມາໂດຍ -E.
-E ບອກເຄື່ອງຈັກ NAT ທີ່ຮອງຮັບທັງໝົດທີ່ມີຢູ່ໃນລະບົບ ແລະອອກ. ເບິ່ງເຄື່ອງຈັກ NAT
ສໍາລັບບັນຊີລາຍຊື່ຂອງເຄື່ອງຈັກ NAT ປະຈຸບັນສະຫນັບສະຫນູນໂດຍ SSLsplit.
-F logspec
ບັນທຶກເນື້ອໃນການເຊື່ອມຕໍ່ເພື່ອແຍກໄຟລ໌ບັນທຶກທີ່ມີຂໍ້ກໍາຫນົດເສັ້ນທາງທີ່ກໍານົດ (ເບິ່ງ
ຂໍ້ມູນຈໍາເພາະຂອງບັນທຶກຂ້າງລຸ່ມນີ້). ສໍາລັບການເຊື່ອມຕໍ່ແຕ່ລະຄົນ, ໄຟລ໌ບັນທຶກຈະຖືກຂຽນ, ເຊິ່ງ
ຈະມີທັງສອງທິດທາງຂອງຂໍ້ມູນທີ່ຖືກສົ່ງ. ຂໍ້ມູນກ່ຽວກັບ
ການເຊື່ອມຕໍ່ຈະຖືກບັນຈຸຢູ່ໃນຊື່ໄຟລ໌ເທົ່ານັ້ນ. ຖ້າ -F ຖືກນໍາໃຊ້ກັບ -j, logspec
ແມ່ນພີ່ນ້ອງກັບ ຄຸກທີ່ຢູ່ ຖ້າຫາກວ່າ -F ຖືກນໍາໃຊ້ກັບ -u, logspec ຕ້ອງໄດ້ຮັບການຂຽນໂດຍ ຜູ້ໃຊ້.
-g pemfile
ໃຊ້ຕົວກໍານົດການກຸ່ມ Diffie-Hellman ຈາກ pemfile ສໍາລັບ Ephemereal Diffie-Hellman
ຊຸດລະຫັດລັບ (EDH/DHE). ຖ້າ -g ບໍ່ໄດ້ໃຫ້, SSLsplit ທໍາອິດພະຍາຍາມໂຫລດ DH
ພາລາມິເຕີຈາກໄຟລ໌ PEM ທີ່ມອບໃຫ້ໂດຍ -K, -k or -c. ຖ້າບໍ່ພົບພາລາມິເຕີ DH
ໃນໄຟລ໌ທີ່ສໍາຄັນ, ຕົວກໍານົດການກຸ່ມ 512 ຫຼື 1024 ບິດແມ່ນໃຊ້ໂດຍອັດຕະໂນມັດ
iff ລະຫັດສ່ວນຕົວທີ່ບໍ່ແມ່ນ RSA ແມ່ນໃຫ້ກັບ -K. ນີ້ແມ່ນຍ້ອນວ່າ DSA/DSS ລະຫັດສ່ວນຕົວ
ສາມາດດ້ວຍຕົນເອງພຽງແຕ່ຖືກນໍາໃຊ້ສໍາລັບການລົງນາມແລະດັ່ງນັ້ນຈຶ່ງຮຽກຮ້ອງໃຫ້ມີ DH ເພື່ອແລກປ່ຽນ
ລະຫັດເຊດຊັນ SSL/TLS. ຖ້າ -g ແມ່ນໃຫ້, ຕົວກໍານົດການຈາກໃຫ້ pemfile ຈະ
ຖືກນໍາໃຊ້ຕະຫຼອດເວລາ, ເຖິງແມ່ນວ່າມີກະແຈສ່ວນຕົວ RSA (ພາຍໃນຊຸດລະຫັດລັບທີ່ມີຢູ່ໃນ
OpenSSL). ໄດ້ -g ທາງເລືອກສາມາດໃຊ້ໄດ້ພຽງແຕ່ຖ້າ SSLsplit ຖືກສ້າງຂຶ້ນທຽບກັບສະບັບ
ຂອງ OpenSSL ທີ່ຮອງຮັບ Diffie-Hellman cipher suites.
-G ເສັ້ນໂຄ້ງ
ໃຊ້ຊື່ ເສັ້ນໂຄ້ງ ສໍາລັບລະຫັດລັບ Ephemereal Elliptic Curve Diffie-Hellman (EECDH).
ຊຸດ. ຖ້າ -G ບໍ່ໄດ້ໃຫ້, ເປັນເສັ້ນໂຄ້ງເລີ່ມຕົ້ນ (secp160r2) ຖືກນໍາໃຊ້ໂດຍອັດຕະໂນມັດ iff
ລະຫັດສ່ວນຕົວທີ່ບໍ່ແມ່ນ RSA ແມ່ນໃຫ້ກັບ -K. ນີ້ແມ່ນຍ້ອນວ່າກະແຈສ່ວນຕົວ ECDSA/ECDSS
ດ້ວຍຕົນເອງສາມາດຖືກນໍາໃຊ້ພຽງແຕ່ສໍາລັບການລົງນາມແລະດັ່ງນັ້ນຈຶ່ງຮຽກຮ້ອງໃຫ້ ECDH ແລກປ່ຽນ
ລະຫັດເຊດຊັນ SSL/TLS. ຖ້າ -G ໄດ້ຖືກມອບໃຫ້, ຊື່ ເສັ້ນໂຄ້ງ ສະເຫມີຈະຖືກນໍາໃຊ້, ເຖິງແມ່ນວ່າ
ດ້ວຍກະແຈສ່ວນຕົວ RSA (ພາຍໃນຊຸດລະຫັດລັບທີ່ມີຢູ່ໃນ OpenSSL). ໄດ້ -G
ທາງເລືອກສາມາດໃຊ້ໄດ້ພຽງແຕ່ຖ້າ SSLsplit ຖືກສ້າງຂຶ້ນທຽບກັບ OpenSSL ຮຸ່ນທີ່
ຮອງຮັບຊຸດລະຫັດລັບ Elliptic Curve Diffie-Hellman.
-h ສະແດງການຊ່ວຍເຫຼືອໃນການນໍາໃຊ້ແລະການອອກ.
-i ສໍາລັບການເຊື່ອມຕໍ່ແຕ່ລະຄົນ, ຊອກຫາຂະບວນການທ້ອງຖິ່ນເປັນເຈົ້າຂອງການເຊື່ອມຕໍ່. ນີ້ເຮັດໃຫ້
ຂໍ້ມູນຂະບວນການເຊັ່ນ: pid, ເຈົ້າຂອງ: ກຸ່ມແລະເສັ້ນທາງທີ່ສາມາດປະຕິບັດໄດ້ສໍາລັບການເຊື່ອມຕໍ່
ມີຕົ້ນກໍາເນີດຢູ່ໃນລະບົບດຽວກັນກັບ SSLsplit ທີ່ມີຢູ່ໃນບັນທຶກການເຊື່ອມຕໍ່ແລະເປີດໃຊ້
ທີ່ກ່ຽວຂ້ອງ -F ທິດທາງສະເພາະເສັ້ນທາງ. -i ມີຢູ່ໃນ Mac OS X ແລະ
FreeBSD; ການສະຫນັບສະຫນູນສໍາລັບເວທີອື່ນໆຍັງບໍ່ທັນໄດ້ປະຕິບັດເທື່ອ.
-j ຄຸກ
ປ່ຽນໄດເລກະທໍລີຮາກເປັນ ຄຸກ ການນໍາໃຊ້ roາກເຜັດ(2) ຫຼັງຈາກເປີດໄຟລ໌. ຫມາຍເຫດ
ວ່ານີ້ມີຜົນກະທົບສໍາລັບການ -F, -S, ແລະສໍາລັບ sni proxy specs. ເສັ້ນທາງທີ່ໃຫ້ກັບ
-S or -F ຈະເປັນພີ່ນ້ອງກັບ ຄຸກ ເນື່ອງຈາກໄຟລ໌ບັນທຶກບໍ່ສາມາດເປີດໄດ້ກ່ອນ
ໂທຫາ roາກເຜັດ(2). ອີງຕາມລະບົບປະຕິບັດການຂອງທ່ານ, ທ່ານຈະຕ້ອງຄັດລອກໄຟລ໌
ເຊັ່ນວ່າ /etc/resolvconf to ຄຸກ ເພື່ອໃຫ້ການແກ້ໄຂຊື່ເຮັດວຽກ. ການນໍາໃຊ້
sni proxyspec ຂຶ້ນກັບຄວາມລະອຽດຂອງຊື່. ບາງລະບົບປະຕິບັດການຕ້ອງການພິເສດ
nodes ອຸປະກອນເຊັ່ນ / dev / null ທີ່ຈະຢູ່ໃນຄຸກ. ກວດສອບລະບົບຂອງທ່ານ
ເອກະສານສໍາລັບລາຍລະອຽດ.
-k pemfile
ໃຊ້ກະແຈສ່ວນຕົວ CA ຈາກ pemfile ເພື່ອເຊັນໃບຮັບຮອງທີ່ຖືກປອມແປງໃນເວລາບິນ. ຖ້າ pemfile
ຍັງປະກອບດ້ວຍໃບຢັ້ງຢືນ CA ທີ່ກົງກັນ, ມັນຍັງຖືກໂຫລດ, ຖ້າບໍ່ດັ່ງນັ້ນມັນຈະຕ້ອງເປັນ
ສະຫນອງໃຫ້ກັບ -cທີ່ຢູ່ ຖ້າຫາກວ່າ pemfile ຍັງມີຕົວກໍານົດການກຸ່ມ Diffie-Hellman, ພວກມັນ
ຍັງມີການໂຫຼດ, ຖ້າບໍ່ດັ່ງນັ້ນເຂົາເຈົ້າສາມາດໄດ້ຮັບການສະຫນອງໃຫ້ -gທີ່ຢູ່ ຖ້າຫາກວ່າ -t ຍັງໄດ້ມອບໃຫ້,
SSLsplit ຈະປອມໃບຮັບຮອງພຽງແຕ່ຖ້າບໍ່ມີໃບຢັ້ງຢືນທີ່ກົງກັນຢູ່ໃນ
ສະໜອງບັນຊີໃບຢັ້ງຢືນ.
-K pemfile
ໃຊ້ກະແຈສ່ວນຕົວຈາກ pemfile ສໍາລັບໃບຢັ້ງຢືນການ forged ໃນທັນທີ. ຖ້າ -K ບໍ່ແມ່ນ
ໃຫ້, SSLsplit ຈະສ້າງລະຫັດ RSA ແບບສຸ່ມ 1024-bit.
-l logfile
ບັນທຶກການເຊື່ອມຕໍ່ຫາ logfile ຢູ່ໃນເສັ້ນດຽວຕໍ່ຮູບແບບການເຊື່ອມຕໍ່, ລວມທັງ
ທີ່ຢູ່ ແລະພອດ ແລະບາງຂໍ້ມູນ HTTP ແລະ SSL, ຖ້າມີ.
-L logfile
ບັນທຶກເນື້ອຫາການເຊື່ອມຕໍ່ຫາ logfile. ບັນທຶກເນື້ອຫາຈະມີບັນທຶກທີ່ສາມາດວິເຄາະໄດ້
ຮູບແບບທີ່ມີຂໍ້ມູນການຖ່າຍໂອນ, prepended ກັບ headers ການລະບຸການເຊື່ອມຕໍ່ແລະ
ຄວາມຍາວຂໍ້ມູນຂອງແຕ່ລະພາກສ່ວນທີ່ບັນທຶກໄວ້.
-m ໃນເວລາທີ່ການຫຼຸດລົງສິດທິໃນການນໍາໃຊ້ -u, override ກຸ່ມຕົ້ນຕໍເປົ້າຫມາຍທີ່ຈະຕັ້ງເປັນ
ກຸ່ມ.
-O ປະຕິເສດທຸກຄຳຮ້ອງຂໍສະຖານະໃບຮັບຮອງອອນລາຍ (OCSP) ທັງໝົດ proxy specs ແລະ
ສໍາລັບເຄື່ອງແມ່ຂ່າຍ OCSP ທັງຫມົດທີ່ມີການຕອບສະຫນອງ OCSP ຂອງ ພະຍາຍາມຕໍ່ມາ, ເຊິ່ງກໍ່ໃຫ້ເກີດລູກຄ້າ OCSP
ຍອມຮັບເອົາໃບຢັ້ງຢືນທີ່ຖືກຖອດຖອນເປັນການຊົ່ວຄາວ. ການຮ້ອງຂໍ HTTP ຖືກປະຕິບັດເປັນ
OCSP ຮ້ອງຂໍຖ້າຫາກວ່າວິທີການແມ່ນ GET ແລະ URI ມີ syntactically ຖືກຕ້ອງ
ໂຄງສ້າງ OSPRequest ASN.1 parsable ໂດຍ OpenSSL, ຫຼືຖ້າຫາກວ່າວິທີການແມ່ນ POST ແລະ
ເນື້ອຫາ - ປະເພດ is application/ocsp-request. ເພື່ອໃຫ້ມີປະສິດທິພາບ, SSLsplit ຕ້ອງ
ຈັດການການຈະລາຈອນທີ່ກໍານົດໄປຫາພອດທີ່ໃຊ້ໂດຍເຄື່ອງແມ່ຂ່າຍ OCSP. ໂດຍສະເພາະ,
SSLsplit ຕ້ອງໄດ້ຮັບການ configured ເພື່ອຮັບການຈະລາຈອນໄປຫາພອດທັງຫມົດທີ່ໃຊ້ໂດຍເຄື່ອງແມ່ຂ່າຍ OCSP ຂອງ
ໃບຢັ້ງຢືນເປົ້າຫມາຍພາຍໃນ ໃບຢັ້ງຢືນ ລະບຸໂດຍ -t.
-p pidfile
ຂຽນ ID ຂະບວນການໃສ່ pidfile ແລະປະຕິເສດທີ່ຈະດໍາເນີນການຖ້າຫາກວ່າ pidfile ຖືກໃຊ້ແລ້ວ
ໂດຍຂະບວນການອື່ນ.
-P Passthrough SSL/TLS ການເຊື່ອມຕໍ່ທີ່ບໍ່ສາມາດແຍກໄດ້ແທນທີ່ຈະຫຼຸດລົງໃຫ້ເຂົາເຈົ້າ.
ການເຊື່ອມຕໍ່ບໍ່ສາມາດແຍກອອກໄດ້ຖ້າ -c ແລະ -k ບໍ່ໄດ້ຖືກມອບໃຫ້ແລະເວັບໄຊທ໌ບໍ່ກົງກັນ
ໃບຮັບຮອງໃດໆທີ່ໂຫລດໂດຍໃຊ້ -t, ຫຼືຖ້າການເຊື່ອມຕໍ່ກັບເຄື່ອງແມ່ຂ່າຍຕົ້ນສະບັບໃຫ້
SSL/TLS ຜິດພາດ. ໂດຍສະເພາະ, ນີ້ເກີດຂື້ນຖ້າເວັບໄຊທ໌ຮ້ອງຂໍໃຫ້ລູກຄ້າ
ໃບຮັບຮອງ. ຜ່ານກັບ -P ສົ່ງຜົນໃຫ້ການບໍລິການທີ່ບໍ່ຕິດຂັດສໍາລັບລູກຄ້າ,
ໃນຂະນະທີ່ການລຸດລົງແມ່ນທາງເລືອກທີ່ປອດໄພກວ່າຖ້າການເຊື່ອມຕໍ່ທີ່ບໍ່ມີການຕິດຕາມຕ້ອງເປັນ
ປ້ອງກັນ.
-r ໂປໂຕຄອນ
ບັງຄັບໃຫ້ SSL/TLS ສະບັບ protocol ທັງສອງຝ່າຍລູກຄ້າ ແລະເຊີບເວີ ໂປໂຕຄອນ ໂດຍການເລືອກ
ຕົວສ້າງວິທີການ OpenSSL ທີ່ກ່ຽວຂ້ອງແທນທີ່ຈະເປັນ SSLv23_method() ເລີ່ມຕົ້ນ.
ເຊິ່ງຮອງຮັບທຸກລຸ້ນໂປຣໂຕຄໍ. ນີ້ແມ່ນເປັນປະໂຫຍດໃນເວລາທີ່ການວິເຄາະການຈະລາຈອນໄປຫາ a
ເຊີບເວີທີ່ຮອງຮັບສະເພາະລຸ້ນ SSL/TLS ເທົ່ານັ້ນ ແລະບໍ່ໄດ້ປະຕິບັດ
ການເຈລະຈາອະນຸສັນຍາທີ່ເໝາະສົມ. ຂຶ້ນກັບຕົວເລືອກການກໍ່ສ້າງ ແລະເວີຊັນຂອງ OpenSSL
ທີ່ຖືກນໍາໃຊ້, ຄ່າຕໍ່ໄປນີ້ສໍາລັບ ໂປໂຕຄອນ ໄດ້ຮັບການຍອມຮັບ: ssl2, ssl3, tls10, tls11
ແລະ tls12. ໃຫ້ສັງເກດວ່າການສະຫນັບສະຫນູນ SSL 2.0 ບໍ່ໄດ້ສ້າງຂຶ້ນໂດຍຄ່າເລີ່ມຕົ້ນເພາະວ່າບາງອັນ
ເຊີບເວີບໍ່ໄດ້ຈັດການຂໍ້ຄວາມສະບາຍດີລູກຄ້າ SSL 2.0 ຢ່າງສະຫງ່າງາມ.
-R ໂປໂຕຄອນ
ປິດໃຊ້ງານເວີຊັ່ນ SSL/TLS protocol ໂປໂຕຄອນ ທັງລູກຄ້າແລະເຊີບເວີຂ້າງຄຽງ
ການປິດການໃຊ້ງານໂປຣໂຕຄອນທີ່ກ່ຽວຂ້ອງໃນ OpenSSL. ເພື່ອປິດການໃຊ້ງານຫຼາຍໂປຣໂຕຄໍ
ສະບັບ, -R ສາມາດໃຫ້ຫຼາຍຄັ້ງ. ຖ້າ -r ຍັງໄດ້ຮັບ, ຈະບໍ່ມີ
ຜົນກະທົບໃນການປິດການໃຊ້ງານສະບັບໂປຣໂຕຄໍອື່ນໆ. ການປິດການນຳໃຊ້ເວີຊັນໂປຣໂຕຄໍແມ່ນເປັນປະໂຫຍດ
ໃນເວລາທີ່ການວິເຄາະການຈະລາຈອນກັບເຄື່ອງແມ່ຂ່າຍທີ່ບໍ່ໄດ້ຈັດການກັບບາງສະບັບຂອງໂປໂຕຄອນ
ດີ, ຫຼືເພື່ອທົດສອບພຶດຕິກໍາທີ່ມີສະບັບໂປໂຕຄອນທີ່ແຕກຕ່າງກັນ. ຂຶ້ນກັບການກໍ່ສ້າງ
ທາງເລືອກແລະສະບັບຂອງ OpenSSL ທີ່ຖືກນໍາໃຊ້, ຄ່າດັ່ງຕໍ່ໄປນີ້ສໍາລັບການ ໂປໂຕຄອນ ມີ
ຍອມຮັບ: ssl2, ssl3, tls10, tls11 ແລະ tls12. ໃຫ້ສັງເກດວ່າການສະຫນັບສະຫນູນ SSL 2.0 ບໍ່ແມ່ນ
ສ້າງຂຶ້ນໂດຍຄ່າເລີ່ມຕົ້ນເພາະວ່າບາງເຊີບເວີບໍ່ຈັດການກັບຂໍ້ຄວາມສະບາຍດີລູກຄ້າ SSL 2.0
ພຣະຄຸນ.
-s ຊີກາບ
ໃຊ້ OpenSSL ຊີກາບ ສະເພາະສໍາລັບການເຊື່ອມຕໍ່ທັງສອງເຊີບເວີ ແລະລູກຄ້າ SSL/TLS.
If -s ບໍ່ໄດ້ໃຫ້, ບັນຊີລາຍຊື່ລະຫັດຂອງ ທັງໝົດ:-aNULL ຖືກນໍາໃຊ້. ໂດຍປົກກະຕິ, SSL/TLS
ການປະຕິບັດເລືອກຊຸດລະຫັດລັບທີ່ປອດໄພທີ່ສຸດ, ບໍ່ແມ່ນຊຸດທີ່ໄວທີ່ສຸດ. ໂດຍ
ການລະບຸບັນຊີລາຍຊື່ລະຫັດ OpenSSL ທີ່ເຫມາະສົມ, ຊຸດລະຫັດລັບສາມາດເປັນ
ຈໍາກັດກັບ algorithms ໄວ, ຫຼື eNULL ສາມາດເພີ່ມຊຸດລະຫັດລັບໄດ້. ໃຫ້ສັງເກດວ່າສໍາລັບ
ການເຊື່ອມຕໍ່ເພື່ອໃຫ້ປະສົບຜົນສໍາເລັດ, ຊຸດລະຫັດລັບ SSLsplit ຈະຕ້ອງປະກອບມີຢ່າງຫນ້ອຍຫນຶ່ງອັນ
cipher suite ສະຫນັບສະຫນູນໂດຍທັງລູກຄ້າແລະເຄື່ອງແມ່ຂ່າຍຂອງແຕ່ລະການເຊື່ອມຕໍ່. ເບິ່ງ
ຊີກາບ(1) ສໍາລັບລາຍລະອຽດກ່ຽວກັບວິທີການສ້າງລາຍການລະຫັດລັບ OpenSSL.
-S logdir
ບັນທຶກການເຊື່ອມຕໍ່ເນື້ອໃນເພື່ອແຍກໄຟລ໌ບັນທຶກພາຍໃຕ້ logdir. ສໍາລັບການເຊື່ອມຕໍ່ແຕ່ລະຄົນ, ກ
ໄຟລ໌ບັນທຶກຈະຖືກຂຽນ, ເຊິ່ງຈະປະກອບດ້ວຍທັງສອງທິດທາງຂອງຂໍ້ມູນເປັນ
ສົ່ງຕໍ່. ຂໍ້ມູນກ່ຽວກັບການເຊື່ອມຕໍ່ຈະຖືກບັນຈຸຢູ່ໃນຊື່ໄຟລ໌
ເທົ່ານັ້ນ. ຖ້າ -S ຖືກນໍາໃຊ້ກັບ -j, logdir ແມ່ນພີ່ນ້ອງກັບ ຄຸກທີ່ຢູ່ ຖ້າຫາກວ່າ -S ຖືກນໍາໃຊ້ກັບ
-u, logdir ຕ້ອງໄດ້ຮັບການຂຽນໂດຍ ຜູ້ໃຊ້.
-t ໃບຢັ້ງຢືນ
ໃຊ້ລະຫັດສ່ວນຕົວ, ໃບຢັ້ງຢືນແລະລະບົບຕ່ອງໂສ້ໃບຢັ້ງຢືນຈາກໄຟລ໌ PEM ໃນ ໃບຢັ້ງຢືນ ສໍາລັບການ
ສະຖານທີ່ທີ່ກົງກັບຊື່ທົ່ວໄປທີ່ກ່ຽວຂ້ອງ, ແທນທີ່ຈະໃຊ້ໃບຢັ້ງຢືນທີ່ຖືກປອມ
ສຸດບິນ. ໄຟລ໌ PEM ດຽວຕ້ອງມີກະແຈສ່ວນຕົວອັນດຽວ, ອັນດຽວ
ໃບຢັ້ງຢືນແລະທາງເລືອກໃນຂັ້ນກາງແລະຮາກໃບຢັ້ງຢືນ CA ການນໍາໃຊ້ເປັນ
ຕ່ອງໂສ້ໃບຢັ້ງຢືນ. ຖ້າ -c ແລະ -k ຍັງໄດ້ຮັບການມອບໃຫ້, ໃບຢັ້ງຢືນຈະໄດ້ຮັບການປອມແປງ.
the-fly ສໍາລັບເວັບໄຊທ໌ທີ່ກົງກັບບໍ່ມີໃບຢັ້ງຢືນທີ່ໂຫລດມາຈາກ ໃບຢັ້ງຢືນ.
ຖ້າບໍ່ດັ່ງນັ້ນ, ການເຊື່ອມຕໍ່ທີ່ກົງກັບບໍ່ມີໃບຢັ້ງຢືນຈະຖືກລຸດລົງ, ຫຼືຖ້າ -P ແມ່ນໃຫ້,
ຜ່ານໂດຍບໍ່ມີການແຍກ SSL/TLS.
-u ຍົກເລີກສິດທິພິເສດຫຼັງຈາກເປີດຊັອກເກັດແລະໄຟລ໌ໂດຍການຕັ້ງຄ່າທີ່ແທ້ຈິງ, ປະສິດທິພາບແລະ
ID ຜູ້ໃຊ້ທີ່ເກັບໄວ້ໃນ ຜູ້ໃຊ້ ແລະການໂຫຼດກຸ່ມຕົ້ນຕໍທີ່ເຫມາະສົມແລະເສີມ.
If -u ບໍ່ໄດ້ຖືກມອບໃຫ້, SSLsplit ຈະລຸດສິດທິພິເສດໃຫ້ກັບ UID ທີ່ເກັບໄວ້ຖ້າ EUID != UID
(setuid bit scenario), ຫຼື ບໍ່ມີໃຜ ຖ້າແລ່ນເຕັມ ຮາກ ສິດທິພິເສດ (EUID ==
UID == 0) ແລະ -S ບໍ່ໄດ້ໃຊ້. ເນື່ອງຈາກ bug Apple, -u ບໍ່ສາມາດໃຊ້ກັບ pf
proxy specs ໃນ Mac OS X.
-V ສະແດງໃຫ້ເຫັນສະບັບແລະສັງລວມຂໍ້ມູນຄຸນນະສົມບັດແລະອອກ.
-Z ປິດການບີບອັດ SSL/TLS ໃນທຸກການເຊື່ອມຕໍ່. ນີ້ເປັນປະໂຫຍດຖ້າຫາກວ່າການຈໍາກັດຂອງທ່ານ
ປັດໄຈແມ່ນ CPU, ບໍ່ແມ່ນແບນວິດເຄືອຂ່າຍ. ໄດ້ -Z ທາງເລືອກແມ່ນມີພຽງແຕ່ຖ້າ SSLsplit
ຖືກສ້າງຂື້ນຕໍ່ກັບລຸ້ນ OpenSSL ທີ່ຮອງຮັບການປິດການບີບອັດ.
ຕົວແທນ ນະລັກສະນະ
ຂໍ້ມູນຈໍາເພາະຂອງຕົວແທນ (proxy specs) ປະກອບດ້ວຍປະເພດການເຊື່ອມຕໍ່, ທີ່ຢູ່ຟັງແລະ
ທີ່ຢູ່ຕໍ່ຫນ້າແບບຄົງທີ່ຫຼືກົນໄກການແກ້ໄຂທີ່ຢູ່ (ເຄື່ອງຈັກ NAT, SNI DNS ຊອກຫາ):
https listenaddr port [nat ເຄື່ອງຈັກ|fwdaddr port|sni port]
ssl listenaddr port [nat ເຄື່ອງຈັກ|fwdaddr port|sni port]
http listenaddr port [nat ເຄື່ອງຈັກ|fwdaddr port]
tcp listenaddr port [nat ເຄື່ອງຈັກ|fwdaddr port]
https ການຂັດຂວາງ SSL/TLS ດ້ວຍການຖອດລະຫັດ HTTP protocol, ລວມທັງການກໍາຈັດ HPKP,
HSTS ແລະຫົວຂໍ້ຕອບສະຫນອງອະນຸສັນຍາສະຫຼັບ.
ssl ການຂັດຂວາງ SSL/TLS ໂດຍບໍ່ມີການຖອດລະຫັດໂປຣໂຕຄໍລະດັບຕ່ໍາ; ຖອດລະຫັດ
ເນື້ອໃນການເຊື່ອມຕໍ່ຖືກປະຕິບັດເປັນ opaque stream ຂອງ bytes ແລະບໍ່ໄດ້ດັດແກ້.
http ການເຊື່ອມຕໍ່ TCP ທໍາມະດາໂດຍບໍ່ມີ SSL/TLS, ດ້ວຍການຖອດລະຫັດ HTTP protocol, ລວມທັງ
ການເອົາຫົວເລື່ອງການຕອບໂຕ້ຂອງ HPKP, HSTS ແລະ Alternate Protocol.
tcp ການເຊື່ອມຕໍ່ TCP ທໍາມະດາໂດຍບໍ່ມີ SSL/TLS ແລະບໍ່ມີການຖອດລະຫັດໂປຣໂຕຄໍລະດັບຕ່ໍາ;
ເນື້ອໃນການເຊື່ອມຕໍ່ທີ່ຖືກຖອດລະຫັດຖືກປະຕິບັດເປັນກະແສ opaque ຂອງ bytes ແລະບໍ່ໄດ້ດັດແກ້.
listenaddr port
ທີ່ຢູ່ IPv4 ຫຼື IPv6 ແລະພອດຫຼືຊື່ບໍລິການເພື່ອຟັງ. ນີ້ແມ່ນທີ່ຢູ່
ແລະພອດທີ່ເຄື່ອງຈັກ NAT ຄວນປ່ຽນເສັ້ນທາງການເຊື່ອມຕໍ່ໄປຫາ.
nat ເຄື່ອງຈັກ
ເຄື່ອງຈັກ NAT ເພື່ອສອບຖາມສໍາລັບການກໍານົດທີ່ຢູ່ປາຍທາງຕົ້ນສະບັບແລະພອດຂອງ
ປ່ຽນເສັ້ນທາງເຊື່ອມຕໍ່ຢ່າງໂປ່ງໃສ. ຖ້າບໍ່ມີເຄື່ອງຈັກໃຫ້, ເຄື່ອງຈັກເລີ່ມຕົ້ນແມ່ນ
ຖືກນໍາໃຊ້, ເວັ້ນເສຍແຕ່ overridden ກັບ -e. ເມື່ອໃຊ້ເຄື່ອງຈັກ NAT, sslsplit ຈໍາເປັນຕ້ອງດໍາເນີນການ
ລະບົບດຽວກັນກັບກົດລະບຽບ NAT ປ່ຽນເສັ້ນທາງການຈະລາຈອນໄປຫາ sslsplit. ເບິ່ງ NAT
ເຄື່ອງຈັກສຳລັບລາຍຊື່ເຄື່ອງຈັກ NAT ທີ່ຮອງຮັບ.
fwdaddr port
ທີ່ຢູ່ປາຍທາງຄົງທີ່, IPv4 ຫຼື IPv6, ທີ່ມີພອດ ຫຼືຊື່ບໍລິການ. ໃນເວລາທີ່ນີ້ແມ່ນ
ໃຊ້ແລ້ວ, ການເຊື່ອມຕໍ່ຖືກສົ່ງຕໍ່ໄປຫາທີ່ຢູ່ເຊີບເວີແລະພອດ. ຖ້າ fwdaddr
ເປັນຊື່ເຈົ້າພາບ, ມັນຈະຖືກແກ້ໄຂເປັນທີ່ຢູ່ IP.
sni port
ໃຊ້ຕົວຊີ້ບອກຊື່ເຊີບເວີ (SNI) ຊື່ໂຮສທີ່ສົ່ງໂດຍລູກຄ້າໃນ ClientHello
ຂໍ້ຄວາມ SSL/TLS ເພື່ອກໍານົດທີ່ຢູ່ IP ຂອງເຄື່ອງແມ່ຂ່າຍທີ່ຈະເຊື່ອມຕໍ່ກັບ. ນີ້ເທົ່ານັ້ນ
ເຮັດວຽກໃຫ້ ssl ແລະ https proxy specs ແລະຕ້ອງການພອດຫຼືຊື່ບໍລິການເປັນ argument.
ເນື່ອງຈາກວ່ານີ້ຮຽກຮ້ອງໃຫ້ມີການຊອກຫາ DNS, ມັນດີກວ່າທີ່ຈະໃຊ້ NAT ເຄື່ອງຈັກຊອກຫາ (ເບິ່ງ
ຂ້າງເທິງ), ຍົກເວັ້ນໃນເວລາທີ່ເປັນໄປບໍ່ໄດ້, ເຊັ່ນວ່າໃນເວລາທີ່ບໍ່ມີ NAT ສະຫນັບສະຫນູນ
ເຄື່ອງຈັກຫຼືໃນເວລາທີ່ແລ່ນ sslsplit ໃນລະບົບທີ່ແຕກຕ່າງຈາກກົດລະບຽບ NAT
redirecting ການເຊື່ອມຕໍ່ຕົວຈິງ. ໃຫ້ສັງເກດວ່າໃນເວລາທີ່ການນໍາໃຊ້ -j ກັບ sni, ທ່ານອາດຈະຕ້ອງການ
ກະກຽມ ຄຸກ ເພື່ອເຮັດໃຫ້ການແກ້ໄຂຊື່ເຮັດວຽກຈາກພາຍໃນໄດເລກະທໍລີ chroot.
LOG ນະລັກສະນະ
ຂໍ້ມູນຈໍາເພາະຂອງບັນທຶກແມ່ນປະກອບດ້ວຍສູນ ຫຼືຫຼາຍກວ່າຄໍາສັ່ງແບບ printf; ທຳມະດາ
ຕົວອັກສອນຖືກລວມເຂົ້າໂດຍກົງໃນເສັ້ນທາງຜົນຜະລິດ. SSLsplit ໃນປັດຈຸບັນສະຫນັບສະຫນູນ
ຄໍາແນະນໍາດັ່ງຕໍ່ໄປນີ້:
%T ເວລາເຊື່ອມຕໍ່ເບື້ອງຕົ້ນເປັນ ISO 8601 UTC timestamp.
%d ທີ່ຢູ່ປາຍທາງ ແລະພອດ.
%s ທີ່ຢູ່ ແລະພອດ.
%x ຊື່ຂອງຂະບວນການທ້ອງຖິ່ນ. ຕ້ອງການ -i ທີ່ຈະນໍາໃຊ້. ຖ້າຂໍ້ມູນຂະບວນການແມ່ນ
ບໍ່ສາມາດໃຊ້ໄດ້, ຄຳສັ່ງນີ້ຈະຖືກລະເວັ້ນຈາກເສັ້ນທາງຜົນຜະລິດ.
%X ເສັ້ນທາງອັນເຕັມທີ່ຂອງຂະບວນການທ້ອງຖິ່ນ. ຕ້ອງການ -i ທີ່ຈະນໍາໃຊ້. ຖ້າຂະບວນການ
ບໍ່ມີຂໍ້ມູນ, ຄຳສັ່ງນີ້ຈະຖືກລະເວັ້ນຈາກເສັ້ນທາງຜົນຜະລິດ.
%u ຊື່ຜູ້ໃຊ້ ຫຼືຕົວເລກ uid ຂອງຂະບວນການທ້ອງຖິ່ນ. ຕ້ອງການ -i ທີ່ຈະນໍາໃຊ້. ຖ້າ
ຂໍ້ມູນຂະບວນການແມ່ນບໍ່ມີຢູ່, ຄໍາແນະນໍານີ້ຈະຖືກລະເວັ້ນຈາກຜົນຜະລິດໄດ້
ເສັ້ນທາງ
%g ຊື່ກຸ່ມ ຫຼື gid ຕົວເລກຂອງຂະບວນການທ້ອງຖິ່ນ. ຕ້ອງການ -i ທີ່ຈະນໍາໃຊ້. ຖ້າ
ຂໍ້ມູນຂະບວນການແມ່ນບໍ່ມີຢູ່, ຄໍາແນະນໍານີ້ຈະຖືກລະເວັ້ນຈາກຜົນຜະລິດໄດ້
ເສັ້ນທາງ
%% ໂຕອັກສອນ '%'.
NAT ພາສາອັງກິດ
SSLsplit ປະຈຸບັນສະຫນັບສະຫນູນເຄື່ອງຈັກ NAT ຕໍ່ໄປນີ້:
pf OpenBSD packet filter (pf) rdr/rdr-to ການປ່ຽນເສັ້ນທາງ NAT, ຍັງມີຢູ່ໃນ FreeBSD,
NetBSD ແລະ Mac OS X. ຮອງຮັບຢ່າງເຕັມສ່ວນ, ລວມທັງ IPv6. ສົມມຸດວ່າການໂຕ້ຕອບ inbound
em0, ທໍາອິດໃນເກົ່າ (FreeBSD, Mac OS X), ຫຼັງຈາກນັ້ນໃນໃຫມ່ (OpenBSD 4.7+) syntax:
rdr ຜ່ານ on em0 ໂປໂຕຄອນ tcp ຈາກ ປີ 2001: db8 :: / 64 to ໃດ port 80 \
-> :: 1 port 10080
rdr ຜ່ານ on em0 ໂປໂຕຄອນ tcp ຈາກ ປີ 2001: db8 :: / 64 to ໃດ port 443 \
-> :: 1 port 10443
rdr ຜ່ານ on em0 ໂປໂຕຄອນ tcp ຈາກ 192.0.2.0/24 to ໃດ port 80 \
-> 127.0.0.1 port 10080
rdr ຜ່ານ on em0 ໂປໂຕຄອນ tcp ຈາກ 192.0.2.0/24 to ໃດ port 443 \
-> 127.0.0.1 port 10443
ຜ່ານ in ໄວ on em0 ໂປໂຕຄອນ tcp ຈາກ ປີ 2001: db8 :: / 64 to ໃດ \
port 80 rdr-to :: 1 port 10080
ຜ່ານ in ໄວ on em0 ໂປໂຕຄອນ tcp ຈາກ ປີ 2001: db8 :: / 64 to ໃດ \
port 443 rdr-to :: 1 port 10443
ຜ່ານ in ໄວ on em0 ໂປໂຕຄອນ tcp ຈາກ 192.0.2.0/24 to ໃດ \
port 80 rdr-to 127.0.0.1 port 10080
ຜ່ານ in ໄວ on em0 ໂປໂຕຄອນ tcp ຈາກ 192.0.2.0/24 to ໃດ \
port 443 rdr-to 127.0.0.1 port 10443
ipfw FreeBSD IP firewall (IPFW) divert sockets, ຍັງມີຢູ່ໃນ Mac OS X. ສາມາດໃຊ້ໄດ້.
ໃນ FreeBSD ແລະ OpenBSD ໂດຍໃຊ້ pf ຫັນໄປຫາ. ສະຫນັບສະຫນູນຢ່າງເຕັມທີ່ກ່ຽວກັບ FreeBSD ແລະ OpenBSD,
ລວມທັງ IPv6. ຮອງຮັບພຽງແຕ່ IPv4 ໃນ Mac OS X ເນື່ອງຈາກ IPFW ລຸ້ນເກົ່າ
ລວມ. ທໍາອິດໃນ IPFW, ຫຼັງຈາກນັ້ນໃນ pf ຫັນໄປຫາ ໄວຍະກອນ:
ipfw ເພີ່ມ ສົ່ງຕໍ່ :: 1,10080 tcp ຈາກ ປີ 2001: db8 :: / 64 to ໃດ 80
ipfw ເພີ່ມ ສົ່ງຕໍ່ :: 1,10443 tcp ຈາກ ປີ 2001: db8 :: / 64 to ໃດ 443
ipfw ເພີ່ມ ສົ່ງຕໍ່ 127.0.0.1,10080 tcp ຈາກ 192.0.2.0/24 to ໃດ 80
ipfw ເພີ່ມ ສົ່ງຕໍ່ 127.0.0.1,10443 tcp ຈາກ 192.0.2.0/24 to ໃດ 443
ຜ່ານ in ໄວ on em0 ໂປໂຕຄອນ tcp ຈາກ ປີ 2001: db8 :: / 64 to ໃດ \
port 80 ຫັນໄປຫາ :: 1 port 10080
ຜ່ານ in ໄວ on em0 ໂປໂຕຄອນ tcp ຈາກ ປີ 2001: db8 :: / 64 to ໃດ \
port 443 ຫັນໄປຫາ :: 1 port 10443
ຜ່ານ in ໄວ on em0 ໂປໂຕຄອນ tcp ຈາກ 192.0.2.0/24 to ໃດ \
port 80 ຫັນໄປຫາ 127.0.0.1 port 10080
ຜ່ານ in ໄວ on em0 ໂປໂຕຄອນ tcp ຈາກ 192.0.2.0/24 to ໃດ \
port 443 ຫັນໄປຫາ 127.0.0.1 port 10443
ipfilter
IPFilter (ipfilter, ipf), ມີຢູ່ໃນຫຼາຍລະບົບ, ລວມທັງ FreeBSD, NetBSD,
Linux ແລະ Solaris. ຮອງຮັບພຽງແຕ່ IPv4 ເນື່ອງຈາກຂໍ້ຈໍາກັດໃນ SIOCGNATL ioctls(2)
ການໂຕ້ຕອບ. ສົມມຸດວ່າການໂຕ້ຕອບ inbound bge0:
rdr bge0 0.0.0.0/0 port 80 -> 127.0.0.1 port 10080
rdr bge0 0.0.0.0/0 port 443 -> 127.0.0.1 port 10443
ເນັດ
Linux netfilter ໂດຍໃຊ້ iptables REDIRECT ເປົ້າໝາຍ. ຮອງຮັບພຽງແຕ່ IPv4 ເນື່ອງຈາກ
ຂໍ້ຈໍາກັດໃນ SO_ORIGINAL_DST getsockopt(2) ການໂຕ້ຕອບ.
iptables -t ເນດ -A ການສະແດງ -s 192.0.2.0/24 \
-p tcp --dport 80 \
-j REDIRECT --to-ports 10080
iptables -t ເນດ -A ການສະແດງ -s 192.0.2.0/24 \
-p tcp --dport 443 \
-j REDIRECT --to-ports 10443
tproxy Linux netfilter ໂດຍໃຊ້ເປົ້າໝາຍ iptables TPROXY ຮ່ວມກັບ routing table magic
ເພື່ອອະນຸຍາດໃຫ້ມີການສັນຈອນທີ່ບໍ່ແມ່ນທ້ອງຖິ່ນເກີດຈາກຊ່ອງສຽບໃນທ້ອງຖິ່ນ. ສະຫນັບສະຫນູນຢ່າງເຕັມທີ່,
ລວມທັງ IPv6.
ip -f inet6 ກົດລະບຽບ ເພີ່ມ fwmark 1 ຊອກຫາ 100
ip -f inet6 ເສັ້ນທາງ ເພີ່ມ ທ້ອງຖິ່ນ Default dev lo ຕາຕະລາງ 100
ip6 ຕາຕະລາງ -t mangle -N ຫັນ
ip6 ຕາຕະລາງ -t mangle -A ຫັນ -j MARK --ເຄື່ອງໝາຍຕັ້ງ 1
ip6 ຕາຕະລາງ -t mangle -A ຫັນ -j ຍອມຮັບ
ip6 ຕາຕະລາງ -t mangle -A ການສະແດງ -p tcp -m socket -j ຫັນ
ip6 ຕາຕະລາງ -t mangle -A ການສະແດງ -s ປີ 2001: db8 :: / 64 \
-p tcp --dport 80 \
-j TPROXY --tproxy-mark ຂະ ໜາດ 0x1 / 0x1 --ຢູ່ທ່າເຮືອ 10080
ip6 ຕາຕະລາງ -t mangle -A ການສະແດງ -s ປີ 2001: db8 :: / 64 \
-p tcp --dport 443 \
-j TPROXY --tproxy-mark ຂະ ໜາດ 0x1 / 0x1 --ຢູ່ທ່າເຮືອ 10443
ip -f inet ກົດລະບຽບ ເພີ່ມ fwmark 1 ຊອກຫາ 100
ip -f inet ເສັ້ນທາງ ເພີ່ມ ທ້ອງຖິ່ນ Default dev lo ຕາຕະລາງ 100
iptables -t mangle -N ຫັນ
iptables -t mangle -A ຫັນ -j MARK --ເຄື່ອງໝາຍຕັ້ງ 1
iptables -t mangle -A ຫັນ -j ຍອມຮັບ
iptables -t mangle -A ການສະແດງ -p tcp -m socket -j ຫັນ
iptables -t mangle -A ການສະແດງ -s 192.0.2.0/24 \
-p tcp --dport 80 \
-j TPROXY --tproxy-mark ຂະ ໜາດ 0x1 / 0x1 --ຢູ່ທ່າເຮືອ 10080
iptables -t mangle -A ການສະແດງ -s 192.0.2.0/24 \
-p tcp --dport 443 \
-j TPROXY --tproxy-mark ຂະ ໜາດ 0x1 / 0x1 --ຢູ່ທ່າເຮືອ 10443
ໃຫ້ສັງເກດວ່າການກັ່ນຕອງເສັ້ນທາງກັບຄືນ (rp_filter) ຍັງຈໍາເປັນຕ້ອງປິດການໃຊ້ງານໃນການໂຕ້ຕອບ
ເຊິ່ງຈັດການ TPROXY redirected traffic.
ຕົວຢ່າງ
ການຈັບຄູ່ຕົວຢ່າງການຕັ້ງຄ່າເຄື່ອງຈັກ NAT ຂ້າງເທິງ, ຂັດຂວາງ HTTP ແລະ HTTPS ຜ່ານ IPv4
ແລະ IPv6 ໂດຍໃຊ້ໃບຮັບຮອງປອມດ້ວຍກະແຈສ່ວນຕົວ CA ca.key ແລະໃບຢັ້ງຢືນ ca.crt,
ບັນທຶກການເຊື່ອມຕໍ່ກັບ connect.log ແລະການເຊື່ອມຕໍ່ຂໍ້ມູນເຂົ້າໄປໃນໄຟລ໌ແຍກຕ່າງຫາກພາຍໃຕ້ / tmp (ເພີ່ມ
-e nat ເຄື່ອງຈັກ ເພື່ອເລືອກເຄື່ອງຈັກທີ່ເຫມາະສົມຖ້າເຄື່ອງຈັກຫຼາຍຊະນິດມີຢູ່ໃນຂອງທ່ານ
ລະບົບ):
sslsplit -k ca.key -c ca.crt -l connect.log -L / tmp \
https :: 1 10443 https 127.0.0.1 10443 \
http :: 1 10080 http 127.0.0.1 10080
ຂັດຂວາງ IMAP / IMAPS ໂດຍໃຊ້ການຕັ້ງຄ່າດຽວກັນ:
sslsplit -k ca.key -c ca.crt -l connect.log -L / tmp \
ssl :: 1 10993 ssl 127.0.0.1 10993 \
tcp :: 1 10143 tcp 127.0.0.1 10143
ການຕັ້ງຄ່າເປົ້າຫມາຍເພີ່ມເຕີມ, HTTPS ເທົ່ານັ້ນ, ການນໍາໃຊ້ໃບຢັ້ງຢືນ / ລະບົບຕ່ອງໂສ້ / ໄຟລ໌ທີ່ສໍາຄັນຈາກ /path/to/cert.d
ແລະ statically redirecting ກັບ www.example.org ແທນທີ່ຈະສອບຖາມເຄື່ອງຈັກ NAT:
sslsplit -t /path/to/cert.d -l connect.log -L / tmp \
https :: 1 10443 www.example.org 443 \
https 127.0.0.1 10443 www.example.org 443
ຕົວຢ່າງຕົ້ນສະບັບ, ແຕ່ການນໍາໃຊ້ທາງເລືອກ SSL ເຫມາະສໍາລັບຄວາມໄວໂດຍການປິດການບີບອັດ
ແລະເລືອກພຽງແຕ່ຊຸດຕົວເຂົ້າລະຫັດໄວຂອງບລັອກ ແລະໃຊ້ລະຫັດສ່ວນຕົວທີ່ກຽມໄວ້ລ່ວງໜ້າ
leaf.key ສໍາລັບໃບຢັ້ງຢືນ forged (ການເພີ່ມຂຶ້ນຄວາມໄວທີ່ສໍາຄັນທີ່ສຸດແມ່ນໄດ້ຮັບໂດຍ
ເລືອກສູດການຄິດໄລ່ໄວ ແລະປຸ່ມຂະໜາດນ້ອຍສຳລັບ CA ແລະກະແຈສ່ວນຕົວຂອງໃບ; ກວດ
opensl ຄວາມໄວ ສໍາລັບການປະຕິບັດວິທີການໃນລະບົບຂອງທ່ານ):
sslsplit -Z -s NULL:RC4:AES128 -K leaf.key \
-k ca.key -c ca.crt -l connect.log -L / tmp \
https :: 1 10443 https 127.0.0.1 10443 \
http :: 1 10080 http 127.0.0.1 10080
ຕົວຢ່າງຕົ້ນສະບັບ, ແຕ່ແລ່ນເປັນ daemon ພາຍໃຕ້ຜູ້ໃຊ້ sslsplit ແລະຂຽນໄຟລ໌ PID:
sslsplit -d -p /var/run/sslsplit.pid -u sslsplit \
-k ca.key -c ca.crt -l connect.log -L / tmp \
https :: 1 10443 https 127.0.0.1 10443 \
http :: 1 10080 http 127.0.0.1 10080
ເພື່ອສ້າງລະຫັດສ່ວນຕົວ CA ca.key ແລະໃບຢັ້ງຢືນ ca.crt ໃຊ້ OpenSSL:
cat >x509v3ca.cnf <<'EOF'
[ຄໍາຮ້ອງສະຫມັກ]
distinguished_name = reqdn
[reqdn]
[v3_ca]
basicConstraints = CA:TRUE
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer:ສະເໝີ
EOF
opensl ປະເພດ - ອອກ ca.key 1024
opensl ຄວາມຕ້ອງການ -ໃຫມ່ - nodes -x509 -sha1 - ອອກ ca.crt - ກຸນແຈ ca.key \
-ການຕັ້ງຄ່າ x509v3ca.cnf - ການຂະຫຍາຍ v3_ca \
- ຍ່ອຍ '/O=SSLsplit ຮາກ CA/CN=SSLsplit ຮາກ CA/' \
-set_serial 0 - ມື້ 3650
ຫມາຍເຫດ
SSLsplit ສາມາດຈັດການກັບຈໍານວນຜູ້ຟັງແລະການເຊື່ອມຕໍ່ທີ່ຂ້ອນຂ້າງສູງເນື່ອງຈາກ a
multithreaded, ສະຖາປັດຕະເຫດການໂດຍອີງໃສ່ libevent, ໃຊ້ປະໂຍດຈາກເວທີ
ສະເພາະເລືອກ() ການທົດແທນເຊັ່ນ kqueue. ກະທູ້ຕົ້ນຕໍຈັດການກັບຜູ້ຟັງແລະ
ສັນຍານ, ໃນຂະນະທີ່ຈໍານວນຂອງກະທູ້ພະນັກງານເທົ່າກັບສອງເທົ່າຂອງຈໍານວນຂອງ CPU ແມ່ນ
ໃຊ້ສໍາລັບການຈັດການການເຊື່ອມຕໍ່ຕົວຈິງໃນຖານເຫດການແຍກຕ່າງຫາກ, ລວມທັງ CPU-
ການຈັດການ SSL/TLS ແບບສຸມ.
ການດູແລໄດ້ຮັບການປະຕິບັດທີ່ຈະເລືອກເອົາໂຄງສ້າງຂໍ້ມູນທີ່ດີສໍາລັບໃບຢັ້ງຢືນການຖານຄວາມຈໍາແລະ
ເຊດຊັນ SSL. ການບັນທຶກຖືກປະຕິບັດຢູ່ໃນກະທູ້ຂຽນແຜ່ນແຍກຕ່າງຫາກເພື່ອຮັບປະກັນວ່າ
ກະທູ້ການຈັດການເຫດການ socket ບໍ່ຈໍາເປັນຕ້ອງບລັອກໃນ disk I/O. ການຊອກຫາ DNS ຖືກປະຕິບັດ
asynchroniously. SSLsplit ໃຊ້ SSL session caching ໃນທັງສອງສົ້ນເພື່ອຫຼຸດຜ່ອນຈໍານວນ
ການຈັບມື SSL ເຕັມ, ແຕ່ເຖິງແມ່ນແລ້ວ, ປັດໃຈຈໍາກັດໃນການຈັດການການເຊື່ອມຕໍ່ SSL ແມ່ນ
ການຄິດໄລ່ bignum ຕົວຈິງ.
ໃຊ້ sslsplit ອອນໄລນ໌ໂດຍໃຊ້ບໍລິການ onworks.net
