mas 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. #! /bin/bash
  2. # milisia ağ sistemi (mas) bash tabanlı konsol uygulaması.
  3. # milisarge <milisarge@gmail.com> 2017
  4. surum="0.0.1"
  5. surumbilgi=" <milisarge@gmail.com> 2017"
  6. anayer="/opt/milisia"
  7. servis="cjdroute"
  8. servisk="cjdns"
  9. pingkontrol="fcf4:e309:14b5:5498:cafd:4f59:4b9c:7f84" # hia.cjdns.ca
  10. ayardosya="ayarlar/milisia_genel.conf"
  11. noktadepo="noktalar"
  12. nokta_adres="https://github.com/milisarge/$noktadepo"
  13. aygit_ekle(){
  14. mkdir -p /dev/net &&
  15. mknod /dev/net/tun c 10 200 &&
  16. chmod 0666 /dev/net/tun
  17. }
  18. [ ! -d $anayer ] && mkdir -p $anayer
  19. [ ! -d $anayer/ayarlar ] && mkdir -p $anayer/ayarlar
  20. [ ! -c /dev/net/tun ] && aygit_ekle
  21. [ ! -f /usr/bin/$servis ] && mps kur $servisk
  22. [ ! -f /usr/bin/json ] && json_kur
  23. json_kur(){
  24. curl -L https://github.com/trentm/json/raw/master/lib/json.js > /usr/bin/json && chmod +x /usr/bin/json
  25. }
  26. baslat(){
  27. cjdroute < $anayer/$ayardosya
  28. }
  29. durdur(){
  30. echo "servis durduruluyor"
  31. killall -9 cjdroute
  32. echo "servis durduruldu"
  33. }
  34. olustur(){
  35. if [ ! -f $anayer/$ayardosya ]; then
  36. cjdroute --genconf | cjdroute --cleanconf > $anayer/$ayardosya
  37. echo "ayar dosyası oluşturuldu"
  38. else
  39. echo "zaten ayar dosyası mevcut!"
  40. echo "yeniden oluşturmak için --zo kullanın"
  41. fi
  42. }
  43. yeniden_olustur(){
  44. mv $anayer/$ayardosya $anayer/$ayardosya-"`date +%m-%d-%y.%H%M%S`"
  45. cjdroute --genconf | cjdroute --cleanconf > $anayer/$ayardosya
  46. echo "ayar dosyası oluşturuldu"
  47. }
  48. genel_kimlik(){
  49. cat $anayer/$ayardosya | egrep -m 1 '"publicKey"' | awk -F '"' '{ print $4 }'
  50. }
  51. ozel_kimlik(){
  52. cat $anayer/$ayardosya | egrep -m 1 '"privateKey"' | awk -F '"' '{ print $4 }'
  53. }
  54. ipv6_al(){
  55. #grep -Eo '"ipv6" :.*?[^\\]",' $ayardosya | awk '{print $3}' ;;
  56. #cat $ayardosya | json.js ipv6
  57. cat $anayer/$ayardosya | egrep -m 1 '"ipv6"' | awk -F '"' '{ print $4 }'
  58. }
  59. nokta_ekle(){
  60. if [ ! -f $anayer/$ayardosya ]; then
  61. olustur
  62. fi
  63. ipadres="`json -f $1 -Ma key | sed -n 1p`"
  64. icerik="`json -f $1 -Ma value`"
  65. json -I -f $anayer/$ayardosya -e 'this.interfaces.UDPInterface[0]["connectTo"]["'$ipadres'"]='"$icerik"' '
  66. }
  67. depo_guncelle(){
  68. if [ ! -d $anayer/$noktadepo ];then
  69. git clone $nokta_adres $anayer/$noktadepo
  70. else
  71. cd $anayer/$noktadepo
  72. git pull
  73. cd -
  74. fi
  75. }
  76. rpc_sifre(){
  77. cat $anayer/$ayardosya | json admin.password
  78. #cat $ayardosya | egrep -m 3 '"password"' | awk -F '"' '{ print $4 }' | sed -n 1p
  79. }
  80. menu() {
  81. while [ "$1" ]; do
  82. case $1 in
  83. yeni|--o)
  84. olustur ;;
  85. zyeni|--zo)
  86. yeniden_olustur ;;
  87. basla|--b)
  88. baslat ;;
  89. yebas|--b)
  90. durdur && baslat ;;
  91. ping|--p)
  92. ping6 $pingkontrol ;;
  93. guncelle|--g)
  94. depo_guncelle ;;
  95. kimlik|--k)
  96. genel_kimlik ;;
  97. okimlik|--ok)
  98. ozel_kimlik ;;
  99. ip|--i)
  100. ipv6_al ;;
  101. ekle|--e)
  102. if [ ! "$2" ]; then
  103. echo "nokta ayar dosyası belirtin!"
  104. exit 1
  105. fi
  106. nokta_ekle $anayer/$noktadepo/$2 ;;
  107. sil|--s)
  108. if [ ! "$2" ]; then
  109. echo "nokta ayar dosyası belirtin!"
  110. exit 1
  111. fi
  112. nokta_sil $anayer/$noktadepo/$2 ;;
  113. rpcs|--rs)
  114. rpc_sifre ;;
  115. dur|--d)
  116. durdur ;;
  117. ekle|--e)
  118. peer_ekle "$2" ;;
  119. surum|--s)
  120. echo "$surum $surumbilgi" ;;
  121. esac
  122. shift
  123. done
  124. }
  125. menu "$@"