mirror of
				https://github.com/angristan/openvpn-install.git
				synced 2025-11-04 07:57:37 +01:00 
			
		
		
		
	dev again
This commit is contained in:
		@@ -26,7 +26,7 @@ dir_pki="${dir_easy}/pki"
 | 
				
			|||||||
file_index="${dir_pki}/index.txt"
 | 
					file_index="${dir_pki}/index.txt"
 | 
				
			||||||
bin_easy="${dir_easy}/easyrsa"
 | 
					bin_easy="${dir_easy}/easyrsa"
 | 
				
			||||||
conf_client_tpl="${dir_openvpn}/client-template.txt"
 | 
					conf_client_tpl="${dir_openvpn}/client-template.txt"
 | 
				
			||||||
conf_server="${dir_openvpn}/server.conf"
 | 
					conf_openvpn="${dir_openvpn}/server.conf"
 | 
				
			||||||
conf_iptables='/etc/sysconfig/iptables.rules'
 | 
					conf_iptables='/etc/sysconfig/iptables.rules'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -150,8 +150,12 @@ echo "Exiting..."
 | 
				
			|||||||
install_easyrsa(){
 | 
					install_easyrsa(){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# An old version of easy-rsa was available by default in some openvpn packages
 | 
					# An old version of easy-rsa was available by default in some openvpn packages
 | 
				
			||||||
rm -rf ${dir_easy}
 | 
					if [[ -d ${dir_easy}/ ]]; then
 | 
				
			||||||
mkdir -p ${dir_easy}
 | 
						rm -rf ${dir_easy}/
 | 
				
			||||||
 | 
						mkdir -p ${dir_easy}
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						mkdir -p ${dir_easy}
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
# Get easy-rsa
 | 
					# Get easy-rsa
 | 
				
			||||||
url_easy='https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.3/EasyRSA-3.0.3.tgz'
 | 
					url_easy='https://github.com/OpenVPN/easy-rsa/releases/download/v3.0.3/EasyRSA-3.0.3.tgz'
 | 
				
			||||||
file_easy=${url_easy##*/}
 | 
					file_easy=${url_easy##*/}
 | 
				
			||||||
@@ -206,19 +210,6 @@ WantedBy=multi-user.target" > ${file_ipt_svc}
 | 
				
			|||||||
fi
 | 
					fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
##
 | 
					 | 
				
			||||||
config_iptables(){
 | 
					 | 
				
			||||||
	echo "Please manually set the firewall"
 | 
					 | 
				
			||||||
	read -p "press any key continue..."
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
##
 | 
					 | 
				
			||||||
config_firewalld(){
 | 
					 | 
				
			||||||
	echo "Please manually set the firewall"
 | 
					 | 
				
			||||||
	read -p "press any key continue..."
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
## function: install openvpn server
 | 
					## function: install openvpn server
 | 
				
			||||||
install_openvpn(){
 | 
					install_openvpn(){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -384,16 +375,18 @@ if [[ "$OS" = 'debian' ]]; then
 | 
				
			|||||||
	## The we install OpenVPN
 | 
						## The we install OpenVPN
 | 
				
			||||||
	apt-get install openvpn iptables openssl wget ca-certificates curl -y
 | 
						apt-get install openvpn iptables openssl wget ca-certificates curl -y
 | 
				
			||||||
	systemd_ipt_service ## call function
 | 
						systemd_ipt_service ## call function
 | 
				
			||||||
elif [[ "$OS" = 'centos6' || "$OS" = 'centos7' || "$OS" = 'fedora' ]]; then
 | 
					elif [[ "$OS" = 'centos7' || "$OS" = 'fedora' ]]; then
 | 
				
			||||||
	if [[ "$OS" != 'fedora' ]]; then
 | 
						if [[ "$OS" = 'centos7'  ]]; then
 | 
				
			||||||
		yum install epel-release -y
 | 
							yum install epel-release -y
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
	yum --enablerepo=epel install openvpn iptables openssl wget ca-certificates curl -y
 | 
						yum --enablerepo=epel install openvpn iptables openssl wget ca-certificates curl -y
 | 
				
			||||||
	if [[ "$OS" = 'centos6' ]]; then 
 | 
						# systemd_ipt_service ## call function
 | 
				
			||||||
		config_iptables ## call function
 | 
						read -p "Please manually set the firewall,press anykey continue"
 | 
				
			||||||
	else
 | 
					elif [[ "$OS" = 'centos6' ]]; then
 | 
				
			||||||
		config_firewalld ## call function
 | 
						yum install epel-release -y
 | 
				
			||||||
	fi
 | 
						yum --enablerepo=epel install openvpn iptables openssl wget ca-certificates curl -y
 | 
				
			||||||
 | 
						# systemd_ipt_service ## call function
 | 
				
			||||||
 | 
						read -p "Please manually set the firewall,press anykey continue"
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
	# Else, the distro is ArchLinux
 | 
						# Else, the distro is ArchLinux
 | 
				
			||||||
	echo ""
 | 
						echo ""
 | 
				
			||||||
@@ -420,7 +413,6 @@ else
 | 
				
			|||||||
	fi
 | 
						fi
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
# Find out if the machine uses nogroup or nobody for the permissionless group
 | 
					# Find out if the machine uses nogroup or nobody for the permissionless group
 | 
				
			||||||
if grep -qs "^nogroup:" /etc/group; then
 | 
					if grep -qs "^nogroup:" /etc/group; then
 | 
				
			||||||
	NOGROUP=nogroup
 | 
						NOGROUP=nogroup
 | 
				
			||||||
@@ -459,7 +451,7 @@ topology subnet
 | 
				
			|||||||
server 10.8.0.0 255.255.255.0
 | 
					server 10.8.0.0 255.255.255.0
 | 
				
			||||||
ifconfig-pool-persist ipp.txt
 | 
					ifconfig-pool-persist ipp.txt
 | 
				
			||||||
#client-config-dir ccd
 | 
					#client-config-dir ccd
 | 
				
			||||||
#route 10.8.0.0 255.255.255.252" >> ${conf_server}
 | 
					#route 10.8.0.0 255.255.255.252" >> ${conf_openvpn}
 | 
				
			||||||
# DNS resolvers
 | 
					# DNS resolvers
 | 
				
			||||||
case $DNS in
 | 
					case $DNS in
 | 
				
			||||||
	1)
 | 
						1)
 | 
				
			||||||
@@ -496,8 +488,8 @@ case $DNS in
 | 
				
			|||||||
	echo 'push "dhcp-option DNS 176.103.130.130"'
 | 
						echo 'push "dhcp-option DNS 176.103.130.130"'
 | 
				
			||||||
	echo 'push "dhcp-option DNS 176.103.130.131"'
 | 
						echo 'push "dhcp-option DNS 176.103.130.131"'
 | 
				
			||||||
	;;
 | 
						;;
 | 
				
			||||||
esac >> ${conf_server}
 | 
					esac >> ${conf_openvpn}
 | 
				
			||||||
echo 'push "redirect-gateway def1 bypass-dhcp" '>> ${conf_server}
 | 
					echo 'push "redirect-gateway def1 bypass-dhcp" '>> ${conf_openvpn}
 | 
				
			||||||
echo "client-to-client
 | 
					echo "client-to-client
 | 
				
			||||||
crl-verify crl.pem
 | 
					crl-verify crl.pem
 | 
				
			||||||
ca ca.crt
 | 
					ca ca.crt
 | 
				
			||||||
@@ -513,7 +505,7 @@ tls-cipher TLS-DHE-RSA-WITH-AES-128-GCM-SHA256
 | 
				
			|||||||
status openvpn-status.log
 | 
					status openvpn-status.log
 | 
				
			||||||
log openvpn.log
 | 
					log openvpn.log
 | 
				
			||||||
log-append openvpn.log
 | 
					log-append openvpn.log
 | 
				
			||||||
verb 3" >> ${conf_server}
 | 
					verb 3" >> ${conf_openvpn}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set_firewall ## call function
 | 
					set_firewall ## call function
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
@@ -603,8 +595,8 @@ remove_openvpn(){
 | 
				
			|||||||
echo ""
 | 
					echo ""
 | 
				
			||||||
read -p "Do you really want to remove OpenVPN? [y/n]: " -e -i n REMOVE
 | 
					read -p "Do you really want to remove OpenVPN? [y/n]: " -e -i n REMOVE
 | 
				
			||||||
if [[ 'y' = "$REMOVE" ]]; then
 | 
					if [[ 'y' = "$REMOVE" ]]; then
 | 
				
			||||||
	PORT=$(grep '^port ' ${conf_server} | cut -d " " -f 2)
 | 
						PORT=$(grep '^port ' ${conf_openvpn} | cut -d " " -f 2)
 | 
				
			||||||
	PROTOCOL=$(grep '^proto ' ${conf_server} | cut -d " " -f 2)
 | 
						PROTOCOL=$(grep '^proto ' ${conf_openvpn} | cut -d " " -f 2)
 | 
				
			||||||
	if pgrep firewalld; then
 | 
						if pgrep firewalld; then
 | 
				
			||||||
		# Using both permanent and not permanent rules to avoid a firewalld reload.
 | 
							# Using both permanent and not permanent rules to avoid a firewalld reload.
 | 
				
			||||||
		firewall-cmd --zone=public --remove-port=$PORT/${PROTOCOL}
 | 
							firewall-cmd --zone=public --remove-port=$PORT/${PROTOCOL}
 | 
				
			||||||
@@ -649,13 +641,6 @@ else
 | 
				
			|||||||
fi
 | 
					fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
config_openvpn_server(){
 | 
					 | 
				
			||||||
:
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
config_openvpn_client(){
 | 
					 | 
				
			||||||
:
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
config_openvpn(){
 | 
					config_openvpn(){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -663,7 +648,7 @@ while :
 | 
				
			|||||||
do
 | 
					do
 | 
				
			||||||
	clear
 | 
						clear
 | 
				
			||||||
	cat <<EOF
 | 
						cat <<EOF
 | 
				
			||||||
OpenVPN-install (github.com/xiagw/OpenVPN-install)
 | 
					OpenVPN-install (github.com/Angristan/OpenVPN-install)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Looks like OpenVPN is already installed
 | 
					Looks like OpenVPN is already installed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -685,11 +670,11 @@ EOF
 | 
				
			|||||||
		read -p "Client name: " -e -i client CLIENT
 | 
							read -p "Client name: " -e -i client CLIENT
 | 
				
			||||||
		cd ${dir_easy}
 | 
							cd ${dir_easy}
 | 
				
			||||||
		${bin_easy} build-client-full $CLIENT nopass
 | 
							${bin_easy} build-client-full $CLIENT nopass
 | 
				
			||||||
		generate_newclient $CLIENT
 | 
							generate_newclient "$CLIENT"
 | 
				
			||||||
		exit
 | 
							exit
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
		2)
 | 
							2)
 | 
				
			||||||
		revoke_openvpn_client
 | 
							revoke_openvpn_client ## call function 
 | 
				
			||||||
		exit
 | 
							exit
 | 
				
			||||||
		;;
 | 
							;;
 | 
				
			||||||
		3)
 | 
							3)
 | 
				
			||||||
@@ -711,6 +696,8 @@ if [[ -e /etc/debian_version ]]; then
 | 
				
			|||||||
	# VERSION_ID=$(grep "VERSION_ID" /etc/os-release)
 | 
						# VERSION_ID=$(grep "VERSION_ID" /etc/os-release)
 | 
				
			||||||
	source /etc/os-release
 | 
						source /etc/os-release
 | 
				
			||||||
	SYSCTL='/etc/sysctl.conf'
 | 
						SYSCTL='/etc/sysctl.conf'
 | 
				
			||||||
 | 
						# if [[ "$VERSION_ID" != 'VERSION_ID="7"' ]] && [[ "$VERSION_ID" != 'VERSION_ID="8"' ]] && [[ "$VERSION_ID" != 'VERSION_ID="9"' ]] && [[ "$VERSION_ID" != 'VERSION_ID="12.04"' ]] && [[ "$VERSION_ID" != 'VERSION_ID="14.04"' ]] && [[ "$VERSION_ID" != 'VERSION_ID="16.04"' ]] && [[ "$VERSION_ID" != 'VERSION_ID="16.10"' ]] && [[ "$VERSION_ID" != 'VERSION_ID="17.04"' ]]; then
 | 
				
			||||||
 | 
						# if [[ "$VERSION_ID" != [789] && "$VERSION_ID" != '12.04' && "$VERSION_ID" != '14.04' && "$VERSION_ID" != '16.04' && "$VERSION_ID" != '16.10' && "$VERSION_ID" != '17.04' ]]; then
 | 
				
			||||||
	case "$VERSION_ID" in 
 | 
						case "$VERSION_ID" in 
 | 
				
			||||||
	7|8|9|12.04|14.04|16.04|16.10|17.04)
 | 
						7|8|9|12.04|14.04|16.04|16.10|17.04)
 | 
				
			||||||
		:
 | 
							:
 | 
				
			||||||
@@ -768,7 +755,7 @@ detect_os_ver ## call function
 | 
				
			|||||||
detect_IP_NIC ## call function
 | 
					detect_IP_NIC ## call function
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## OpenVPN setup and first user creation
 | 
					## OpenVPN setup and first user creation
 | 
				
			||||||
if [[ -e ${conf_server} ]]; then
 | 
					if [[ -e ${conf_openvpn} ]]; then
 | 
				
			||||||
	config_openvpn ## call function
 | 
						config_openvpn ## call function
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
	install_openvpn ## call function
 | 
						install_openvpn ## call function
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user