Advertisement
Guest User

Untitled

a guest
Aug 16th, 2018
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 5.61 KB | None | 0 0
  1. #INSTALL GRAYLOG2 AND NGINX AUTOMAGICALLY @bryptik 8/14/18
  2. #ADD LOGGING LATER
  3. #LOGFILE="/var/log/graylog2-install.log"
  4.  
  5. INFO="\033[1;32m"
  6. RESET="\033[0m"
  7.  
  8. echo "${INFO}Starting Graylog2 Installation${RESET}"
  9.  
  10. #GET PASSWORDS FOR LATER
  11. read -p 'Username: ' nginxUsername
  12. read -p 'Password: ' passvar
  13.  
  14. #DISABLE IPV6
  15. echo "${INFO}Disabling IPv6${RESET}"
  16. echo "  net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
  17. echo "  net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf
  18. echo "  net.ipv6.conf.lo.disable_ipv6 = 1" >> /etc/sysctl.conf
  19.  
  20. #UPDATE AND GET JAVA
  21. echo "${INFO}Verifying system is up to date and installing initial dependencies${RESET}"
  22. apt-get update && apt-get upgrade -y
  23. apt-get install -y apt-transport-https uuid-runtime pwgen software-properties-common python-software-properties debconf-utils pwgen
  24.  
  25. #ADD JAVA WEB REPO
  26. echo "${INFO}Installing JAVA 8 Dependency from Oracle${RESET}"
  27. add-apt-repository -y ppa:webupd8team/java
  28. echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | sudo debconf-set-selections
  29. apt-get update
  30. apt-get install -y oracle-java8-installer
  31.  
  32. #MONGODB INSTALL
  33. echo "${INFO}Installing MongoDB${RESET}"
  34. apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
  35. echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.6.list
  36. apt-get update
  37. apt-get install -y mongodb-org
  38.  
  39. #AUTOSTART MONGODB SERVICE
  40. echo "${INFO}Setting MongoDB Services${RESET}"
  41. systemctl daemon-reload
  42. systemctl enable mongod.service
  43. systemctl restart mongod.service
  44.  
  45. #GET ELASTIC
  46. echo "${INFO}Installing Elastic Search 5x (Graylog2 is not compatible with 6x)${RESET}"
  47. wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
  48. echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
  49. apt-get update && sudo apt-get install elasticsearch
  50.  
  51. #SET CLUSTER.NAME TO GRAYLOG
  52. echo "${INFO}Setting Elastic cluster.name to graylog${RESET}"
  53. sed -i 's/#cluster.name.*/cluster.name: graylog/g' /etc/elasticsearch/elasticsearch.yml
  54.  
  55. #AUTOSTART ELASTICSEARCH SERVICE
  56. echo "${INFO}Setting ElasticSearch Services${RESET}"
  57. systemctl daemon-reload
  58. systemctl enable elasticsearch.service
  59. systemctl restart elasticsearch.service
  60.  
  61. #DOWNLOAD AND INSTALL GRAYLOG SERVER
  62. echo "${INFO}Download and install Graylog2 DEB Latest${RESET}"
  63. wget https://packages.graylog2.org/repo/packages/graylog-2.4-repository_latest.deb
  64. sudo dpkg -i graylog-2.4-repository_latest.deb
  65. sudo apt-get update && sudo apt-get install graylog-server
  66.  
  67. #MODIFY GRAYLOG2 CONFIGURATION
  68. echo "${INFO}Adjust Graylog2 Settings${RESET}"
  69. HOSTIPADDR=$(ifconfig | awk '/inet addr/{print substr($2,6)}'| head -n 1)
  70. SPASS=$(pwgen -N 1 -s 96)
  71. UPASS=$(echo -n $passvar | sha256sum | cut -c1-64) #DROP THAT -
  72.  
  73.  
  74. sed -i 's/#root_username.*/root_username = '$nginxUsername' /g' /etc/graylog/server/server.conf
  75. sed -i 's/password_secret.*/password_secret = '$SPASS' /g' /etc/graylog/server/server.conf
  76. sed -i 's/root_password_sha2.*/root_password_sha2 = '"$UPASS"' /g' /etc/graylog/server/server.conf
  77.  
  78. sed -i 's/rest_listen_uri.*/rest_listen_uri = '"http:\/\/0.0.0.0:9000\/api\/"' /g' /etc/graylog/server/server.conf
  79. sed -i 's/#rest_transport_uri.*/rest_transport_uri =  http:\/\/'"$HOSTIPADDR"':9000\/api\/ /g' /etc/graylog/server/server.conf
  80. sed -i 's/#web_listen_uri.*/web_listen_uri = http:\/\/0.0.0.0:9000\/ /g' /etc/graylog/server/server.conf
  81.  
  82. #AUTOSTART GRAYLOG2 SERVICES
  83. echo "${INFO}Setting Graylog2 Services${RESET}"
  84. systemctl daemon-reload
  85. systemctl enable graylog-server.service
  86. systemctl restart graylog-server.service
  87.  
  88. #CREATE SSL CERTIFICATES
  89. echo "${INFO}Generating SSL Certificates${RESET}"
  90. HOSTIPADDR=$(ifconfig | awk '/inet addr/{print substr($2,6)}'| head -n 1)
  91. sed -i '226s/.*/subjectAltName = IP: '"$HOSTIPADDR"'/' /etc/ssl/openssl.cnf
  92. mkdir -p /etc/pki/tls/certs
  93. mkdir /etc/pki/tls/private
  94. openssl req -config /etc/ssl/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout /etc/pki/tls/private/Graylog2.key -out /etc/pki/tls/certs/Graylog2.crt
  95.  
  96. #INSTALL NGINX PROXY
  97. echo "${INFO}Installing NGINX front end proxy for Graylog2${RESET}"
  98. apt-get install -y nginx apache2-utils
  99.  
  100. #CREATE NGINX GRAYLOG2 SITE
  101. echo "${INFO}Creating new NGINX site${RESET}"
  102. cp /etc/nginx/sites-available/default /etc/nginx/sites-available/backup_default
  103. truncate -s 0 /etc/nginx/sites-available/default
  104.  
  105. newDefault="
  106.    server {
  107.        listen 443 default ssl;
  108.        ssl_certificate /etc/pki/tls/certs/Graylog2.crt;
  109.        ssl_certificate_key /etc/pki/tls/private/Graylog2.key;
  110.        ssl_session_cache shared:SSL:10m;
  111.         server_name $HOSTIPADDR;
  112.         access_log /var/log/nginx/graylog.access.log;
  113.        location / {
  114.             proxy_set_header Host \$host;
  115.             proxy_set_header X-Forwarded-Host \$host;
  116.             proxy_set_header X-Forwarded-Server \$host;
  117.             proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
  118.             proxy_set_header X-Graylog-Server-URL https://\$server_name/api;
  119.             proxy_pass       http://127.0.0.1:9000;
  120.        }
  121.    }
  122. "
  123. echo "$newDefault" >> /etc/nginx/sites-available/default
  124.  
  125. echo "${INFO}Testing NGINX Config${RESET}"
  126. nginx -t
  127. systemctl restart nginx
  128.  
  129. #SET NGINX SERVICES
  130. systemctl start nginx
  131. systemctl enable nginx
  132.  
  133. #FINALE!
  134. echo "${INFO}Graylog2 has been installed${RESET}"
  135. echo "Browse to your server and sign-in @ "$HOSTIPADDR
  136. echo "Username: " $nginxUsername
  137. echo "Password: " $passvar
  138. echo "Additional Details:"
  139. echo "SSL cert: /etc/pki/tls/certs/Graylog2.crt"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement