Subversion Repositories ALCASAR

Rev

Rev 2841 | Rev 2864 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log

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