Pelayan proksi percuma untuk perusahaan dengan kebenaran domain

Pelayan proksi percuma untuk perusahaan dengan kebenaran domain

pfSense+Squid dengan penapisan https + Single sign-on (SSO) dengan penapisan kumpulan Active Directory

Latar belakang ringkas

Syarikat itu perlu melaksanakan pelayan proksi dengan keupayaan untuk menapis akses kepada tapak (termasuk https) oleh kumpulan daripada AD supaya pengguna tidak memasukkan sebarang kata laluan tambahan, dan boleh ditadbir dari antara muka web. Permohonan yang baik, bukan?

Jawapan yang betul adalah untuk membeli penyelesaian seperti Kawalan Kerio atau UserGate, tetapi seperti biasa tidak ada wang, tetapi ada keperluan.

Di sinilah Sotong tua yang baik datang untuk menyelamatkan, tetapi sekali lagi - di manakah saya boleh mendapatkan antara muka web? SAMS2? Lapuk secara moral. Di sinilah pfSense datang untuk menyelamatkan.

ОписаниС

Artikel ini akan menerangkan cara mengkonfigurasi pelayan proksi Squid.
Kerberos akan digunakan untuk membenarkan pengguna.
SquidGuard akan digunakan untuk menapis mengikut kumpulan domain.

Lightsquid, sqstat dan sistem pemantauan pfSense dalaman akan digunakan untuk pemantauan.
Ia juga akan menyelesaikan masalah biasa yang berkaitan dengan pengenalan teknologi daftar masuk tunggal (SSO), iaitu aplikasi yang cuba melayari Internet di bawah akaun kompas dengan akaun sistem mereka.

Bersedia untuk memasang Sotong

pfSense akan diambil sebagai asas, Arahan pemasangan.

Di dalamnya kami mengatur pengesahan pada tembok api itu sendiri menggunakan akaun domain. Arahan

Ia sangat penting!

Sebelum anda mula memasang Squid, anda perlu mengkonfigurasi pelayan DNS dalam pfsense, membuat rekod A dan rekod PTR untuknya pada pelayan DNS kami, dan mengkonfigurasi NTP supaya masa tidak berbeza daripada masa pada pengawal domain.

Dan pada rangkaian anda, sediakan keupayaan untuk antara muka WAN pfSense untuk pergi ke Internet, dan pengguna pada rangkaian tempatan untuk menyambung ke antara muka LAN, termasuk pada port 7445 dan 3128 (dalam kes saya 8080).

Semua sudah bersedia? Adakah sambungan LDAP diwujudkan dengan domain untuk kebenaran pada pfSense dan masa disegerakkan? Hebat. Sudah tiba masanya untuk memulakan proses utama.

Pemasangan dan pra-konfigurasi

Squid, SquidGuard dan LightSquid akan dipasang daripada pengurus pakej pfSense dalam bahagian "Pengurus Sistem / Pakej".

Selepas pemasangan berjaya, pergi ke "Perkhidmatan / pelayan Proksi Squid /" dan pertama sekali, dalam tab Cache Tempatan, konfigurasikan caching, saya tetapkan semuanya kepada 0, kerana Saya tidak melihat banyak perkara dalam caching tapak, penyemak imbas melakukan kerja yang hebat dengan ini. Selepas menetapkan, tekan butang "Simpan" di bahagian bawah skrin dan ini akan memberi kita peluang untuk membuat tetapan proksi asas.

Tetapan utama adalah seperti berikut:

Pelayan proksi percuma untuk perusahaan dengan kebenaran domain

Port lalai ialah 3128, tetapi saya lebih suka menggunakan 8080.

Parameter yang dipilih dalam tab Antara Muka Proksi menentukan antara muka yang pelayan proksi kami akan mendengar. Memandangkan tembok api ini dibina sedemikian rupa sehingga ia kelihatan di Internet sebagai antara muka WAN, walaupun LAN dan WAN boleh berada pada subnet tempatan yang sama, saya mengesyorkan menggunakan LAN untuk proksi.

Loopback diperlukan untuk sqstat berfungsi.

Di bawah anda akan menemui tetapan proksi Telus (telus), serta Penapis SSL, tetapi kami tidak memerlukannya, proksi kami tidak akan telus, dan untuk penapisan https kami tidak akan menggantikan sijil (kami mempunyai aliran dokumen, bank pelanggan, dsb.), mari kita lihat jabat tangan.

Pada peringkat ini, kami perlu pergi ke pengawal domain kami, buat akaun pengesahan di dalamnya (anda juga boleh menggunakan akaun yang telah dikonfigurasikan untuk pengesahan pada pfSense itu sendiri). Berikut ialah faktor yang sangat penting - jika anda berhasrat untuk menggunakan penyulitan AES128 atau AES256 - tandakan kotak yang sesuai dalam tetapan akaun anda.

Jika domain anda adalah hutan yang sangat kompleks dengan sejumlah besar direktori atau domain anda .local, maka MUNGKIN, tetapi tidak pasti, anda perlu menggunakan kata laluan mudah untuk akaun ini, pepijat diketahui, tetapi ia mungkin tidak berfungsi dengan kata laluan yang kompleks, anda perlu menyemak kes tertentu.

Pelayan proksi percuma untuk perusahaan dengan kebenaran domain

Selepas itu, kami mencipta fail utama untuk kerberos, buka gesaan arahan dengan hak pentadbir pada pengawal domain dan masukkan:

# ktpass -princ HTTP/[email protected] -mapuser pfsense -pass 3EYldza1sR -crypto {DES-CBC-CRC|DES-CBC-MD5|RC4-HMAC-NT|AES256-SHA1|AES128-SHA1|All} -ptype KRB5_NT_PRINCIPAL -out C:keytabsPROXY.keytab

Di mana kami menunjukkan FQDN pfSense kami, pastikan anda menghormati kes itu, masukkan akaun domain kami dan kata laluannya dalam parameter mapuser, dan dalam crypto kami memilih kaedah penyulitan, saya menggunakan rc4 untuk kerja dan dalam medan -out kami pilih tempat kami akan menghantar fail kunci kami yang telah siap.
Selepas berjaya mencipta fail utama, kami akan menghantarnya ke pfSense kami, saya menggunakan Far untuk ini, tetapi anda juga boleh melakukan ini dengan arahan dan dempul atau melalui antara muka web pfSense dalam bahagian "Barisan Perintah Diagnostik".

Sekarang kita boleh mengedit/membuat /etc/krb5.conf

Pelayan proksi percuma untuk perusahaan dengan kebenaran domain

di mana /etc/krb5.keytab ialah fail kunci yang kami buat.

Pastikan untuk menyemak operasi kerberos menggunakan kinit, jika tidak berfungsi, tidak ada gunanya membaca lebih lanjut.

Mengkonfigurasi Pengesahan Sotong dan Senarai Akses tanpa Pengesahan

Setelah berjaya mengkonfigurasi kerberos, kami akan mengikatnya pada Sotong kami.

Untuk melakukan ini, pergi ke Pelayan Proksi ServicesSquid dan dalam tetapan utama turun ke bahagian paling bawah, di sana kita akan menemui butang "Tetapan lanjutan".

Dalam medan Pilihan Tersuai (Sebelum Pengesahan), masukkan:

#Π₯Π΅Π»ΠΏΠ΅Ρ€Ρ‹
auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth -s GSS_C_NO_NAME -k /usr/local/etc/squid/squid.keytab -t none
auth_param negotiate children 1000
auth_param negotiate keep_alive on
#Бписки доступа
acl auth proxy_auth REQUIRED
acl nonauth dstdomain "/etc/squid/nonauth.txt" 
#Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ 
http_access allow nonauth 
http_access deny !auth
http_access allow auth

di mana program rundingan auth_param /usr/local/libexec/sotong/negotiate_kerberos_auth - memilih pembantu kerberos pengesahan yang kami perlukan.

Kunci -s dengan makna GSS_C_NO_NAME β€” mentakrifkan penggunaan mana-mana akaun daripada fail utama.

Kunci -k dengan makna /usr/local/etc/squid/squid.keytab - menentukan untuk menggunakan fail tab kekunci tertentu ini. Dalam kes saya, ini adalah fail tab kekunci yang sama yang kami buat, yang saya salin ke direktori /usr/local/etc/squid/ dan menamakan semula, kerana sotong tidak mahu berkawan dengan direktori itu, nampaknya tidak ada cukup hak.

Kunci -t dengan makna -tiada - melumpuhkan permintaan kitaran kepada pengawal domain, yang sangat mengurangkan beban padanya jika anda mempunyai lebih daripada 50 pengguna.
Untuk tempoh ujian, anda juga boleh menambah kekunci -d - iaitu diagnostik, lebih banyak log akan dipaparkan.
auth_param berunding kanak-kanak 1000 - menentukan berapa banyak proses kebenaran serentak boleh dijalankan
auth_param berunding keep_alive on - tidak membenarkan memutuskan sambungan semasa pengundian rantaian kebenaran
acl auth proxy_auth DIPERLUKAN - mencipta dan memerlukan senarai kawalan akses yang termasuk pengguna yang telah lulus kebenaran
acl nonauth dstdomain "/etc/squid/nonauth.txt" - kami memaklumkan sotong tentang senarai akses bukan ahli, yang mengandungi domain destinasi, yang setiap orang akan sentiasa dibenarkan akses. Kami mencipta fail itu sendiri, dan di dalamnya kami memasukkan domain dalam format

.whatsapp.com
.whatsapp.net

Whatsapp tidak sia-sia digunakan sebagai contoh - ia sangat memilih proksi dengan pengesahan dan tidak akan berfungsi jika ia tidak dibenarkan sebelum pengesahan.
http_access benarkan nonauth - benarkan akses kepada senarai ini kepada semua orang
http_access deny !auth - kami melarang akses kepada pengguna yang tidak dibenarkan ke tapak lain
http_access membenarkan pengesahan - membenarkan akses kepada pengguna yang dibenarkan.
Itu sahaja, sotong itu sendiri dikonfigurasikan, kini tiba masanya untuk mula menapis mengikut kumpulan.

Mengkonfigurasi SquidGuard

Pergi ke Penapis Proksi ServicesSquidGuard.

Dalam Pilihan LDAP kami memasukkan data akaun kami yang digunakan untuk pengesahan kerberos, tetapi dalam format berikut:

CN=pfsense,OU=service-accounts,DC=domain,DC=local

Jika terdapat ruang atau aksara bukan Latin, keseluruhan entri ini hendaklah disertakan dalam petikan tunggal atau berganda:

'CN=sg,OU=service-accounts,DC=domain,DC=local'
"CN=sg,OU=service-accounts,DC=domain,DC=local"

Seterusnya, pastikan anda menandai kotak ini:

Pelayan proksi percuma untuk perusahaan dengan kebenaran domain

Untuk memotong DOMAINpfsense yang tidak perlu DOMAIN.TEMPATAN yang mana keseluruhan sistem adalah sangat sensitif.

Sekarang kita pergi ke Kumpulan Acl dan mengikat kumpulan akses domain kami, saya menggunakan nama mudah seperti group_0, group_1, dsb. sehingga 3, di mana 3 ialah akses kepada senarai putih sahaja, dan 0 - semuanya mungkin.

Kumpulan dipautkan seperti berikut:

ldapusersearch ldap://dc.domain.local:3268/DC=DOMAIN,DC=LOCAL?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=group_0%2cOU=squid%2cOU=service-groups%2cDC=DOMAIN%2cDC=LOCAL))

simpan kumpulan kami, pergi ke Times, di sana saya mencipta satu jurang bermakna ia akan sentiasa berfungsi, kini pergi ke Kategori Sasaran dan buat senarai mengikut budi bicara kami, selepas membuat senarai kami kembali ke kumpulan kami dan di dalam kumpulan, gunakan butang untuk memilih siapa yang boleh pergi ke mana, dan siapa yang tidak boleh pergi ke mana .

LightSquid dan sqstat

Jika semasa proses konfigurasi kami memilih loopback dalam tetapan sotong dan membuka keupayaan untuk mengakses 7445 dalam firewall kedua-dua rangkaian kami dan pada pfSense sendiri, maka apabila pergi ke Squid Proxy Reports Diagnostics, kami boleh membuka kedua-dua sqstat dan Lighsquid dengan mudah, untuk yang terakhir kita perlukan Di tempat yang sama, tampilkan nama pengguna dan kata laluan, dan terdapat juga peluang untuk memilih reka bentuk.

Siap

pfSense ialah alat yang sangat berkuasa yang boleh melakukan banyak perkara - kedua-dua proksi trafik dan kawalan ke atas akses pengguna ke Internet hanyalah sebahagian kecil daripada keseluruhan fungsi, namun, dalam perusahaan dengan 500 mesin, ini menyelesaikan masalah dan menjimatkan membeli proksi.

Saya harap artikel ini akan membantu seseorang menyelesaikan masalah yang agak relevan untuk perusahaan sederhana dan besar.

Sumber: www.habr.com

Tambah komen