123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323 |
- #!/bin/bash
- # initializing var
- export DEBIAN_FRONTEND=noninteractive
- MYIP=$(wget -qO- ipinfo.io/ip);
- MYIP2="s/xxxxxxxxx/$MYIP/g";
- NET=$(ip -o $ANU -4 route show to default | awk '{print $5}');
- source /etc/os-release
- ver=$VERSION_ID
- ServerName='Aidan-VPN'
- # OpenSSH Ports
- SSH_Port1='22'
- SSH_Port2='299'
- # Dropbear Ports
- Dropbear_Port1='790'
- Dropbear_Port2='2770'
- # Stunnel Ports
- Stunnel_Port1='446' # through Dropbear
- Stunnel_Port2='444' # through OpenSSH
- Stunnel_Port3='445' # through Openvpn
- # OpenVPN Ports
- OpenVPN_TCP_Port='1720'
- OpenVPN_UDP_Port='3900'
- # Privoxy Ports
- Privoxy_Port1='9880'
- Privoxy_Port2='3100'
- # Squid Ports
- Squid_Port1='3233'
- Squid_Port2='7003'
- Squid_Port3='9005'
- #detail nama perusahaan
- country=MY
- state=Selangor
- locality=Gombak
- organization=Aidan-Tech
- organizationalunit=Platform-Team
- commonname=AidanVPN
- email=irwanmohi@gmail.com
- #Server Name for openvpn config and banner
- ServerName='Aidan-VPN'
- # OpenSSH Ports
- SSH_Port1='22'
- SSH_Port2='299'
- # Dropbear Ports
- Dropbear_Port1='790'
- Dropbear_Port2='2770'
- # Stunnel Ports
- Stunnel_Port1='446' # through Dropbear
- Stunnel_Port2='444' # through OpenSSH
- Stunnel_Port3='445' # through Openvpn
- # OpenVPN Ports
- OpenVPN_TCP_Port='1720'
- OpenVPN_UDP_Port='3900'
- # Privoxy Ports
- Privoxy_Port1='9880'
- Privoxy_Port2='3100'
- # Squid Ports
- Squid_Port1='3233'
- Squid_Port2='7003'
- Squid_Port3='9005'
- # Installing some important machine essentials
- apt-get install nano sudo wget curl zip unzip tar psmisc build-essential gzip iptables p7zip-full bc rc openssl cron net-tools dnsutils lsof dos2unix lrzsz git qrencode libcap2-bin dbus whois ngrep screen bzip2 ccrypt curl gcc automake autoconf libxml-parser-perl make libtool ruby -y
-
- # Now installing all our wanted services
- apt-get install dropbear stunnel4 squid privoxy ca-certificates nginx apt-transport-https lsb-release python python-pip python3-pip python-dev python-setuptools libssl-dev -y
- pip install shadowsocks
- pip3 install shadowsocks
- # Installing all required packages to install Webmin
- apt-get install perl libnet-ssleay-perl openssl libauthen-pam-perl libpam-runtime libio-pty-perl apt-show-versions python dbus libxml-parser-perl shared-mime-info jq fail2ban -y
-
- # Installing a text colorizer and design
- gem install lolcat
- apt-get install figlet
- # Removing some duplicated sshd server configs
- rm -f /etc/ssh/sshd_config
- sleep 1
- # Creating a SSH server config using cat eof tricks
- cat <<'MySSHConfig' > /etc/ssh/sshd_config
- # Project FOG OpenSSH Server config
- # -blackestsaint
- Port myPORT1
- Port myPORT2
- AddressFamily inet
- ListenAddress 0.0.0.0
- HostKey /etc/ssh/ssh_host_rsa_key
- HostKey /etc/ssh/ssh_host_ecdsa_key
- HostKey /etc/ssh/ssh_host_ed25519_key
- PermitRootLogin yes
- MaxSessions 1024
- PubkeyAuthentication yes
- PasswordAuthentication yes
- PermitEmptyPasswords no
- ChallengeResponseAuthentication no
- UsePAM yes
- X11Forwarding yes
- PrintMotd no
- ClientAliveInterval 300
- ClientAliveCountMax 2
- UseDNS no
- Banner /etc/zorro-luffy
- AcceptEnv LANG LC_*
- Subsystem sftp /usr/lib/openssh/sftp-server
- MySSHConfig
- sleep 2
- # Now we'll put our ssh ports inside of sshd_config
- sed -i "s|myPORT1|$SSH_Port1|g" /etc/ssh/sshd_config
- sed -i "s|myPORT2|$SSH_Port2|g" /etc/ssh/sshd_config
-
- # My workaround code to remove `BAD Password error` from passwd command, it will fix password-related error on their ssh accounts.
- sed -i '/password\s*requisite\s*pam_cracklib.s.*/d' /etc/pam.d/common-password
- sed -i 's/use_authtok //g' /etc/pam.d/common-password
- # Some command to identify null shells when you tunnel through SSH or using Stunnel, it will fix user/pass authentication error on HTTP Injector, KPN Tunnel, eProxy, SVI, HTTP Proxy Injector etc ssh/ssl tunneling apps.
- sed -i '/\/bin\/false/d' /etc/shells
- sed -i '/\/usr\/sbin\/nologin/d' /etc/shells
- echo '/bin/false' >> /etc/shells
- echo '/usr/sbin/nologin' >> /etc/shells
- # Restarting openssh service
- systemctl restart ssh
-
- # Removing some duplicate config file
- rm -rf /etc/default/dropbear*
-
- # creating dropbear config using cat eof tricks
- cat <<'MyDropbear' > /etc/default/dropbear
- # Project FOG Dropbear Config
- NO_START=0
- DROPBEAR_PORT=PORT01
- DROPBEAR_EXTRA_ARGS="-p PORT02"
- DROPBEAR_BANNER="/etc/zorro-luffy"
- DROPBEAR_RSAKEY="/etc/dropbear/dropbear_rsa_host_key"
- DROPBEAR_DSSKEY="/etc/dropbear/dropbear_dss_host_key"
- DROPBEAR_ECDSAKEY="/etc/dropbear/dropbear_ecdsa_host_key"
- DROPBEAR_RECEIVE_WINDOW=65536
- MyDropbear
- # Now changing our desired dropbear ports
- sed -i "s|PORT01|$Dropbear_Port1|g" /etc/default/dropbear
- sed -i "s|PORT02|$Dropbear_Port2|g" /etc/default/dropbear
-
- # Restarting dropbear service
- systemctl restart dropbear
- # Removing Duplicate privoxy config
- rm -rf /etc/privoxy/config*
-
- # Creating Privoxy server config using cat eof tricks
- cat <<'privoxy' > /etc/privoxy/config
- # My Privoxy Server Config
- user-manual /usr/share/doc/privoxy/user-manual
- confdir /etc/privoxy
- logdir /var/log/privoxy
- filterfile default.filter
- logfile logfile
- listen-address 0.0.0.0:Privoxy_Port1
- listen-address 0.0.0.0:Privoxy_Port2
- toggle 1
- enable-remote-toggle 0
- enable-remote-http-toggle 0
- enable-edit-actions 0
- enforce-blocks 0
- buffer-limit 4096
- enable-proxy-authentication-forwarding 1
- forwarded-connect-retries 1
- accept-intercepted-requests 1
- allow-cgi-request-crunching 1
- split-large-forms 0
- keep-alive-timeout 5
- tolerate-pipelining 1
- socket-timeout 300
- permit-access 0.0.0.0/0 IP-ADDRESS
- privoxy
- # Setting machine's IP Address inside of our privoxy config(security that only allows this machine to use this proxy server)
- sed -i "s|IP-ADDRESS|$IPADDR|g" /etc/privoxy/config
-
- # Setting privoxy ports
- sed -i "s|Privoxy_Port1|$Privoxy_Port1|g" /etc/privoxy/config
- sed -i "s|Privoxy_Port2|$Privoxy_Port2|g" /etc/privoxy/config
- # Starting Proxy server
- echo -e "Restarting Privoxy Proxy server..."
- systemctl restart privoxy
- # Removing Duplicate Squid config
- rm -rf /etc/squid/squid.con*
- # My Squid Proxy Server Config
- acl VPN dst IP-ADDRESS/32
- http_access allow VPN
- http_access deny all
- http_port 0.0.0.0:Squid_Port1
- http_port 0.0.0.0:Squid_Port2
- http_port 0.0.0.0:Squid_Port3
- ### Allow Headers
- request_header_access Allow allow all
- request_header_access Authorization allow all
- request_header_access WWW-Authenticate allow all
- request_header_access Proxy-Authorization allow all
- request_header_access Proxy-Authenticate allow all
- request_header_access Cache-Control allow all
- request_header_access Content-Encoding allow all
- request_header_access Content-Length allow all
- request_header_access Content-Type allow all
- request_header_access Date allow all
- request_header_access Expires allow all
- request_header_access Host allow all
- request_header_access If-Modified-Since allow all
- request_header_access Last-Modified allow all
- request_header_access Location allow all
- request_header_access Pragma allow all
- request_header_access Accept allow all
- request_header_access Accept-Charset allow all
- request_header_access Accept-Encoding allow all
- request_header_access Accept-Language allow all
- request_header_access Content-Language allow all
- request_header_access Mime-Version allow all
- request_header_access Retry-After allow all
- request_header_access Title allow all
- request_header_access Connection allow all
- request_header_access Proxy-Connection allow all
- request_header_access User-Agent allow all
- request_header_access Cookie allow all
- request_header_access All deny all
- ### HTTP Anonymizer Paranoid
- reply_header_access Allow allow all
- reply_header_access Authorization allow all
- reply_header_access WWW-Authenticate allow all
- reply_header_access Proxy-Authorization allow all
- reply_header_access Proxy-Authenticate allow all
- reply_header_access Cache-Control allow all
- reply_header_access Content-Encoding allow all
- reply_header_access Content-Length allow all
- reply_header_access Content-Type allow all
- reply_header_access Date allow all
- reply_header_access Expires allow all
- reply_header_access Host allow all
- reply_header_access If-Modified-Since allow all
- reply_header_access Last-Modified allow all
- reply_header_access Location allow all
- reply_header_access Pragma allow all
- reply_header_access Accept allow all
- reply_header_access Accept-Charset allow all
- reply_header_access Accept-Encoding allow all
- reply_header_access Accept-Language allow all
- reply_header_access Content-Language allow all
- reply_header_access Mime-Version allow all
- reply_header_access Retry-After allow all
- reply_header_access Title allow all
- reply_header_access Connection allow all
- reply_header_access Proxy-Connection allow all
- reply_header_access User-Agent allow all
- reply_header_access Cookie allow all
- reply_header_access All deny all
- #Korn
- cache_mem 200 MB
- maximum_object_size_in_memory 32 KB
- maximum_object_size 1024 MB
- minimum_object_size 0 KB
- cache_swap_low 90
- cache_swap_high 95
- cache_dir ufs /var/spool/squid 100 16 256
- access_log /var/log/squid/access.log squid
- ### CoreDump
- coredump_dir /var/spool/squid
- dns_nameservers 1.1.1.1 1.0.0.1
- refresh_pattern ^ftp: 1440 20% 10080
- refresh_pattern ^gopher: 1440 0% 1440
- refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
- refresh_pattern . 0 20% 4320
- visible_hostname aidanvpn
- mySquid
- # Setting machine's IP Address inside of our Squid config(security that only allows this machine to use this proxy server)
- sed -i "s|IP-ADDRESS|$IPADDR|g" /etc/squid/squid.conf
-
- # Setting squid ports
- sed -i "s|Squid_Port1|$Squid_Port1|g" /etc/squid/squid.conf
- sed -i "s|Squid_Port2|$Squid_Port2|g" /etc/squid/squid.conf
- sed -i "s|Squid_Port3|$Squid_Port3|g" /etc/squid/squid.conf
- # Starting Proxy server
- echo -e "Restarting Squid Proxy server..."
- systemctl restart squid
- chmod +x ./*
- dos2unix ./* &> /dev/null
- sed -i 's|/etc/squid/squid.conf|/etc/privoxy/config|g' ./*
- sed -i 's|http_port|listen-address|g' ./*
- cd ~
|