2017-06-28 22:19:20 +02:00
|
|
|
|
#! /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"
|
|
|
|
|
|
2017-07-26 03:43:19 +02:00
|
|
|
|
aygit_ekle(){
|
|
|
|
|
mkdir -p /dev/net &&
|
|
|
|
|
mknod /dev/net/tun c 10 200 &&
|
|
|
|
|
chmod 0666 /dev/net/tun
|
|
|
|
|
}
|
|
|
|
|
|
2017-06-28 22:19:20 +02:00
|
|
|
|
[ ! -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
|
|
|
|
|
|
2017-07-26 03:43:19 +02:00
|
|
|
|
|
2017-06-28 22:19:20 +02:00
|
|
|
|
|
|
|
|
|
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 "$@"
|