Subversion Repositories ALCASAR

Rev

Rev 2458 | Rev 2465 | 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 2464 2017-12-17 15:35:45Z 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
 
88 richard 11
SED="/bin/sed -i"
2206 richard 12
 
2464 richard 13
init ()
14
{
15
        echo -en "(3) : "
16
        rm -f /root/ALCASAR* && echo -n "1, " # The files in /usr/local/ will be removed at the end (still usefull here)
17
        [ -e /boot/grub2/user.cfg ] && rm -f /boot/grub2/user.cfg && echo -n "2, "
18
        [ -e /root/grub.default ] && mv -f /root/grub.default /etc/grub.d/10_linux && echo -n "3"
19
}
20
 
21
ACC ()
22
{
23
        echo -en "(11) : "
24
        [ -d /var/www/html ] && rm -rf /var/www/html && echo -n "1, "
25
        [ -d /etc/freeradius-web ] && rm -rf /etc/freeradius-webl && echo -n "2, "
26
        [ -e /etc/php.ini.default ] && mv -f /etc/php.ini.default /etc/php.ini && echo -n "3, "
27
        [ -e /etc/httpd/conf/httpd.conf.default ] && mv /etc/httpd/conf/httpd.conf.default /etc/httpd/conf/httpd.conf && echo -n "4, "
28
        [ -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, "
29
        [ -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, "
30
        [ -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, "
31
        [ -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, "
32
        [ -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, "
33
        [ -d /usr/local/etc/digest ] && rm -rf /usr/local/etc/digest && echo -n "10, "
34
        [ -e /etc/httpd/conf/webapps.d/alcasar.conf ] && rm -f /etc/httpd/conf/webapps.d/alcasar.conf && echo -n "11"
35
}
36
 
37
CA ()
38
{
39
        echo -en "(5) : "
40
        [ -e /etc/pki/CA/alcasar-ca.crt ] && rm -f /etc/pki/CA/alcasar-ca.crt && echo -n "1, "
41
        [ -e /etc/pki/CA/private/alcasar-ca.key ] && rm -f /etc/pki/CA/private/alcasar-ca.key && echo -n "2, "
42
        [ -e /etc/pki/tls/certs/alcasar.crt ] && rm -f /etc/pki/tls/certs/alcasar.crt && echo -n "3, "
43
        [ -e /etc/pki/tls/private/alcasar.key ] && rm -f /etc/pki/tls/private/alcasar.key && echo -n "4, "
44
        [ -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"
45
}
46
 
47
time_server ()
48
{
49
        echo -en "(2) : "
50
        [ -e /etc/ntp/step-tickers.default ] && mv /etc/ntp/step-tickers.default /etc/ntp/step-tickers && echo -n "1, "
51
        [ -e /etc/ntp.conf.default ] && mv /etc/ntp.conf.default /etc/ntp.conf && echo -n "2"
52
}
53
 
54
init_db ()
55
{
56
        echo -en "(2) : "
57
        [ -e /etc/my.cnf.default ] && mv -f /etc/my.cnf.default /etc/my.cnf && echo -n "1, "
58
        [ -e /lib/systemd/system/mysqld.service.default ] && mv -f /lib/systemd/system/mysqld.service.default /lib/systemd/system/mysqld.service && echo -n "2"
59
        /usr/bin/systemctl daemon-reload
60
        rm -rf /var/lib/mysql
61
}
62
 
63
freeradius ()
64
{
65
        echo -en "(12) : "
66
        [ -e /etc/raddb/empty-radiusd-db.sql ] && rm -f /etc/raddb/empty-radiusd-db.sql && echo -n "1, "
67
        [ -e /etc/raddb/radiusd.conf.default ] && mv /etc/raddb/radiusd.conf.default /etc/raddb/radiusd.conf && echo -n "2, "
68
        [ -e /etc/raddb/sites-enabled/alcasar ] && rm /etc/raddb/sites-enabled/alcasar && echo -n "3, "
69
        [ -e /etc/raddb/sites-available/alcasar ] && rm /etc/raddb/sites-available/alcasar && echo -n "4, "
70
        [ -e /etc/raddb/clients.conf.default ] && mv /etc/raddb/clients.conf.default /etc/raddb/clients.conf && echo -n "5, "
71
        [ -e /etc/raddb/mods-enabled/sql ] && rm /etc/raddb/mods-enabled/sql && echo -n "6, " #Add here other mods
72
        [ -e /etc/raddb/mods-available/sql.default ] && mv /etc/raddb/mods-available/sql.default /etc/raddb/mods-available/sql && echo -n "7, "
73
        [ -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, "
74
        [ -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, "
75
        [ -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, "
76
        [ -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, "
77
        [ -e /lib/systemd/system/radiusd.service.default ] && mv /lib/systemd/system/radiusd.service.default /lib/systemd/system/radiusd.service && echo -n "12"
78
}
79
 
80
chilli ()
81
{
82
        echo -en "(4) : "
83
        [ -e /etc/init.d/chilli.default ] && mv /etc/init.d/chilli.default /etc/init.d/chilli && echo -n "1, "
84
        [ -e /usr/libexec/chilli ] && rm /usr/libexec/chilli && echo -n "2, "
85
        [ -e /etc/chilli.conf.default ] && mv /etc/chilli.conf.default /etc/chilli.conf && echo -n "3, "
86
        [ -e /lib/systemd/system/chilli.service ] && rm /lib/systemd/system/chilli.service && echo -n "4"
87
}
88
 
89
dansguardian ()
90
{
91
        echo -en "(8) : "
92
        [ -d /var/dansguardian ] && rm -rf /var/dansguardian && echo -n "1, "
93
        [ -e /etc/dansguardian/dansguardian.conf.default ] && mv /etc/dansguardian/dansguardian.conf.default /etc/dansguardian/dansguardian.conf && echo -n "2, "
94
        [ -e /etc/dansguardian/lists/bannedphraselist.default ] && mv /etc/dansguardian/lists/bannedphraselist.default /etc/dansguardian/lists/bannedphraselist && echo -n "3, "
95
        [ -e /etc/dansguardian/dansguardianf1.conf.default ] && mv /etc/dansguardian/dansguardianf1.conf.default /etc/dansguardian/dansguardianf1.conf && echo -n "4, "
96
        [ -e /etc/dansguardian/lists/bannedextensionlist.default ] && mv /etc/dansguardian/lists/bannedextensionlist.default /etc/dansguardian/lists/bannedextensionlist && echo -n "5, "
97
        [ -e /etc/dansguardian/lists/bannedmimetypelist.default ] && mv /etc/dansguardian/lists/bannedmimetypelist.default /etc/dansguardian/lists/bannedmimetypelist && echo -n "6, "
98
        [ -e /etc/dansguardian/lists/exceptioniplist.default ] && mv /etc/dansguardian/lists/exceptioniplist.default /etc/dansguardian/lists/exceptioniplist && echo -n "7, "
99
        [ -e /etc/dansguardian/lists/bannedsitelist.default ] && mv /etc/dansguardian/lists/bannedsitelist.default /etc/dansguardian/lists/bannedsitelist && echo -n "8"
100
}
101
 
102
antivirus ()
103
{
104
        echo -en "(5) : "
105
        if [ -e /etc/init.d/havp ]
106
        then
107
                [ -e /etc/havp/havp.config.default ] && mv /etc/havp/havp.config.default /etc/havp/havp.config && echo -n "1, "
108
                userdel -r havp 2>/dev/null && echo -n "2, "
109
                [ -e /etc/init.d/havp.default ] && mv /etc/init.d/havp.default /etc/init.d/havp && echo -n "3, "
110
                [ -e /lib/systemd/system/havp.service.default ] && mv /lib/systemd/system/havp.service.default /lib/systemd/system/havp.service && echo -n "4, "
111
                [ -e /etc/freshclam.conf.default ] && mv /etc/freshclam.conf.default /etc/freshclam.conf && echo -n "5"
112
        else    echo -n "already uninstalled"
113
        fi
114
}
115
 
116
tinyproxy ()
117
{
118
        echo -en "(2) : "
119
        if [ -e /etc/init.d/tinyproxy ]
120
        then
121
                [ -e /etc/tinyproxy/tinyproxy.conf.default ] && mv /etc/tinyproxy/tinyproxy.conf.default /etc/tinyproxy/tinyproxy.conf && echo -n "1, "
122
                userdel -r tinyproxy 2>/dev/null && echo -n "2"
123
        else    echo -n "already uninstalled"
124
        fi
125
}
126
 
127
ulogd ()
128
{
129
        echo -en "(6) : "
130
        i=0
131
        for log_type in traceability ssh ext-access
132
        do
133
                i=`expr $i + 1`
134
                [ -e /etc/ulogd-$log_type.conf ] && rm -f /etc/ulogd-$log_type.conf && echo -n "$i, "
135
                i=`expr $i + 1`
136
                [ -e /lib/systemd/system/ulogd-$log_type.service ] && rm -f /lib/systemd/system/ulogd-$log_type.service && echo -n "$i, "
137
        done
138
}
139
 
140
nfsen ()
141
{
142
        echo -en "(1) : "
143
        [ -e /lib/systemd/system/nfsen.service ] && rm -f /lib/systemd/system/nfsen.service && echo -n "1"
144
}
145
 
146
vnstat ()
147
{
148
        echo -en "(1) : "
149
        [ -e /etc/vnstat.conf.default ] && mv /etc/vnstat.conf.default /etc/vnstat.conf && echo -n "1"
150
}
151
 
152
dnsmasq ()
153
{
154
        echo -en "(6 if update ; 8 if uninstall) : "
155
        i=0
156
        for list in blacklist whitelist blackhole
157
        do
158
                i=`expr $i + 1`
159
                [ -e /etc/dnsmasq-$list.conf ] && rm /etc/dnsmasq-$list.conf && echo -n "$i, "
160
                i=`expr $i + 1`
161
                [ -e /lib/systemd/system/dnsmasq-$list.service ] && rm /lib/systemd/system/dnsmasq-$list.service && echo -n "$i, "
162
        done
163
        if [ $mode == "full" ] # don't remove dnsmasq in update mode (DHCP + DNS !)
164
        then
165
                if [ -e /lib/systemd/system/dnsmasq.service ]
166
                then
167
                        [ -e /etc/dnsmasq.conf.default ] && mv /etc/dnsmasq.conf.default /etc/dnsmasq.conf && echo -n "7, "
168
                        [ -e /lib/systemd/system/dnsmasq.service.default ] && mv /lib/systemd/system/dnsmasq.service.default /lib/systemd/system/dnsmasq.service && echo -n "8"
169
                fi
170
        fi
171
}
172
 
173
cron ()
174
{
175
        echo -en "(11) : "
176
        i=1
177
        for cron in `ls /etc/cron.d/alcasar-* 2>/dev/null`
178
        do
179
                rm $cron && echo -n "$i, "
180
                i=`expr $i + 1`
181
        done
182
        [ -e /etc/crontab.default ] && mv /etc/crontab.default /etc/crontab && echo -n "10, "
183
        [ -e /etc/anacrontab.default ] && mv /etc/anacrontab.default /etc/anacrontab && echo -n "11"
184
}
185
 
186
fail2ban ()
187
{
188
        echo -en "(8) : "
189
        [ -e /etc/fail2ban/fail2ban.conf.default ] && mv /etc/fail2ban/fail2ban.conf.default /etc/fail2ban/fail2ban.conf && echo -n "1, "
190
        [ -e /etc/fail2ban/jail.conf.default ] && mv /etc/fail2ban/jail.conf.default /etc/fail2ban/jail.conf && echo -n "2, "
191
        [ -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, "
192
        i=3
193
        for filter in `ls /etc/fail2ban/filter.d/alcasar_* 2>/dev/null`
194
        do
195
                i=`expr $i + 1`
196
                rm $filter && echo -n "$i, "
197
        done
198
        [ -e /lib/systemd/system/fail2ban.service.default ] && mv /lib/systemd/system/fail2ban.service.default /lib/systemd/system/fail2ban.service && echo -n "8"
199
}
200
 
201
gammu_smsd ()
202
{
203
        echo -en "(3) : "
204
        [ -e /etc/gammu_smsd_conf ] && rm -f /etc/gammu_smsd_conf && echo -n "1, "
205
        [ -e /lib/udev/rules.d/66-huawei.rules ] && rm -f /lib/udev/rules.d/66-huawei.rules && echo -n "2, "
206
        [ -e /var/log/gammu-smsd ] && rm -rf /var/log/gammu-smsd && echo -n "3"
207
}
208
 
209
msec ()
210
{
211
        echo -en "(2) : "
212
        if [ -e /etc/security/msec/security.conf ]
213
        then
214
                [ -e /etc/security/msec/security.conf.default ] && mv /etc/security/msec/security.conf.default /etc/security/msec/security.conf && echo -n "1, "
215
                [ -e /etc/security/msec/perm.local ] && rm -f /etc/security/msec/perm.local && echo -n "2"
216
        else    echo -n "uninstalled"
217
        fi
218
}
219
 
220
letsencrypt ()
221
{
222
        echo -en "(3) : "
223
        [ -e /usr/local/etc/letsencrypt ] && rm -rf /usr/local/etc/letsencrypt && echo -n "1, "
224
        [ -e /opt/acme.sh/acme.sh ] && /opt/acme.sh/acme.sh --uninstall --nocron 1>/dev/null && echo -n "2, "
225
        [ -e /opt/acme.sh ] && rm -rf /opt/acme.sh && echo -n "3"
226
}
227
 
228
post_install ()
229
{
230
echo -en "(7) : "
231
        [ -e /etc/mageia-release.default ] && mv -f /etc/mageia-release.default /etc/mageia-release && echo -n "1, "
232
        [ -e /etc/ssh/alcasar-banner-ssh ] && rm -f /etc/ssh/alcasar-banner-ssh && echo -n "2, "
233
        [ -e /etc/ssh/sshd_config.default ] && mv -f /etc/ssh/sshd_config.default /etc/ssh/sshd_config && echo -n "3, "
234
        [ -e /etc/bashrc.default ] && mv -f /etc/bashrc.default /etc/bashrc && echo -n "4, "
235
        [ -e /etc/sudoers.default ] && mv -f /etc/sudoers.default /etc/sudoers && echo -n "5, "
236
        [ -e /lib/systemd/system/alcasar-load_balancing.service ] && rm -f /lib/systemd/system/alcasar-load_balancing.service && echo -n "6, "
237
        [ -e /etc/default/grub.default ] && mv -f /etc/default/grub.default /etc/default/grub && echo -n "7"
238
}
239
 
240
 
241
usage="Usage: alcasar-uninstall.sh {-update or --update} | {-full or --full}"
242
 
2206 richard 243
nb_args=$#
244
args=$1
245
if [ $nb_args -eq 0 ]
246
then
247
        nb_args=1
248
        args="-h"
249
fi
250
case $args in
251
        -\? | -h* | --h*)
252
                echo "$usage"
253
                exit 0
254
                ;;
255
        --update | -update)
256
                mode="update"
257
                ;;
258
        --full | -full)
259
                mode="full"
260
                ;;
261
        *)
262
                echo "Argument inconnu :$1";
263
                echo "$usage"
264
                exit 1
265
                ;;
266
esac
1 root 267
clear
2206 richard 268
if [ $mode == "full" ]
269
then
270
        echo "----------------------------------------------------------------------------"
271
        echo "**                     Uninstall/Désinstallation d'ALCASAR               **"
272
        echo "----------------------------------------------------------------------------"
273
        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"
274
        /usr/local/bin/alcasar-logout.sh all # logout everybody
275
else
2464 richard 276
        echo "--------------------------------------------------------------------------"
2206 richard 277
        echo "**                     update/mise à jour d'ALCASAR                      **"
2464 richard 278
        echo "--------------------------------------------------------------------------"
2206 richard 279
        # dnsmasq & sshd should stay on to allow remote update
2212 richard 280
        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 281
        /usr/local/bin/alcasar-bypass.sh -on # to allow remote update
282
fi
1673 richard 283
echo "Stopping service : "
1800 richard 284
/usr/local/bin/alcasar-sms.sh --stop
2454 tom.houday 285
for i in $services
1211 crox53 286
do
2454 tom.houday 287
        if [ -e /lib/systemd/system/$i.service ]
1800 richard 288
        then
289
                /usr/bin/systemctl disable $i.service
2454 tom.houday 290
                /usr/bin/systemctl stop $i.service 1>/dev/null
1800 richard 291
                sleep 1
292
        else
293
                echo "The service $i.service doesn't exist !"
294
        fi
1211 crox53 295
done
1673 richard 296
echo "Check the service clearing"
2206 richard 297
for i in $services
1673 richard 298
do
299
        if [ `systemctl is-active $i.service` == "active" ]
300
        then
301
                echo "The service '$i' need to be killed"
302
                /usr/bin/systemctl stop $i.service
303
                killall $i
304
        fi
305
done
2426 richard 306
if [ $mode == "update" ] # reload sshd in case of remote update
2226 richard 307
then
2457 richard 308
        /usr/bin/systemctl reload sshd
2226 richard 309
fi
1502 richard 310
echo "Reset ALCASAR main functions : "
2464 richard 311
for func in init ACC CA time_server init_db freeradius chilli dansguardian antivirus tinyproxy ulogd nfsen vnstat dnsmasq cron fail2ban gammu_smsd msec letsencrypt post_install
2206 richard 312
do
2464 richard 313
        echo -en "\n- $func "
314
        $func
315
        sleep 1
316
# echo -en " *** 'debug' : end of function $func - Hit enter ***"; read a
2206 richard 317
done
476 richard 318
 
2426 richard 319
if [ $mode == "full" ]
2206 richard 320
then
321
        echo -en "\n- network(9) : "
2426 richard 322
        hostnamectl set-hostname localhost.localdomain
2464 richard 323
        chmod a-x /etc/sysconfig/network-scripts/default-*
2206 richard 324
        i=0
2464 richard 325
        for nic in `ls /etc/sysconfig/network-scripts/default-*|cut -d'-' -f4`
1362 richard 326
        do
2206 richard 327
                i=`expr $i + 1`
328
                /sbin/ifdown $nic
2464 richard 329
                [ -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 ($nic), "
1362 richard 330
        done
2432 richard 331
        [ -e /etc/sysconfig/network.default ] && mv -f /etc/sysconfig/network.default /etc/sysconfig/network && echo -n "3, "
332
        [ -e /etc/hosts.default ] && mv -f /etc/hosts.default /etc/hosts && echo -n "4, "
333
        [ -e /etc/hosts.allow.default ] && mv -f /etc/hosts.allow.default /etc/hosts.allow && echo -n "5, "
334
        [ -e /etc/hosts.deny.default ] && mv -f /etc/hosts.deny.default /etc/hosts.deny && echo -n "6, "
335
        [ -e /etc/modprobe.preload.default ] && mv -f /etc/modprobe.preload.default /etc/modprobe.preload && echo -n "7, "
336
        [ -e /lib/systemd/system/iptables.service.default ] && mv -f /lib/systemd/system/iptables.service.default /lib/systemd/system/iptables.service && echo -n "8, "
337
        [ -e /usr/libexec/iptables.init.default ] && mv -f /usr/libexec/iptables.init.default /usr/libexec/iptables.init && echo -n "9"
2457 richard 338
        /usr/bin/systemctl restart network
2206 richard 339
        sleep 1
340
fi
790 richard 341
 
2226 richard 342
# Cleaning (remove all "old" alcasar scripts)
2243 tom.houday 343
echo -en "\n- End of cleaning ...\n"
1923 franck 344
for rm_fic in /usr/local/bin /usr/local/etc /usr/local/sbin
2206 richard 345
do
306 richard 346
        rm -rf $rm_fic/alcasar*
2206 richard 347
done
2457 richard 348
/usr/bin/update-grub2
2458 richard 349
 
350
if [ $mode == "full" ]
351
then
352
        echo -n "Waiting for Network to be up again : "
353
        i=0
354
        while [ $i -lt 10 ] # We wait 10 seconds max
355
        do
356
                echo -n "."
357
                DNS1=`grep ^nameserver /etc/resolv.conf|awk -F" " '{print $2}'|head -n 1`
358
                if [ "$DNS1" != "" ] && [ "$DNS1" != "127.0.0.1" ]
359
                then
360
                        i=9
361
                        echo -n "ok"
362
                fi
363
                i=`expr $i + 1`
364
                sleep 1
365
        done
366
fi
367
echo
2464 richard 368