Oke Pada Panduan Kali ini akan menunjukkan Anda bagaimana untuk menginstal dan mengkonfigurasi server proxy dengan lusca di Ubuntu Server 12.04. Lusca adalah garpu dari Squid-2 perkembangan pohon. Proyek Lusca bertujuan untuk memperbaiki kekurangan dalam Squid-2 basis kode sementara mempertahankan fungsi Squid-2 dan stabilitas. Proyek ini menyediakan ada Squid-2 pengguna dengan jalur migrasi ke basis kode aktif dikembangkan dan pengguna baru dengan, produk software diprediksi stabil untuk menyebarkan - lusca.org.Instalasi dan konfigurasi dari lusca di Ubuntu Server 12,04 sangat mudah. Sekarang, paket Lusca tersedia pada repositori ubuntu resmi. Lusca dianjurkan diinstal pada instalasi segar ubuntu server.Langkah-langkah Instalasi dan Konfigurasi Lusca sebagai Proxy Server di Ubuntu Server 12.04.
Langkah 1. Install Ubuntu Server 12.04 dan menggunakan partisi secara manual dengan tabel partisi berikut (Dalam hal ini saya harus 250 GB HDD dan RAM 4 GB) Type Size Location FileSystem Mount Primary 30 GB Beginning ext4 / Primary 500 MB Beginning ext4 /boot Primary 8192 MB Beginning swap swap Logical 25 GB End btrfs /cache-1 Logical 25 GB End btrfs /cache-2 Logical 25 GB End btrfs /cache-3 Logical 25 GB End btrfs /cache-4 Logical 25 GB End btrfs /cache-5 Logical 46 GB End ext4 /home Logical 5 GB End ext4 /opt Logical 5 GB End ext4 /srv Logical 5 GB End ext4 /tmp Logical 5 GB End ext4 /usr Logical 5 GB End ext4 /usr/local Langkah 2. Pastikan Anda update paket ubuntu dan program yang diinstal. apt-get update -y && apt-get upgrade -y Langkah 3. Instal Lusca dan paket lainnya. apt-get install lusca squidclient squid-cgi ccze Langkah 4. Backup file Original konfigurasi lusca : mv /etc/lusca/squid.conf /etc/lusca/squid.conf.original  Langkah 5.  Buat File konfigurasi lusca : nano /etc/lusca/squid.conf  Kemudian isi kan File tersebut dengan script di bawah ini : #============================================= # Port and Transparent #============================================= http_port 3128 transparent server_http11 on icp_port 0 #============================================= # Lusca Cache Directory #============================================= cache_dir aufs /cache-1/ 25000 15 256 cache_dir aufs /cache-2/ 25000 15 256 cache_dir aufs /cache-3/ 25000 15 256 cache_dir aufs /cache-4/ 25000 15 256 cache_dir aufs /cache-5/ 25000 15 256 cache_replacement_policy heap LFUDA memory_replacement_policy heap LFUDA #============================================= # Lusca Log Options #============================================= emulate_httpd_log on logformat squid %tl %6tr %>a %Ss/%03Hs %) { @X = split; # $X[1] =~ s/&sig=.*//; $x = $X[0] . " "; $_ = $X[1]; $u = $X[1]; # ========================================================================== # Speedtest # ========================================================================== #if (m/^http:\/\/(.*)\/speedtest\/(.*\.(jpg|txt))\?(.*)/) { # print $x . "http://www.speedtest.net.SQUIDINTERNAL/speedtest/" . $2 . "\n"; # ========================================================================== # Mediafire # ========================================================================== #} elseif if (m/^http:\/\/199\.91\.15\d\.\d*\/\w{12}\/(\w*)\/(.*)/) { print $x . "http://www.mediafire.com.SQUIDINTERNAL/" . $1 ."/" . $2 . "\n"; # ========================================================================== # Fileserve # ========================================================================== } elsif (m/^http:\/\/fs\w*\.fileserve\.com\/file\/(\w*)\/[\w-]*\.\/(.*)/) { print $x . "http://www.fileserve.com.SQUIDINTERNAL/" . $1 . "./" . $2 . "\n"; # ========================================================================== # Filesonic # ========================================================================== } elsif (m/^http:\/\/s[0-9]*\.filesonic\.com\/download\/([0-9]*)\/(.*)/) { print $x . "http://www.filesonic.com.SQUIDINTERNAL/" . $1 . "\n"; # ========================================================================== # 4shared # ========================================================================== } elsif (m/^http:\/\/[a-zA-Z]{2}\d*\.4shared\.com(:8080|)\/download\/(.*)\/(.*\..*)\?.*/) { print $x . "http://www.4shared.com.SQUIDINTERNAL/download/$2\/$3\n"; # ========================================================================== # 4shared preview # ========================================================================== } elsif (m/^http:\/\/[a-zA-Z]{2}\d*\.4shared\.com(:8080|)\/img\/(\d*)\/\w*\/dlink__2Fdownload_2F(\w*)_3Ftsid_3D[\w-]*\/preview\.mp3\?sId=\w*/) { print $x . "http://www.4shared.com.SQUIDINTERNAL/$2\n"; # ========================================================================== # Photos-X.ak.fbcdn.net where X a-z # ========================================================================== } elsif (m/^http:\/\/photos-[a-z](\.ak\.fbcdn\.net)(\/.*\/)(.*\.jpg)/) { print $x . "http://photos" . $1 . "/" . $2 . $3 . "\n"; # ========================================================================== # YX.sphotos.ak.fbcdn.net where X 1-9, Y a-z # ========================================================================== } elsif (m/^http:\/\/[a-z][0-9]\.sphotos\.ak\.fbcdn\.net\/(.*)\/(.*)/) { print $x . "http://photos.ak.fbcdn.net/" . $1 ."/". $2 . "\n"; # ========================================================================== # maps.google.com # ========================================================================== } elsif (m/^http:\/\/(cbk|mt|khm|mlt|tbn)[0-9]?(.google\.co(m|\.uk|\.id).*)/) { print $x . "http://" . $1 . $2 . "\n"; # ========================================================================== # Compatibility for old cached get_video?video_id # ========================================================================== } elsif (m/^http:\/\/([0-9.]{4}|.*\.youtube\.com|.*\.googlevideo\.com|.*\.video\.google\.com).*?(videoplayback\?id=.*?|video_id=.*?)\&(.*?)/) { $z = $2; $z =~ s/video_id=/get_video?video_id=/; print $x . "http://video-srv.youtube.com.SQUIDINTERNAL/" . $z . "\n"; # ========================================================================== # Youtube fix # ========================================================================== } elsif (m/^http:\/\/([0-9.]{4}|.*\.youtube\.com|.*\.googlevideo\.com|.*\.video\.google\.com)\/videoplayback\?(.*)/) { $p_str = $2; $tag = ""; $alg = ""; $id = ""; $range = ""; if ($p_str =~ m/(itag=[0-9]*)/){$tag = "&".$1} if ($p_str =~ m/(algorithm=[a-z]*\-[a-z]*)/){$alg = "&".$1} if ($p_str =~ m/(id=[a-zA-Z0-9]*)/){$id = "&".$1} if ($p_str =~ m/(range=[0-9\-]*)/){$range = "&".$1; $range =~ s/-//; $range =~ s/range=//; } print $x . "http://video-srv.youtube.com.SQUIDINTERNAL/" . $tag . "&" . $alg . "&" . $id . "&" . $range . "\n"; # ========================================================================== # Google Analytic # ========================================================================== } elsif (m/^http:\/\/www\.google-analytics\.com\/__utm\.gif\?.*/) { print $x . "http://www.google-analytics.com/__utm.gif\n"; # ========================================================================== # Cache High Latency Ads # ========================================================================== } elsif (m/^http:\/\/([a-z0-9.]*)(\.doubleclick\.net|\.quantserve\.com|\.googlesyndication\.com|yieldmanager|cpxinteractive)(.*)/) { $y = $3;$z = $2; for ($y) { s/pixel;.*/pixel/; s/activity;.*/activity/; s/(imgad[^&]*).*/\1/; s/;ord=[?0-9]*//; s/;&timestamp=[0-9]*//; s/[&?]correlator=[0-9]*//; s/&cookie=[^&]*//; s/&ga_hid=[^&]*//; s/&ga_vid=[^&]*//; s/&ga_sid=[^&]*//; # s/&prev_slotnames=[^&]*// # s/&u_his=[^&]*//; s/&dt=[^&]*//; s/&dtd=[^&]*//; s/&lmt=[^&]*//; s/(&alternate_ad_url=http%3A%2F%2F[^(%2F)]*)[^&]*/\1/; s/(&url=http%3A%2F%2F[^(%2F)]*)[^&]*/\1/; s/(&ref=http%3A%2F%2F[^(%2F)]*)[^&]*/\1/; s/(&cookie=http%3A%2F%2F[^(%2F)]*)[^&]*/\1/; s/[;&?]ord=[?0-9]*//; s/[;&]mpvid=[^&;]*//; s/&xpc=[^&]*//; # yieldmanager s/\?clickTag=[^&]*//; s/&u=[^&]*//; s/&slotname=[^&]*//; s/&page_slots=[^&]*//; } print $x . "http://" . $1 . $2 . $y . "\n"; # ========================================================================== # Cache high latency ads # ========================================================================== } elsif (m/^http:\/\/(.*?)\/(ads)\?(.*?)/) { print $x . "http://" . $1 . "/" . $2 . "\n"; # ========================================================================== # spicific servers starts here.... # ========================================================================== } elsif (m/^http:\/\/(www\.ziddu\.com.*\.[^\/]{3,4})\/(.*?)/) { print $x . "http://" . $1 . "\n"; # ========================================================================== # cdn, varialble 1st path # ========================================================================== } elsif (($u =~ /filehippo/) && (m/^http:\/\/(.*?)\.(.*?)\/(.*?)\/(.*)\.([a-z0-9]{3,4})(\?.*)?/)) { @y = ($1,$2,$4,$5); $y[0] =~ s/[a-z0-9]{2,5}/cdn./; print $x . "http://" . $y[0] . $y[1] . "/" . $y[2] . "." . $y[3] . "\n"; # ========================================================================== # Rapidshare # ========================================================================== } elsif (($u =~ /rapidshare/) && (m/^http:\/\/(([A-Za-z]+[0-9-.]+)*?)([a-z]*\.[^\/]{3}\/[a-z]*\/[0-9]*)\/(.*?)\/([^\/\?\&]{4,})$/)) { print $x . "http://cdn." . $3 . "/SQUIDINTERNAL/" . $5 . "\n"; } elsif (($u =~ /maxporn/) && (m/^http:\/\/([^\/]*?)\/(.*?)\/([^\/]*?)(\?.*)?$/)) { print $x . "http://" . $1 . "/SQUIDINTERNAL/" . $3 . "\n"; # ========================================================================== # like porn hub variables url and center part of the path, filename etention 3 or 4 with or without ? at the end # ========================================================================== } elsif (($u =~ /tube8|pornhub|xvideos/) && (m/^http:\/\/(([A-Za-z]+[0-9-.]+)*?(\.[a-z]*)?)\.([a-z]*[0-9]?\.[^\/]{3}\/[a-z]*)(.*?)((\/[a-z]*)?(\/[^\/]*){4}\.[^\/\?]{3,4})(\?.*)?$/)) { print $x . "http://cdn." . $4 . $6 . "\n"; #...spicific servers end here. # ========================================================================== # Photos-X.ak.fbcdn.net where X a-z # ========================================================================== } elsif (m/^http:\/\/photos-[a-z].ak.fbcdn.net\/(.*)/) { print $x . "http://photos.ak.fbcdn.net/" . $1 . "\n"; # ========================================================================== # For yimg.com video # ========================================================================== } elsif (m/^http:\/\/(.*yimg.com)\/\/(.*)\/([^\/\?\&]*\/[^\/\?\&]*\.[^\/\?\&]{3,4})(\?.*)?$/) { print $x . "http://cdn.yimg.com//" . $3 . "\n"; # ========================================================================== # For yimg.com doubled # ========================================================================== } elsif (m/^http:\/\/(.*?)\.yimg\.com\/(.*?)\.yimg\.com\/(.*?)\?(.*)/) { print $x . "http://cdn.yimg.com/" . $3 . "\n"; # ========================================================================== # For yimg.com with &sig= # ========================================================================== } elsif (m/^http:\/\/(.*?)\.yimg\.com\/(.*)/) { @y = ($1,$2); $y[0] =~ s/[a-z]+[0-9]+/cdn/; $y[1] =~ s/&sig=.*//; print $x . "http://" . $y[0] . ".yimg.com/" . $y[1] . "\n"; # ========================================================================== # Youjizz. We use only domain and filename # ========================================================================== } elsif (($u =~ /media[0-9]{2,5}\.youjizz/) && (m/^http:\/\/(.*)(\.[^\.\-]*?\..*?)\/(.*)\/([^\/\?\&]*)\.([^\/\?\&]{3,4})((\?|\%).*)?$/)) { @y = ($1,$2,$4,$5); $y[0] =~ s/(([a-zA-A]+[0-9]+(-[a-zA-Z])?$)|(.*cdn.*)|(.*cache.*))/cdn/; print $x . "http://" . $y[0] . $y[1] . "/" . $y[2] . "." . $y[3] . "\n"; # ========================================================================== # General purpose for cdn servers. add above your specific servers. # ========================================================================== } elsif (m/^http:\/\/([0-9.]*?)\/\/(.*?)\.(.*)\?(.*?)/) { print $x . "http://squid-cdn-url//" . $2 . "." . $3 . "\n"; # ========================================================================== # Generic http://variable.domain.com/path/filename."ex" "ext" or "exte" with or withour "? or %" # ========================================================================== } elsif (m/^http:\/\/(.*)(\.[^\.\-]*?\..*?)\/(.*)\.([^\/\?\&]{2,4})((\?|\%).*)?$/) { @y = ($1,$2,$3,$4); $y[0] =~ s/(([a-zA-A]+[0-9]+(-[a-zA-Z])?$)|(.*cdn.*)|(.*cache.*))/cdn/; print $x . "http://" . $y[0] . $y[1] . "/" . $y[2] . "." . $y[3] . "\n"; # ========================================================================== # generic http://variable.domain.com/... # ========================================================================== } elsif (m/^http:\/\/(([A-Za-z]+[0-9-]+)*?|.*cdn.*|.*cache.*)\.(.*?)\.(.*?)\/(.*)$/) { print $x . "http://cdn." . $3 . "." . $4 . "/" . $5 . "\n"; # ========================================================================== # spicific extention that ends with ? # ========================================================================== } elsif (m/^http:\/\/(.*?)\/(.*?)\.(jp(e?g|e|2)|gif|png|tiff?|bmp|ico|flv|on2)(.*)/) { print $x . "http://" . $1 . "/" . $2 . "." . $3 . "\n"; # ========================================================================== # all that ends with ; # ========================================================================== } elsif (m/^http:\/\/(.*?)\/(.*?)\;(.*)/) { print $x . "http://" . $1 . "/" . $2 . "\n"; } else { print $x . $_ . "sucks\n"; } } #=================================EOF======================================= Lalu tambahkan permision. chown proxy:proxy /etc/squid/storeurl.pl chmod +x /etc/squid/storeurl.pl Langkah 7. Mengubah izin direktorit cache lusca. chown proxy:proxy /cache-{1,2,3,4,5} chmod 777 /cache-{1,2,3,4,5} Langkah 8. Debug Lusca, untuk memeriksa setiap error dengan perintah berikut. lusca -d1 Langkah 9. Apabila ada kesalahan restart lusca daemon dengan perintah berikut. /etc/init.d/lusca restart atau dengan ini. service lusca restart Langkah 10. Kemudian pemantauan lusca access.log : tail -f /var/log/lusca/access.log | ccze

Posting Komentar

 
Top