142 lines
3.1 KiB
Bash
Executable File
142 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"
|
||
|
||
[ ! -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
|
||
|
||
aygit_ekle(){
|
||
mkdir -p /dev/net &&
|
||
mknod /dev/net/tun c 10 200 &&
|
||
chmod 0666 /dev/net/tun
|
||
}
|
||
|
||
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 "$@"
|