Subversion Repositories ALCASAR

Rev

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