install-debian-server.sh 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654
  1. #!/bin/sh
  2. # bachir soussi chiadmi
  3. #
  4. # http://www.pontikis.net/blog/debian-9-stretch-rc3-web-server-setup-php7-mariadb
  5. # http://web-74.com/blog/reseaux/gerer-le-deploiement-facilement-avec-git/
  6. #
  7. echo '\033[35m
  8. ____ __ _ _____
  9. / __ \___ / /_ (_)___ _____ / ___/___ ______ _____ _____
  10. / / / / _ \/ __ \/ / __ `/ __ \ \__ \/ _ \/ ___/ | / / _ \/ ___/
  11. / /_/ / __/ /_/ / / /_/ / / / / ___/ / __/ / | |/ / __/ /
  12. /_____/\___/_.___/_/\__,_/_/ /_/ /____/\___/_/ |___/\___/_/
  13. \033[0m'
  14. echo "\033[35;1mThis script has been tested only on Linux Debian 9 \033[0m"
  15. echo "Please run this script as root"
  16. echo -n "Should we start? [Y|n] "
  17. read yn
  18. yn=${yn:-y}
  19. if [ "$yn" != "y" ]; then
  20. echo "aborting script!"
  21. exit
  22. fi
  23. # get the current position
  24. _cwd="$(pwd)"
  25. echo '\033[35m
  26. __ ______ __________ ___ ____ ______
  27. / / / / __ \/ ____/ __ \/ | / __ \/ ____/
  28. / / / / /_/ / / __/ /_/ / /| | / / / / __/
  29. / /_/ / ____/ /_/ / _, _/ ___ |/ /_/ / /___
  30. \____/_/ \____/_/ |_/_/ |_/_____/_____/
  31. \033[0m'
  32. apt-get update
  33. apt-get upgrade
  34. echo '\033[35m
  35. __ ____
  36. / |/ (_)_________
  37. / /|_/ / / ___/ ___/
  38. / / / / (__ ) /__
  39. /_/ /_/_/____/\___/
  40. \033[0m'
  41. apt-get --yes --force-yes install vim
  42. sed -i "s/^# en_GB.UTF-8/en_GB.UTF-8/g" /etc/locale.gen
  43. locale-gen
  44. apt-get --yes --force-yes install ntp
  45. echo '\033[35m
  46. ______________ _______ _____ __ __
  47. / ____/ _/ __ \/ ____/ | / / | / / / /
  48. / /_ / // /_/ / __/ | | /| / / /| | / / / /
  49. / __/ _/ // _, _/ /___ | |/ |/ / ___ |/ /___/ /___
  50. /_/ /___/_/ |_/_____/ |__/|__/_/ |_/_____/_____/
  51. \033[0m'
  52. echo "\033[35;1mInstalling ufw and setup firewall (allowing only ssh and http) \033[0m"
  53. sleep 3
  54. apt-get --yes --force-yes install ufw
  55. # ufw allow ssh # knockd will open the ssh port
  56. ufw allow http
  57. ufw allow https
  58. ufw enable
  59. ufw status verbose
  60. echo "\033[92;1mufw installed and firwall configured\033[Om"
  61. echo '\033[35m
  62. ______ _ _____ __
  63. / ____/___ _(_) /__ \ / /_ ____ _____
  64. / /_ / __ `/ / /__/ // __ \/ __ `/ __ \
  65. / __/ / /_/ / / // __// /_/ / /_/ / / / /
  66. /_/ \__,_/_/_//____/_.___/\__,_/_/ /_/
  67. \033[0m'
  68. echo "\033[35;1mInstalling fall2ban \033[0m"
  69. apt-get --yes --force-yes install fail2ban
  70. cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  71. # ToDo ask for email and configure jail.local with it
  72. systemctl enable fail2ban
  73. systemctl restart fail2ban
  74. echo "\033[92;1mfail2ban installed and configured\033[Om"
  75. echo '\033[35m
  76. __ __ __
  77. / /______ ____ _____/ /______/ /
  78. / //_/ __ \/ __ \/ ___/ //_/ __ /
  79. / ,< / / / / /_/ / /__/ ,< / /_/ /
  80. /_/|_/_/ /_/\____/\___/_/|_|\__,_/
  81. \033[0m'
  82. echo "\033[35;1mInstalling knockd \033[0m"
  83. sleep 3
  84. apt-get --yes --force-yes install knockd
  85. echo -n "define a sequence number for opening (as 7000,8000,9000) : "
  86. read sq1
  87. echo -n "define a sequence number for closing (as 9000,8000,7000) : "
  88. read sq2
  89. sed -i "s/7000,8000,9000/$sq1/g" /etc/knockd.conf
  90. sed -i "s/9000,8000,7000/$sq2/g" /etc/knockd.conf
  91. sed -i 's/START_KNOCKD=0/START_KNOCKD=1/g' /etc/default/knockd
  92. systemctl enable knockd
  93. systemctl start knockd
  94. echo "\033[92;1mknockd installed and configured\033[Om"
  95. echo "\033[92;1mplease note these sequences for future knocking\033[Om"
  96. echo "opening : $sq1 ; closing : $sq2"
  97. echo '\033[35m
  98. __ _______ __________
  99. / / / / ___// ____/ __ \
  100. / / / /\__ \/ __/ / /_/ /
  101. / /_/ /___/ / /___/ _, _/
  102. \____//____/_____/_/ |_|
  103. \033[0m'
  104. echo "\033[35;1mCreate new user (you will be asked a user name and a password) \033[0m"
  105. sleep 3
  106. echo -n "Enter user name: "
  107. read user
  108. # read -p "Continue? (Y/N): " confirm && [[ $confirm == [yY] || $confirm == [yY][eE][sS] ]] || exit 1
  109. adduser "$user"
  110. echo "adding $user to admin group and limiting su to the admin group"
  111. groupadd admin
  112. usermod -a -G admin "$user"
  113. # allow admin group to su
  114. dpkg-statoverride --update --add root admin 4750 /bin/su
  115. echo "\033[92;1muser $user configured\033[Om"
  116. echo '\033[35m
  117. __ ______ ______
  118. / |/ / | / _/ /
  119. / /|_/ / /| | / // /
  120. / / / / ___ |_/ // /___
  121. /_/ /_/_/ |_/___/_____/
  122. \033[0m'
  123. echo "\033[35;1mEnable mail sending for php \033[0m"
  124. # http://www.sycha.com/lamp-setup-debian-linux-apache-mysql-php#anchor13
  125. sleep 3
  126. apt-get --yes --force-yes install exim4
  127. echo "\033[35;1mConfiguring EXIM4 \033[0m"
  128. while [ "$configexim" != "y" ] && [ "$configexim" != "n" ]
  129. do
  130. echo -n "Should we configure exim4 ? [y|n] "
  131. read configexim
  132. done
  133. if [ "$configexim" = "y" ]; then
  134. echo "choose the first option :internet site; mail is sent and received directly using SMTP. Leave the other options as default exepted for domain name which should be valid domain name if you want your mails to not be considered as spam"
  135. echo "press any key to continue."
  136. read continu
  137. dpkg-reconfigure exim4-config
  138. else
  139. echo 'exim not configured'
  140. fi
  141. systemctl enable exim4
  142. systemctl restart exim4
  143. # dkim spf
  144. # https://debian-administration.org/article/718/DKIM-signing_outgoing_mail_with_exim4
  145. echo "\033[35;1mConfiguring DKIM \033[0m"
  146. while [ "$installdkim" != "y" ] && [ "$installdkim" != "n" ]
  147. do
  148. echo -n "Should we install dkim for exim4 ? [y|n] "
  149. read installdkim
  150. done
  151. if [ "$installdkim" = "y" ]; then
  152. echo -n "Choose a domain for dkim (same domain as you chose before for exim4): "
  153. read domain
  154. selector=$(date +%Y%m%d)
  155. mkdir /etc/exim4/dkim
  156. openssl genrsa -out /etc/exim4/dkim/"$domain"-private.pem 1024 -outform PEM
  157. openssl rsa -in /etc/exim4/dkim/"$domain"-private.pem -out /etc/exim4/dkim/"$domain".pem -pubout -outform PEM
  158. chown root:Debian-exim /etc/exim4/dkim/"$domain"-private.pem
  159. chmod 440 /etc/exim4/dkim/"$domain"-private.pem
  160. cp "$_cwd"/assets/exima4_dkim.conf /etc/exim4/conf.d/main/00_local_macros
  161. sed -ir "s/DOMAIN_TO_CHANGE/$domain/g" /etc/exim4/conf.d/main/00_local_macros
  162. sed -ir "s/DATE_TO_CHANGE/$selector/g" /etc/exim4/conf.d/main/00_local_macros
  163. update-exim4.conf
  164. systemctl restart exim4
  165. echo "please create a TXT entry in your dns zone : $selector._domainkey.$domain \n"
  166. echo "your public key is : \n"
  167. cat /etc/exim4/dkim/"$domain".pem
  168. echo "press any key to continue."
  169. read continu
  170. else
  171. echo 'dkim not installed'
  172. fi
  173. echo '\033[35m
  174. __________ __ __
  175. / ___/ ___// / / /
  176. \__ \\__ \/ /_/ /
  177. ___/ /__/ / __ /
  178. /____/____/_/ /_/
  179. \033[0m'
  180. while [ "$securssh" != "y" ] && [ "$securssh" != "n" ]
  181. do
  182. echo -n "Securing ssh (disabling root login)? [y|n] "
  183. read securssh
  184. # securssh=${securssh:-y}
  185. done
  186. if [ "$securssh" = "y" ]; then
  187. sed -i 's/PermitRootLogin\ yes/PermitRootLogin no/g' /etc/ssh/sshd_config
  188. sed -i 's/PermitEmptyPasswords\ yes/PermitEmptyPasswords no/g' /etc/ssh/sshd_config
  189. sed -i 's/Protocol\ [0-9]/Protocol 2/g' /etc/ssh/sshd_config
  190. systemctl reload ssh
  191. echo "\033[92;1mSSH secured\033[Om"
  192. else
  193. echo 'root user can still conect through ssh'
  194. fi
  195. echo '\033[35m
  196. ______ _______ _____
  197. | ____|__ __| __ \
  198. | |__ | | | |__) |
  199. | __| | | | ___/
  200. | | | | | |
  201. |_| |_| |_|
  202. \033[0m'
  203. echo -n "Should we install ftp server? [Y|n] "
  204. read yn
  205. yn=${yn:-y}
  206. if [ "$yn" = "y" ]; then
  207. echo "installing proftpd"
  208. apt-get --yes --force-yes install proftpd
  209. while [ "$_server_name" = "" ]
  210. do
  211. read -p "enter a server name ? " _server_name
  212. if [ "$_server_name" != "" ]; then
  213. read -p "is server name $_server_name correcte [y|n] " validated
  214. if [ "$validated" = "y" ]; then
  215. break
  216. else
  217. _server_name=""
  218. fi
  219. fi
  220. done
  221. echo "Configuring proftpd"
  222. cp "$_cwd"/assets/proftpd.conf /etc/proftpd/conf.d/"$_server_name".conf
  223. sed -ir "s/example/$_server_name/g" /etc/proftpd/conf.d/"$_server_name".conf
  224. ufw allow ftp
  225. addgroup ftpuser
  226. systemctl enable proftpd
  227. systemctl restart proftpd
  228. echo "ftp installtion done"
  229. echo "to permit to a user to connect through ftp, add him to the ftpuser group by running : usermod -a -G ftpuser USERNAME"
  230. echo "FTP users are jailed on their home by default"
  231. fi
  232. # TODO : allow ssh/ftp connection only from given ips
  233. echo '\033[35m
  234. __
  235. / /__ ____ ___ ____
  236. / / _ \/ __ `__ \/ __ \
  237. / / __/ / / / / / /_/ /
  238. /_/\___/_/ /_/ /_/ .___/
  239. /_/
  240. \033[0m'
  241. echo "\033[35;1mLEMP server (Nginx Mysql Php) \033[0m"
  242. sleep 3
  243. while [ "$lemp" != "y" ] && [ "$lemp" != "n" ]
  244. do
  245. echo -n "Should we install lemp ? [y|n] "
  246. read lemp
  247. done
  248. if [ "$lemp" = "y" ]; then
  249. echo '\033[35m
  250. __ ___ __
  251. / |/ /_ ___________ _/ /
  252. / /|_/ / / / / ___/ __ `/ /
  253. / / / / /_/ (__ ) /_/ / /
  254. /_/ /_/\__, /____/\__, /_/
  255. /____/ /_/
  256. \033[0m'
  257. echo "\033[35;1minstalling Mysql \033[0m"
  258. sleep 3
  259. apt-get --yes --force-yes install mariadb-server
  260. mysql_secure_installation
  261. systemctl enable mariadb.service
  262. systemctl restart mariadb.service
  263. echo "\033[92;1mmysql installed\033[Om"
  264. echo '\033[35m
  265. _ __ _
  266. / | / /___ _(_)___ _ __
  267. / |/ / __ `/ / __ \| |/_/
  268. / /| / /_/ / / / / /> <
  269. /_/ |_/\__, /_/_/ /_/_/|_|
  270. /____/
  271. \033[0m'
  272. echo "\033[35;1mInstalling Nginx \033[0m"
  273. sleep 3
  274. apt-get --yes --force-yes install nginx
  275. cp "$_cwd"/assets/nginx.conf /etc/nginx/conf.d/
  276. systemctl enable nginx
  277. systemctl restart nginx
  278. echo "\033[92;1mNginx installed\033[Om"
  279. echo '\033[35m
  280. ____ __ ______
  281. / __ \/ / / / __ \
  282. / /_/ / /_/ / /_/ /
  283. / ____/ __ / ____/
  284. /_/ /_/ /_/_/
  285. \033[0m'
  286. echo "\033[35;1mInstalling PHP 7.0 \033[0m"
  287. sleep 3
  288. apt-get --yes --force-yes install php7.0-fpm php7.0-mysql php7.0-opcache php7.0-curl php7.0-mbstring php7.0-zip php7.0-xml php7.0-gd php7.0-mcrypt php-memcached
  289. echo "Configuring PHP"
  290. mkdir /var/log/php
  291. chown www-data /var/log/php
  292. cp "$_cwd"/assets/logrotate-php /etc/logrotate.d/php
  293. # echo "Installing memecached"
  294. # replaced by redis
  295. # apt-get --yes --force-yes install memcached
  296. # sed -i "s/-m\s64/-m 128/g" /etc/memcached.conf
  297. #
  298. # systemctl start memcached
  299. echo "\033[92;1mphp installed\033[Om"
  300. echo '\033[35m
  301. __ __ ___ ___ __ _
  302. ____ / /_ ____ / |/ /_ __/ | ____/ /___ ___ (_)___
  303. / __ \/ __ \/ __ \/ /|_/ / / / / /| |/ __ / __ `__ \/ / __ \
  304. / /_/ / / / / /_/ / / / / /_/ / ___ / /_/ / / / / / / / / / /
  305. / .___/_/ /_/ .___/_/ /_/\__, /_/ |_\__,_/_/ /_/ /_/_/_/ /_/
  306. /_/ /_/ /____/
  307. \033[0m'
  308. echo "\033[35;1mInstalling phpMyAdmin \033[0m"
  309. apt-get --yes --force-yes install phpmyadmin
  310. # echo "include /etc/phpmyadmin/apache.conf" >> /etc/apache2/apache2.conf
  311. # ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
  312. # a2enconf phpmyadmin.conf
  313. echo "\033[35;1msecuring phpMyAdmin \033[0m"
  314. # sed -i "s/DirectoryIndex index.php/DirectoryIndex index.php\nAllowOverride all/"
  315. cp "$_cwd"/assets/phpmyadmin_htaccess > /usr/share/phpmyadmin/.htaccess
  316. echo -n "define a user name for phpmyadmin : "
  317. read un
  318. htpasswd -c /etc/phpmyadmin/.htpasswd $un
  319. # service apache2 restart
  320. echo "\033[92;1mphpMyAdmin installed\033[Om"
  321. echo "\033[92;1mYou can access it at yourip/phpmyadmin\033[Om"
  322. echo '\033[35m
  323. ____ ___
  324. / __ \___ ____/ (_)____
  325. / /_/ / _ \/ __ / / ___/
  326. / _, _/ __/ /_/ / (__ )
  327. /_/ |_|\___/\__,_/_/____/
  328. \033[0m'
  329. echo "\033[35;1mInstalling Redis \033[0m"
  330. sleep 3
  331. apt-get --yes --force-yes install redis-server php-redis
  332. # cp "$_cwd"/assets/nginx.conf /etc/nginx/conf.d/
  333. systemctl enable redis-server
  334. systemctl restart redis-server
  335. echo "\033[92;1mRedis installed\033[Om"
  336. # echo '\033[35m
  337. # __ __
  338. # _ __/ /_ ____ _____/ /_
  339. # | | / / __ \/ __ \/ ___/ __/
  340. # | |/ / / / / /_/ (__ ) /_
  341. # |___/_/ /_/\____/____/\__/
  342. # \033[0m'
  343. # echo "\033[35;1mVHOST install \033[0m"
  344. # while [ "$vh" != "y" ] && [ "$vh" != "n" ]
  345. # do
  346. # echo -n "Should we install a vhost? [y|n] "
  347. # read vh
  348. # # vh=${vh:-y}
  349. # done
  350. # if [ "$vh" = "y" ]; then
  351. #
  352. # while [ "$_host_name" = "" ]
  353. # do
  354. # read -p "enter a hostname ? " _host_name
  355. # if [ "$_host_name" != "" ]; then
  356. # read -p "is hostname $_host_name correcte [y|n] " validated
  357. # if [ "$validated" = "y" ]; then
  358. # break
  359. # else
  360. # _host_name=""
  361. # fi
  362. # fi
  363. # done
  364. #
  365. # cp "$_cwd"/assets/example.org.conf /etc/apache2/sites-available/"$_host_name".conf
  366. # sed -ir "s/example\.org/$_host_name/g" /etc/apache2/sites-available/"$_host_name".conf
  367. #
  368. # mkdir -p /srv/www/"$_host_name"/public_html
  369. # mkdir /srv/www/"$_host_name"/logs
  370. # #set proper right to user will handle the app
  371. # chown -R root:admin /srv/www/"$_host_name"/
  372. # chmod -R g+w /srv/www/"$_host_name"/
  373. # chmod -R g+r /srv/www/"$_host_name"/
  374. #
  375. # # create a shortcut to the site
  376. # mkdir /home/"$user"/www/
  377. # chown "$user":admin /home/"$user"/www/
  378. # ln -s /srv/www/"$_host_name" /home/"$user"/www/"$_host_name"
  379. #
  380. # #activate the vhost
  381. # a2ensite "$_host_name".conf
  382. #
  383. # #restart apache
  384. # service apache2 restart
  385. # echo "\033[92;1mvhost $_host_name configured\033[Om"
  386. # else
  387. # echo "Vhost installation aborted"
  388. # fi
  389. # TODO supervising
  390. # echo '\033[35m
  391. # __ ___ _ __ __ __ ___ _
  392. # / |/ /__ ___ (_) /_ _/_/ / |/ /_ _____ (_)__
  393. # / /|_/ / _ \/ _ \/ / __/ _/_/ / /|_/ / // / _ \/ / _ \
  394. # /_/ /_/\___/_//_/_/\__/ /_/ /_/ /_/\_,_/_//_/_/_//_/
  395. # \033[0m'
  396. # echo "\033[35;1mInstalling Munin \033[0m"
  397. # sleep 3
  398. # # https://www.howtoforge.com/tutorial/server-monitoring-with-munin-and-monit-on-debian/
  399. # apt-get --yes --force-yes install munin munin-node munin-plugins-extra
  400. # # Configure Munin
  401. # # enable plugins
  402. # ln -s /usr/share/munin/plugins/mysql_ /etc/munin/plugins/mysql_
  403. # ln -s /usr/share/munin/plugins/mysql_bytes /etc/munin/plugins/mysql_bytes
  404. # ln -s /usr/share/munin/plugins/mysql_innodb /etc/munin/plugins/mysql_innodb
  405. # ln -s /usr/share/munin/plugins/mysql_isam_space_ /etc/munin/plugins/mysql_isam_space_
  406. # ln -s /usr/share/munin/plugins/mysql_queries /etc/munin/plugins/mysql_queries
  407. # ln -s /usr/share/munin/plugins/mysql_slowqueries /etc/munin/plugins/mysql_slowqueries
  408. # ln -s /usr/share/munin/plugins/mysql_threads /etc/munin/plugins/mysql_threads
  409. #
  410. # ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/
  411. # ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/
  412. # ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/
  413. #
  414. # # ln -s /usr/share/munin/plugins/fail2ban /etc/munin/plugins/
  415. #
  416. # # dbdir, htmldir, logdir, rundir, and tmpldir
  417. # sed -i 's/^#dbdir/dbdir/' /etc/munin/munin.conf
  418. # sed -i 's/^#htmldir/htmldir/' /etc/munin/munin.conf
  419. # sed -i 's/^#logdir/logdir/' /etc/munin/munin.conf
  420. # sed -i 's/^#rundir/rundir/' /etc/munin/munin.conf
  421. # sed -i 's/^#tmpldir/tmpldir/' /etc/munin/munin.conf
  422. #
  423. # sed -i "s/^\[localhost.localdomain\]/[${HOSTNAME}]/" /etc/munin/munin.conf
  424. #
  425. # # ln -s /etc/munin/apache24.conf /etc/apache2/conf-enabled/munin.conf
  426. # sed -i 's/Require local/Require all granted\nOptions FollowSymLinks SymLinksIfOwnerMatch/g' /etc/munin/apache24.conf
  427. # htpasswd -c /etc/munin/munin-htpasswd admin
  428. # sed -i 's/Require all granted/AuthUserFile \/etc\/munin\/munin-htpasswd\nAuthName "Munin"\nAuthType Basic\nRequire valid-user/g' /etc/munin/apache24.conf
  429. #
  430. #
  431. # service apache2 restart
  432. # service munin-node restart
  433. # echo "\033[92;1mMunin installed\033[Om"
  434. #
  435. # echo "\033[35;1mInstalling Monit \033[0m"
  436. # sleep 3
  437. # # https://www.howtoforge.com/tutorial/server-monitoring-with-munin-and-monit-on-debian/2/
  438. # apt-get --yes --force-yes install monit
  439. # # TODO setup monit rc
  440. # cat "$_cwd"/assets/monitrc > /etc/monit/monitrc
  441. #
  442. # # TODO setup webaccess
  443. # passok=0
  444. # while [ "$passok" = "0" ]
  445. # do
  446. # echo -n "Write web access password to monit"
  447. # read passwda
  448. # echo -n "ReWrite web access password to monit"
  449. # read passwdb
  450. # if [ "$passwda" = "$passwdb" ]; then
  451. # sed -i 's/PASSWD_TO_REPLACE/$passwda/g' /etc/monit/monitrc
  452. # passok=1
  453. # else
  454. # echo "pass words don't match, please try again"
  455. # fi
  456. # done
  457. #
  458. # # TODO setup mail settings
  459. # sed -i "s/server1\.example\.com/$HOSTNAME/g" /etc/monit/monitrc
  460. #
  461. # mkdir /var/www/html/monit
  462. # echo "hello" > /var/www/html/monit/token
  463. #
  464. # service monit start
  465. #
  466. # echo "\033[92;1mMonit installed\033[Om"
  467. # echo '\033[35m
  468. # ___ __ __
  469. # / |_ _______/ /_____ _/ /_
  470. # / /| | | /| / / ___/ __/ __ `/ __/
  471. # / ___ | |/ |/ (__ ) /_/ /_/ / /_
  472. # /_/ |_|__/|__/____/\__/\__,_/\__/
  473. # \033[0m'
  474. # echo "\033[35;1mInstalling Awstat \033[0m"
  475. # sleep 3
  476. # apt-get --yes --force-yes install awstats
  477. # # Configure AWStats
  478. # temp=`grep -i sitedomain /etc/awstats/awstats.conf.local | wc -l`
  479. # if [ $temp -lt 1 ]; then
  480. # echo SiteDomain="$_host_name" >> /etc/awstats/awstats.conf.local
  481. # fi
  482. # # Disable Awstats from executing every 10 minutes. Put a hash in front of any line.
  483. # sed -i 's/^[^#]/#&/' /etc/cron.d/awstats
  484. # echo "\033[92;1mAwstat installed\033[Om"
  485. else
  486. echo 'lemp server not installed'
  487. fi
  488. # echo '\033[35m
  489. # ______________ _______
  490. # /_ __/ ____/ |/ / __ \
  491. # / / / __/ / /|_/ / /_/ /
  492. # / / / /___/ / / / ____/
  493. # /_/ /_____/_/ /_/_/
  494. # \033[0m'
  495. # function check_tmp_secured {
  496. # temp1=`grep -w "/var/tempFS /tmp ext3 loop,nosuid,noexec,rw 0 0" /etc/fstab | wc -l`
  497. # temp2=`grep -w "tmpfs /tmp tmpfs rw,noexec,nosuid 0 0" /etc/fstab | wc -l`
  498. # if [ $temp1 -gt 0 ] || [ $temp2 -gt 0 ]; then
  499. # return 1
  500. # else
  501. # return 0
  502. # fi
  503. # } # End function check_tmp_secured
  504. # function secure_tmp_tmpfs {
  505. # cp /etc/fstab /etc/fstab.bak
  506. # # Backup /tmp
  507. # cp -Rpf /tmp /tmpbackup
  508. # rm -rf /tmp
  509. # mkdir /tmp
  510. # mount -t tmpfs -o rw,noexec,nosuid tmpfs /tmp
  511. # chmod 1777 /tmp
  512. # echo "tmpfs /tmp tmpfs rw,noexec,nosuid 0 0" >> /etc/fstab
  513. # # Restore /tmp
  514. # cp -Rpf /tmpbackup/* /tmp/ >/dev/null 2>&1
  515. # #Remove old tmp dir
  516. # rm -rf /tmpbackup
  517. # # Backup /var/tmp and link it to /tmp
  518. # mv /var/tmp /var/tmpbackup
  519. # ln -s /tmp /var/tmp
  520. # # Copy the old data back
  521. # cp -Rpf /var/tmpold/* /tmp/ >/dev/null 2>&1
  522. # # Remove old tmp dir
  523. # rm -rf /var/tmpbackup
  524. # echo -e "\033[35;1m /tmp and /var/tmp secured using tmpfs. \033[0m"
  525. # } # End function secure_tmp_tmpfs
  526. # check_tmp_secured
  527. # if [ $? = 0 ]; then
  528. # secure_tmp_tmpfs
  529. # else
  530. # echo -e "\033[35;1mFunction canceled. /tmp already secured. \033[0m"
  531. # fi
  532. echo '\033[35m
  533. ____ __ _______ __
  534. / __ \____ / /_ / ____(_) /__ _____
  535. / / / / __ \/ __/ / /_ / / / _ \/ ___/
  536. / /_/ / /_/ / /_ / __/ / / / __(__ )
  537. /_____/\____/\__/ /_/ /_/_/\___/____/
  538. \033[0m'
  539. #installing better prompt and some goodies for root
  540. echo "\033[35;1mInstalling shell prompt for root \033[0m"
  541. sleep 3
  542. echo "cloning github.com/bachy/dotfiles-server"
  543. git clone git://github.com/bachy/dotfiles-server.git ~/.dotfiles-server && cd ~/.dotfiles-server && ./install.sh && cd ~
  544. source ~/.bashrc
  545. echo "\033[92;1mDot files installed for root, you should installed them manually for $USER\033[0m"
  546. # TODO add warning message on ssh connection if system needs updates
  547. # TODO install and configure tmux
  548. echo '\033[35m
  549. ___ __ __ __ __ __
  550. / | __ __/ /_____ / / / /___ ____/ /___ _/ /____
  551. / /| |/ / / / __/ __ \ / / / / __ \/ __ / __ `/ __/ _ \
  552. / ___ / /_/ / /_/ /_/ / / /_/ / /_/ / /_/ / /_/ / /_/ __/
  553. /_/ |_\__,_/\__/\____/ \____/ .___/\__,_/\__,_/\__/\___/
  554. /_/
  555. \033[0m'
  556. # https://www.howtoforge.com/how-to-configure-automatic-updates-on-debian-wheezy
  557. # https://www.bisolweb.com/tutoriels/serveur-vps-ovh-partie-5-installation-apticron/
  558. echo "\033[35;1mInstalling apticron \033[0m"
  559. apt-get --yes --force-yes install apticron
  560. sleep 3
  561. echo -n "Enter an email: "
  562. read email
  563. sed -ir "s/EMAIL=\"root\"/EMAIL=\"$email\"/g" /etc/apticron/apticron.conf
  564. # sed -ir "s/# DIFF_ONLY=\"1\"/DIFF_ONLY=\"1\"/g" /etc/apticron/apticron.conf
  565. sed -ir "s/# NOTIFY_NEW=\"0\"/NOTIFY_NEW=\"0\"/g" /etc/apticron/apticron.conf
  566. echo "\033[92;1mApticron installed and configured\033[0m"
  567. echo '\033[35m
  568. __
  569. ___ ____ ____/ /
  570. / _ \/ __ \/ __ /
  571. / __/ / / / /_/ /
  572. \___/_/ /_/\__,_/
  573. \033[0m'
  574. echo "\033[35;1m* * script done * * \033[0m"