forked from vaamonde/samba4-l2
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript-01.sh
More file actions
343 lines (311 loc) · 13.2 KB
/
script-01.sh
File metadata and controls
343 lines (311 loc) · 13.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
#!/bin/bash
# Autor: Robson Vaamonde
# Site: www.procedimentosemti.com.br
# Facebook: facebook.com/ProcedimentosEmTI
# Facebook: facebook.com/BoraParaPratica
# YouTube: youtube.com/BoraParaPratica
# Data de criação: 31/05/2016
# Data de atualização: 15/07/2019
# Versão: 0.12
# Testado e homologado para a versão do Ubuntu Server 16.04 LTS x64
# Kernel >= 4.4.x
#
# Instalação dos pacotes principais para a segunda etapa, indicado para a distribuição GNU/Linux Ubuntu Server 16.04 LTS x64
#
# NTP (Network Time Protocol) Servidor de Data/Hora
# KRB5 (Kerberos) Protocolo de Autenticação Segura
# NFS (Network File System) Protocolo de Transferência de Arquivos
# ACL (Access Control List) Permissões de Arquivos e Diretórios
# ATTR (Extended Attributes) Atributos Extendidos
#
# Após o reboot fazer as mudanças do arquivo /etc/fstab para suportar os recursos de ACL e XATTR EXT4
# vim /etc/fstab
# defaults,barrier=1
#
# Se tiver utilizando o sistema de arquivos BTRFS, deixar o padrão
# vim /etc/fstab
# defaults,subvol=@
#
# Após o reboot configurar o arquivo /etc/ntp.conf para atualizar data e hora dos servidores do NTP.br
# mv /etc/ntp.conf /etc/ntp.conf.old
# cp ntp.drift /var/lib/ntp/ntp.drift
# cp ntp.conf /etc/
#
# Na instalação fazer a criação do REALM do Kerberos
# REALM: PTI.INTRA
# SERVER: ptispo01dc01.pti.intra
# ADMIN: ptispo01dc01.pti.intra
# debconf-show krb5-config
#
# Configuração do NFS será feita no final do curso
#
# Utilizar o comando: sudo -i para executar o script
#
# Caminho para o Log do Script-01.sh
LOG="/var/log/script-01.log"
#
# Variável da Data Inicial para calcular tempo de execução do Script
DATAINICIAL=`date +%s`
#
# Validando o ambiente, verificando se o usuário e "root"
USUARIO=`id -u`
UBUNTU=`lsb_release -rs`
KERNEL=`uname -r | cut -d'.' -f1,2`
if [ "$USUARIO" == "0" ]
then
if [ "$UBUNTU" == "16.04" ]
then
if [ "$KERNEL" == "4.4" ]
then
clear
# Variáveis de configuração do Kerberos
REALM="PTI.INTRA"
SERVERS="ptispo01dc01.pti.intra"
ADMIN="ptispo01dc01.pti.intra"
NTP="a.st1.ntp.br"
#
# Exportando o recurso de Noninteractive do Debconf
export DEBIAN_FRONTEND="noninteractive"
#
echo -e "Usuário é `whoami`, continuando a executar o Script-01.sh"
echo
echo -e "Instalação dos principais pacotes de rede e suporte ao sistema de arquivos"
echo
echo -e "NTP (Network Time Protocol) Servidor de Data é Hora"
echo -e "KRB5 (Kerberos) Protocolo de Autenticação Segura"
echo -e "NFS (Network File System) Protocolo de Transferência de Arquivos"
echo -e "ACL (Access Control List) Permissões de Arquivos e Diretórios"
echo -e "ATTR (Extended Attributes) Atributos Extendidos"
echo -e "Configuração do FSTAB para suporte a ACL e XATTR"
echo
echo -e "Após o término o Servidor será reinicializado, aguarde..."
echo
echo -e "Rodando o Script-01.sh em: `date`" > $LOG
echo ============================================================ >> $LOG
echo -e "Atualizando as Listas do Apt-Get, aguarde..."
#Atualizando as listas do apt-get
apt-get update &>> $LOG
echo -e "Listas Atualizadas com Sucesso!!!, continuando o script..."
echo
echo ============================================================ >> $LOG
echo -e "Atualizando o Sistema, aguarde..."
#Fazendo a atualização de todos os pacotes instalados no servidor
apt-get -o Dpkg::Options::="--force-confold" upgrade -q -y --force-yes &>> $LOG
echo -e "Sistema Atualizado com Sucesso!!!, continuando o script..."
echo
echo ============================================================ >> $LOG
echo -e "Instalando as Dependências da Parte de Rede, aguarde..."
#Instalando os principais pacotes para o funcionamento correto dos serviços de rede
apt-get -y install ntp ntpdate build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev \
python-dev libpam0g-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev docbook-xsl \
libcups2-dev nfs-kernel-server nfs-common acl attr debconf-utils screenfetch figlet sysv-rc-conf &>> $LOG
echo -e "Instalação das Dependências Feita com Sucesso!!!, continuando o script..."
echo
echo ============================================================ >> $LOG
echo -e "Configurando os parâmetros do apt-get para a instalação do Kerberos, aguarde..."
#Configurando o Debconf para a configurações do Kerberos trabalhar com Nointeractive
echo "krb5-config krb5-config/default_realm string $REALM" | debconf-set-selections
echo "krb5-config krb5-config/kerberos_servers string $SERVERS" | debconf-set-selections
echo "krb5-config krb5-config/admin_server string $ADMIN" | debconf-set-selections
echo "krb5-config krb5-config/add_servers_realm string $REALM" | debconf-set-selections
echo "krb5-config krb5-config/add_servers boolean true" | debconf-set-selections
echo "krb5-config krb5-config/read_config boolean true" | debconf-set-selections
echo >> $LOG
#Exibindo as configurações do Debconf do Kerberos
debconf-show krb5-config >> $LOG
echo -e "Parâmetros configurado com sucesso!!!, continuando o script..."
echo
echo ============================================================ >> $LOG
echo -e "Instalando o Kerberos, aguarde..."
#Instalando o Kerberos
apt-get -y install krb5-user krb5-config &>> $LOG
echo -e "Kerberos instalado com Sucesso!!!, continuando o script..."
echo
echo ============================================================ >> $LOG
echo -e "Limpando o Cache do Apt-Get, aguarde..."
#Limpando o diretório de cache do apt-get
apt-get clean &>> $LOG
echo -e "Cache Limpo com Sucesso!!!, continuando o script..."
echo
echo ============================================================ >> $LOG
echo -e "Instalação dos principais software de rede feita com sucesso!!!, pressione <Enter> para continuar."
read
sleep 2
clear
echo ============================================================ >> $LOG
echo -e "Configurando o Serviço do Servidor NTPD, Pressione <Enter> para continuar"
echo
read
echo -e "Fazendo o Backup do arquivo ntp.conf, aguarde..."
#Fazendo o backup do arquivos de configuração do NTP Server
mv -v /etc/ntp.conf /etc/ntp.conf.old >> $LOG
echo -e "Backup do arquivo ntp.conf feito com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Criando o arquivo ntp.drift, aguarde..."
#Copiando o arquivo ntp.drift
cp -v conf/ntp.drift /var/lib/ntp/ntp.drift >> $LOG
#Adicionando o contéudo de 0.0 dentro do arquivo ntp.drift
echo 0.0 > /etc/ntp.drift
#Alterando o dono e grupo de arquivo nto.drift
chown -v ntp.ntp /var/lib/ntp/ntp.drift >> $LOG
echo -e "Arquivo ntp.drift criado com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Atualizando o arquivo ntp.conf, aguarde..."
#Copiando o arquivo de configuração do NTP Server
cp -v conf/ntp.conf /etc/ntp.conf >> $LOG
echo -e "Arquivo atualizado com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Parando o serviço do ntp server, aguarde..."
#Parando o serviço do NTP Server para fazer a sua configuração
sudo service ntp stop
echo -e "Serviço parado com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Editando o arquivo /etc/ntp.conf para acescentar as informações de Servidores NTP"
echo -e "Pressione <Enter> para editar o arquivo"
read
#Editando o arquivo ntp.conf
vim /etc/ntp.conf
echo
echo -e "Arquivo ntp.conf editado com sucesso!!!"
echo -e "Pressione <Enter> para continuar"
read
sleep 2
clear
echo -e "Atualizando Data/Hora do Servidor utilizando ntpdate, aguarde..."
echo
#Atualizando data/hora do servidor NTP.br
#d=debug, q=query, u=unprivileged, v=verbose
ntpdate -dquv $NTP
#Iniciando o serviço do NTP Server
sudo service ntp start
echo
echo -e "Data/Hora atualizada com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Verificação dos servidores NTP, aguarde..."
echo
#Verificando as informações de Servidores NTP e seu sincronismo
#p=print, n=all andress
ntpq -pn
echo
echo -e "Verificação feita com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Data/Hora do Hardware do servidor, aguarde..."
#Atualizando a data/hora do hardware com a data/hora do sistema operacional
hwclock --systohc
#Verificando data/hora de hardware (BIOS)
hwclock
sleep 2
echo
echo -e "Data/Hora do Sistema Operacional do servidor"
#Verificando data/hora de sistema operacional
date
sleep 2
echo
echo -e "NTP.CONF atualizado com sucesso!!!, pressione <Enter> para continuar com o script"
read
sleep 2
clear
echo ============================================================ >> $LOG
echo -e "Editando o arquivo /etc/fstab para acrescentar as informações de ACL e XATTR"
echo
echo -e "Informações de ACL e XATTR na Raiz, Var e no diretório Arquivos"
echo
echo -e "Linhas a serem editadas no arquivo /etc/fstab"
#Listando a linha 8
echo -e "`cat -n /etc/fstab | sed -n '8p'`"
echo
#Listando a linha 9
echo -e "`cat -n /etc/fstab | sed -n '9p'`"
echo
#Listando a linha 12
echo -e "`cat -n /etc/fstab | sed -n '12p'`"
echo
echo -e "Informações a serem acrescentadas depois de ext4: defaults,barrier=1"
echo
echo -e "Se estiver utilizando o BTRFS, deixar o padrão"
echo -e "Pressione <Enter> para editar o arquivo"
echo
read
sleep 2
echo -e "Fazendo o backup do arquivo fstab, aguarde..."
#Fazendo o backup do arquivo fstab
cp -v /etc/fstab /etc/fstab.old >> $LOG
echo -e "Backup feito com sucesso!!!, continuando o script..."
sleep 2
echo -e "Editando o arquivo fstab, aguarde..."
#Editando o arquivo fstab
vim /etc/fstab
echo
echo -e "FSTAB atualizado com sucesso!!!, pressione <Enter> para continuar com o script"
read
sleep 2
clear
echo ============================================================ >> $LOG
echo -e "Editando o arquivo /etc/krb5.conf para acrescentar as informações SAMBA-4"
echo
echo -e "Linha a ser editada no arquivo /etc/krb5.conf"
echo -e "`cat -n /etc/krb5.conf | head -n2`"
echo
echo -e "Informações a serem acrescentadas depois de default_realm"
echo -e "Pressione <Enter> para editar o arquivo"
echo
read
sleep 2
echo -e "Fazendo o Backup do arquivo krb5.conf, aguarde..."
#Fazendo o backup do arquivo de confguração do Kerberos
mv -v /etc/krb5.conf /etc/krb5.conf.old >> $LOG
echo -e "Backup feito com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Atualizando o arquivo krb5.conf, aguarde..."
#Atualizando o arquivo de configuração do Kerberos
cp -v conf/krb5.conf /etc/krb5.conf >> $LOG
echo -e "Atualizado com sucesso!!!, continuando o script..."
sleep 2
echo
echo -e "Editando o arquivo /etc/krb5.conf para acescentar as informações de Servidores de Kerberos"
echo -e "Pressione <Enter> para editar o arquivo"
read
#Editando o arquivo de configuração do Kerberos
vim /etc/krb5.conf
echo
echo -e "KRB5.CONF atualizado com sucesso!!!, pressione <Enter> para continuar com o script"
read
sleep 2
clear
echo ============================================================ >> $LOG
echo -e "Fim do Script-01.sh em: `date`" >> $LOG
echo
echo -e "Instalação das Dependências de Rede Feita com Sucesso!!!"
echo
# Script para calcular o tempo gasto para a execução do script-01.sh
DATAFINAL=`date +%s`
SOMA=`expr $DATAFINAL - $DATAINICIAL`
RESULTADO=`expr 10800 + $SOMA`
TEMPO=`date -d @$RESULTADO +%H:%M:%S`
echo -e "Tempo gasto para execução do script-01.sh: $TEMPO"
echo -e "Pressione <Enter> para concluir o processo e reinicializar o servidor."
read
sleep 2
reboot
else
echo -e "Versão do Kernel: $KERNEL não homologada para esse script, versão: >= 4.4 "
echo -e "Pressione <Enter> para finalizar o script"
read
fi
else
echo -e "Distribuição GNU/Linux: `lsb_release -is` não homologada para esse script, versão: $UBUNTU"
echo -e "Pressione <Enter> para finalizar o script"
read
fi
else
echo -e "Usuário não é ROOT, execute o comando com a opção: sudo -i <Enter> depois digite a senha do usuário `whoami`"
echo -e "Pressione <Enter> para finalizar o script"
read
fi