mirror of
https://github.com/serverok/squid-proxy-installer.git
synced 2026-04-02 10:38:52 +00:00
212 lines
9.0 KiB
Bash
212 lines
9.0 KiB
Bash
#!/bin/bash
|
|
|
|
############################################################
|
|
# Squid Proxy Installer
|
|
# Author: Yujin Boby
|
|
# Email: admin@serverOk.in
|
|
# Github: https://github.com/serverok/squid-proxy-installer/
|
|
# Web: https://serverok.in/squid
|
|
# If you need professional assistance, reach out to
|
|
# https://serverok.in/contact
|
|
############################################################
|
|
|
|
if [ `whoami` != root ]; then
|
|
echo "ERROR: You need to run the script as user root or add sudo before command."
|
|
exit 1
|
|
fi
|
|
|
|
/usr/bin/wget -q --no-check-certificate -O /usr/local/bin/sok-find-os https://raw.githubusercontent.com/serverok/squid-proxy-installer/master/sok-find-os.sh > /dev/null 2>&1
|
|
chmod 755 /usr/local/bin/sok-find-os
|
|
|
|
/usr/bin/wget -q --no-check-certificate -O /usr/local/bin/squid-uninstall https://raw.githubusercontent.com/serverok/squid-proxy-installer/master/squid-uninstall.sh > /dev/null 2>&1
|
|
chmod 755 /usr/local/bin/squid-uninstall
|
|
|
|
/usr/bin/wget -q --no-check-certificate -O /usr/local/bin/squid-add-user https://raw.githubusercontent.com/serverok/squid-proxy-installer/master/squid-add-user.sh > /dev/null 2>&1
|
|
chmod 755 /usr/local/bin/squid-add-user
|
|
|
|
if [[ -d /etc/squid/ || -d /etc/squid3/ ]]; then
|
|
echo "Squid Proxy already installed. If you want to reinstall, first uninstall squid proxy by running command: squid-uninstall"
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -f /usr/local/bin/sok-find-os ]; then
|
|
echo "/usr/local/bin/sok-find-os not found"
|
|
exit 1
|
|
fi
|
|
|
|
SOK_OS=$(/usr/local/bin/sok-find-os)
|
|
|
|
if [ $SOK_OS == "ERROR" ]; then
|
|
echo "OS NOT SUPPORTED.\n"
|
|
echo "Contact https://serverok.in/contact to add support for your OS."
|
|
exit 1;
|
|
fi
|
|
|
|
if [ $SOK_OS == "ubuntu2204" ]; then
|
|
/usr/bin/apt update
|
|
/usr/bin/apt -y install apache2-utils squid
|
|
touch /etc/squid/passwd
|
|
mv /etc/squid/squid.conf /etc/squid/squid.conf.bak
|
|
/usr/bin/touch /etc/squid/blacklist.acl
|
|
/usr/bin/wget -q --no-check-certificate -O /etc/squid/squid.conf https://raw.githubusercontent.com/serverok/squid-proxy-installer/master/conf/ubuntu-2204.conf
|
|
if [ -f /sbin/iptables ]; then
|
|
/sbin/iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
|
|
/sbin/iptables-save
|
|
fi
|
|
service squid restart
|
|
systemctl enable squid
|
|
elif [ $SOK_OS == "ubuntu2004" ]; then
|
|
/usr/bin/apt update
|
|
/usr/bin/apt -y install apache2-utils squid
|
|
touch /etc/squid/passwd
|
|
/bin/rm -f /etc/squid/squid.conf
|
|
/usr/bin/touch /etc/squid/blacklist.acl
|
|
/usr/bin/wget -q --no-check-certificate -O /etc/squid/squid.conf https://raw.githubusercontent.com/serverok/squid-proxy-installer/master/squid.conf
|
|
if [ -f /sbin/iptables ]; then
|
|
/sbin/iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
|
|
/sbin/iptables-save
|
|
fi
|
|
service squid restart
|
|
systemctl enable squid
|
|
elif [ $SOK_OS == "ubuntu1804" ]; then
|
|
/usr/bin/apt update
|
|
/usr/bin/apt -y install apache2-utils squid3
|
|
touch /etc/squid/passwd
|
|
/bin/rm -f /etc/squid/squid.conf
|
|
/usr/bin/touch /etc/squid/blacklist.acl
|
|
/usr/bin/wget -q --no-check-certificate -O /etc/squid/squid.conf https://raw.githubusercontent.com/serverok/squid-proxy-installer/master/squid.conf
|
|
/sbin/iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
|
|
/sbin/iptables-save
|
|
service squid restart
|
|
systemctl enable squid
|
|
elif [ $SOK_OS == "ubuntu1604" ]; then
|
|
/usr/bin/apt update
|
|
/usr/bin/apt -y install apache2-utils squid3
|
|
touch /etc/squid/passwd
|
|
/bin/rm -f /etc/squid/squid.conf
|
|
/usr/bin/touch /etc/squid/blacklist.acl
|
|
/usr/bin/wget -q --no-check-certificate -O /etc/squid/squid.conf https://raw.githubusercontent.com/serverok/squid-proxy-installer/master/squid.conf
|
|
/sbin/iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
|
|
/sbin/iptables-save
|
|
service squid restart
|
|
update-rc.d squid defaults
|
|
elif [ $SOK_OS == "ubuntu1404" ]; then
|
|
/usr/bin/apt update
|
|
/usr/bin/apt -y install apache2-utils squid3
|
|
touch /etc/squid3/passwd
|
|
/bin/rm -f /etc/squid3/squid.conf
|
|
/usr/bin/touch /etc/squid3/blacklist.acl
|
|
/usr/bin/wget -q --no-check-certificate -O /etc/squid3/squid.conf https://raw.githubusercontent.com/serverok/squid-proxy-installer/master/squid.conf
|
|
/sbin/iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
|
|
/sbin/iptables-save
|
|
service squid3 restart
|
|
ln -s /etc/squid3 /etc/squid
|
|
#update-rc.d squid3 defaults
|
|
ln -s /etc/squid3 /etc/squid
|
|
elif [ $SOK_OS == "debian8" ]; then
|
|
# OS = Debian 8
|
|
/bin/rm -rf /etc/squid
|
|
/usr/bin/apt update
|
|
/usr/bin/apt -y install apache2-utils squid3
|
|
touch /etc/squid3/passwd
|
|
/bin/rm -f /etc/squid3/squid.conf
|
|
/usr/bin/touch /etc/squid3/blacklist.acl
|
|
/usr/bin/wget -q --no-check-certificate -O /etc/squid3/squid.conf https://raw.githubusercontent.com/serverok/squid-proxy-installer/master/squid.conf
|
|
/sbin/iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
|
|
/sbin/iptables-save
|
|
service squid3 restart
|
|
update-rc.d squid3 defaults
|
|
ln -s /etc/squid3 /etc/squid
|
|
elif [ $SOK_OS == "debian9" ]; then
|
|
# OS = Debian 9
|
|
/bin/rm -rf /etc/squid
|
|
/usr/bin/apt update
|
|
/usr/bin/apt -y install apache2-utils squid
|
|
touch /etc/squid/passwd
|
|
/bin/rm -f /etc/squid/squid.conf
|
|
/usr/bin/touch /etc/squid/blacklist.acl
|
|
/usr/bin/wget -q --no-check-certificate -O /etc/squid/squid.conf https://raw.githubusercontent.com/serverok/squid-proxy-installer/master/squid.conf
|
|
/sbin/iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
|
|
/sbin/iptables-save
|
|
systemctl enable squid
|
|
systemctl restart squid
|
|
elif [ $SOK_OS == "debian10" ]; then
|
|
# OS = Debian 10
|
|
/bin/rm -rf /etc/squid
|
|
/usr/bin/apt update
|
|
/usr/bin/apt -y install apache2-utils squid
|
|
touch /etc/squid/passwd
|
|
/bin/rm -f /etc/squid/squid.conf
|
|
/usr/bin/touch /etc/squid/blacklist.acl
|
|
/usr/bin/wget -q --no-check-certificate -O /etc/squid/squid.conf https://raw.githubusercontent.com/serverok/squid-proxy-installer/master/squid.conf
|
|
/sbin/iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
|
|
/sbin/iptables-save
|
|
systemctl enable squid
|
|
systemctl restart squid
|
|
elif [ $SOK_OS == "debian11" ]; then
|
|
# OS = Debian GNU/Linux 11 (bullseye)
|
|
/bin/rm -rf /etc/squid
|
|
/usr/bin/apt update
|
|
/usr/bin/apt -y install apache2-utils squid
|
|
touch /etc/squid/passwd
|
|
/bin/rm -f /etc/squid/squid.conf
|
|
/usr/bin/touch /etc/squid/blacklist.acl
|
|
/usr/bin/wget -q --no-check-certificate -O /etc/squid/squid.conf https://raw.githubusercontent.com/serverok/squid-proxy-installer/master/squid.conf
|
|
if [ -f /sbin/iptables ]; then
|
|
/sbin/iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
|
|
/sbin/iptables-save
|
|
fi
|
|
systemctl enable squid
|
|
systemctl restart squid
|
|
elif [ $SOK_OS == "debian12" ]; then
|
|
# OS = Debian GNU/Linux 12 (bookworm)
|
|
/bin/rm -rf /etc/squid
|
|
/usr/bin/apt update
|
|
/usr/bin/apt -y install apache2-utils squid
|
|
touch /etc/squid/passwd
|
|
mv /etc/squid/squid.conf /etc/squid/squid.conf.default
|
|
/usr/bin/touch /etc/squid/blacklist.acl
|
|
/usr/bin/wget -q --no-check-certificate -O /etc/squid/squid.conf https://raw.githubusercontent.com/serverok/squid-proxy-installer/master/squid.conf
|
|
if [ -f /sbin/iptables ]; then
|
|
/sbin/iptables -I INPUT -p tcp --dport 3128 -j ACCEPT
|
|
/sbin/iptables-save
|
|
fi
|
|
systemctl enable squid
|
|
systemctl restart squid
|
|
elif [ $SOK_OS == "centos7" ]; then
|
|
yum install squid httpd-tools -y
|
|
/bin/rm -f /etc/squid/squid.conf
|
|
/usr/bin/touch /etc/squid/blacklist.acl
|
|
/usr/bin/wget -q --no-check-certificate -O /etc/squid/squid.conf https://raw.githubusercontent.com/serverok/squid-proxy-installer/master/conf/squid-centos7.conf
|
|
systemctl enable squid
|
|
systemctl restart squid
|
|
firewall-cmd --zone=public --permanent --add-port=3128/tcp
|
|
firewall-cmd --reload
|
|
elif [ "$SOK_OS" == "centos8" ] || [ "$SOK_OS" == "almalinux8" ] || [ "$SOK_OS" == "almalinux9" ]; then
|
|
yum install squid httpd-tools wget -y
|
|
mv /etc/squid/squid.conf /etc/squid/squid.conf.bak
|
|
/usr/bin/touch /etc/squid/blacklist.acl
|
|
/usr/bin/wget -q --no-check-certificate -O /etc/squid/squid.conf https://raw.githubusercontent.com/serverok/squid-proxy-installer/master/conf/squid-centos7.conf
|
|
systemctl enable squid
|
|
systemctl restart squid
|
|
firewall-cmd --zone=public --permanent --add-port=3128/tcp
|
|
firewall-cmd --reload
|
|
elif [ "$SOK_OS" == "centos8s" ]; then
|
|
dnf install squid httpd-tools wget -y > /dev/null 2>&1
|
|
mv /etc/squid/squid.conf /etc/squid/squid.conf.bak
|
|
/usr/bin/touch /etc/squid/blacklist.acl
|
|
/usr/bin/wget -q --no-check-certificate -O /etc/squid/squid.conf https://raw.githubusercontent.com/serverok/squid-proxy-installer/master/conf/squid-centos7.conf
|
|
systemctl enable squid > /dev/null 2>&1
|
|
systemctl restart squid > /dev/null 2>&1
|
|
if [ -f /usr/bin/firewall-cmd ]; then
|
|
firewall-cmd --zone=public --permanent --add-port=3128/tcp > /dev/null 2>&1
|
|
firewall-cmd --reload > /dev/null 2>&1
|
|
fi
|
|
fi
|
|
|
|
echo
|
|
echo "Thank you for using Squid Proxy Installer by ServerOk"
|
|
echo "To create a proxy user, run command: squid-add-user"
|
|
echo "To change squid proxy port, see https://serverok.in/how-to-change-port-of-squid-proxy-server"
|
|
echo
|