Pengantar
Sebuah server web proxy adalah 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 server proxy juga dapat bertindak sebagai cache, memungkinkan
pengguna untuk berbagi download secara transparan dan mempercepat akses
internet, terutama untuk file yang sering digunakan. Squid adalah web kinerja tinggi dan relatif aman proxy server yang mencakup fasilitas caching baik. Ini adalah salah satu yang paling umum digunakan proxy server di Internet. Informasi lebih lanjut tentang Squid dapat diperoleh http://www.squid-cache.org/ . Artikel ini akan memberikan gambaran umum menyiapkan Linux dan Squid sebagai proxy server web.
Instalasi Linux
Cara terbaik untuk menginstal Linux adalah dengan menggunakan salah satu dari banyak distribusi tersedia secara bebas. 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. Misalnya, Hat petunjuk instalasi Linux Red untuk versi 7.1 tersedia di sini . Anda juga mungkin 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 versi paket Squid, namun tidak dapat diinstal pada saat
distribusi dipasang. Misalnya, setelah menginstal Red Hat Linux 7.1, Anda akan menemukan bahwa paket Squid tidak terpasang. Squid terletak di Red Hat CD instalasi # 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 instalasi.
Pada sistem Debian Linux, 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, sehingga Anda harus memeriksa dengan orang yang memasok CD-ROM Anda.
Instalasi Dari Sumber
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/ .
The Squid kode sumber datang dalam file tar terkompresi, sehingga Anda akan perlu untuk uncompress itu sebagai berikut:
zcat cumi-2.3.STABLE4-src.tar.gz | tar xf -
(Catatan: untuk melakukan hal ini, saya memperoleh 2.3.STABLE4
pelepasan Squid dari situs web Squid Anda mungkin memiliki rilis yang
berbeda dari Squid, sehingga mungkin perlu menyesuaikan perintah di
atas..
Setelah Anda memiliki file terkompresi tar, 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, baca file INSTALL yang disediakan dengan kode sumber Squid.
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, file tersebut mungkin 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 melakukan ini adalah dengan perintah:
menemukan squid.conf
Ada beberapa metode mengkonfigurasi squid menggunakan berbasis web atau GUI lainnya. Ini GUI memiliki kemampuan untuk membaca, memahami, dan menulis kembali file konfigurasi ke tempat yang benar.
Alih-alih berfokus 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 editor berbasis GUI seperti kedit jika Anda suka),
dan Anda juga akan perlu login ke server Anda sebagai root 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
seperti apa pilihan ini artinya), tapi saya akan fokus untuk mendapatkan
beberapa pilihan yang paling umum yang benar.
Konfigurasi Default
Secara default, Squid datang dengan sebuah file konfigurasi yang sebagian besar benar dan hampir bisa digunakan.
Ini berisi pengaturan default untuk banyak pilihan yang membutuhkan
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, saya telah mengembangkan sedikit kebiasaan
menghapus semua dari mereka (termasuk baris kosong) sebelum aku mulai. Hal ini akan mengurangi 76K file konfigurasi default Squid sebagai disertakan pada Red Hat 7,1-688 byte!
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 disediakan) file konfigurasi squid, saya menambahkan opsi berikut:
acl src privatenet 192.168.0.0/255.255.0.0 http_access memungkinkan privatenet cache_effective_user cumi cumi cache_effective_group
Ada beberapa hal untuk membuat catatan mengenai opsi 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 IANA ditugaskan alamat pribadi berkisar 192.168.xx Demi kenyamanan, saya memperbolehkan jaringan 192.168.xx untuk mengakses seluruh squid karena tidak ada salah satu di Internet, karena semua dari mereka harus swasta.
- Http_access memungkinkan pernyataan privatenet harus terjadi sebelum garis default http_access di file squid.conf, yaitu http_access deny all. Berikut adalah contoh, dari file squid.conf saya:
acl src privatenet 192.168.0.0/255.255.0.0 http_access allow localhost http_access memungkinkan 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 sebagai ini (unprivileged) 'squid' user, untuk tujuan keamanan. Dengan begitu, siapa pun yang mengelola untuk hack proses cumi menggunakan buffer overflow atau serangan serupa tidak akan berakhir dengan akses root ke mesin anda.
Konfigurasi Contoh
Perhatikan bahwa entri file konfigurasi di atas hanya menyediakan
sebagian kecil dari apa yang Anda mungkin ingin lakukan 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 log yang saya harapkan Squid
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
pesan akses pada file / var / log / squid / access.log. Ada beberapa program yang berguna yang dapat menganalisa file log akses, termasuk SARG (sebelumnya dikenal sebagai sqmgrlog).
Saya belum pernah menemukan sesuatu yang berguna dalam file
cache_store_log cumi, sehingga ini dapat dinonaktifkan secara aman
dengan menggunakan baris di atas.
Cache Access
Anda mungkin ingin untuk memungkinkan akses ke cache dari sejumlah jaringan. Hal ini dilakukan dengan menggunakan berbagai acl dan http_access baris.
Perhatikan bahwa garis acl mendefinisikan sebuah jaringan atau perangkat akses lain, sedangkan (acl) (allow / deny) hibah baris http_access atau menolak akses ke acl yang telah ditetapkan. Oleh karena itu, Anda harus menempatkan Anda ac l baris sebelum baris http_access di file konfigurasi anda.
Aku telah memberikan salah satu contoh yang memungkinkan 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 ingin seluruh Internet menggunakan Server squid sebagai web cache mereka!
Berbicara ke eksternal (Upstream) Proxy
Ini mungkin menguntungkan untuk menggunakan proxy hulu untuk Squid.
Hal ini dapat mempercepat akses Internet sampai terasa, misalnya,
ketika ISP Anda juga memiliki cache Squid bahwa banyak pengguna akses.
Cache ISP dapat, dari waktu ke waktu, membangun cache besar berbagai
situs, memungkinkan akses cepat ke situs-situs untuk jaringan Anda.
Untuk antar-Cache komunikasi, Squid mendukung protokol dikenal sebagai 'ICP'.
ICP memungkinkan cache untuk berkomunikasi satu sama lain menggunakan
paket UDP cepat, mengirimkan salinan file cache kecil satu sama lain
dalam satu paket UDP tunggal jika mereka tersedia.
Banyak produk cache lainnya 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 alamat itu (misalnya: proxyserver.yourisp.com), dan
cache apa dan port ICP (jika ada) yang digunakannya. Sebagian besar ISP dengan senang hati akan memberikan informasi bahwa dari situs web mereka atau melalui telepon.
Menggunakan proxy hulu yang mendukung ICP sederhana, menggunakan baris seperti ini:
cache_peer proxy.yourisp.com induk 3128 3130 prefer_direct off
Garis cache_peer menentukan nama host, jenis cache ("orang tua"), port proxy (3128) dan port ICP (dalam kasus ini, default, yang 3130).
Jika tembolok orangtua Anda tidak mendukung ICP maka anda bisa mencoba kombinasi berikut ini sebagai gantinya:
cache_peer proxy.yourisp.com induk 3128 7 no-permintaan standar prefer_direct off
Proxy saudara dan Berbagi Caches
Perhatikan bahwa dalam situasi volume tinggi, atau perusahaan dengan
beberapa sambungan ke Internet, Squid mendukung multi-orangtua,
multi-saudara hierarki cache, asalkan semua cache mendukung 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 garis cache_peer di file konfigurasi seperti:
cache_peer theotherproxy.yournetwork.com saudara 3128 3130
Perhatikan bahwa spesifikasi rekan telah berubah menjadi saudara,
yang berarti bahwa kami akan mengambil file dari cache lainnya jika
mereka hadir di sana, kalau tidak kita akan menggunakan koneksi internet
kita sendiri.
Menyangkal File Bad
Ada beberapa file yang saya tidak memungkinkan pengguna untuk mengambil
saya, termasuk yang terkenal berkas WIN-BUGFIX.EXE yang didistribusikan
dengan virus Melissa. Sebuah garis sederhana ACL untuk menghentikan file ini dari yang didownload adalah sebagai berikut:
acl nastyfile dstdom_regex-i WIN BUG [*.] EXE http_access [*.] menyangkal nastyfile
Konfigurasi Lanjutan
Ada sejumlah trik lain yang dapat Anda lakukan dengan proxy squid Anda.
Ini termasuk hal-hal seperti otentikasi, proxy transparan, menolak
akses ke file tertentu (misalnya: file MP3) selama jam kerja, dll Satu
kata peringatan: file konfigurasi Squid yang 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 dari file konfigurasi squid Anda bekerja, dan,
- menyimpan file konfigurasi squid Anda di bawah 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.
Menyiapkan acl untuk membolehkan atau menolak akses pengguna dapat dilakukan dengan baris file konfigurasi berikut:
authenticate_program / Anda / otentikasi / Program acl validusers proxy_auth DIBUTUHKAN http_access memungkinkan validusers
Satu-satunya hal yang tersisa adalah untuk menemukan program otentikasi proxy yang sesuai.
Perhatikan bahwa cumi-cumi tidak menyediakan otentikasi internal, Anda
harus menunjukkan garis authenticate_program pada program autentikasi
eksternal dari beberapa jenis.
Squid (seperti yang diberikan pada Red Hat 7.1) dilengkapi dengan sejumlah program otentikasi, disimpan di / usr / lib / squid.
Bandara smb_auth termasuk (untuk otentikasi ke NT domain),
squid_ldap_auth (untuk otentikasi ke direktori LDAP), dan calon pilihan
saya yang pam_auth, yang menggunakan sistem PAM perpustakaan untuk
mengotentikasi 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 yang.
Untuk mengkonfigurasi pam_auth, Anda akan perlu mengatur sebagai
berikut (perhatikan bahwa ini adalah untuk Red Hat Linux, petunjuk
mungkin berbeda untuk Debian):
- Buat file / etc / pam.d / squid. Ini akan terlihat seperti ini:
auth dibutuhkan / lib / security / pam_stack.so service = system-auth auth dibutuhkan / akun lib / security / pam_nologin.so dibutuhkan / lib / jasa security / pam_stack.so = password sistem-auth dibutuhkan / lib / security / pam_stack.so layanan = sesi sistem-auth dibutuhkan / 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 sistem Red Hat Anda untuk menentukan apa server otentikasi yang Anda gunakan. Saya lebih suka menggunakan LDAP, meskipun Anda dapat menggunakan NIS, NIS +, atau file shadow password.
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 (catatan bahwa ini
bekerja untuk WWW tapi tidak untuk FTP). Pengguna harus sadar bahwa proxy transparan dan otentikasi tidak kompatibel. Mereka tidak bisa berdua akan dilakukan 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:
- Sebuah aturan firewall, mengarahkan lalu lintas keluar dari jaringan Anda ke server proxy.
- Aturan konfigurasi squid squid memungkinkan untuk bertindak sebagai transparent proxy.
Untuk mengatur aturan firewall Anda, Anda akan memerlukan aturan seperti berikut (yang untuk ipchains):
/ Sbin / ipchains-A input-p tcp-s 0/0-d 0/0-j REDIRECT 80 3128
Untuk iptables (Linux Kernel 2.4 dan kemudian) pengguna, Anda mungkin
ingin mendirikan sebuah firewall berbasis iptables pada server squid
Anda.
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 iptables Alat Otomasi oleh Anton Chuvakin dan ada juga halaman rumah Netfilter di mana Anda dapat menemukan beberapa dokumentasi dan HOWTO dengan beberapa petunjuk lebih rinci tentang pengaturan aturan NAT.
Baris konfigurasi Squid diperlukan untuk memungkinkan Squid bertindak sebagai transparent proxy adalah sebagai berikut:
httpd_accel_host maya httpd_accel_port 80 httpd_accel_with_proxy pada httpd_accel_uses_host_header pada
Masalah Keamanan
Sebelum Mengekspos Server Anda ke Internet
Sebelum mengekspos server Anda ke Internet, Anda harus memastikan bahwa
semua layanan yang tidak diinginkan dimatikan atau dinonaktifkan, bahwa
sebuah firewall yang aman di tempat, dan bahwa Anda telah memastikan
bahwa beberapa tingkat pemantauan di tempat untuk mendeteksi dan
mencegah intrusi. SecurityFocus artikel sebelumnya, seperti mengamankan Linux bagian 1 dan bagian 2 memberikan informasi lebih lanjut tentang topik ini.
Pemantauan
Seperti server apapun yang terhubung ke Internet, Anda mungkin ingin memiliki semacam pemantauan yang dilakukan.
Beberapa program yang berguna untuk melakukan hal ini termasuk logcheck
(Mengamankan Linux disebutkan dalam bagian 2, yang tercantum di atas),
dan AIDE, yang tercakup dalam Mengamankan Linux dengan AIDE oleh Kristy Westphal.
0 comments:
Post a Comment