Subversion Repositories ALCASAR

Rev

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

Rev 3001 Rev 3011
1
#!/bin/bash
1
#!/bin/bash
2
 
2
 
3
###########################################################################################
3
###########################################################################################
4
##				    ALCASAR SERVICE MAIL INSTALL
4
##				    ALCASAR SERVICE MAIL INSTALL
5
##
5
##
6
##	Script by joss_p & Rexy
6
##	Script by K@M3L & T3RRY (LaPlateform), joss_p & Rexy
7
##  This script configure the mail conf file and execute the configuration from the acc.
7
##  This script configure the mail conf file and execute the configuration from the acc.
8
###########################################################################################
8
###########################################################################################
9
 
9
 
10
# ****** Paths - chemin des commandes *******
10
# ****** Paths - chemin des commandes *******
11
SED="/bin/sed -i"
11
SED="/bin/sed -i"
12
CONF_FILE="/usr/local/etc/alcasar.conf"
12
CONF_FILE="/usr/local/etc/alcasar.conf"
13
POSTFIX_CONF_FILE="/etc/postfix/main.cf"
13
POSTFIX_CONF_FILE="/etc/postfix/main.cf"
14
LOCAL_IPTABLE_FILE="/usr/local/etc/alcasar-iptables-local.sh"
14
LOCAL_IPTABLE_FILE="/usr/local/etc/alcasar-iptables-local.sh"
15
SASLPATH="/etc/postfix/sasl"
15
SASLPATH="/etc/postfix/sasl"
16
smtpIP="0.0.0.0/0"
16
smtpIP="0.0.0.0/0"
17
 
17
 
18
usage="Usage: alcasar-mail_install.sh 0|1|2|3"
18
usage="Usage: alcasar-mail_install.sh 0|1|2|3"
19
nb_args=$#
19
nb_args=$#
20
if [ $nb_args -eq 0 ]
20
if [ $nb_args -eq 0 ]
21
then
21
then
22
	echo "$usage"
22
	echo "$usage"
23
	exit 0
23
	exit 0
24
fi
24
fi
25
if [[ ${#} -ne 0 ]]
25
if [[ ${#} -ne 0 ]]
26
then
26
then
27
	while getopts ":s:p:r:m:o:a:w:0123" option
27
	while getopts ":s:p:r:m:o:a:w:0123" option
28
	do
28
	do
29
		case $option in
29
		case $option in
30
			0)
30
			0)
31
				TYPE_MAIL=0
31
				TYPE_MAIL=0
32
			;;
32
			;;
33
			1)
33
			1)
34
				TYPE_MAIL=1
34
				TYPE_MAIL=1
35
			;;
35
			;;
36
			2)
36
			2)
37
				TYPE_MAIL=2
37
				TYPE_MAIL=2
38
			;;
38
			;;
39
			3)
39
			3)
40
				TYPE_MAIL=3
40
				TYPE_MAIL=3
41
			;;
41
			;;
42
			s)
42
			s)
43
				smtp=$OPTARG
43
				smtp=$OPTARG
44
			;;
44
			;;
45
			p)
45
			p)
46
				port=$OPTARG
46
				port=$OPTARG
47
			;;
47
			;;
48
			r)
48
			r)
49
				smtpIP=$OPTARG
49
				smtpIP=$OPTARG
50
			;;
50
			;;
51
			m)
51
			m)
52
				mailAddr=$OPTARG
52
				mailAddr=$OPTARG
53
			;;
53
			;;
54
			o)
54
			o)
55
				mailMdp=$OPTARG
55
				mailMdp=$OPTARG
56
			;;
56
			;;
57
			a)
57
			a)
58
				adminMail=$OPTARG
58
				adminMail=$OPTARG
59
			;;
59
			;;
60
			w)
60
			w)
61
				whiteDomain=$OPTARG
61
				whiteDomain=$OPTARG
62
			;;
62
			;;
63
			:)
63
			:)
64
				echo "L'option $OPTARG requiert un argument"
64
				echo "L'option $OPTARG requiert un argument"
65
				exit 1
65
				exit 1
66
			;;
66
			;;
67
			\?)
67
			\?)
68
				echo "$OPTARG : option invalide"
68
				echo "$OPTARG : option invalide"
69
				exit 1
69
				exit 1
70
			;;
70
			;;
71
		esac
71
		esac
72
	done
72
	done
73
fi
73
fi
74
if  [[ $TYPE_MAIL -eq 0 ]]; then # disable mail service
74
if  [[ $TYPE_MAIL -eq 0 ]]; then # disable mail service
75
	$SED "s/^MAIL=.*/MAIL=off/" $CONF_FILE
75
	$SED "s/^MAIL=.*/MAIL=off/" $CONF_FILE
76
	$SED "s/^MAIL_TYPE=.*/MAIL_TYPE=/" $CONF_FILE
76
	$SED "s/^MAIL_TYPE=.*/MAIL_TYPE=/" $CONF_FILE
77
	$SED "s/^MAIL_SMTP=.*/MAIL_SMTP=/" $CONF_FILE
77
	$SED "s/^MAIL_SMTP=.*/MAIL_SMTP=/" $CONF_FILE
78
	$SED "s/^MAIL_SMTP_IP=.*/MAIL_SMTP_IP=/" $CONF_FILE
78
	$SED "s/^MAIL_SMTP_IP=.*/MAIL_SMTP_IP=/" $CONF_FILE
79
	$SED "s/^MAIL_PORT=.*/MAIL_PORT=/" $CONF_FILE
79
	$SED "s/^MAIL_PORT=.*/MAIL_PORT=/" $CONF_FILE
80
	$SED "s/^MAIL_ADDR=.*/MAIL_ADDR=/" $CONF_FILE
80
	$SED "s/^MAIL_ADDR=.*/MAIL_ADDR=/" $CONF_FILE
81
	$SED "s/^MAIL_WHITEDOMAIN=.*/MAIL_WHITEDOMAIN=/" $CONF_FILE
81
	$SED "s/^MAIL_WHITEDOMAIN=.*/MAIL_WHITEDOMAIN=/" $CONF_FILE
82
	$SED "s/^MAIL_ADMIN=.*/MAIL_ADMIN=/" $CONF_FILE
82
	$SED "s/^MAIL_ADMIN=.*/MAIL_ADMIN=/" $CONF_FILE
83
	$SED "/^SMTP_IP=/ s/^/#/" $LOCAL_IPTABLE_FILE
83
	$SED "/^SMTP_IP=/ s/^/#/" $LOCAL_IPTABLE_FILE
84
	$SED "/^SMTP_PORT=/ s/^/#/" $LOCAL_IPTABLE_FILE
84
	$SED "/^SMTP_PORT=/ s/^/#/" $LOCAL_IPTABLE_FILE
85
	$SED "/^\$IPTABLES -A OUTPUT -p tcp -d \$SMTP_IP/ s/^/#/" $LOCAL_IPTABLE_FILE
85
	$SED "/^\$IPTABLES -A OUTPUT -p tcp -d \$SMTP_IP/ s/^/#/" $LOCAL_IPTABLE_FILE
86
	$SED "/^\$IPTABLES -A INPUT  -p tcp -s \$SMTP_IP/ s/^/#/g" $LOCAL_IPTABLE_FILE
86
	$SED "/^\$IPTABLES -A INPUT  -p tcp -s \$SMTP_IP/ s/^/#/g" $LOCAL_IPTABLE_FILE
87
	$SED "s/^relayhost =.*/relayhost =/" $POSTFIX_CONF_FILE
87
	$SED "s/^relayhost =.*/relayhost =/" $POSTFIX_CONF_FILE
88
elif [[ $TYPE_MAIL -eq 2 ]]; then # Enable mail service (relaying to an extern mail server)
88
elif [[ $TYPE_MAIL -eq 2 ]]; then # Enable mail service (relaying to an extern mail server)
89
	$SED "s/^MAIL=.*/MAIL=on/" $CONF_FILE
89
	$SED "s/^MAIL=.*/MAIL=on/" $CONF_FILE
90
	$SED "s/^MAIL_TYPE=.*/MAIL_TYPE=2/" $CONF_FILE
90
	$SED "s/^MAIL_TYPE=.*/MAIL_TYPE=2/" $CONF_FILE
91
	$SED "s/^#\$IPTABLES -A OUTPUT -p tcp -d \$SMTP_IP.*/\$IPTABLES -A OUTPUT -p tcp -d \$SMTP_IP --dport \$SMTP_PORT -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT/" $LOCAL_IPTABLE_FILE
91
	$SED "s/^#\$IPTABLES -A OUTPUT -p tcp -d \$SMTP_IP.*/\$IPTABLES -A OUTPUT -p tcp -d \$SMTP_IP --dport \$SMTP_PORT -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT/" $LOCAL_IPTABLE_FILE
92
	$SED "s/^#\$IPTABLES -A INPUT  -p tcp -s \$SMTP_IP.*/\$IPTABLES -A INPUT  -p tcp -s \$SMTP_IP --sport \$SMTP_PORT -m conntrack --ctstate ESTABLISHED     -j ACCEPT/" $LOCAL_IPTABLE_FILE
92
	$SED "s/^#\$IPTABLES -A INPUT  -p tcp -s \$SMTP_IP.*/\$IPTABLES -A INPUT  -p tcp -s \$SMTP_IP --sport \$SMTP_PORT -m conntrack --ctstate ESTABLISHED     -j ACCEPT/" $LOCAL_IPTABLE_FILE
93
	$SED "s/^relayhost =.*/relayhost = $smtp:$port/g" $POSTFIX_CONF_FILE
93
	$SED "s/^relayhost =.*/relayhost = $smtp:$port/g" $POSTFIX_CONF_FILE
94
elif [[ $TYPE_MAIL -eq 3 ]]; then # Enable mail service (using an email address)
94
elif [[ $TYPE_MAIL -eq 3 ]]; then # Enable mail service (using an email address)
95
	$SED "s/^MAIL=.*/MAIL=on/" $CONF_FILE
95
	$SED "s/^MAIL=.*/MAIL=on/" $CONF_FILE
96
	$SED "s/^MAIL_TYPE=.*/MAIL_TYPE=3/" $CONF_FILE
96
	$SED "s/^MAIL_TYPE=.*/MAIL_TYPE=3/" $CONF_FILE
97
	$SED "s/^MAIL_SMTP=.*/MAIL_SMTP=/" $CONF_FILE
97
	$SED "s/^MAIL_SMTP=.*/MAIL_SMTP=/" $CONF_FILE
98
	$SED "s/^MAIL_SMTP_IP=.*/MAIL_SMTP_IP=$smtp/" $CONF_FILE
98
	$SED "s/^MAIL_SMTP_IP=.*/MAIL_SMTP_IP=$smtp/" $CONF_FILE
99
	$SED "s/^MAIL_PORT=.*/MAIL_PORT=$port/" $CONF_FILE
99
	$SED "s/^MAIL_PORT=.*/MAIL_PORT=$port/" $CONF_FILE
100
	$SED "s/^MAIL_ADDR=.*/MAIL_ADDR=$mailAddr/" $CONF_FILE
100
	$SED "s/^MAIL_ADDR=.*/MAIL_ADDR=$mailAddr/" $CONF_FILE
101
	$SED "s/^MAIL_WHITEDOMAIN=.*/MAIL_WHITEDOMAIN=$whiteDomain/" $CONF_FILE
101
	$SED "s/^MAIL_WHITEDOMAIN=.*/MAIL_WHITEDOMAIN=$whiteDomain/" $CONF_FILE
102
	$SED "s/^MAIL_ADMIN=.*/MAIL_ADMIN=$adminMail/" $CONF_FILE
102
	$SED "s/^MAIL_ADMIN=.*/MAIL_ADMIN=$adminMail/" $CONF_FILE
103
	$SED "s/^#SMTP_IP=.*/SMTP_IP=$port/" $LOCAL_IPTABLE_FILE
103
	$SED "s/^#SMTP_IP=.*/SMTP_IP=$port/" $LOCAL_IPTABLE_FILE
104
	$SED "s/^#SMTP_PORT=.*/SMTP_PORT=$port/" $LOCAL_IPTABLE_FILE
104
	$SED "s/^#SMTP_PORT=.*/SMTP_PORT=$port/" $LOCAL_IPTABLE_FILE
105
	$SED "s/^#\$IPTABLES -A OUTPUT -p tcp -d \$SMTP_IP.*/\$IPTABLES -A OUTPUT -p tcp -d \$SMTP_IP --dport \$SMTP_PORT -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT/" $LOCAL_IPTABLE_FILE
105
	$SED "s/^#\$IPTABLES -A OUTPUT -p tcp -d \$SMTP_IP.*/\$IPTABLES -A OUTPUT -p tcp -d \$SMTP_IP --dport \$SMTP_PORT -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT/" $LOCAL_IPTABLE_FILE
106
	$SED "s/^#\$IPTABLES -A INPUT  -p tcp -s \$SMTP_IP.*/\$IPTABLES -A INPUT  -p tcp -s \$SMTP_IP --sport \$SMTP_PORT -m conntrack --ctstate ESTABLISHED     -j ACCEPT/" $LOCAL_IPTABLE_FILE
106
	$SED "s/^#\$IPTABLES -A INPUT  -p tcp -s \$SMTP_IP.*/\$IPTABLES -A INPUT  -p tcp -s \$SMTP_IP --sport \$SMTP_PORT -m conntrack --ctstate ESTABLISHED     -j ACCEPT/" $LOCAL_IPTABLE_FILE
107
	$SED "s/^relayhost =.*/relayhost = $smtp:$port/g" $POSTFIX_CONF_FILE
107
	$SED "s/^relayhost =.*/relayhost = $smtp:$port/g" $POSTFIX_CONF_FILE
108
	[ -d ${SASLPATH} ] || mkdir ${SASLPATH}
108
	[ -d ${SASLPATH} ] || mkdir ${SASLPATH}
109
	echo "[${smtp}]:${port} ${mailAddr}:${mailMdp}" > ${SASLPATH}/sasl_passwd
109
	echo "[${smtp}]:${port} ${mailAddr}:${mailMdp}" > ${SASLPATH}/sasl_passwd
110
	postmap ${SASLPATH}/sasl_passwd
110
	postmap ${SASLPATH}/sasl_passwd
111
	chmod -R 644 ${SASLPATH}
111
	chmod -R 644 ${SASLPATH}
112
	chown root:root ${SASLPATH}/sasl_passwd*
112
	chown root:root ${SASLPATH}/sasl_passwd*
113
	chmod 0600 ${SASLPATH}/sasl_passwd*
113
	chmod 0600 ${SASLPATH}/sasl_passwd*
114
else
114
else
115
	echo "Erreur ! Aucun type de messagerie sélectionné !"
115
	echo "Erreur ! Aucun type de messagerie sélectionné !"
116
	exit 0
116
	exit 0
117
fi
117
fi
118
/usr/local/bin/alcasar-iptables.sh
118
/usr/local/bin/alcasar-iptables.sh
119
exit 0
119
exit 0
120
 
120