Subversion Repositories ALCASAR

Rev

Rev 2454 | Rev 2458 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log

Rev Author Line No. Line
672 richard 1
#!/bin/bash
62 franck 2
# $Id: alcasar-uninstall.sh 2457 2017-12-10 14:11:01Z richard $
3
 
1 root 4
# alcasar-uninstall.sh
672 richard 5
# by Franck BOUIJOUX, Pascal LEVANT and Richard REY
1 root 6
# This script is distributed under the Gnu General Public License (GPL)
518 stephane 7
 
2206 richard 8
# Désisntallation ou mise à jour d'ALCASAR
9
# Uninstall or update ALCASAR
672 richard 10
 
2206 richard 11
usage="Usage: alcasar-uninstall.sh {-update or --update} | {-full or --full}"
88 richard 12
SED="/bin/sed -i"
2206 richard 13
 
14
nb_args=$#
15
args=$1
16
if [ $nb_args -eq 0 ]
17
then
18
	nb_args=1
19
	args="-h"
20
fi
21
case $args in
22
	-\? | -h* | --h*)
23
		echo "$usage"
24
		exit 0
25
		;;
26
	--update | -update)
27
		mode="update"
28
		;;
29
	--full | -full)
30
		mode="full"
31
		;;
32
	*)
33
		echo "Argument inconnu :$1";
34
		echo "$usage"
35
		exit 1
36
		;;
37
esac
38
 
1 root 39
clear
2206 richard 40
if [ $mode == "full" ]
41
then
42
	echo "----------------------------------------------------------------------------"
43
	echo "**                     Uninstall/Désinstallation d'ALCASAR		**"
44
	echo "----------------------------------------------------------------------------"
45
	services="alcasar-load_balancing vnstat havp freshclam ntpd httpd radiusd mysqld dnsmasq-blacklist dnsmasq-whitelist dnsmasq-blackhole tinyproxy nfsen fail2ban iptables ulogd-ext-access ulogd-ssh ulogd-traceability dansguardian dnsmasq sshd chilli"
46
	/usr/local/bin/alcasar-logout.sh all # logout everybody
47
else
48
	echo "----------------------------------------------------------------------------"
49
	echo "**                     update/mise à jour d'ALCASAR			**"
50
	echo "----------------------------------------------------------------------------"
51
	# dnsmasq & sshd should stay on to allow remote update
2212 richard 52
	services="alcasar-load_balancing vnstat havp freshclam ntpd httpd radiusd mysqld dnsmasq-blacklist dnsmasq-whitelist dnsmasq-blackhole tinyproxy nfsen fail2ban ulogd-ext-access ulogd-ssh ulogd-traceability dansguardian chilli"
2206 richard 53
	/usr/local/bin/alcasar-bypass.sh -on # to allow remote update
54
fi
1673 richard 55
echo "Stopping service : "
1800 richard 56
/usr/local/bin/alcasar-sms.sh --stop
2454 tom.houday 57
for i in $services
1211 crox53 58
do
2454 tom.houday 59
	if [ -e /lib/systemd/system/$i.service ]
1800 richard 60
	then
61
		/usr/bin/systemctl disable $i.service
2454 tom.houday 62
		/usr/bin/systemctl stop $i.service 1>/dev/null
1800 richard 63
		sleep 1
64
	else
65
		echo "The service $i.service doesn't exist !"
66
	fi
1211 crox53 67
done
1673 richard 68
echo "Check the service clearing"
2206 richard 69
for i in $services
1673 richard 70
do
71
	if [ `systemctl is-active $i.service` == "active" ]
72
	then
73
		echo "The service '$i' need to be killed"
74
		/usr/bin/systemctl stop $i.service
75
		killall $i
76
	fi
77
done
2426 richard 78
if [ $mode == "update" ] # reload sshd in case of remote update
2226 richard 79
then
2457 richard 80
	/usr/bin/systemctl reload sshd
2226 richard 81
fi
1502 richard 82
echo "Reset ALCASAR main functions : "
2226 richard 83
echo -en "\n- init (1) : "
2206 richard 84
# The files in /usr/local/ will be removed at the end (usefull here)
498 richard 85
rm -f /root/ALCASAR* && echo -n "1"
1 root 86
sleep 1
287 richard 87
 
2432 richard 88
echo -en "\n- init (2) : "
89
[ -e /boot/grub2/user.cfg ] && rm -f /boot/grub2/user.cfg && echo -n "1, "
2444 richard 90
[ -e /root/grub.default ] && mv -f /root/grub.default /etc/grub.d/10_linux && echo -n "2"
2432 richard 91
sleep 1
92
 
2226 richard 93
echo -en "\n- ACC (11) : "
1 root 94
[ -d /var/www/html ] && rm -rf /var/www/html && echo -n "1, "
1833 richard 95
[ -d /etc/freeradius-web ] && rm -rf /etc/freeradius-webl && echo -n "2, "
2432 richard 96
[ -e /etc/php.ini.default ] && mv -f /etc/php.ini.default /etc/php.ini && echo -n "3, "
1893 richard 97
[ -e /etc/httpd/conf/httpd.conf.default ] && mv /etc/httpd/conf/httpd.conf.default /etc/httpd/conf/httpd.conf && echo -n "4, "
98
[ -e /etc/httpd/conf/modules.d/00_base.conf.default ] && mv /etc/httpd/conf/modules.d/00_base.conf.default /etc/httpd/conf/modules.d/00_base.conf && echo -n "5, "
99
[ -e /etc/httpd/conf/conf.d/ssl.conf.default ] && mv /etc/httpd/conf/conf.d/ssl.conf.default /etc/httpd/conf/conf.d/ssl.conf && echo -n "6, "
100
[ -e /etc/httpd/conf/conf.d/multilang-errordoc.conf.default ] && mv /etc/httpd/conf/conf.d/multilang-errordoc.conf.default /etc/httpd/conf/conf.d/multilang-errordoc.conf && echo -n "7, "
101
[ -e /usr/share/httpd/error/include/top.html.default ] && mv /usr/share/httpd/error/include/top.html.default /usr/share/httpd/error/include/top.html && echo -n "8, "
102
[ -e /usr/share/httpd/error/include/bottom.html.default ] && mv /usr/share/httpd/error/include/bottom.html.default /usr/share/httpd/error/include/top.html && echo -n "9, "
103
[ -d /usr/local/etc/digest ] && rm -rf /usr/local/etc/digest && echo -n "10, "
104
[ -e /etc/httpd/conf/webapps.d/alcasar.conf ] && rm -f /etc/httpd/conf/webapps.d/alcasar.conf && echo -n "11"
1 root 105
sleep 1
287 richard 106
 
2226 richard 107
echo -en "\n- CA (5) : "
1 root 108
[ -e /etc/pki/CA/alcasar-ca.crt ] && rm -f /etc/pki/CA/alcasar-ca.crt && echo -n "1, "
109
[ -e /etc/pki/CA/private/alcasar-ca.key ] && rm -f /etc/pki/CA/private/alcasar-ca.key && echo -n "2, "
110
[ -e /etc/pki/tls/certs/alcasar.crt ] && rm -f /etc/pki/tls/certs/alcasar.crt && echo -n "3, "
1893 richard 111
[ -e /etc/pki/tls/private/alcasar.key ] && rm -f /etc/pki/tls/private/alcasar.key && echo -n "4, "
112
[ -e /etc/httpd/conf/vhosts-ssl.default ] && FIC_VIRTUAL_SSL=`find /etc/httpd/conf -type f -name *default_ssl_vhost.conf` && mv /etc/httpd/conf/vhosts-ssl.default $FIC_VIRTUAL_SSL && echo -n "5"
1 root 113
sleep 1
287 richard 114
 
2226 richard 115
echo -en "\n- time_server (2) : "
1898 richard 116
[ -e /etc/ntp/step-tickers.default ] && mv /etc/ntp/step-tickers.default /etc/ntp/step-tickers && echo -n "1, "
1893 richard 117
[ -e /etc/ntp.conf.default ] && mv /etc/ntp.conf.default /etc/ntp.conf && echo -n "2"
118
 
2226 richard 119
echo -en "\n- init_db (2) : "
615 richard 120
[ -e /etc/my.cnf.default ] && mv -f /etc/my.cnf.default /etc/my.cnf && echo -n "1, "
1357 richard 121
[ -e /lib/systemd/system/mysqld.service.default ] && mv -f /lib/systemd/system/mysqld.service.default /lib/systemd/system/mysqld.service && echo -n "2"
1574 richard 122
/usr/bin/systemctl daemon-reload
1355 richard 123
rm -rf /var/lib/mysql
1 root 124
sleep 1
287 richard 125
 
2421 richard 126
echo -en "\n- freeradius (12) : "
1898 richard 127
[ -e /etc/raddb/empty-radiusd-db.sql ] && rm -f /etc/raddb/empty-radiusd-db.sql && echo -n "1, "
1 root 128
[ -e /etc/raddb/radiusd.conf.default ] && mv /etc/raddb/radiusd.conf.default /etc/raddb/radiusd.conf && echo -n "2, "
129
[ -e /etc/raddb/sites-enabled/alcasar ] && rm /etc/raddb/sites-enabled/alcasar && echo -n "3, "
130
[ -e /etc/raddb/sites-available/alcasar ] && rm /etc/raddb/sites-available/alcasar && echo -n "4, "
131
[ -e /etc/raddb/clients.conf.default ] && mv /etc/raddb/clients.conf.default /etc/raddb/clients.conf && echo -n "5, "
2421 richard 132
[ -e /etc/raddb/mods-enabled/sql ] && rm /etc/raddb/mods-enabled/sql && echo -n "6, " #Add here other mods
2420 richard 133
[ -e /etc/raddb/mods-available/sql.default ] && mv /etc/raddb/mods-available/sql.default /etc/raddb/mods-available/sql && echo -n "7, "
134
[ -e /etc/raddb/mods-config/sql/main/mysql/queries.conf.default ] && mv /etc/raddb/mods-config/sql/main/mysql/queries.conf.default /etc/raddb/mods-config/sql/main/mysql/queries.conf && echo -n "8, "
2421 richard 135
[ -e /etc/raddb/mods-config/sql/counter/mysql/dailycounter.conf.default ] && mv /etc/raddb/mods-config/sql/counter/mysql/dailycounter.conf.default /etc/raddb/mods-config/sql/counter/mysql/dailycounter.conf && echo -n "9, "
136
[ -e /etc/raddb/mods-config/sql/counter/mysql/monthlycounter.conf.default ] && mv /etc/raddb/mods-config/sql/counter/mysql/monthlycounter.conf.default /etc/raddb/mods-config/sql/counter/mysql/monthlycounter.conf && echo -n "10, "
137
[ -e /etc/raddb/mods-config/sql/counter/mysql/noresetcounter.conf.default ] && mv /etc/raddb/mods-config/sql/counter/mysql/noresetcounter.conf.default /etc/raddb/mods-config/sql/counter/mysql/noresetcounter.conf && echo -n "11, "
138
[ -e /lib/systemd/system/radiusd.service.default ] && mv /lib/systemd/system/radiusd.service.default /lib/systemd/system/radiusd.service && echo -n "12"
1 root 139
sleep 1
287 richard 140
 
2226 richard 141
echo -en "\n- chilli (4) : "
1373 richard 142
[ -e /etc/init.d/chilli.default ] && mv /etc/init.d/chilli.default /etc/init.d/chilli && echo -n "1, "
143
[ -e /usr/libexec/chilli ] && rm /usr/libexec/chilli && echo -n "2, "
144
[ -e /etc/chilli.conf.default ] && mv /etc/chilli.conf.default /etc/chilli.conf && echo -n "3, "
1376 richard 145
[ -e /lib/systemd/system/chilli.service ] && rm /lib/systemd/system/chilli.service && echo -n "4"
1 root 146
sleep 1
287 richard 147
 
2226 richard 148
echo -en "\n- dansguardian (8) : "
315 richard 149
[ -d /var/dansguardian ] && rm -rf /var/dansguardian && echo -n "1, "
150
[ -e /etc/dansguardian/dansguardian.conf.default ] && mv /etc/dansguardian/dansguardian.conf.default /etc/dansguardian/dansguardian.conf && echo -n "2, "
151
[ -e /etc/dansguardian/lists/bannedphraselist.default ] && mv /etc/dansguardian/lists/bannedphraselist.default /etc/dansguardian/lists/bannedphraselist && echo -n "3, "
152
[ -e /etc/dansguardian/dansguardianf1.conf.default ] && mv /etc/dansguardian/dansguardianf1.conf.default /etc/dansguardian/dansguardianf1.conf && echo -n "4, "
153
[ -e /etc/dansguardian/lists/bannedextensionlist.default ] && mv /etc/dansguardian/lists/bannedextensionlist.default /etc/dansguardian/lists/bannedextensionlist && echo -n "5, "
154
[ -e /etc/dansguardian/lists/bannedmimetypelist.default ] && mv /etc/dansguardian/lists/bannedmimetypelist.default /etc/dansguardian/lists/bannedmimetypelist && echo -n "6, "
155
[ -e /etc/dansguardian/lists/exceptioniplist.default ] && mv /etc/dansguardian/lists/exceptioniplist.default /etc/dansguardian/lists/exceptioniplist && echo -n "7, "
156
[ -e /etc/dansguardian/lists/bannedsitelist.default ] && mv /etc/dansguardian/lists/bannedsitelist.default /etc/dansguardian/lists/bannedsitelist && echo -n "8"
1 root 157
sleep 1
287 richard 158
 
2226 richard 159
echo -en "\n- antivirus (5) : "
2454 tom.houday 160
if [ -e /etc/init.d/havp ]
2206 richard 161
then
796 richard 162
	[ -e /etc/havp/havp.config.default ] && mv /etc/havp/havp.config.default /etc/havp/havp.config && echo -n "1, "
1486 richard 163
	userdel -r havp 2>/dev/null && echo -n "2, "
164
	[ -e /etc/init.d/havp.default ] && mv /etc/init.d/havp.default /etc/init.d/havp && echo -n "3, "
1547 richard 165
	[ -e /lib/systemd/system/havp.service.default ] && mv /lib/systemd/system/havp.service.default /lib/systemd/system/havp.service && echo -n "4, "
166
	[ -e /etc/freshclam.conf.default ] && mv /etc/freshclam.conf.default /etc/freshclam.conf && echo -n "5"
534 richard 167
else	echo -n "uninstalled"
88 richard 168
fi
71 richard 169
sleep 1
534 richard 170
 
2226 richard 171
echo -en "\n- tinyproxy (2) : "
2454 tom.houday 172
if [ -e /etc/init.d/tinyproxy ]
2206 richard 173
then
1521 richard 174
	[ -e /etc/tinyproxy/tinyproxy.conf.default ] && mv /etc/tinyproxy/tinyproxy.conf.default /etc/tinyproxy/tinyproxy.conf && echo -n "1, "
1515 richard 175
	userdel -r tinyproxy 2>/dev/null && echo -n "2"
1486 richard 176
else	echo -n "uninstalled"
177
fi
178
sleep 1
179
 
2226 richard 180
echo -en "\n- ulogd (6) : "
1376 richard 181
i=0
182
for log_type in traceability ssh ext-access
2206 richard 183
do
184
	i=`expr $i + 1`
185
	[ -e /etc/ulogd-$log_type.conf ] && rm -f /etc/ulogd-$log_type.conf && echo -n "$i, "
186
	i=`expr $i + 1`
187
	[ -e /lib/systemd/system/ulogd-$log_type.service ] && rm -f /lib/systemd/system/ulogd-$log_type.service && echo -n "$i, "
188
done
476 richard 189
sleep 1
190
 
2226 richard 191
echo -en "\n- nfsen (1) : "
1567 richard 192
[ -e /lib/systemd/system/nfsen.service ] && rm -f /lib/systemd/system/nfsen.service && echo -n "1"
1157 stephane 193
sleep 1
194
 
2226 richard 195
echo -en "\n- vnstat (1) : "
1541 richard 196
[ -e /etc/vnstat.conf.default ] && mv /etc/vnstat.conf.default /etc/vnstat.conf && echo -n "1"
197
sleep 1
198
 
2421 richard 199
echo -en "\n- dnsmasq (6 if update ; 8 if uninstall) : "
2226 richard 200
i=0
2212 richard 201
for list in blacklist whitelist blackhole
202
do
203
	i=`expr $i + 1`
204
	[ -e /etc/dnsmasq-$list.conf ] && rm /etc/dnsmasq-$list.conf && echo -n "$i, "
205
	i=`expr $i + 1`
206
	[ -e /lib/systemd/system/dnsmasq-$list.service ] && rm /lib/systemd/system/dnsmasq-$list.service && echo -n "$i, "
207
done
2426 richard 208
if [ $mode == "full" ] # don't remove dnsmasq in update mode (DHCP + DNS !)
2226 richard 209
then
210
	if [ -e /lib/systemd/system/dnsmasq.service ]
211
	then
2421 richard 212
		[ -e /etc/dnsmasq.conf.default ] && mv /etc/dnsmasq.conf.default /etc/dnsmasq.conf && echo -n "7, "
213
		[ -e /lib/systemd/system/dnsmasq.service.default ] && mv /lib/systemd/system/dnsmasq.service.default /lib/systemd/system/dnsmasq.service && echo -n "8"
2226 richard 214
	fi
215
fi
1 root 216
sleep 1
287 richard 217
 
2226 richard 218
echo -en "\n- fail2ban (8) : "
1388 richard 219
[ -e /etc/fail2ban/fail2ban.conf.default ] && mv /etc/fail2ban/fail2ban.conf.default /etc/fail2ban/fail2ban.conf && echo -n "1, "
220
[ -e /etc/fail2ban/jail.conf.default ] && mv /etc/fail2ban/jail.conf.default /etc/fail2ban/jail.conf && echo -n "2, "
1393 richard 221
[ -e /etc/fail2ban/action.d/iptables-allports.conf.default ] && mv /etc/fail2ban/action.d/iptables-allports.conf.default /etc/fail2ban/action.d/iptables-allports.conf && echo -n "3, "
2432 richard 222
i=3
223
for filter in `ls /etc/fail2ban/filter.d/alcasar_*`
224
do
2454 tom.houday 225
	i=`expr $i + 1`
226
	rm $filter && echo -n "$i, "
2432 richard 227
done
1515 richard 228
[ -e /lib/systemd/system/fail2ban.service.default ] && mv /lib/systemd/system/fail2ban.service.default /lib/systemd/system/fail2ban.service && echo -n "8"
1388 richard 229
sleep 1
230
 
2432 richard 231
echo -en "\n- cron (11) : "
2444 richard 232
i=1
2432 richard 233
for cron in `ls /etc/cron.d/alcasar-*`
234
do
2454 tom.houday 235
	rm $cron && echo -n "$i, "
236
	i=`expr $i + 1`
2432 richard 237
done
238
[ -e /etc/crontab.default ] && mv /etc/crontab.default /etc/crontab && echo -n "10, "
239
[ -e /etc/anacrontab.default ] && mv /etc/anacrontab.default /etc/anacrontab && echo -n "11"
1 root 240
sleep 1
287 richard 241
 
2226 richard 242
echo -en "\n- gammu-smsd (3) : "
1384 richard 243
[ -e /etc/gammu_smsd_conf ] && rm -f /etc/gammu_smsd_conf && echo -n "1, "
2329 tom.houday 244
[ -e /lib/udev/rules.d/66-huawei.rules ] && rm -f /lib/udev/rules.d/66-huawei.rules && echo -n "2, "
1391 richard 245
[ -e /var/log/gammu-smsd ] && rm -rf /var/log/gammu-smsd && echo -n "3"
1388 richard 246
sleep 1
1384 richard 247
 
2226 richard 248
echo -en "\n- msec (2) : "
249
if [ -e /etc/security/msec/security.conf ]
250
then
251
	[ -e /etc/security/msec/security.conf.default ] && mv /etc/security/msec/security.conf.default /etc/security/msec/security.conf && echo -n "1, "
252
	[ -e /etc/security/msec/perm.local ] && rm -f /etc/security/msec/perm.local && echo -n "2"
253
else	echo -n "uninstalled"
254
fi
2211 richard 255
sleep 1
256
 
2329 tom.houday 257
echo -en "\n- letsencrypt-client (2) : "
258
[ -e /usr/local/etc/letsencrypt ] && rm -rf /usr/local/etc/letsencrypt && echo -n "1, "
2310 tom.houday 259
[ -e /opt/acme.sh ] && /opt/acme.sh/acme.sh --uninstall --nocron 1>/dev/null && echo -n "2"
2304 tom.houday 260
sleep 1
261
 
2426 richard 262
if [ $mode == "full" ]
2206 richard 263
then
264
	echo -en "\n- network(9) : "
2426 richard 265
	hostnamectl set-hostname localhost.localdomain
2206 richard 266
	CONF_FILE="/usr/local/etc/alcasar.conf"
267
	EXTIF=`grep ^EXTIF= $CONF_FILE|cut -d"=" -f2`		# EXTernal InterFace
268
	INTIF=`grep ^INTIF= $CONF_FILE|cut -d"=" -f2`		# INTernal InterFace
269
	i=0
270
	for nic in $EXTIF $INTIF
1362 richard 271
	do
2206 richard 272
		i=`expr $i + 1`
273
		/sbin/ifdown $nic
274
		[ -e /etc/sysconfig/network-scripts/default-ifcfg-$nic ] && mv -f /etc/sysconfig/network-scripts/default-ifcfg-$nic /etc/sysconfig/network-scripts/ifcfg-$nic && echo -n "$i, "
1362 richard 275
	done
2432 richard 276
	[ -e /etc/sysconfig/network.default ] && mv -f /etc/sysconfig/network.default /etc/sysconfig/network && echo -n "3, "
277
	[ -e /etc/hosts.default ] && mv -f /etc/hosts.default /etc/hosts && echo -n "4, "
278
	[ -e /etc/hosts.allow.default ] && mv -f /etc/hosts.allow.default /etc/hosts.allow && echo -n "5, "
279
	[ -e /etc/hosts.deny.default ] && mv -f /etc/hosts.deny.default /etc/hosts.deny && echo -n "6, "
280
	[ -e /etc/modprobe.preload.default ] && mv -f /etc/modprobe.preload.default /etc/modprobe.preload && echo -n "7, "
281
	[ -e /lib/systemd/system/iptables.service.default ] && mv -f /lib/systemd/system/iptables.service.default /lib/systemd/system/iptables.service && echo -n "8, "
282
	[ -e /usr/libexec/iptables.init.default ] && mv -f /usr/libexec/iptables.init.default /usr/libexec/iptables.init && echo -n "9"
2457 richard 283
	/usr/bin/systemctl restart network
2206 richard 284
	sleep 1
285
fi
790 richard 286
 
1 root 287
#post_install
2432 richard 288
echo -en "\n- post_install (7) : "
289
[ -e /etc/mageia-release.default ] && mv -f /etc/mageia-release.default /etc/mageia-release && echo -n "1, "
1 root 290
[ -e /etc/ssh/alcasar-banner-ssh ] && rm -f /etc/ssh/alcasar-banner-ssh && echo -n "2, "
2432 richard 291
[ -e /etc/ssh/sshd_config.default ] && mv -f /etc/ssh/sshd_config.default /etc/ssh/sshd_config && echo -n "3, "
292
[ -e /etc/bashrc.default ] && mv -f /etc/bashrc.default /etc/bashrc && echo -n "4, "
293
[ -e /etc/sudoers.default ] && mv -f /etc/sudoers.default /etc/sudoers && echo -n "5, "
294
[ -e /lib/systemd/system/alcasar-load_balancing.service ] && rm -f /lib/systemd/system/alcasar-load_balancing.service && echo -n "6, "
295
[ -e /etc/default/grub.default ] && mv -f /etc/default/grub.default /etc/default/grub && echo -n "7"
1 root 296
sleep 1
287 richard 297
 
2226 richard 298
# Cleaning (remove all "old" alcasar scripts)
2243 tom.houday 299
echo -en "\n- End of cleaning ...\n"
1923 franck 300
for rm_fic in /usr/local/bin /usr/local/etc /usr/local/sbin
2206 richard 301
do
306 richard 302
	rm -rf $rm_fic/alcasar*
2206 richard 303
done
2457 richard 304
/usr/bin/update-grub2
305
echo "Waiting for Network to be up again ..."
306
i=0
307
while [ $i -lt 10 ] # We wait 10 seconds max
308
do
309
	DNS1=`grep ^nameserver /etc/resolv.conf|awk -F" " '{print $2}'|head -n 1`
310
	if [ "$DNS1" != "" ] && [ "$DNS1" != "127.0.0.1" ]
311
	then
312
		i=9
313
	fi
314
	i=`expr $i + 1`
315
	sleep 1
316
done