143 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			143 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#! /bin/bash
 | 
						||
# milisia ağ sistemi (mas) bash tabanlı konsol uygulaması. 
 | 
						||
# milisarge <milisarge@gmail.com> 2017
 | 
						||
surum="0.0.1"
 | 
						||
surumbilgi=" <milisarge@gmail.com> 2017"
 | 
						||
anayer="/opt/milisia"
 | 
						||
servis="cjdroute"
 | 
						||
servisk="cjdns"
 | 
						||
pingkontrol="fcf4:e309:14b5:5498:cafd:4f59:4b9c:7f84" # hia.cjdns.ca
 | 
						||
ayardosya="ayarlar/milisia_genel.conf"
 | 
						||
noktadepo="noktalar"
 | 
						||
nokta_adres="https://github.com/milisarge/$noktadepo"
 | 
						||
 | 
						||
aygit_ekle(){
 | 
						||
	mkdir -p /dev/net &&
 | 
						||
	mknod /dev/net/tun c 10 200 &&
 | 
						||
	chmod 0666 /dev/net/tun	
 | 
						||
}
 | 
						||
 | 
						||
[ ! -d $anayer ] && mkdir -p $anayer
 | 
						||
[ ! -d $anayer/ayarlar ] && mkdir -p $anayer/ayarlar
 | 
						||
[ ! -c /dev/net/tun ] && aygit_ekle
 | 
						||
[ ! -f /usr/bin/$servis ] && mps kur $servisk
 | 
						||
[ ! -f /usr/bin/json ] && json_kur
 | 
						||
 | 
						||
 | 
						||
 | 
						||
json_kur(){
 | 
						||
	curl -L https://github.com/trentm/json/raw/master/lib/json.js > /usr/bin/json && chmod +x /usr/bin/json
 | 
						||
}
 | 
						||
 | 
						||
baslat(){
 | 
						||
	cjdroute < $anayer/$ayardosya
 | 
						||
}
 | 
						||
 | 
						||
durdur(){
 | 
						||
	echo "servis durduruluyor"
 | 
						||
	killall -9 cjdroute
 | 
						||
	echo "servis durduruldu"
 | 
						||
}
 | 
						||
 | 
						||
olustur(){
 | 
						||
	if [ ! -f $anayer/$ayardosya ]; then
 | 
						||
		cjdroute --genconf | cjdroute --cleanconf > $anayer/$ayardosya
 | 
						||
		echo "ayar dosyası oluşturuldu"
 | 
						||
	else
 | 
						||
		echo "zaten ayar dosyası mevcut!"
 | 
						||
		echo "yeniden oluşturmak için --zo kullanın"
 | 
						||
	fi
 | 
						||
}
 | 
						||
 | 
						||
yeniden_olustur(){
 | 
						||
	mv $anayer/$ayardosya $anayer/$ayardosya-"`date +%m-%d-%y.%H%M%S`"
 | 
						||
	cjdroute --genconf | cjdroute --cleanconf > $anayer/$ayardosya
 | 
						||
	echo "ayar dosyası oluşturuldu"
 | 
						||
}
 | 
						||
 | 
						||
genel_kimlik(){
 | 
						||
	cat $anayer/$ayardosya | egrep -m 1 '"publicKey"' | awk -F '"' '{ print $4 }'
 | 
						||
}
 | 
						||
 | 
						||
ozel_kimlik(){
 | 
						||
	cat $anayer/$ayardosya | egrep -m 1 '"privateKey"' | awk -F '"' '{ print $4 }' 
 | 
						||
}
 | 
						||
 | 
						||
ipv6_al(){
 | 
						||
	#grep -Eo '"ipv6" :.*?[^\\]",' $ayardosya | awk '{print $3}' ;;		
 | 
						||
	#cat $ayardosya | json.js ipv6
 | 
						||
	cat $anayer/$ayardosya | egrep -m 1 '"ipv6"' | awk -F '"' '{ print $4 }'
 | 
						||
}
 | 
						||
 | 
						||
nokta_ekle(){
 | 
						||
	if [ ! -f $anayer/$ayardosya ]; then
 | 
						||
		olustur
 | 
						||
	fi
 | 
						||
	ipadres="`json -f $1 -Ma key | sed -n 1p`"
 | 
						||
	icerik="`json -f $1 -Ma value`"
 | 
						||
	json -I -f $anayer/$ayardosya -e 'this.interfaces.UDPInterface[0]["connectTo"]["'$ipadres'"]='"$icerik"' ' 
 | 
						||
}
 | 
						||
 | 
						||
depo_guncelle(){
 | 
						||
	if [ ! -d $anayer/$noktadepo  ];then
 | 
						||
		git clone $nokta_adres $anayer/$noktadepo
 | 
						||
	else
 | 
						||
		cd $anayer/$noktadepo
 | 
						||
		git pull
 | 
						||
		cd -
 | 
						||
	fi
 | 
						||
}
 | 
						||
 | 
						||
rpc_sifre(){
 | 
						||
	cat $anayer/$ayardosya | json admin.password
 | 
						||
	#cat $ayardosya | egrep -m 3 '"password"' | awk -F '"' '{ print $4 }' | sed -n 1p
 | 
						||
}
 | 
						||
 | 
						||
menu() {
 | 
						||
	
 | 
						||
	while [ "$1" ]; do
 | 
						||
		case $1 in
 | 
						||
			yeni|--o)
 | 
						||
				olustur ;;
 | 
						||
			zyeni|--zo)
 | 
						||
				yeniden_olustur ;;
 | 
						||
			basla|--b)
 | 
						||
				baslat ;;
 | 
						||
			yebas|--b)
 | 
						||
				durdur && baslat ;;
 | 
						||
			ping|--p)
 | 
						||
				ping6 $pingkontrol ;;
 | 
						||
			guncelle|--g)
 | 
						||
				depo_guncelle ;;
 | 
						||
			kimlik|--k)	
 | 
						||
				genel_kimlik ;;
 | 
						||
			okimlik|--ok)	
 | 
						||
				ozel_kimlik ;;
 | 
						||
			ip|--i)
 | 
						||
				ipv6_al ;;
 | 
						||
			ekle|--e)	
 | 
						||
				if [ ! "$2" ]; then
 | 
						||
					echo "nokta ayar dosyası belirtin!"
 | 
						||
					exit 1
 | 
						||
				fi
 | 
						||
				nokta_ekle $anayer/$noktadepo/$2 ;;
 | 
						||
			sil|--s)	
 | 
						||
				if [ ! "$2" ]; then
 | 
						||
					echo "nokta ayar dosyası belirtin!"
 | 
						||
					exit 1
 | 
						||
				fi
 | 
						||
				nokta_sil $anayer/$noktadepo/$2 ;;
 | 
						||
			rpcs|--rs)	
 | 
						||
				rpc_sifre ;;
 | 
						||
			dur|--d)
 | 
						||
				durdur ;;
 | 
						||
			ekle|--e)
 | 
						||
				peer_ekle "$2" ;;	
 | 
						||
			surum|--s)
 | 
						||
				echo "$surum $surumbilgi" ;;
 | 
						||
		esac
 | 
						||
		shift
 | 
						||
	done
 | 
						||
}
 | 
						||
 | 
						||
menu "$@"
 |