Server proxy gratis untuk perusahaan dengan otorisasi domain

Server proxy gratis untuk perusahaan dengan otorisasi domain

pfSense+Squid dengan pemfilteran https + Teknologi sistem masuk tunggal (SSO) dengan pemfilteran berdasarkan grup Direktori Aktif

Latar belakang singkat

Perusahaan perlu mengimplementasikan server proxy dengan kemampuan untuk memfilter akses ke situs (termasuk https) berdasarkan grup dari AD, sehingga pengguna tidak memasukkan kata sandi tambahan apa pun, dan administrasi dapat dilakukan dari antarmuka web. Bukan aplikasi yang buruk, bukan?

Jawaban yang benar adalah dengan membeli solusi seperti Kerio Control atau UserGate, tetapi seperti biasa, tidak ada uang, tetapi ada kebutuhan.

Di sinilah Squid tua yang baik datang untuk menyelamatkan kita, tetapi sekali lagi, di mana saya bisa mendapatkan antarmuka webnya? SAMS2? Sudah usang secara moral. Di sinilah pfSense datang untuk menyelamatkan.

Описание

Artikel ini akan menjelaskan cara mengkonfigurasi server proxy Squid.
Kerberos akan digunakan untuk mengotorisasi pengguna.
SquidGuard akan digunakan untuk memfilter berdasarkan grup domain.

Lightsquid, sqstat dan sistem pemantauan pfSense internal akan digunakan untuk pemantauan.
Masalah umum yang terkait dengan penerapan teknologi sistem masuk tunggal (SSO) juga akan teratasi, yaitu aplikasi yang mencoba mengakses Internet menggunakan akun kompas dari akun sistemnya.

Bersiap untuk menginstal Squid

pfSense akan digunakan sebagai dasar, Instruksi instalasi.

Di dalamnya kami mengatur otentikasi ke firewall itu sendiri menggunakan akun domain. Instruksi.

Itu sangat penting!

Sebelum Anda mulai menginstal Squid, Anda perlu mengkonfigurasi server DNS di pfsense, membuat catatan A dan catatan PTR di server DNS kami dan mengkonfigurasi NTP sehingga waktunya tidak berbeda dengan waktu di pengontrol domain.

Dan di jaringan Anda, berikan kemampuan antarmuka WAN pfSense untuk mengakses Internet, dan bagi pengguna di jaringan lokal untuk terhubung ke antarmuka LAN, termasuk melalui port 7445 dan 3128 (dalam kasus saya, 8080).

Semua sudah siap? Apakah domain terhubung melalui LDAP untuk otorisasi di pfSense dan apakah waktunya disinkronkan? Besar. Saatnya memulai proses utama.

Instalasi dan pra-konfigurasi

Kami akan menginstal Squid, SquidGuard dan LightSquid dari manajer paket pfSense di bagian “System/Package Manager”.

Setelah instalasi berhasil, buka “Services/Squid Proxy server/” dan pertama-tama, di tab Local Cache, konfigurasikan caching, saya atur semuanya ke 0, karena Saya tidak melihat gunanya menyimpan situs dalam cache; browser menanganinya dengan baik. Setelah pengaturan, tekan tombol “Simpan” di bagian bawah layar dan ini akan memberi kita kesempatan untuk membuat pengaturan proxy dasar.

Pengaturan utamanya adalah sebagai berikut:

Server proxy gratis untuk perusahaan dengan otorisasi domain

Port defaultnya adalah 3128, tapi saya lebih suka menggunakan 8080.

Parameter yang dipilih di tab Antarmuka Proxy menentukan antarmuka mana yang akan didengarkan oleh server proxy kami. Karena firewall ini dibuat sedemikian rupa sehingga terlihat di Internet melalui antarmuka WAN, meskipun LAN dan WAN mungkin berada di subnet lokal yang sama, saya sarankan menggunakan LAN untuk proxy.

Loopback diperlukan agar sqstat dapat berfungsi.

Di bawah ini Anda akan menemukan pengaturan proxy Transparan, serta Filter SSL, tetapi kami tidak membutuhkannya, proxy kami tidak akan transparan, dan untuk pemfilteran https kami tidak akan menangani substitusi sertifikat (bagaimanapun, kami memiliki manajemen dokumen , klien bank, dll.), Kita lihat saja jabat tangannya.

Pada tahap ini, kita perlu pergi ke pengontrol domain kita, membuat akun di dalamnya untuk otentikasi (Anda juga dapat menggunakan akun yang Anda konfigurasikan untuk otentikasi di pfSense itu sendiri). Faktor yang sangat penting di sini adalah jika Anda ingin menggunakan enkripsi AES128 atau AES256, centang kotak yang sesuai di pengaturan akun Anda.

Jika domain Anda adalah hutan yang sangat kompleks dengan banyak direktori atau domain Anda .lokal, maka MUNGKIN, tetapi tidak pasti, Anda harus menggunakan kata sandi sederhana untuk akun ini, bugnya diketahui, tetapi itu mungkin tidak berfungsi dengan kata sandi yang rumit, Anda perlu memeriksa kasus tertentu.

Server proxy gratis untuk perusahaan dengan otorisasi domain

Setelah itu, kita membuat file kunci untuk kerberos, buka command prompt dengan hak administrator pada pengontrol 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 pfSense FQDN kami, pastikan untuk menghormati kasus ini, di parameter mapuser kami memasukkan akun domain kami dan kata sandinya, dan di crypto kami memilih metode enkripsi, saya menggunakan rc4 untuk bekerja dan di bidang -out kami memilih di mana kami akan mengirimkan file kunci kami yang sudah jadi.
Setelah berhasil membuat file kunci, kami akan mengirimkannya ke pfSense kami, saya menggunakan Far untuk ini, tetapi Anda juga dapat melakukan ini baik dengan perintah dan dempul atau melalui antarmuka web pfSense di bagian "Baris Perintah Diagnostik".

Sekarang kita dapat mengedit buat /etc/krb5.conf

Server proxy gratis untuk perusahaan dengan otorisasi domain

dimana /etc/krb5.keytab adalah file kunci yang kita buat.

Pastikan untuk mengecek pengoperasian kerberos menggunakan kinit, jika tidak berhasil tidak ada gunanya membaca lebih lanjut.

Konfigurasi Otentikasi Squid dan Daftar Akses Tanpa Otentikasi

Setelah berhasil mengkonfigurasi Kerberos, kita akan melampirkannya ke Squid kita.

Untuk melakukan ini, buka ServicesSquid Proxy Server dan di pengaturan utama, pergi ke bagian paling bawah, di sana kita akan menemukan tombol "Pengaturan lanjutan".

Di bidang Opsi Kustom (Sebelum Auth), 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 negosiasi auth_param /usr/local/libexec/squid/negotiate_kerberos_auth — memilih pembantu autentikasi Kerberos yang kita perlukan.

Ключ -s dengan makna GSS_C_NO_NAME — menentukan penggunaan akun apa pun dari file kunci.

Ключ -k dengan makna /usr/local/etc/squid/squid.keytab — memutuskan untuk menggunakan file keytab khusus ini. Dalam kasus saya, ini adalah file keytab yang sama yang kami buat, yang saya salin ke direktori /usr/local/etc/squid/ dan ganti namanya karena cumi-cumi tidak mau berteman dengan direktori itu, ternyata saya tidak punya hak yang cukup.

Ключ -t dengan makna -tidak ada - menonaktifkan permintaan siklik ke pengontrol domain, yang sangat mengurangi beban jika Anda memiliki lebih dari 50 pengguna.
Selama pengujian, Anda juga dapat menambahkan tombol -d - yaitu diagnostik, lebih banyak log akan ditampilkan.
auth_param menegosiasikan anak-anak 1000 — menentukan berapa banyak proses otorisasi simultan yang dapat diluncurkan
auth_param menegosiasikan keep_alive aktif — mencegah koneksi terputus saat melakukan polling pada rantai otorisasi
acl auth proxy_auth DIPERLUKAN — membuat dan memerlukan daftar kontrol akses yang mencakup pengguna yang berwenang
acl nonauth dstdomain "/etc/squid/nonauth.txt" — kami memberi tahu cumi-cumi tentang daftar akses nonauth, yang berisi domain tujuan yang mana setiap orang akan selalu diizinkan mengaksesnya. Kami membuat file itu sendiri, dan memasukkan domain di dalamnya dalam format

.whatsapp.com
.whatsapp.net

Whatsapp tidak sia-sia digunakan sebagai contoh - sangat pilih-pilih tentang proxy dengan otentikasi dan tidak akan berfungsi jika tidak diizinkan sebelum otentikasi.
http_access izinkan nonauth - izinkan akses ke daftar ini untuk semua orang
http_access menolak !auth — kami melarang akses ke situs lain untuk pengguna yang tidak berwenang
http_access izinkan autentikasi — mengizinkan akses ke pengguna yang berwenang.
Itu saja, Squid sendiri sudah dikonfigurasi, sekarang saatnya mulai memfilter berdasarkan grup.

Menyiapkan SquidGuard

Buka Filter Proksi LayananSquidGuard.

Di Opsi LDAP kami memasukkan data akun kami yang digunakan untuk otentikasi kerberos, tetapi dalam format berikut:

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

Jika terdapat spasi atau karakter non-Latin, seluruh entri ini harus diapit tanda kutip tunggal atau ganda:

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

Selanjutnya, pastikan untuk mencentang kotak ini:

Server proxy gratis untuk perusahaan dengan otorisasi domain

Untuk memotong DOMAINpfsense yang tidak perlu DOMAIN.LOCAL yang seluruh sistemnya sangat sensitif.

Sekarang mari kita masuk ke Group Acl dan ikat grup akses domain kita, saya menggunakan nama sederhana seperti group_0, group_1, dll. maksimal 3, dimana 3 berarti akses hanya ke daftar putih, dan 0 berarti semuanya mungkin.

Grup ditautkan sebagai 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))

kita simpan grup kita, buka Times, di sana saya membuat satu celah yang berarti akan selalu berfungsi, sekarang kita pergi ke Kategori Target dan membuat daftar sesuai kebijaksanaan kita, setelah membuat daftar kita kembali ke grup kita dan di dalam grup kita menggunakan tombol untuk memilih siapa yang boleh pergi ke mana dan siapa yang tidak boleh pergi ke mana.

LightSquid dan sqstat

Jika pada saat proses setup kita memilih loopback di pengaturan cumi dan membuka kemampuan untuk mengakses 7445 di firewall baik di jaringan kita maupun di pfSense itu sendiri, maka ketika kita masuk ke DiagnosticsSquid Proxy Reports kita dapat dengan mudah membuka sqstat dan Lighsquid, untuk yang terakhir kita perlukan Di sana Anda dapat membuat login dan kata sandi, dan Anda juga dapat memilih desain.

Penyelesaian

pfSense adalah alat yang sangat kuat yang dapat melakukan banyak hal - mem-proxy lalu lintas dan mengendalikan akses pengguna ke Internet hanyalah sebagian kecil dari keseluruhan fungsi, namun, di perusahaan dengan 500 mesin, pfSense memecahkan masalah dan memungkinkan kami menghemat pada pembelian proxy.

Saya harap artikel ini akan membantu seseorang memecahkan masalah yang cukup relevan untuk perusahaan menengah dan besar.

Sumber: www.habr.com

Tambah komentar