Pendahuluan
Sebuah web server proxy layanan yang berguna untuk memiliki pada jaringan Anda, atau antara jaringan dan Internet, karena menyediakan lapisan keamanan tambahan yang insulates pengguna Anda dari Internet. Sebuah proxy server juga dapat bertindak sebagai cache, memungkinkan pengguna untuk berbagi download secara transparan dan mempercepat akses internet, terutama untuk file yang sering digunakan. Squid adalah performa tinggi dan relatif aman web proxy server yang mencakup fasilitas caching baik. Ini adalah salah satu yang paling sering digunakan proxy server di Internet. Lebih lanjut mengenai Squid dapat diperoleh http://www.squid-cache.org/. Artikel ini akan memberikan gambaran umum menyiapkan Linux dan Squid sebagai web server proxy.
Instalasi Linux
Cara terbaik untuk menginstal Linux adalah dengan menggunakan salah satu dari banyak tersedia secara bebas distribusi. Red Hat Linux dan Debian adalah dua distribusi yang lebih populer dari Linux. Setiap distribusi Linux akan datang dengan petunjuk instalasi sendiri, biasanya dikemas dengan distribusi atau tersedia di Internet. Sebagai contoh, Red Hat Linux petunjuk instalasi untuk versi 7,1 tersedia di sini. Anda mungkin juga ingin melihat artikel SecurityFocus sebelumnya, Instalasi Linux, oleh Peter Merrick, termasuk beberapa rekomendasi pada sistem pengerasan bahwa Anda mungkin ingin untuk berpikir tentang sebelum menginstal squid.
Instalasi Squid
Instalasi Dari Paket
Pendahuluan
Sebuah web server proxy layanan yang berguna untuk memiliki pada jaringan Anda, atau antara jaringan dan Internet, karena menyediakan lapisan keamanan tambahan yang insulates pengguna Anda dari Internet. Sebuah proxy server juga dapat bertindak sebagai cache, memungkinkan pengguna untuk berbagi download secara transparan dan mempercepat akses internet, terutama untuk file yang sering digunakan. Squid adalah performa tinggi dan relatif aman web proxy server yang mencakup fasilitas caching baik. Ini adalah salah satu yang paling sering digunakan proxy server di Internet. Lebih lanjut mengenai Squid dapat diperoleh http://www.squid-cache.org/. Artikel ini akan memberikan gambaran umum menyiapkan Linux dan Squid sebagai web server proxy.
Instalasi Linux
Cara terbaik untuk menginstal Linux adalah dengan menggunakan salah satu dari banyak tersedia secara bebas distribusi. Red Hat Linux dan Debian adalah dua distribusi yang lebih populer dari Linux. Setiap distribusi Linux akan datang dengan petunjuk instalasi sendiri, biasanya dikemas dengan distribusi atau tersedia di Internet. Sebagai contoh, Red Hat Linux petunjuk instalasi untuk versi 7,1 tersedia di sini. Anda mungkin juga ingin melihat artikel SecurityFocus sebelumnya, Instalasi Linux, oleh Peter Merrick, termasuk beberapa rekomendasi pada sistem pengerasan bahwa Anda mungkin ingin untuk berpikir tentang sebelum menginstal squid.
Instalasi Squid
Instalasi Dari Paket
Perhatikan bahwa distribusi Linux anda akan biasanya datang dibundel dengan sebuah versi paket Squid tetapi, hal itu mungkin tidak akan diinstal pada saat distribusi dipasang. Misalnya, setelah menginstal Red Hat Linux 7.1, Anda akan menemukan bahwa paket Squid tidak terpasang. Squid terletak di instalasi Red Hat CD # 2, di RedHat / RPMS direktori. Untuk menginstal dari sana, pastikan bahwa Anda login sebagai root, dan menggunakan perintah rpm sebagai berikut:
mount / mnt / cdrom
rpm-Uhv / mnt/cdrom/RedHat/RPMS/squid- *. rpm
umount / mnt / cdrom
Selama proses instalasi, anda akan melihat deretan hash (#) untuk menunjukkan kemajuan proses instalasi.
Pada sistem Linux Debian, Anda dapat menggunakan program apt-get untuk secara otomatis men-download dan install squid dari Internet, sebagai berikut:
apt-get install squid
Catatan bahwa jika Anda tidak terhubung ke Internet, perintah di atas akan gagal. Anda mungkin malah ingin menginstal squid dari CD-ROM Debian. Petunjuk instalasi dari CD-ROM dapat bervariasi, jadi Anda harus memeriksa dengan orang yang memasok CD-ROM.
Instalasi Dari Source
Jika Anda memilih untuk menginstal Squid dari source file, maka anda dapat melakukan ini pada hampir semua sistem Unix. Pertama, Anda akan perlu untuk mendapatkan kode sumber terbaru dari situs web Squid, di http://www.squid-cache.org/.
Squid kode sumber datang dalam file tar terkompresi, sehingga Anda akan perlu untuk uncompress itu sebagai berikut:
zcat squid-2.3.STABLE4-src.tar.gz | tar xf --
(Catatan: untuk melakukan hal ini, saya memperoleh pembebasan 2.3.STABLE4 squid dari Squid situs web. Anda mungkin memiliki Squid pelepasan yang berbeda, sehingga mungkin harus menyesuaikan perintah di atas.
Setelah Anda terkompresi tar file, Anda akan perlu untuk mengkonfigurasi, membuat, dan menginstal squid sebagai berikut:
cd squid-2.3.STABLE4
. / configure
membuat semua
make install
Untuk informasi lebih lanjut tentang cara menginstal cumi-cumi, baca file INSTALL yang disediakan dengan Squid kode sumber. Anda mungkin ingin memberikan beberapa opsi di atas. / Configure perintah untuk menentukan lokasi program cumi, file konfigurasi, dll
Konfigurasi Squid
Segala sesuatu di Squid dikonfigurasi menggunakan satu file konfigurasi, yang disebut squid.conf. Tergantung pada distribusi Linux anda, mungkin file di / etc / squid.conf atau di / etc / squid / squid.conf. Sebelum melanjutkan lebih jauh, Anda harus menemukan file ini di sistem anda. Salah satu cara untuk melakukannya adalah dengan perintah:
locate squid.conf
Ada beberapa metode mengkonfigurasi squid menggunakan berbasis web atau GUI lainnya. GUI ini memiliki kemampuan untuk membaca, memahami, dan menulis kembali file konfigurasi ke tempat yang benar.
Alih-alih memfokuskan diri pada salah satu GUI ini, saya akan menunjukkan beberapa contoh Squid mengkonfigurasi secara manual. Untuk tujuan ini, Anda akan memerlukan editor teks seperti vi atau emacs (atau bahkan berbasis GUI editor seperti Kedit jika Anda suka), dan Anda juga akan perlu login sebagai root server Anda, sehingga Anda memiliki akses tulis ke file konfigurasi Squid.
File konfigurasi Squid berisi banyak, banyak pilihan. Aku tidak akan mencakup semua pilihan ini (ada komentar seluruh file untuk pilihan ini artinya apa), tapi aku akan memusatkan perhatian pada beberapa pilihan yang paling umum benar.
Konfigurasi default
Secara default, squid datang dengan sebuah file konfigurasi yang benar dan hampir sebagian besar bisa digunakan. Ini berisi pengaturan default untuk banyak pilihan yang memerlukan pengaturan, dan harus, dengan sendirinya, memungkinkan akses ke konfigurasi Squid Anda dalam cara yang cukup aman dari server lokal saja.
Untuk memungkinkan Squid untuk digunakan sebagai proxy server untuk seluruh jaringan anda, ada beberapa hal yang akan Anda ingin mengkonfigurasi sebelum Anda mulai menggunakan Squid.
Starting Point (Dasar) Konfigurasi
Ketika saya mulai menggunakan squid, saya menemukan bahwa sebagian besar komentar di file squid.conf yang bermanfaat dan informatif. Hari ini, bagaimanapun, aku telah mengembangkan sedikit kebiasaan menghapus semua dari mereka (termasuk baris kosong) sebelum aku mulai. Hal ini akan mengurangi Squid's 76K default file konfigurasi sebagai disertakan pada Red Hat 7,1-688 bytes! Saya menemukan bahwa saya hanya menggunakan beberapa item konfigurasi dalam file ini, dan file yang lebih kecil lebih mudah untuk bekerja dengan dalam sebuah editor.
Untuk dasar (seperti-yang disertakan) file konfigurasi squid, saya menambahkan pilihan berikut:
privatenet acl src 192.168.0.0/255.255.0.0
http_access memperbolehkan privatenet
cache_effective_user squid
cache_effective_group squid
Ada beberapa hal yang membuat catatan tentang pilihan ini:
* The acl src privatenet pernyataan di atas harus mencerminkan jaringan internal Anda. Sebagai contoh, saya punya beberapa jaringan pribadi terletak di belakang firewall yang menggunakan alamat pribadi yang ditetapkan IANA rentang 192.168.xx Demi kenyamanan, saya membiarkan seluruh jaringan 192.168.xx untuk mengakses squid karena tidak ada ini di Internet, karena semua mereka harus swasta.
* The http_access memungkinkan pernyataan privatenet harus terjadi sebelum defaulthttp_access baris di file squid.conf, yaitu http_access deny all. Berikut adalah contoh, dari file squid.conf saya:
privatenet acl src 192.168.0.0/255.255.0.0
http_access allow localhost
http_access memperbolehkan privatenet
http_access deny all
* Secara default, Red Hat Linux menciptakan user baru bernama 'cumi', dalam kelompok yang disebut 'cumi', dan membuat pengguna ini pemilik / var / spool / squid direktori yang merupakan tempat squid menyimpan cache. Masuk akal untuk menjalankan proses squid seperti ini (Unprivileged) 'squid' user, untuk tujuan keamanan. Dengan cara itu, siapa pun berhasil hack proses cumi menggunakan buffer overflow atau serangan yang sama tidak akan berakhir dengan akses root ke mesin anda.
Contoh konfigurasi
Perhatikan bahwa file konfigurasi di atas entri hanya menyediakan sebagian kecil dari apa yang Anda mungkin ingin melakukan dengan proxy squid Anda. Beberapa contoh lain yang dicatat dalam bagian ini.
Logging
Secara default, squid menyimpan beberapa informasi dalam beberapa file log. Saya lebih suka untuk menentukan file-file log squid yang saya harapkan untuk menggunakan secara langsung dalam file squid.conf, sebagai berikut:
cache_access_log / var / log / squid / access.log
cache_log / var / log / squid / cache.log
cache_store_log none
Dengan baris di atas, squid akan menyimpan pesan kesalahan pada file / var / log / squid / cache.log (ini harus diperiksa secara berkala), dan mengakses pesan di file / var / log / squid / access_log. Ada beberapa program yang berguna yang dapat menganalisa file log akses, termasuk SARG (sebelumnya dikenal sebagai sqmgrlog).
Saya tidak pernah menemukan sesuatu yang berguna dalam cumi's cache_store_log file, sehingga ini dapat dinonaktifkan secara aman dengan menggunakan baris di atas.
Cache Akses
Anda mungkin ingin memperbolehkan akses ke cache dari sejumlah jaringan. Hal ini dilakukan dengan menggunakan berbagai acl dan http_access baris.
Perhatikan bahwa baris acl mendefinisikan sebuah jaringan atau perangkat akses lain, sedangkan http_access (acl) (allow / deny) line hibah atau menolak akses ke acl yang telah ditetapkan. Oleh karena itu, Anda harus menambahkan baris acl Anda sebelum http_access baris di file konfigurasi anda.
Aku telah memberikan salah satu contoh yang mengizinkan akses ke jaringan pribadi di atas. Perhatikan bahwa Anda sebaiknya hentikan penggunaan catch-semua baris seperti http_access mengizinkan semua kecuali jika Anda benar-benar menginginkan seluruh Internet menggunakan Server squid sebagai web cache!
Berbicara dengan eksternal (Upstream) Proxy
Maka ada gunanya untuk menggunakan proxy untuk Squid hulu. Ini dapat mempercepat akses Internet sampai terasa misalnya, ketika ISP Anda juga memiliki cache squid, bahwa banyak pengguna akses. ISP cache dapat, dari waktu ke waktu, membangun cache yang besar dari berbagai situs, memungkinkan akses cepat ke situs-situs pada jaringan Anda.
Untuk komunikasi antar-cache, squid mendukung protokol dikenal sebagai 'ICP'. ICP memungkinkan cache untuk berkomunikasi satu sama lain dengan menggunakan paket-paket UDP cepat, mengirimkan salinan file cache kecil satu sama lain dalam satu paket UDP jika mereka tersedia. Banyak produk cache lain juga mendukung ICP, dan jika Anda akan cache jaringan bersama-sama maka Anda harus memastikan bahwa mereka semua mendukung ICP atau protokol yang sama.
Untuk menggunakan proxy hulu secara efektif, Anda harus terlebih dahulu menentukan apa itu alamat (misalnya: proxyserver.yourisp.com), dan apa cache dan ICP port (jika ada) yang digunakannya. Sebagian besar ISP dengan senang hati akan memberi Anda informasi dari situs web mereka atau melalui telepon.
Hulu menggunakan proxy yang mendukung ICP sederhana, menggunakan baris seperti ini:
proxy.yourisp.com cache_peer parent 3128 3130
prefer_direct off
The cache_peer Baris tersebut menetapkan nama host, jenis cache ( "orang tua"), port proxy (3128) dan ICP port (dalam kasus ini, default, yang 3.130).
Jika orangtua Anda cache tidak mendukung ICP maka anda bisa mencoba kombinasi berikut ini sebagai gantinya:
cache_peer orangtua proxy.yourisp.com 3128 7 no-query default
prefer_direct off
Saudara Proxies dan Berbagi Caches
Catatan bahwa dalam situasi volume tinggi, atau perusahaan dengan beberapa sambungan ke Internet, Squid mendukung multi-orangtua, multi-saudara hierarki cache, asalkan semua dukungan cache ICP. Sebagai contoh, perusahaan Anda dapat beroperasi dua cache, masing-masing dengan koneksi internet mereka sendiri tetapi berbagi tulang punggung jaringan umum. Setiap cache bisa memiliki cache_peer baris di file konfigurasi seperti:
theotherproxy.yournetwork.com cache_peer sibling 3128 3130
Perhatikan bahwa spesifikasi rekan telah berubah menjadi saudara kandung, yang berarti bahwa kami akan mengambil file dari cache lainnya jika mereka hadir di sana, kalau tidak kita akan menggunakan koneksi internet kita sendiri.
Mengingkari Buruk File
Ada beberapa file yang saya tidak mengizinkan pengguna untuk menjemput saya, termasuk yang terkenal BUGFIX.EXE WIN-file yang didistribusikan dengan virus Melissa. Baris ACL sederhana untuk menghentikan file ini dari yang didownload adalah sebagai berikut:
acl nastyfile dstdom_regex-i WIN [.*] BUG [.*] EXE
http_access deny nastyfile
Konfigurasi Advanced
Ada sejumlah trik lain yang dapat Anda lakukan dengan proxy squid Anda. Ini termasuk hal-hal seperti otentikasi, transparan proxy, menolak akses ke file tertentu (misalnya: file MP3) selama jam kerja, dll Satu kata peringatan: file konfigurasi Squid adalah rapuh, dan mudah patah. Jika Anda memecah file konfigurasi maka Squid akan menolak untuk bekerja, dan dapat memberikan pesan kesalahan yang tidak cukup dimengerti bagi Anda untuk mencari tahu apa yang Anda istirahat. Untuk alasan itu, mungkin dianjurkan untuk:
* Membuat perubahan kecil, satu per satu waktu;
* Menyimpan salinan cadangan pekerjaan Anda cumi file konfigurasi, dan,
* Menyimpan file konfigurasi squid anda dibawah kontrol versi, seperti di RCS atau CVS.
Otentikasi
Otentikasi pengguna untuk cumi-cumi adalah salah satu tugas yang paling umum yang diperlukan dari administrator, misalnya, di mana perusahaan Anda hibah atau menyangkal akses internet oleh pengguna.
Setting up an acl untuk memperbolehkan atau menolak akses pengguna dapat dilakukan dengan baris file konfigurasi sebagai berikut:
authenticate_program / Anda / authentication / program
validusers acl proxy_auth REQUIRED
http_access memperbolehkan validusers
Satu-satunya yang tersisa adalah mencari yang sesuai program otentikasi proxy. Perhatikan bahwa cumi-cumi tidak menyediakan otentikasi internal, Anda harus menunjukkan garis authenticate_program di program autentikasi eksternal tertentu.
Squid (seperti yang disertakan pada Red Hat 7.1) dilengkapi dengan sejumlah program otentikasi, disimpan di / usr / lib / squid. Ini termasuk smb_auth (untuk otentikasi ke NT domain), squid_ldap_auth (untuk otentikasi ke direktori LDAP), dan calon yang saya sukai adalah pam_auth, yang menggunakan sistem perpustakaan PAM untuk autentikasi pengguna. Keuntungan menggunakan pam_auth adalah bahwa Anda dapat mengkonfigurasi PAM untuk otentikasi pengguna melalui berbagai metode, dan memiliki seluruh sistem dan semua program di atasnya (termasuk program login, XDM, Squid, Apache, dan lain-lain) semua menggunakan otentikasi sama informasi konfigurasi dan server.
Untuk mengkonfigurasi pam_auth, Anda akan perlu menyiapkan berikut (perhatikan bahwa ini adalah untuk Red Hat Linux, petunjuk dapat berbeda-beda untuk Debian):
* Buat file / etc / pam.d / squid file. Hal ini akan terlihat seperti ini:
auth required / lib / security / pam_stack.so service = system-auth
auth required / lib / security / pam_nologin.so
account required / lib / security / pam_stack.so service = system-auth
password diperlukan / lib / security / pam_stack.so service = system-auth
session required / lib / security / pam_stack.so service = system-auth
* Pastikan Anda memiliki baris berikut dalam file konfigurasi squid Anda:
authenticate_program / usr / lib / squid / pam_auth
* Pastikan bahwa Anda telah menjalankan authconfig pada Red Hat Anda, sistem penentuan apa otentikasi server yang Anda gunakan. Saya lebih suka menggunakan LDAP, walaupun Anda dapat menggunakan NIS, NIS +, atau sandi bayangan file.
Transparan proxy
Transparan proxy adalah sebuah metode di mana Anda dapat menempatkan sebuah server proxy antara jaringan dan Internet, dan memiliki semua akses WWW diarahkan ke proxy server secara otomatis (perlu diketahui bahwa bekerja untuk WWW tapi tidak untuk FTP). Pengguna harus sadar bahwa proxy transparan dan otentikasi tidak kompatibel. Mereka tidak dapat dilakukan baik pada server yang sama. Jika Anda mencobanya, mungkin terlihat seperti itu bekerja tapi tidak. Jika Anda harus menggunakan otentikasi, maka jangan coba transparan proxy.
Untuk mengatur proxy transparan, Anda memerlukan dua hal:
* Firewall aturan, mengarahkan traffic keluar dari jaringan anda ke server proxy.
* Sebuah aturan yang memungkinkan konfigurasi squid squid bertindak sebagai transparent proxy.
Untuk mengatur aturan firewall anda, Anda akan memerlukan aturan seperti berikut (yang adalah untuk ipchains):
/ sbin / ipchains-A input-p tcp-s 0 / 0-d 0 / 0 80-j REDIRECT 3.128
Untuk iptables (Linux Kernel 2.4 dan kemudian) pengguna, Anda mungkin ingin mendirikan sebuah firewall berbasis iptables pada server squid. Sebagai bagian dari firewall, Anda akan perlu untuk membuat aturan DNAT pemetaan lalu lintas keluar pada port 80 ke port 3128 dari proxy server. Beberapa program yang menyediakan antarmuka GUI untuk iptables ini dibahas dalam Perbandingan Peralatan iptables Otomasi oleh Anton Chuvakin dan ada juga sebuah rumah Netfilter halaman di mana Anda dapat menemukan beberapa dokumentasi dan sebuah HOWTO dengan beberapa petunjuk lebih rinci tentang pengaturan aturan NAT.
Dibutuhkan baris konfigurasi Squid Squid agar bertindak sebagai transparent proxy adalah sebagai berikut:
httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
Masalah Keamanan
Sebelum Exposing Server Anda ke Internet
Sebelum membuka server Anda ke Internet, Anda harus memastikan bahwa semua layanan yang tidak diinginkan dimatikan atau dinonaktifkan, bahwa firewall yang aman pada tempatnya, dan bahwa Anda telah memastikan bahwa beberapa tingkat di tempat pemantauan untuk mendeteksi dan mencegah gangguan. Sebelumnya SecurityFocus artikel, seperti Linux mengamankan bagian 1 dan bagian 2 memberikan informasi lebih lanjut tentang topik ini.
Pemantauan
Seperti pada server yang terhubung ke Internet, Anda mungkin ingin memiliki semacam pemantauan yang dilakukan. Beberapa program yang berguna untuk melakukan hal ini mencakup logcheck (Mengamankan Linux disebutkan dalam bagian 2, yang tercantum di atas), dan AIDE, yang tercakup dalam Mengamankan Linux dengan AIDE oleh Kristy Westphal.
Bagikan
Konfigurasi LINUX dan Squid sebagai Web Proxy
4/
5
Oleh
Saktian