-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRed-RoutearVia-eth1.sh
More file actions
213 lines (184 loc) · 9.02 KB
/
Red-RoutearVia-eth1.sh
File metadata and controls
213 lines (184 loc) · 9.02 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
#!/bin/bash
# Pongo a disposición pública este script bajo el término de "software de dominio público".
# Puedes hacer lo que quieras con él porque es libre de verdad; no libre con condiciones como las licencias GNU y otras patrañas similares.
# Si se te llena la boca hablando de libertad entonces hazlo realmente libre.
# No tienes que aceptar ningún tipo de términos de uso o licencia para utilizarlo o modificarlo porque va sin CopyLeft.
# ----------
# Script de NiPeGun para TRANSFORMAR UN PROXMOXVE RECIÉN INSTALADO
# EN UN ROUTER QUE SIRVA IPs EN LA SEGUNDA INTERFAZ CABLEADA.
# ES NECESARIO QUE EL ORDENADOR CUENTE CON, AL MENOS,
# DOS INTERFACES CABLEADAS.
# ESTE SCRIPT TIENE EN CUENTA QUE EL ROUTER AL QUE ESTÁ CONECTADO
# PROXMOX ESTÁ EN UNA SUBRED DISTINTA DE 192.168.1 PORQUE AL
# FINALIZAR LA EJECUCIÓN DEL SCRIPT EL ORDENADOR PROPORCIONARÁ
# IPS EN ESA SUBRED (de 192.168.1.100 hasta 192.168.1.255)
# ----------
# !!!! DEBES REEMPLAZAR LOS VALORES DE LAS 2 VARIABLES DE ABAJO !!!!
# !!!!!!!!!!!!!!!!!!! ANTES DE EJECUTAR EL SCRIPT !!!!!!!!!!!!!!!!!!
interfazcableada1=vmbr0
interfazcableada2=eth1
cColorRojo='\033[1;31m'
cColorVerde='\033[1;32m'
cFinColor='\033[0m'
# Determinar la versión de Proxmox
if [ -f /etc/os-release ]; then # Para systemd y freedesktop.org.
. /etc/os-release
cNomSO=$NAME
cVerSO=$VERSION_ID
elif type lsb_release >/dev/null 2>&1; then # Para linuxbase.org.
cNomSO=$(lsb_release -si)
cVerSO=$(lsb_release -sr)
elif [ -f /etc/lsb-release ]; then # Para algunas versiones de Debian sin el comando lsb_release.
. /etc/lsb-release
cNomSO=$DISTRIB_ID
cVerSO=$DISTRIB_RELEASE
elif [ -f /etc/debian_version ]; then # Para versiones viejas de Debian.
cNomSO=Debian
cVerSO=$(cat /etc/debian_version)
else # Para el viejo uname (También funciona para BSD).
cNomSO=$(uname -s)
cVerSO=$(uname -r)
fi
if [ $cVerSO == "7" ]; then
echo ""
echo "-----------------------------------------------------------------------------------"
echo " Iniciando el script de preparación para que ProxmoxVE 3 routee mediante eth1..."
echo "-----------------------------------------------------------------------------------"
echo ""
echo ""
echo " Comandos para ProxmoxVE 3 todavía no preparados. Prueba ejecutar el script en otra versión de ProxmoxVE."
echo ""
elif [ $cVerSO == "8" ]; then
echo ""
echo "-----------------------------------------------------------------------------------"
echo " Iniciando el script de preparación para que ProxmoxVE 4 routee mediante eth1..."
echo "-----------------------------------------------------------------------------------"
echo ""
echo ""
echo " Comandos para ProxmoxVE 4 todavía no preparados. Prueba ejecutar el script en otra versión de ProxmoxVE."
echo ""
elif [ $cVerSO == "9" ]; then
echo ""
echo "-----------------------------------------------------------------------------------"
echo " Iniciando el script de preparación para que ProxmoxVE 5 routee mediante eth1..."
echo "-----------------------------------------------------------------------------------"
echo ""
echo ""
echo "----------------------------------"
echo " INSTALANDO PAQUETES NECESARIOS"
echo "----------------------------------"
echo ""
apt-get -y install isc-dhcp-server
echo ""
echo "----------------------------------"
echo " CREANDO LAS REGLAS DE IPTABLES"
echo "----------------------------------"
echo ""
echo "*mangle" > /root/ReglasIPTablesIP4Router
echo ":PREROUTING ACCEPT [0:0]" >> /root/ReglasIPTablesIP4Router
echo ":INPUT ACCEPT [0:0]" >> /root/ReglasIPTablesIP4Router
echo ":FORWARD ACCEPT [0:0]" >> /root/ReglasIPTablesIP4Router
echo ":OUTPUT ACCEPT [0:0]" >> /root/ReglasIPTablesIP4Router
echo ":POSTROUTING ACCEPT [0:0]" >> /root/ReglasIPTablesIP4Router
echo "COMMIT" >> /root/ReglasIPTablesIP4Router
echo "" >> /root/ReglasIPTablesIP4Router
echo "*nat" >> /root/ReglasIPTablesIP4Router
echo ":PREROUTING ACCEPT [0:0]" >> /root/ReglasIPTablesIP4Router
echo ":INPUT ACCEPT [0:0]" >> /root/ReglasIPTablesIP4Router
echo ":OUTPUT ACCEPT [0:0]" >> /root/ReglasIPTablesIP4Router
echo ":POSTROUTING ACCEPT [0:0]" >> /root/ReglasIPTablesIP4Router
echo "-A POSTROUTING -o $interfazcableada1 -j MASQUERADE" >> /root/ReglasIPTablesIP4Router
echo "COMMIT" >> /root/ReglasIPTablesIP4Router
echo "" >> /root/ReglasIPTablesIP4Router
echo "*filter" >> /root/ReglasIPTablesIP4Router
echo ":INPUT ACCEPT [0:0]" >> /root/ReglasIPTablesIP4Router
echo ":FORWARD ACCEPT [0:0]" >> /root/ReglasIPTablesIP4Router
echo ":OUTPUT ACCEPT [0:0]" >> /root/ReglasIPTablesIP4Router
echo "-A FORWARD -i $interfazcableada1 -o $interfazcableada2 -m state --state RELATED,ESTABLISHED -j ACCEPT" >> /root/ReglasIPTablesIP4Router
echo "-A FORWARD -i $interfazcableada2 -o $interfazcableada1 -j ACCEPT" >> /root/ReglasIPTablesIP4Router
echo "COMMIT" >> /root/ReglasIPTablesIP4Router
echo ""
echo "-----------------------------"
echo " HABILITANDO IP FORWARDING"
echo "-----------------------------"
echo ""
cp /etc/sysctl.conf /etc/sysctl.conf.bak
sed -i -e 's|#net.ipv4.ip_forward=1|net.ipv4.ip_forward=1|g' /etc/sysctl.conf
echo ""
echo "--------------------------------------"
echo " CONFIGURANDO LAS INTERFACES DE RED"
echo "--------------------------------------"
echo ""
cp /etc/network/interfaces /etc/network/interfaces.bak
sed -i -e 's|iface lo inet loopback|iface lo inet loopback\npre-up iptables-restore < /root/ReglasIPTablesV4RouterWiFi|g' /etc/network/interfaces
echo "" >> /etc/network/interfaces
echo "auto $interfazcableada2" >> /etc/network/interfaces
echo " iface $interfazcableada2 inet static" >> /etc/network/interfaces
echo " address 192.168.1.1" >> /etc/network/interfaces
echo " network 192.168.1.0" >> /etc/network/interfaces
echo " netmask 255.255.255.0" >> /etc/network/interfaces
echo " broadcast 192.168.1.255" >> /etc/network/interfaces
echo "" >> /etc/network/interfaces
echo ""
echo "--------------------------------------------"
echo " INDICANDO LA UBICACIÓN DEL ARCHIVO DE"
echo " CONFIGURACIÓN DEL DEMONIO DHCPD ASI COMO"
echo " LA INTERFAZ SOBRE LA QUE CORRERÁ"
echo "--------------------------------------------"
echo ""
cp /etc/default/isc-dhcp-server /etc/default/isc-dhcp-server.bak
sed -i -e 's|#DHCPDv4_CONF=/etc/dhcp/dhcpd.conf|DHCPDv4_CONF=/etc/dhcp/dhcpd.conf|g' /etc/default/isc-dhcp-server
sed -i -e 's|INTERFACESv4=""|INTERFACESv4="'$interfazcableada2'"|g' /etc/default/isc-dhcp-server
echo ""
echo "---------------------------------"
echo " CONFIGURANDO EL SERVIDOR DHCP"
echo "---------------------------------"
echo ""
cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
echo "authoritative;" > /etc/dhcp/dhcpd.conf
echo "subnet 192.168.1.0 netmask 255.255.255.0 {" >> /etc/dhcp/dhcpd.conf
echo " range 192.168.1.100 192.168.1.255;" >> /etc/dhcp/dhcpd.conf
echo " option routers 192.168.1.1;" >> /etc/dhcp/dhcpd.conf
echo " option domain-name-servers 8.8.8.8, 8.8.4.4;" >> /etc/dhcp/dhcpd.conf
echo " default-lease-time 600;" >> /etc/dhcp/dhcpd.conf
echo " max-lease-time 7200;" >> /etc/dhcp/dhcpd.conf
echo "" >> /etc/dhcp/dhcpd.conf
echo " host PrimeraReserva {" >> /etc/dhcp/dhcpd.conf
echo " hardware ethernet 00:00:00:00:00:01;" >> /etc/dhcp/dhcpd.conf
echo " fixed-address 192.168.1.10;" >> /etc/dhcp/dhcpd.conf
echo " }" >> /etc/dhcp/dhcpd.conf
echo "}" >> /etc/dhcp/dhcpd.conf
echo ""
echo ""
echo " EJECUCIÓN DEL SCRIPT FINALIZADA"
echo ""
echo " Para aplicar los cambios reincia el sistema con:"
echo " shutdown -r now"
echo ""
echo " DESPUÉS DE REINICIAR TU PROXMOX DEBERÍA ESTAR SIRVIENDO IPs"
echo " EN LA SEGUNDA INTERFAZ CABLEADA Y OPERANDO COMO ROUTER."
echo " SI NECESITAS MÁS DE UNA CONEXIÓN ETHERNET PUEDES CONECTARLE UN"
echo " SWITCH EN MODO PUENTE A ESE SEGUNDO PUERTO ETHERNET."
echo " SI LO QUE QUIERES ES ADEMÁS TENER WIFI, EN VEZ DE UN SWITCH"
echo " CONÉCTALE UN ROUTER WIFI EN MODO PUENTE."
echo ""
echo ""
elif [ $cVerSO == "10" ]; then
echo ""
echo "-----------------------------------------------------------------------------------"
echo " Iniciando el script de preparación para que ProxmoxVE 6 routee mediante eth1..."
echo "-----------------------------------------------------------------------------------"
echo ""
echo ""
echo " Comandos para ProxmoxVE 6 todavía no preparados. Prueba ejecutar el script en otra versión de ProxmoxVE."
echo ""
elif [ $cVerSO == "11" ]; then
echo ""
echo "-----------------------------------------------------------------------------------"
echo " Iniciando el script de preparación para que ProxmoxVE 7 routee mediante eth1..."
echo "-----------------------------------------------------------------------------------"
echo ""
echo ""
echo " Comandos para ProxmoxVE 7 todavía no preparados. Prueba ejecutar el script en otra versión de ProxmoxVE."
echo ""
fi