VM Debian con dos interface de red: NAT y RED INTERNA (clobber) Enruta los paquetes de clobber hacia NAT Hace de firewall, dhcp y dns
Contiene un servidor SCSI Se accede a el mediante el webserver por ssh Contiene scripts de generacion de almacenamiento a medida
Enlaza y maneja el motor docker Se accede a el mediante el webserver por ssh Contiene scripts de generacion y puesta en marcha de imágenes
Expone de manera controlada el acceso a las vms
- Moodle UDC - Usamos la configuracion del router gw.acme.pri
En este caso configuramos un router debian, a mayores añadimos dhcp:
apt install isc-dhcp-server
nano /etc/default/isc-dhcp-server
INTERFACESv4="enp0s3"
nano /etc/dhcp/dhcpd.conf
option domain-name "clobber.com";
option domain-name-servers 127.0.0.1;
authoritative
subnet 10.10.24.0 netmask 255.255.255.0 {
range 10.10.24.2 10.10.24.254;
option routers 10.10.24.1;
option broadcast-address 10.10.24.255;
}
host storage {
hardware ethernet 08:00:27:74:f7:2b;
fixed-address 10.10.24.3;
}
Y dns con bind9
apt install bind9 bind9utils
nano /etc/bind/named.conf.options
acl allowed_clients {
localhost;
10.10.24.0/24;
};
options {
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you may need to fix the firewall to allow multiple
// ports to talk. See http://www.kb.cert.org/vuls/id/800113
// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0s placeholder.
forwarders {
8.8.8.8;
8.8.4.4;
};
recursion yes;
allow-query { allowed_clients; };
forward only;
//========================================================================
// If BIND logs error messages about the root key being expired,
// you will need to update your keys. See https://www.isc.org/bind-keys
//========================================================================
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
En los clientes estamos haciendo
nano /etc/netplan/01-network-manager-all.yaml
network:
version: 2
renderer: NetworkManager
ethernets:
enp0s3:
dhcp4: yes
addresses: []
Tal vez haya que configurar /etc/resolv.conf
Añadimos acceso ssh con
sudo apt install openssh-server
#cambiamos la contraseña de root
sudo su
passwd
#suelo poner osboxes.org
nano /etc/ssh/sshd_config
systemctl restart sshd
#aqui cambiamos y descomentamos PermitRootLogin a yes
sudo ufw allow ssh
- Cybercity - Comandos sobre iSCSI
- stackoverflow - Relacionar el disco scsi con el dispositivo
El servidor iSCSI en si no tiene configuración, crearemos un target con el nombre de nuestro usuario
apt install tgt
/usr/sbin/tgtd
Los comandos a ejecutar para crear un disco ext4 de 512MB para el usuario tretorn, numero 76 son:
la carpeta ~/fs debe existir
dd if=/dev/zero of=~/fs/tretorn bs=1M count=512
mkfs -t ext4 ~/fs/tretorn
tgtadm --lld iscsi --op new --mode target --tid 76 -T iqn.2021-05.com.clobber:tretorn
tgtadm --lld iscsi --op new --mode logicalunit --tid 76 --lun 1 -b ~/fs/tretorn
tgtadm --lld iscsi --op bind --mode target --tid 76 -I ALL
sudo tgtadm --lld iscsi --op delete --force --mode target --tid 1 #Borra el target 1
sudo tgtadm --lld iscsi --op show --mode target #Muestra todos los targets
rm /fs/* #Borra los ficheros, PELIGROSISIMO!!!!
Podemos ejecutar el siguiente comando para testear, pero en el script resulta innecesario
iscsiadm --mode discovery --type sendtargets --portal 10.10.24.3
Por lo demás con los siguientes comandos:
iscsiadm --mode node --targetname iqn.2021-05.com.clobber:tretorn --portal 10.10.24.3:3260 --login
dev=$(lsscsi -t | grep 'iqn.2021-05.com.clobber:tretorn' | grep '/dev/' | awk '{print $NF}')
lsscsi -t # Ver todos los targets logeados
sudo iscsiadm --mode node --logoutall=all #sale de todos los targets
sudo iscsiadm --mode node --targetname TARGET --portal IP:PUERTO -u #desloguea del target especificado
- Digitalocean - Como instalar docker
Para generar la maquina clobber creamos el siguiente Dockerfile
# syntax=docker/dockerfile:1
FROM ubuntu
RUN apt update && apt install --no-install-recommends -y ssh python3.8 python3-pip python3.8-dev
WORKDIR /server
COPY python/app/requirements.txt .
RUN pip install -r requirements.txt
COPY python/app/src/ .
RUN echo 'root:clobber' | chpasswd
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
WORKDIR /fs
RUN mount /dev/vhd .
ENTRYPOINT service ssh start && python3 main.py
Y buildeamos con:
docker build -t clobber .
Debemos ejecutar el comando en el mismo directorio que la dockerfile
- FreeCodeCamp - Sacar la ip via container id
Continuando con el último script ejecutamos:
id=$(docker run -d --privileged --device $dev:/dev/vhd clobber)
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $id
Podemos hacer ssh a la ip que nos devolvio el último comando con
ssh root@ip
user root
contraseña clobber
##Configuracion del servidor web + comandos
En función del tiempo separaré este en 2 (firewall protegiendo datos)
Ejecutaremos los comandos por ssh, asi que:
ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.10.24.2
ssh-copy-id -i ~/.ssh/id_rsa.pub root@10.10.24.3
Luego modificamos de nuevo la config de ssh en los clientes
nano /etc/ssh/sshd_config
#ponemos PermitRootLogin a without-password
systemctl restart sshd