Firewalld (IV): Redirección de puertos

En este caso vamos a hacer un NAT de entrada (firewalld únicamente filtra el tráfico de entrada), para redirigir el puerto 15999 al puerto 22.

Primero comprobamos el estado actual del firewall:

# firewall-cmd --list-all
  public (default, active)
  interfaces: em1
  sources: 
  services: dhcpv6-client ftp mdns ssh
  ports:  
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules: 

El primer paso es activar el masquerading, para que al hacer el NAT la dirección origen se cambie por la IP local del interfaz:

firewall-cmd --zone=public --add-masquerade --permanent

La sintaxis para redirigir un puerto es la siguiente:

firewall-cmd  [--permanent] [--zone=zone] --add-forward-port=port=portid[-portid]:proto=protocol[:toport=portid[-portid]][:toaddr=address[/mask]] [--timeout=timeval]

Así que en nuestro caso, indicamos el puerto externno, el interno y la dirección a la que redirigimos el tráfico:

firewall-cmd --permanent --zone=public --add-forward-port=port=15999:proto=tcp:toport=22:toaddr=192.168.1.215

Finalmente cargamos la configuración del firewall (ya que las reglas son permanentes), y comprobamos que los cambios están activos:

# firewall-cmd --reload 
# firewall-cmd --list-all
  public (default, active)
  interfaces: em1
  sources: 
  services: dhcpv6-client ftp mdns ssh
  ports: 
  masquerade: yes
  forward-ports: port=15999:proto=tcp:toport=22:toaddr=192.168.1.215
  icmp-blocks: 
  rich rules: 

Conectar a una red wifi desde línea de comandos

Primero necesitaremos tener instalado el paquete NetworkManager-wifi:

# rpm -qa | grep -i networkmanager
NetworkManager-0.9.10.0-14.git20140704.fc21.x86_64
NetworkManager-wifi-0.9.10.0-14.git20140704.fc21.x86_64
NetworkManager-glib-0.9.10.0-14.git20140704.fc21.x86_64

Comprobamos si nos detecta la tarjeta de red:

# nmcli device show
[...]
GENERAL.DEVICE:                         wlp3s0
GENERAL.TYPE:                           wifi
GENERAL.HWADDR:                         XX:XX:XX:XX:XX:XX
GENERAL.MTU:                            1500
GENERAL.STATE:                          30 (disconnected)
GENERAL.CONNECTION:                     --
[...]

Vamos a ver las redes que tenemos disponibles:

# nmcli device wifi list
*  SSID                   MODE  CHAN   RATE       SIGNAL  BARS  SECURITY 
   BTWifi-with-FON        Infra  48    54 Mbit/s  27      ▂___  --               
   _Street WiFi           Infra  104   54 Mbit/s  27      ▂___  --               
   _WiFi_Here             Infra  104   54 Mbit/s  27      ▂___  --               
   arq_wifi               Infra  104   54 Mbit/s  25      ▂___  --               
   O2 Wifi                Infra  48    54 Mbit/s  22      ▂___  --               
   BTWifi-with-FON        Infra  40    54 Mbit/s  20      ▂___  --               
   BTWifi-Starbucks       Infra  11    54 Mbit/s  47      ▂▄__  --               
   BTWifi-X               Infra  40    54 Mbit/s  22      ▂___  WPA1 WPA2 802.1X 
   --                     Infra  48    54 Mbit/s  22      ▂___  WPA1 WPA2 802.1X 

Y elegimos la red a la que conectarnos, wi la red es abierta, no necesitamos especificar el password

# nmcli device wifi connect <nombre-del-wifi> password <password-del-wifi>
Connection with UUID '07c2a83b-df62-454d-88d5-850a06136b4f' created and activated on device 'wlp3s0'

Ahora al listar las redes de nuevo, veremos un asterisco a la izquierda del nombre de la red a la que estamos conectados:

*  SSID                   MODE  CHAN   RATE       SIGNAL  BARS  SECURITY 
   BTWifi-with-FON        Infra  40    54 Mbit/s  22      ▂___  --               
*  BTWifi-Starbucks       Infra  11    54 Mbit/s  52      ▂▄__  --               
   PANAREA                Infra  6     54 Mbit/s  19      ▂___  WPA2             
   BTWifi-with-FON        Infra  1     54 Mbit/s  24      ▂___  --          

Si nos queremos desconectar de la red, basta con ejecutar el siguiente comando:

# nmcli connection down <nombre-del-wifi>

Cómo cifrar un nuevo disco duro

Primero vemos como el sistema detecta el disco, en este caso es /dev/sdb

# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 223.6G 0 disk
├─sda1 8:1 0 1000M 0 part /boot
└─sda2 8:2 0 82.1G 0 part
├─fedora_z60000-00 253:0 0 39.1G 0 lvm
│ └─luks-837c41de-51a9-4aa9-8e99-2b8f9df5c5c3 253:2 0 39.1G 0 crypt /
├─fedora_z60000-02 253:1 0 3.9G 0 lvm
│ └─luks-559ebb89-3597-45dd-a45b-a791fecad036 253:3 0 3.9G 0 crypt [SWAP]
└─fedora_z60000-01 253:4 0 39.1G 0 lvm
└─luks-dd593fe2-015a-4580-986a-41c472b4d21d 253:19 0 39.1G 0 crypt /home
sdb 8:16 0 1.8T 0 disk

Ciframos el disco, nos preguntará la frase a utilizar:

# cryptsetup -y -v luksFormat /dev/sdb

WARNING!
========
This will overwrite data on /dev/sdb irrevocably.

Are you sure? (Type uppercase yes): YES
Enter passphrase:
Verify passphrase:
Command successful.

Comprobamos el UUID asignado a /dev/sdb

# cryptsetup luksUUID /dev/sdb
5a31df2e-2cae-4ce2-8fd6-797aa1b51a9f

Asi que llamaremos al nuevo dispositivo luks-5a31df2e-2cae-4ce2-8fd6-797aa1b51a9f

Ademas queiro que me pregunte la contraseña al inicar el sistema

# echo "luks-$(cryptsetup luksUUID /dev/sdb) UUID=$(cryptsetup luksUUID /dev/sdb) none " >> /etc/crypttab

Comprobamos que se puede abrir el nuevo dispositivo:

# cryptsetup luksOpen /dev/sdb luks-$(cryptsetup luksUUID /dev/sdb)
Enter passphrase for /dev/sdb:

Y vemos que el nuevo dispositivo se ha creado en /dev/mapper

# ls /dev/mapper/luks-5a31df2e-2cae-4ce2-8fd6-797aa1b51a9f
/dev/mapper/luks-5a31df2e-2cae-4ce2-8fd6-797aa1b51a9f

Comprobamos su estado:

# cryptsetup status /dev/mapper/luks-5a31df2e-2cae-4ce2-8fd6-797aa1b51a9f
/dev/mapper/luks-5a31df2e-2cae-4ce2-8fd6-797aa1b51a9f is active.
type: LUKS1
cipher: aes-xts-plain64
keysize: 256 bits
device: /dev/sdb
offset: 4096 sectors
size: 3907025072 sectors
mode: read/write

Creamos el volumen físico (PV), grupo de volument (VG) y volumen lógico (LV):

 
# pvcreate /dev/mapper/luks-5a31df2e-2cae-4ce2-8fd6-797aa1b51a9f
Physical volume "/dev/mapper/luks-5a31df2e-2cae-4ce2-8fd6-797aa1b51a9f" successfully created

# pvs
PV VG Fmt Attr PSize PFree
/dev/mapper/luks-5a31df2e-2cae-4ce2-8fd6-797aa1b51a9f lvm2 a-- 1.82t 1.82t
/dev/sda2 fedora_z60000 lvm2 a-- 82.05g 4.00m

# vgcreate fedora_z600extra /dev/mapper/luks-5a31df2e-2cae-4ce2-8fd6-797aa1b51a9f
Volume group "fedora_z600extra" successfully created

# lvcreate -n lv_redhat -L100G fedora_z600extra
Logical volume "lv_redhat" created

# lvcreate -n lv_data -L400G fedora_z600extra
Logical volume "lv_data" created

# lvs
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert
00 fedora_z60000 -wi-ao---- 39.07g
01 fedora_z60000 -wi-ao---- 39.07g
02 fedora_z60000 -wi-ao---- 3.91g
lv_data fedora_z600extra -wi-a----- 400.00g
lv_redhat fedora_z600extra -wi-a----- 100.00g

Creamos los sistemas de ficheros:

# mkfs.xfs /dev/mapper/fedora_z600extra-lv_redhat 
meta-data=/dev/mapper/fedora_z600extra-lv_redhat isize=256    agcount=4, agsize=6553600 blks
		 =                       sectsz=4096  attr=2, projid32bit=1
		 =                       crc=0        finobt=0
        data     =                       bsize=4096   blocks=26214400, imaxpct=25
		 =                       sunit=0      swidth=0 blks
        naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
        log      =internal log           bsize=4096   blocks=12800, version=2
		 =                       sectsz=4096  sunit=1 blks, lazy-count=1
        realtime =none                   extsz=4096   blocks=0, rtextents=0

# mkfs.xfs /dev/mapper/fedora_z600extra-lv_data 
meta-data=/dev/mapper/fedora_z600extra-lv_data isize=256    agcount=4, agsize=26214400 blks
		 =                       sectsz=4096  attr=2, projid32bit=1
		 =                       crc=0        finobt=0
        data     =                       bsize=4096   blocks=104857600, imaxpct=25
		 =                       sunit=0      swidth=0 blks
        naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
        log      =internal log           bsize=4096   blocks=51200, version=2
		 =                       sectsz=4096  sunit=1 blks, lazy-count=1
        realtime =none                   extsz=4096   blocks=0, rtextents=0

Y los añadimos a fstab:

/dev/mapper/fedora_z600extra-lv_redhat          /redhat                 xfs     defaults,x-systemd.device-timeout=0 0 0
/dev/mapper/fedora_z600extra-lv_data            /data           xfs     defaults,x-systemd.device-timeout=0 0 0

Finalmente montamos los sistemas de ficheros:

# mount -a