Last active
March 30, 2016 10:33
-
-
Save billyriantono/ad3eefad9f550bd8d328 to your computer and use it in GitHub Desktop.
Squid Lusca Auto Installer for CentOS
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
########################################################### | |
# Squid_LUSCA configuration Starts from Here ... # | |
# Thanks to some Indoensian friends for sharing Configs # | |
# Syed.Jahanzaib / 22nd April, 2014 # | |
# https://aacable.wordpress.com / [email protected] # | |
########################################################### | |
# HTTP Port for SQUID Service | |
http_port 143 transparent | |
server_http11 on | |
# Cache Pee, for parent proxy if you ahve any, or ignore it. | |
#cache_peer x.x.x.x parent 8080 0 | |
# Various Logs/files location | |
pid_filename /var/run/squid.pid | |
coredump_dir /var/spool/squid/ | |
error_directory /usr/share/squid/errors/English | |
icon_directory /usr/share/squid/icons | |
mime_table /etc/squid/mime.conf | |
access_log daemon:/var/log/squid/access.log squid | |
cache_log none | |
#debug_options ALL,1 22,3 11,2 #84,9 | |
referer_log /var/log/squid/referer.log | |
cache_store_log none | |
store_dir_select_algorithm round-robin | |
logfile_daemon /usr/lib/squid/logfile-daemon | |
logfile_rotate 1 | |
# Cache Policy | |
cache_mem 256 MB | |
maximum_object_size_in_memory 0 KB | |
memory_replacement_policy heap GDSF | |
cache_replacement_policy heap LFUDA | |
minimum_object_size 0 KB | |
maximum_object_size 1 GB | |
cache_swap_low 98 | |
cache_swap_high 99 | |
# Cache Folder Path, using 5GB for test | |
cache_dir aufs /cache-1 5000 16 256 | |
# ACL Section | |
acl all src all | |
acl manager proto cache_object | |
acl localhost src 127.0.0.1/32 | |
acl to_localhost dst 127.0.0.0/8 | |
acl localnet src 10.0.0.0/8 # RFC1918 possible internal network | |
acl localnet src 172.16.0.0/12 # RFC1918 possible internal network | |
acl localnet src 192.168.0.0/16 # RFC1918 possible internal network | |
acl localnet src 125.165.92.1 # RFC1918 possible internal network | |
acl SSL_ports port 443 | |
acl Safe_ports port 80 # http | |
acl Safe_ports port 21 # ftp | |
acl Safe_ports port 443 # https | |
acl Safe_ports port 70 # gopher | |
acl Safe_ports port 210 # wais | |
acl Safe_ports port 1025-65535 # unregistered ports | |
acl Safe_ports port 280 # http-mgmt | |
acl Safe_ports port 488 # gss-http | |
acl Safe_ports port 591 # filemaker | |
acl Safe_ports port 777 # multiling http | |
acl CONNECT method CONNECT | |
acl purge method PURGE | |
acl snmppublic snmp_community public | |
acl range dstdomain .windowsupdate.com | |
range_offset_limit -1 KB range | |
#=========================================================================== | |
# Loading Patch | |
acl DENYCACHE urlpath_regex \.(ini|ui|lst|inf|pak|ver|patch|md5|cfg|lst|list|rsc|log|conf|dbd|db)$ | |
acl DENYCACHE urlpath_regex (notice.html|afs.dat|dat.asp|patchinfo.xml|version.list|iepngfix.htc|updates.txt|patchlist.txt) | |
acl DENYCACHE urlpath_regex (pointblank.css|login_form.css|form.css|noupdate.ui|ahn.ui|3n.mh)$ | |
acl DENYCACHE urlpath_regex (Loader|gamenotice|sources|captcha|notice|reset) | |
no_cache deny DENYCACHE | |
range_offset_limit 1 MB !DENYCACHE | |
uri_whitespace strip | |
#=========================================================================== | |
# Rules to block few Advertising sites | |
acl ads url_regex -i .youtube\.com\/ad_frame? | |
acl ads url_regex -i .(s|s[0-90-9])\.youtube\.com | |
acl ads url_regex -i .googlesyndication\.com | |
acl ads url_regex -i .doubleclick\.net | |
acl ads url_regex -i ^http:\/\/googleads\.* | |
acl ads url_regex -i ^http:\/\/(ad|ads|ads[0-90-9]|ads\d|kad|a[b|d]|ad\d|adserver|adsbox)\.[a-z0-9]*\.[a-z][a-z]* | |
acl ads url_regex -i ^http:\/\/openx\.[a-z0-9]*\.[a-z][a-z]* | |
acl ads url_regex -i ^http:\/\/[a-z0-9]*\.openx\.net\/ | |
acl ads url_regex -i ^http:\/\/[a-z0-9]*\.u-ad\.info\/ | |
acl ads url_regex -i ^http:\/\/adserver\.bs\/ | |
acl ads url_regex -i !^http:\/\/adf\.ly | |
http_access deny ads | |
http_reply_access deny ads | |
#deny_info http://yoursite/yourad,htm ads | |
#==== End Rules: Advertising ==== | |
strip_query_terms off | |
acl yutub url_regex -i .*youtube\.com\/.*$ | |
acl yutub url_regex -i .*youtu\.be\/.*$ | |
logformat squid1 %{Referer}>h %ru | |
access_log /var/log/squid/yt.log squid1 yutub | |
# ==== Custom Option REWRITE ==== | |
acl store_rewrite_list urlpath_regex \/(get_video\?|videodownload\?|videoplayback.*id) | |
acl store_rewrite_list urlpath_regex \.(mp2|mp3|mid|midi|mp[234]|wav|ram|ra|rm|au|3gp|m4r|m4a)\? | |
acl store_rewrite_list urlpath_regex \.(mpg|mpeg|mp4|m4v|mov|avi|asf|wmv|wma|dat|flv|swf)\? | |
acl store_rewrite_list urlpath_regex \.(jpeg|jpg|jpe|jp2|gif|tiff?|pcx|png|bmp|pic|ico)\? | |
acl store_rewrite_list urlpath_regex \.(chm|dll|doc|docx|xls|xlsx|ppt|pptx|pps|ppsx|mdb|mdbx)\? | |
acl store_rewrite_list urlpath_regex \.(txt|conf|cfm|psd|wmf|emf|vsd|pdf|rtf|odt)\? | |
acl store_rewrite_list urlpath_regex \.(class|jar|exe|gz|bz|bz2|tar|tgz|zip|gzip|arj|ace|bin|cab|msi|rar)\? | |
acl store_rewrite_list urlpath_regex \.(htm|html|mhtml|css|js)\? | |
acl store_rewrite_list_web url_regex ^http:\/\/([A-Za-z-]+[0-9]+)*\.[A-Za-z]*\.[A-Za-z]* | |
acl store_rewrite_list_web_CDN url_regex ^http:\/\/[a-z]+[0-9]\.google\.com doubleclick\.net | |
acl store_rewrite_list_path urlpath_regex \.(mp2|mp3|mid|midi|mp[234]|wav|ram|ra|rm|au|3gp|m4r|m4a)$ | |
acl store_rewrite_list_path urlpath_regex \.(mpg|mpeg|mp4|m4v|mov|avi|asf|wmv|wma|dat|flv|swf)$ | |
acl store_rewrite_list_path urlpath_regex \.(jpeg|jpg|jpe|jp2|gif|tiff?|pcx|png|bmp|pic|ico)$ | |
acl store_rewrite_list_path urlpath_regex \.(chm|dll|doc|docx|xls|xlsx|ppt|pptx|pps|ppsx|mdb|mdbx)$ | |
acl store_rewrite_list_path urlpath_regex \.(txt|conf|cfm|psd|wmf|emf|vsd|pdf|rtf|odt)$ | |
acl store_rewrite_list_path urlpath_regex \.(class|jar|exe|gz|bz|bz2|tar|tgz|zip|gzip|arj|ace|bin|cab|msi|rar)$ | |
acl store_rewrite_list_path urlpath_regex \.(htm|html|mhtml|css|js)$ | |
acl getmethod method GET | |
storeurl_access deny !getmethod | |
#this is not related to youtube video its only for CDN pictures | |
storeurl_access allow store_rewrite_list_web_CDN | |
storeurl_access allow store_rewrite_list_web store_rewrite_list_path | |
storeurl_access allow store_rewrite_list | |
storeurl_access deny all | |
storeurl_rewrite_program /etc/squid/storeurl.pl | |
storeurl_rewrite_children 10 | |
storeurl_rewrite_concurrency 40 | |
# ==== End Custom Option REWRITE ==== | |
#=========================================================================== | |
# Custom Option REFRESH PATTERN | |
#=========================================================================== | |
refresh_pattern (get_video\?|videoplayback\?|videodownload\?|\.flv\?|\.fid\?) 43200 99% 43200 override-expire ignore-reload ignore-must-revalidate ignore-private | |
refresh_pattern -i (get_video\?|videoplayback\?|videodownload\?) 5259487 999% 5259487 override-expire ignore-reload reload-into-ims ignore-no-cache ignore-private | |
# -- refresh pattern for specific sites -- # | |
refresh_pattern ^http://*.jobstreet.com.*/.* 720 100% 10080 override-expire override-lastmod ignore-no-cache | |
refresh_pattern ^http://*.indowebster.com.*/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-auth | |
refresh_pattern ^http://*.21cineplex.*/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-reload ignore-no-cache ignore-auth | |
refresh_pattern ^http://*.atmajaya.*/.* 720 100% 10080 override-expire ignore-no-cache ignore-auth | |
refresh_pattern ^http://*.kompas.*/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern ^http://*.theinquirer.*/.* 720 100% 10080 override-expire ignore-no-cache ignore-auth | |
refresh_pattern ^http://*.blogspot.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern ^http://*.wordpress.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache | |
refresh_pattern ^http://*.photobucket.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern ^http://*.tinypic.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern ^http://*.imageshack.us/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern ^http://*.kaskus.*/.* 720 100% 28800 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern ^http://www.kaskus.com/.* 720 100% 28800 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern ^http://*.detik.*/.* 720 50% 2880 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern ^http://*.detiknews.*/*.* 720 50% 2880 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern ^http://video.liputan6.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern ^http://static.liputan6.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern ^http://*.friendster.com/.* 720 100% 10080 override-expire override-lastmod ignore-no-cache ignore-auth | |
refresh_pattern ^http://*.facebook.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern ^http://apps.facebook.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern ^http://*.fbcdn.net/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern ^http://profile.ak.fbcdn.net/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern ^http://static.playspoon.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern ^http://cooking.game.playspoon.com/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern -i http://[^a-z\.]*onemanga\.com/? 720 80% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern ^http://media?.onemanga.com/.* 720 80% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern ^http://*.yahoo.com/.* 720 80% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern ^http://*.google.com/.* 720 80% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern ^http://*.forummikrotik.com/.* 720 80% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
refresh_pattern ^http://*.linux.or.id/.* 720 100% 10080 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-auth | |
# -- refresh pattern for extension -- # | |
refresh_pattern -i \.(mp2|mp3|mid|midi|mp[234]|wav|ram|ra|rm|au|3gp|m4r|m4a)(\?.*|$) 5259487 999% 5259487 override-expire ignore-reload reload-into-ims ignore-no-cache ignore-private | |
refresh_pattern -i \.(mpg|mpeg|mp4|m4v|mov|avi|asf|wmv|wma|dat|flv|swf)(\?.*|$) 5259487 999% 5259487 override-expire ignore-reload reload-into-ims ignore-no-cache ignore-private | |
refresh_pattern -i \.(jpeg|jpg|jpe|jp2|gif|tiff?|pcx|png|bmp|pic|ico)(\?.*|$) 5259487 999% 5259487 override-expire ignore-reload reload-into-ims ignore-no-cache ignore-private | |
refresh_pattern -i \.(chm|dll|doc|docx|xls|xlsx|ppt|pptx|pps|ppsx|mdb|mdbx)(\?.*|$) 5259487 999% 5259487 override-expire ignore-reload reload-into-ims ignore-no-cache ignore-private | |
refresh_pattern -i \.(txt|conf|cfm|psd|wmf|emf|vsd|pdf|rtf|odt)(\?.*|$) 5259487 999% 5259487 override-expire ignore-reload reload-into-ims ignore-no-cache ignore-private | |
refresh_pattern -i \.(class|jar|exe|gz|bz|bz2|tar|tgz|zip|gzip|arj|ace|bin|cab|msi|rar)(\?.*|$) 5259487 999% 5259487 override-expire ignore-reload reload-into-ims ignore-no-cache ignore-private | |
refresh_pattern -i \.(htm|html|mhtml|css|js)(\?.*|$) 1440 90% 86400 override-expire ignore-reload reload-into-ims | |
#=========================================================================== | |
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 | |
refresh_pattern ^gopher: 1440 0% 1440 | |
refresh_pattern ^ftp: 10080 95% 10080 override-lastmod reload-into-ims | |
refresh_pattern . 0 20% 10080 override-lastmod reload-into-ims | |
http_access allow manager localhost | |
http_access deny manager | |
http_access allow purge localhost | |
http_access deny !Safe_ports | |
http_access deny CONNECT !SSL_ports | |
http_access allow localnet | |
http_access allow all | |
http_access deny all | |
icp_access allow localnet | |
icp_access deny all | |
icp_port 0 | |
buffered_logs on | |
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9] | |
upgrade_http0.9 deny shoutcast | |
acl apache rep_header Server ^Apache | |
broken_vary_encoding allow apache | |
forwarded_for off | |
header_access From deny all | |
header_access Server deny all | |
header_access Link deny all | |
header_access Via deny all | |
header_access X-Forwarded-For deny all | |
httpd_suppress_version_string on | |
shutdown_lifetime 10 seconds | |
snmp_port 3401 | |
snmp_access allow snmppublic all | |
dns_timeout 1 minutes | |
dns_nameservers 8.8.8.8 8.8.4.4 | |
fqdncache_size 5000 #16384 | |
ipcache_size 5000 #16384 | |
ipcache_low 98 | |
ipcache_high 99 | |
log_fqdn off | |
log_icp_queries off | |
memory_pools off | |
maximum_single_addr_tries 2 | |
retry_on_error on | |
icp_hit_stale on | |
strip_query_terms off | |
query_icmp on | |
reload_into_ims on | |
emulate_httpd_log off | |
negative_ttl 0 seconds | |
pipeline_prefetch on | |
vary_ignore_expire on | |
half_closed_clients off | |
high_page_fault_warning 2 | |
nonhierarchical_direct on | |
prefer_direct off | |
cache_mgr [email protected] | |
cache_effective_user squid | |
cache_effective_group squid | |
visible_hostname proxy.blackriderz.com | |
unique_hostname proxy.blackriderz.com | |
cachemgr_passwd none all | |
client_db on | |
max_filedescriptors 8192 | |
# ZPH config Marking Cache Hit, so cached contents can be delivered at full lan speed via MT | |
zph_mode tos | |
zph_local 0x30 | |
zph_parent 0 | |
zph_option 136 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# Version 1.0 / 3rd Sept, 2014 | |
# LUSCA r14942 Automated Installation Script for CentOS flavor / jz | |
# Based on Ubuntu Script by Syed Jahanzaib / aacable @ hotmail.com / http://aacable.wordpress.com | |
# Setting Variables . . . [JZ] | |
#URL=http://aacable.rdo.pt/files/linux_related/ | |
URL=http://wifismartzone.com/files/linux_related/lusca | |
SQUID_DIR="/etc/squid" | |
CACHE_DIR="/cache-1" | |
pid=`pidof squid` | |
#fixed by Narciso Zulum [email protected] | |
osver=`cat /etc/redhat-release |awk '{print $1}'` | |
squidlabel="LUSCA_HEAD-r14942" | |
# Colors Config . . . [[ JZ . . . ]] | |
ESC_SEQ="\x1b[" | |
COL_RESET=$ESC_SEQ"39;49;00m" | |
COL_RED=$ESC_SEQ"31;01m" | |
COL_GREEN=$ESC_SEQ"32;01m" | |
# OS checkup for CENTOS | |
echo -e "$COL_GREEN Lusca r14942 Automated Installation Script ver 1.0 for CentOS . . .$COL_RESET" | |
echo -e "$COL_GREEN Checking OS version, as it must be Ubuntu in order to Continue . . .$COL_RESET" | |
if [[ $osver == CentOS ]]; then | |
echo | |
echo -e "$COL_GREEN CentOS is installed with following information fetched. $COL_RESET" | |
lsb_release -a | |
sleep 3 | |
else | |
echo -e "$COL_RED Sorry, it seems your Linux Distribution is not CentOS . Exiting ...$COL_RESET" | |
exit 1 | |
fi | |
# Make sure only root can run our script / Checking if user is root, otherwise exit with error [[Jz]] | |
echo | |
echo -e "$COL_GREEN Verifying if you are logged in with root privileges . . .$COL_RESET" 1>&2 | |
FILE="/tmp/out.$$" | |
GREP="/bin/grep" | |
if [ "$(id -u)" != "0" ]; then | |
echo | |
echo -e "$COL_RED This script must be run as root, switch to root now . . .$COL_RESET" 1>&2 | |
exit 1 | |
fi | |
#installing all dependecies - by Narcisio Zulum | |
yum -y install redhat-lsb-core | |
# Clearing previous download if any in /tmp folder | |
echo | |
echo -e "$COL_GREEN Clearing previous downloads if any in /tmp folder to avoid duplication$COL_RESET" | |
sleep 3 | |
rm -fr /tmp/squid.conf | |
rm -fr /tmp/storeurl.txt | |
rm -fr /tmp/storeurl.pl | |
rm -fr /tmp/LUSCA_HEAD-r14942* | |
# Checking IF $URL is accessible m if YES then continue further , otherwise EXIT the script with ERROR ! [[ JZ .. . .]] | |
echo | |
echo -e "$COL_GREEN Checking if $URL is accessible in order to proceed further. . .!! $COL_RESET" | |
cd /tmp | |
wget -q https://gist.githubusercontent.com/kotekalabs/ad3eefad9f550bd8d328/raw/941300a49bed3b2963cd83ccc2e0306d801a81f4/squid.conf | |
{ | |
if [ ! -f /tmp/squid.conf ]; then | |
echo | |
echo -e "$COL_RED ERROR: Unable to contact $URL, or possibly internet is not working or your IP is in black list at destination server !! $COL_RESET" | |
echo -e "$COL_RED ERROR: Please check manual if $URL is accessible or not or if it have required files, JZ !! $COL_RESET" | |
exit 0 | |
fi | |
} | |
rm -fr /tmp/squid.conf | |
sleep 6 | |
# Moving further . . . | |
clear | |
echo -e "$COL_GREEN You are logged in with root ID, Ok to proceed further . . .!! $COL_RESET" | |
echo | |
################################################################## [zaib] | |
echo | |
echo -e "$COL_GREEN Updating CentOS first . . . !! $COL_RESET" | |
yum -y update | |
echo | |
echo | |
echo -e "$COL_GREEN Installing required components . . . !! $COL_RESET" | |
yum -y install squid | |
sleep 3 | |
yum -y remove squid | |
sleep 3 | |
yum groupinstall "Development Tools" -y | |
yum install perl perl-CPAN sharutils dnsmasq -y | |
cpan TEST | |
cpan TEST::More | |
cpan TEST::POD | |
cpan File::ReadBackWards | |
# Clearing OLD data files . . . | |
{ | |
if [ -f $SQUID_DIR/squid.conf ]; then | |
echo | |
echo | |
echo -e "$COL_RED Previous SQUID configuration file found in $SQUID_DIR ! renaming it for backup purpose . . . $COL_RESET" | |
mv $SQUID_DIR/squid.conf $SQUID_DIR/squid.conf.old | |
else | |
echo | |
echo | |
echo -e "$COL_GREEN No Previous Squid configuration have been found in $SQUID_DIR. Proceeding further $COL_RESET" | |
fi | |
} | |
# Checking SQUID status if its already running - check by PID | |
if [ "$pid" == "" ]; then | |
echo | |
echo | |
echo -e "$COL_GREEN No SQUID instance found in memory , so it seems we are good to GO !!! $COL_RESET" | |
else | |
echo | |
echo -e "$COL_RED SQUID is already running, probably you have some previous copy of SQUID installation, Better to stop and remove all previous squid installation !! $COL_RESET" | |
echo | |
echo -e "$COL_RED KILLING PREVIOUS SQUID INSTANCE by killall -9 squid command !! $COL_RESET" | |
killall -9 squid | |
sleep 3 | |
fi | |
# Downloading Squid source package [zaib] | |
echo | |
echo | |
echo -e "$COL_GREEN Downloading SQUID source package in /tmp folder. . . !! $COL_RESET" | |
sleep 3 | |
# Checking if /tmp folder is previously present or not . . . | |
{ | |
if [ ! -d "/tmp" ]; then | |
echo | |
echo | |
echo -e "$COL_RED /tmp folder not found, Creating it so all downloads will be placed here . . . $COL_RESET" | |
mkdir /tmp | |
else | |
echo | |
echo -e "$COL_GREEN /tmp folder is already present , so no need to create it, Proceeding further . . . $COL_RESET" | |
fi | |
} | |
cd /tmp | |
# Checking IF LUSCA_HEAD-r14942.tar.gz installation file have been ALREADY downloaded in /tmp to avoid duplication! [[ JZ .. . .]] | |
{ | |
if [ -f /tmp/LUSCA_HEAD-r14942.tar.gz ]; then | |
rm -fr /tmp/LUSCA_HEAD-r14942.tar.gz | |
fi | |
} | |
wget -c http://wifismartzone.com/files/linux_related/lusca/LUSCA_HEAD-r14942.tar.gz | |
# Checking IF LUSCA_HEAD-r14942 installation file have been downloaded properly. if YEs continue further , otherwise EXIT the script with ERROR ! [[ JZ .. . .]] | |
{ | |
if [ ! -f /tmp/LUSCA_HEAD-r14942.tar.gz ]; then | |
echo | |
echo | |
echo -e "$COL_RED ERROR: SQUID source code package File could not be download or not found in /tmp/ !! $COL_RESET" | |
exit 0 | |
fi | |
} | |
echo | |
echo | |
echo -e "$COL_GREEN Extracting Squid from tar archive. . . !! $COL_RESET" | |
sleep 3 | |
tar zxvf LUSCA_HEAD-r14942.tar.gz | |
cd LUSCA_HEAD-r14942/ | |
mkdir /etc/squid | |
echo -e "$COL_GREEN Executing $squidlabel Compiler [jz] . . . !! $COL_RESET" | |
echo | |
cd /tmp/LUSCA_HEAD-r14942 | |
./configure --prefix=/usr --exec_prefix=/usr --bindir=/usr/sbin --sbindir=/usr/sbin --libexecdir=/usr/lib/squid --sysconfdir=/etc/squid --localstatedir=/var/spool/squid --datadir=/usr/share/squid --enable-async-io=24 --with-aufs-threads=24 --with-pthreads --enable-storeio=aufs --enable-linux-netfilter --enable-arp-acl --enable-epoll --enable-removal-policies=heap --with-aio --with-dl --enable-snmp --enable-delay-pools --enable-htcp --enable-cache-digests --disable-unlinkd --enable-large-cache-files --with-large-files --enable-err-languages=English --enable-default-err-language=English --enable-referer-log --with-maxfd=65536 | |
echo | |
echo -e "$COL_GREEN Executing MAKE and MAKE INSTALL commands . . . !! $COL_RESET" | |
sleep 3 | |
make | |
make install | |
echo | |
echo | |
echo -e "$COL_GREEN Creating SQUID LOGS folder and assiging permissions . . . !! $COL_RESET" | |
sleep 3 | |
# Checking if log folder is previously present or not . . . | |
{ | |
if [ -d "/var/log/squid" ]; then | |
echo | |
echo | |
echo -e "$COL_GREEN LOGS folder found. No need to create, proceeding Further . . . $COL_RESET" | |
else | |
echo | |
echo | |
echo -e "$COL_GREEN Creating LOG Folder in /var/log/squid and setting permissions accordingly (to user proxy) $COL_RESET" | |
mkdir /var/log/squid | |
fi | |
} | |
chown squid:squid /var/log/squid | |
## ** DOWNLOAD SQUID.CONF | |
echo | |
echo | |
echo -e "$COL_GREEN Downloading SQUID.CONF file from $URL and copy it to $SQUID_DIR. . . !! $COL_RESET" | |
sleep 3 | |
# Checking IF SQUID.CONF File have been ALREADY downloaded in /tmp to avoid duplication! [[ JZ .. . .]] | |
{ | |
if [ -f /tmp/squid.conf ]; then | |
rm -fr /tmp/squid.conf | |
fi | |
} | |
cd /tmp | |
wget $URL/squid.conf | |
# Checking IF SQUID.CONF file have been downloaded. if YEs continue further , otherwise EXIT the script with ERROR ! [[ JZ .. . .]] | |
{ | |
if [ ! -f /tmp/squid.conf ]; then | |
echo | |
echo | |
echo -e "$COL_RED ERROR: SQUID.CONF File could not be download or not found in /tmp/ !! $COL_RESET" | |
exit 0 | |
fi | |
} | |
cp -fr squid.conf $SQUID_DIR | |
## ** DOWNLOAD SQUID.CONF | |
echo | |
echo | |
echo -e "$COL_GREEN Downloading STOREURL.PL file from $URL and copy it to $SQUID_DIR. . . !! $COL_RESET" | |
sleep 3 | |
cd /tmp | |
{ | |
if [ -f /tmp/storeurl.txt ]; then | |
rm -fr /tmp/storeurl.txt | |
fi | |
} | |
wget $URL/storeurl.txt | |
{ | |
if [ -f /tmp/storeurl.pl ]; then | |
rm -fr /tmp/storeurl.pl | |
fi | |
} | |
mv storeurl.txt storeurl.pl | |
# Checking IF STOREURL.PL file have been downloaded. if YEs continue further , otherwise EXIT the script with ERROR ! [[ JZ .. . .]] | |
{ | |
if [ ! -f /tmp/storeurl.pl ]; then | |
echo | |
echo | |
echo -e "$COL_RED ERROR: STOREURL.PL File could not be download or not found in /tmp/ !! $COL_RESET" | |
exit 0 | |
fi | |
} | |
cp -fr storeurl.pl $SQUID_DIR | |
echo | |
echo | |
echo -e "$COL_GREEN Setting EXECUTE permission for storeurl.pl . . . !! $COL_RESET" | |
chmod +x $SQUID_DIR/storeurl.pl | |
# Creating CACHE folders | |
echo | |
echo | |
echo -e "$COL_GREEN Creating CACHE directory in $CACHE_DIR , in this example,I used 5GB for cache for test ,Adjust it accordingly . . . !! $COL_RESET" | |
sleep 3 | |
# Checking if /cache-1 folder exist . . . | |
{ | |
if [ ! -d "$CACHE_DIR" ]; then | |
echo | |
echo | |
echo -e "$COL_GREEN Creating cache folder in $CACHE_DIR , Default size is 5GB, you should set it accordingly to your requirements . . . $COL_RESET" | |
mkdir $CACHE_DIR | |
chown squid:squid $CACHE_DIR | |
chmod 777 -R $CACHE_DIR | |
squid -z | |
else | |
echo | |
echo -e "$COL_RED $CACHE_DIR folder already exists , Clearing it before proceeding. . . $COL_RESET" | |
rm -fr $CACHE_DIR/* | |
chown squid:squid $CACHE_DIR | |
echo -e "$COL_GREEN $CACHE_DIR Initializing Cache Directories as per the config . . . $COL_RESET" | |
echo | |
squid -z | |
chmod 777 -R $CACHE_DIR | |
fi | |
} | |
echo | |
echo | |
echo -e "$COL_GREEN Adding squid in /etc/rc.local for auto startup . . . !! $COL_RESET" | |
sed -i '/exit/d' /etc/rc.local | |
sed -i '/[/usr\/sbin\/squid]/d' /etc/rc.local | |
echo /usr/sbin/squid >> /etc/rc.local | |
echo exit 0 >> /etc/rc.local | |
echo | |
echo -e "$COL_GREEN Starting SQUID (and adding 10 seconds Pause for proper initialization). . . !! $COL_RESET" | |
squid | |
sleep 5 | |
# Checking SQUID status via PID [zaib] | |
#if [ "$pid" == "" ]; then | |
#echo | |
#echo -e "$COL_RED ERROR: UNABLE to start SQUID, try to run with -d1N syntax and see where its showing error !! $COL_RESET" | |
#else | |
ps aux |grep squid | |
echo | |
echo -e "$COL_GREEN $squidlabel is Running OK with PID number "$pid", no further action required, EXITING . . .$COL_RESET" | |
echo | |
echo To view squid web access activity log, use command | |
echo -e "$COL_GREEN tail -f /var/log/squid/access.log $COL_RESET" | |
echo OR | |
echo -e "$COL_GREEN tail -f /var/log/squid/access.log |ccze $COL_RESET" | |
echo | |
echo -e "$COL_GREEN Regard's / Syed Jahanzaib . . . !! $COL_RESET" | |
echo |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment