-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathWeb-Jail.sh
More file actions
140 lines (115 loc) · 3.1 KB
/
Copy pathWeb-Jail.sh
File metadata and controls
140 lines (115 loc) · 3.1 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
#!/bin/bash
clear
#//////////////////////////////////
#//
#//
#// FUNCIONES Y VARAIBLES
#//
#//
function test-email() {
local validezemail="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$"
if [[ "$email" =~ $validezemail ]]; then
return 0
else
return 1
fi
}
function passwd-check() {
if [[ "$passwd" == "$passwd2" ]]; then
return 0
else
return 1
fi
}
#//////////////////////////////////
#//
#//
#// TOMA DE VARAIBLES
#//
#//
#Obtencion de variables necesarias
echo -e "Bienvenido a RIMOGO enterprise, ha ejecutado el programa para darse de alta en nustros servicios de hosting."
echo -e "Diganos el nombre de usuario que quiere"
read user
echo -e "Su contraseña:"
while true; do
read passwd
read passwd2
passwd-check
if [ $? -eq 0 ]; then
break
else
echo "La contraseña no coincide, introduzcala de nuevo"
fi
done
echo -e "Que nombre quiere para tu pagina web ej. jaime.com"
read domain
while true; do
echo "Por favor escirba su email: "
read email
test-email "$email"
if [ $? -eq 0 ]; then
break
else
echo "El E-mail que has escrito no es correcto, por favor escribalo de nuevo."
fi
done
#/////////////////////////////////
#//
#//
#// SCRIPT
#//
#//
CHROOTDIR=/var/www/$domain
LOGFILE="/etc/nginx/logs/$domain.log"
ERRFILE="/etc/nginx/logs/$domain.err"
void=""
mkdir -p /etc/nginx/logs
apt install ssh >/devnull 2>&1
#// WEB SERVER SCRIPT
mkdir -p /var/www/"$domain"/html
echo -e "<h1>Sitio web de "$user"</h1>" > /var/www/"$domain"/html/index.html
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/"$domain".key -out /etc/ssl/certs/"$domain".crt <<EOF >>$LOGFILE 2>$ERRFILE
ES
SPAIN
BCN
IJR Security Manager
IJR Security Manager
$domain
$email
EOF
echo -e "
server {
listen 443 ssl;
listen [::]:443 ssl;
ssl_certificate /etc/ssl/certs/$domain.crt;
ssl_certificate_key /etc/ssl/private/$domain.key;
include snippets/ssl-params.conf;
root /var/www/$domain/html;
index index.html index.htm index.nginx-debian.html;
server_name $domain www.$domain;
location / {
try_files \$uri \$uri/ =404;
}
}
server {
listen 80;
listen [::]:80;
server_name $domain www.$domain;
return 302 https://\$server_name\$request_uri;
}
" >> /etc/nginx/sites-available/$domain
cp /etc/nginx/sites-available/"$domain" /etc/nginx/sites-enabled/"$domain"
nginx -t >>$LOGFILE 2>$ERRFILE
systemctl restart nginx.service >>$LOGFILE 2>$ERRFILE
#// SFTP ACCESS SCRIPT
read user
read domain
CHROOTDIR=/var/www/$domain
useradd -m -d $CHROOTDIR $user
if [ ! -f "$CHROOTDIR/.ssh/id_rsa" ]; then
sudo -u $user ssh-keygen -t rsa -b 4096 -N "" -f "$CHROOTDIR/.ssh/id_rsa"
fi
chmod 700 "$CHROOT_DIR/.ssh"
chmod 600 "$CHROOT_DIR/.ssh/authorized_keys"
cat "$CHROOT_DIR/.ssh/id_rsa.pub" >> "$CHROOT_DIR/.ssh/authorized_keys"