Cada distribución de Linux puede ser diferente a la hora de configurar la red. Personalmente, estoy muy acostumbrado a administrar RedHat desde hace años y configuro la red de la siguiente manera:
Configuración del hostname y el default gateway en Linux
En el fichero /etc/sysconfig/network configuro el hostname del servidor y el default gateway:
# cat network
NETWORKING=yes
HOSTNAME=srv1ws1
GATEWAY=10.49.0.1
NOZEROCONF=yes
PEERDNS=no
NETWORKING_IPV6=no
#
Si queremos eliminar el uso del default gateway para una tarjeta de red, añadiremos la directiva: DEFROUTE=no
Añadir y eliminar el default gateway por la línea de comandos de Linux
Si queremos hacer una prueba, podemos añadir o eliminar el default gateway a través de la línea de comandos de Linux, pero el cambio no quedará guardado cuando se rebote el servidor. Para que quede guardado, hay que modificar los ficheros de red.
ip route add default via 192.0.2.2 dev eth0
ip route del
En el caso del comando «del», el comando ya asume que se va a eliminar la ruta por defecto sin necesidad de añadir ningún parámetro más.
Configuración de una IP con NetworkManager
Con el comando nmcli de NetworkManager podemos configurar, modificar o deshabilitar tarjetas de red en Linux.
A continuación, vamos a asignar una IP estática a una interfaz de red:
[root@localhost ~]# nmcli con add type ethernet con-name static ifname ens37 ip4 192.168.248.131/24 gw4 192.168.248.2
Connection 'static' (5eaf5779-5b0a-45c1-ba74-798f9798fd90) successfully added.
[root@localhost ~]#
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:89:20:57 brd ff:ff:ff:ff:ff:ff
inet 192.168.248.130/24 brd 192.168.248.255 scope global dynamic noprefixroute ens33
valid_lft 1048sec preferred_lft 1048sec
inet6 fe80::66b8:8815:aa0d:dc80/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:89:20:61 brd ff:ff:ff:ff:ff:ff
inet 192.168.248.131/24 brd 192.168.248.255 scope global dynamic noprefixroute ens37
valid_lft 1048sec preferred_lft 1048sec
inet6 fe80::1868:64db:502e:d86a/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4: ens38: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 00:0c:29:89:20:6b brd ff:ff:ff:ff:ff:ff
inet 192.168.248.132/24 brd 192.168.248.255 scope global dynamic noprefixroute ens38
valid_lft 1048sec preferred_lft 1048sec
inet6 fe80::e3e0:a76e:a3be:a01b/64 scope link noprefixroute
valid_lft forever preferred_lft forever
5: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:7f:cc:e0 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
6: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:7f:cc:e0 brd ff:ff:ff:ff:ff:ff
[root@localhost ~]#
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-static
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=192.168.248.131
PREFIX=24
GATEWAY=192.168.248.2
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=static
UUID=5eaf5779-5b0a-45c1-ba74-798f9798fd90
DEVICE=ens37
ONBOOT=yes
[root@localhost ~]#
Si quisiéramos configurar una interfaz de red con DHCP, utilizaríamos el parámetro «auto» de nmcli. Ejemplo:
nmcli con mod ens160 ipv4.method auto
nmcli con down ens160
nmcli con up ens160
Eliminación de la configuración de una tarjeta de red con NetworkManager
[root@localhost ~]# nmcli conn
NAME UUID TYPE DEVICE
ens33 c93d7d4c-7532-464e-8e20-47adc410e507 ethernet ens33
Wired connection 1 913fa7a9-9a91-3bfc-b549-722f630b633f ethernet ens37
Wired connection 2 2c32c84e-7ecd-3d2b-96d3-d07c0df54dac ethernet ens38
virbr0 5fadfe2f-a2f5-4ccc-8fd6-afaed9a15212 bridge virbr0
static 5eaf5779-5b0a-45c1-ba74-798f9798fd90 ethernet --
static2 d05c911f-c470-436d-ab27-1aea5d98e7d3 ethernet --
[root@localhost ~]#
[root@localhost ~]# nmcli con delete uuid 5eaf5779-5b0a-45c1-ba74-798f9798fd90
Connection 'static' (5eaf5779-5b0a-45c1-ba74-798f9798fd90) successfully deleted.
[root@localhost ~]#
También podemos eliminar una conexión por su nombre en vez de por su UID:
[root@localhost network-scripts]# nmcli connection delete bond0
Connection 'bond0' (fe8ea19b-cee8-4105-8cc3-ad2e4f535e1f) successfully deleted.
[root@localhost network-scripts]#
Si queremos eliminar más de una conexión al mismo tiempo, escribiremos cada una de ellas en la misma línea de comandos:
[root@localhost network-scripts]# nmcli connection delete f3928576-e4f2-458e-aa7b-5e3d440fbc3b 461855e0-1a6a-458e-bd74-0a268cf22df1 f4b10d6b-409e-44a0-ac72-cfd36372a864 d54adad4-5fbf-4862-8b1f-d27d0b0dc62a
Connection 'bond-slave-ens37' (f3928576-e4f2-458e-aa7b-5e3d440fbc3b) successfully deleted.
Connection 'bond-slave-ens37-1' (461855e0-1a6a-458e-bd74-0a268cf22df1) successfully deleted.
Connection 'bond-slave-ens38' (f4b10d6b-409e-44a0-ac72-cfd36372a864) successfully deleted.
Connection 'bond-slave-ens38-1' (d54adad4-5fbf-4862-8b1f-d27d0b0dc62a) successfully deleted.
[root@localhost network-scripts]#
Configuración de IPs y rutas en RedHat 8 con NetworkManager
El mecanismo es prácticamente idéntico al que hemos visto. Una vez que hemos configurado los ficheros de las tarjetas de red y rutas, aplicaremos la nueva configuración con los siguientes comandos:
systemctl restart NetworkManager
nmcli networking off; nmcli networking on
Veamos un ejemplo:
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:10:08:eb brd ff:ff:ff:ff:ff:ff
inet 30.34.169.33/24 brd 30.34.169.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::250:56ff:fe10:8eb/64 scope link
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:16:59:46 brd ff:ff:ff:ff:ff:ff
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 30.34.169.1 0.0.0.0 UG 100 0 0 eth0
10.100.0.209 30.34.169.1 255.255.255.255 UGH 100 0 0 eth0
15.0.0.0 30.34.169.1 255.0.0.0 UG 100 0 0 eth0
15.131.216.0 30.34.169.1 255.255.254.0 UG 100 0 0 eth0
15.131.253.128 30.34.169.1 255.255.255.128 UG 100 0 0 eth0
15.131.254.0 30.34.169.1 255.255.255.128 UG 100 0 0 eth0
28.1.0.0 30.34.169.1 255.255.0.0 UG 100 0 0 eth0
30.0.0.0 30.34.169.1 255.0.0.0 UG 100 0 0 eth0
30.34.169.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
138.35.0.0 30.34.169.1 255.255.0.0 UG 100 0 0 eth0
155.61.0.0 30.34.169.1 255.255.0.0 UG 100 0 0 eth0
192.151.16.0 30.34.169.1 255.255.255.0 UG 100 0 0 eth0
192.151.66.0 30.34.169.1 255.255.255.0 UG 100 0 0 eth0
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp -p ifcfg-eth0 ifcfg-eth0:1
[root@localhost network-scripts]# vi ifcfg-eth0:1
[root@localhost network-scripts]# grep -i ipaddr ifcfg-eth0* |grep -v "#"
ifcfg-eth0:IPADDR=10.49.40.103
ifcfg-eth0:1:IPADDR=30.34.169.33
[root@localhost network-scripts]# systemctl restart NetworkManager
[root@localhost network-scripts]# nmcli networking off; nmcli networking on
[root@localhost network-scripts]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:10:08:eb brd ff:ff:ff:ff:ff:ff
inet 10.49.40.103/24 brd 10.49.40.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet 30.34.169.33/24 brd 30.34.169.255 scope global noprefixroute eth0:1
valid_lft forever preferred_lft forever
inet6 fe80::250:56ff:fe10:8eb/64 scope link tentative
valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:16:59:46 brd ff:ff:ff:ff:ff:ff
[root@localhost network-scripts]# cd ..
[root@localhost sysconfig]# vi network
[root@localhost sysconfig]# cat network
NETWORKING=yes
GATEWAY=10.49.40.1
NOZEROCONF=yes
PEERDNS=no
NETWORKING_IPV6=no
[root@localhost sysconfig]# systemctl restart NetworkManager
[root@localhost sysconfig]# nmcli networking off; nmcli networking on
[root@localhost sysconfig]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.49.40.1 0.0.0.0 UG 100 0 0 eth0
10.49.40.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
10.100.0.209 30.34.169.1 255.255.255.255 UGH 100 0 0 eth0
15.0.0.0 30.34.169.1 255.0.0.0 UG 100 0 0 eth0
15.131.216.0 30.34.169.1 255.255.254.0 UG 100 0 0 eth0
15.131.253.128 30.34.169.1 255.255.255.128 UG 100 0 0 eth0
15.131.254.0 30.34.169.1 255.255.255.128 UG 100 0 0 eth0
28.1.0.0 30.34.169.1 255.255.0.0 UG 100 0 0 eth0
30.0.0.0 30.34.169.1 255.0.0.0 UG 100 0 0 eth0
30.34.169.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
138.35.0.0 30.34.169.1 255.255.0.0 UG 100 0 0 eth0
155.61.0.0 30.34.169.1 255.255.0.0 UG 100 0 0 eth0
192.151.16.0 30.34.169.1 255.255.255.0 UG 100 0 0 eth0
192.151.66.0 30.34.169.1 255.255.255.0 UG 100 0 0 eth0
[root@localhost sysconfig]#
¿Necesitas un cable de red Ethernet?
Configuración del DNS que va a utilizar el sistema Linux
En /etc/resolv.conf, configuro los DNSs:
cat /etc/resolv.conf
domain 7143.1286.ecs.hp.com
search 7143.1286.ecs.hp.com 3804.1319.ecs.hp.com
nameserver 30.34.129.11 # wadslax0.8798.1286.ecs.hp.com
nameserver 30.34.129.12 # wadslax1.8798.1286.ecs.hp.com
#
En /etc/sysconfig/network-script configuro las IPs, máscaras de red y bondings de todas las tarjeas de red, además de las rutas:
Configuración del Bonding
La configuración del bonding es, básicamente, la alta disponibilidad a nivel de tarjetas de red o, dicho de otra manera, dos o más tarjetas de red proporcionan una IP de servicio. Si se estropear una de las tarjetas de red, la IP configurada a nivel de bonding sigue siendo accesible.
Modos de bonding:

# cat ifcfg-eth0
DEVICE=eth0
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
TYPE=Ethernet
ONBOOT=yes
# cat ifcfg-eth1
DEVICE=eth1
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
TYPE=Ethernet
ONBOOT=yes
# cat ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none
IPADDR=30.32.0.80
NETMASK=255.255.255.0
BONDING_OPTS="mode=active-backup miimon=100"
#
Configurando el bonding con NetworkManager
[root@localhost ~]# nmcli con add type bond con-name bond0 ifname bond0 mode active-backup ip4 192.168.248.131/24
Connection 'bond0' (94255f7e-d281-493e-837a-485d8b4abc5b) successfully added.
[root@localhost ~]# nmcli con add type bond-slave ifname ens37 master bond0
Connection 'bond-slave-ens37' (f3928576-e4f2-458e-aa7b-5e3d440fbc3b) successfully added.
[root@localhost ~]# nmcli con add type bond-slave ifname ens38 master bond0
Connection 'bond-slave-ens38' (f4b10d6b-409e-44a0-ac72-cfd36372a864) successfully added.
[root@localhost ~]#
Configuración de las rutas en Linux
Una vez configurado el bonding, el fichero de tabla de rutas a configurar está en /etc/sysconfig/network-scripts/route-bond0, si usas RedHat o CentOs, por ejemplo.
Configuración de las rutas permanentemente
Lo podemos configurar de dos maneras:
- Método via:
#cat route-bond0
15.131.0.0/16 via 30.32.0.1
15.163.0.0/16 via 30.32.0.1
15.163.192.0/18 via 30.32.0.1 dev bond0
15.131.192.0/18 via 30.32.0.1 dev bond0
#
- Método tradicional:
# cat route-bond0
ADDRESS0=10.100.0.209
NETMASK0=255.255.255.255
GATEWAY0=30.34.229.1
Añadir o eliminar una ruta de manera dinámica
Si queremos hacer una prueba, añadir o eliminar una ruta sin tener que reiniciar el servicio de red, lo haremos de la siguiente manera:
- Añadir una ruta
[root@liocsux3 ~]# ip route add 15.131.192.0 via 30.34.84.1 dev eth0
[root@liocsux3 ~]# route -n |grep 15.131.192.0
15.131.192.0 30.34.84.1 255.255.255.255 UGH 0 0 0 eth0
[root@liocsux3 ~]#
- Eliminar una ruta
[root@liocsux3 ~]# ip route del 15.131.192.0/18
[root@liocsux3 ~]# route -n |grep 15.131.192.0
[root@liocsux3 ~]#
Debemos tener en cuenta de que si reiniciamos el servidor o los servicios de red, se desconfigurarán las rutas dinámicas añadidas o eliminadas.
Podrías necesitar echar un vistazo a la tabla de máscaras de red.
IPs virtuales
Una IP virtual es una nueva IP configurada en una misma interfaz física. Por ejemplo, la interfaz bond0 tiene dos IPs configuradas:
# ip addr |grep bond0
2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP qlen 1000
6: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
inet 30.32.0.80/24 brd 30.32.0.255 scope global bond0
inet 30.32.0.82/24 brd 30.32.0.255 scope global secondary bond0:1
#
Para hacer este montaje, simplemente, crearemos el fichero /etc/sysconfig/network-scripts/ifcfg-bond0:1.
Comandos útiles de red
- ping: Mediante el protocolo de comunicaciones ICMP, testea la conectividad hacia una IP destino.
[root@lremdox2 ~]# ping lremdox3
PING lremdox3 (30.32.0.81) 56(84) bytes of data.
64 bytes from lremdox3 (30.32.0.81): icmp_seq=1 ttl=64 time=0.535 ms
64 bytes from lremdox3 (30.32.0.81): icmp_seq=2 ttl=64 time=0.529 ms
64 bytes from lremdox3 (30.32.0.81): icmp_seq=3 ttl=64 time=0.546 ms
^C
--- lremdox3 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2619ms
rtt min/avg/max/mdev = 0.529/0.536/0.546/0.027 ms
[root@lremdox2 ~]#
- traceroute: Vemos todas las IPs por las que pasamos desde una IP origen hacia una IP destino. Este comando es muy útil para averiguar qué elemento de red es el que está fallando cuando no llegamos al destino.
# traceroute www.google.com
traceroute to www.google.com (216.58.198.68), 30 hops max, 60 byte packets
1 ec2-79-125-0-132.eu-west-1.compute.amazonaws.com (79.125.0.132) 1.175 ms ec2-79-125-0-134.eu-west-1.compute.amazonaws.com (79.125.0.134) 1.166 ms ec2-79-125-0-136.eu-west-1.compute.amazonaws.com (79.125.0.136) 1.161 ms
2 178.236.1.18 (178.236.1.18) 1.337 ms 1.392 ms 1.415 ms
3 52.93.7.98 (52.93.7.98) 3.806 ms 52.93.7.102 (52.93.7.102) 3.445 ms 52.93.7.96 (52.93.7.96) 6.046 ms
4 52.93.7.35 (52.93.7.35) 1.735 ms 52.93.7.9 (52.93.7.9) 1.929 ms 52.93.7.33 (52.93.7.33) 1.816 ms
5 72.14.215.85 (72.14.215.85) 1.868 ms 1.900 ms 72.14.204.244 (72.14.204.244) 1.878 ms
6 209.85.252.198 (209.85.252.198) 16.416 ms 1.180 ms 1.187 ms
7 64.233.174.27 (64.233.174.27) 1.242 ms 1.275 ms 1.260 ms
8 dub08s02-in-f68.1e100.net (216.58.198.68) 1.252 ms 1.497 ms 1.490 ms
#
- netstat: Vemos las conexiones activas en nuestro servidor.
# netstat -an |grep LISTEN |head -15
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
tcp 0 0 10.0.1.5:5000 0.0.0.0:* LISTEN
tcp 0 0 10.0.1.5:5001 0.0.0.0:* LISTEN
tcp6 0 0 :::111 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:25 :::* LISTEN
unix 2 [ ACC ] STREAM LISTENING 16720 private/bounce
unix 2 [ ACC ] STREAM LISTENING 16724 private/defer
unix 2 [ ACC ] STREAM LISTENING 16727 private/trace
unix 2 [ ACC ] STREAM LISTENING 16730 private/verify
unix 2 [ ACC ] STREAM LISTENING 16736 private/proxymap
unix 2 [ ACC ] STREAM LISTENING 16739 private/proxywrite
unix 2 [ ACC ] STREAM LISTENING 16742 private/smtp
#
- route: Vemos la tabla de rutas.
# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.100.0.209 30.32.0.1 255.255.255.255 UGH 0 0 0 bond0
30.32.0.0 0.0.0.0 255.255.255.0 U 0 0 0 bond0
10.48.0.0 0.0.0.0 255.255.255.0 U 0 0 0 bond1
138.35.0.0 30.32.0.1 255.255.0.0 UG 0 0 0 bond0
155.61.0.0 30.32.0.1 255.255.0.0 UG 0 0 0 bond0
30.0.0.0 30.32.0.1 255.0.0.0 UG 0 0 0 bond0
15.0.0.0 30.32.0.1 255.0.0.0 UG 0 0 0 bond0
0.0.0.0 10.48.0.1 0.0.0.0 UG 0 0 0 bond1
#
- nslookup o dig: Obtenemos información de una IP desde el servidor de nombres (DNS).
# dig www.google.com
; <<>> DiG 9.9.4-RedHat-9.9.4-51.el7 <<>> www.google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10431
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.google.com. IN A
;; ANSWER SECTION:
www.google.com. 60 IN A 209.85.202.147
www.google.com. 60 IN A 209.85.202.99
www.google.com. 60 IN A 209.85.202.103
www.google.com. 60 IN A 209.85.202.104
www.google.com. 60 IN A 209.85.202.105
www.google.com. 60 IN A 209.85.202.106
;; Query time: 2 msec
;; SERVER: 10.0.0.2#53(10.0.0.2)
;; WHEN: Mon Oct 23 11:49:16 CEST 2017
;; MSG SIZE rcvd: 139
#
- nmap: Podemos testear si llegamos a un puerto destino. De esta manera, sabremos si tenemos que abrir el firewall.
# nmap -Pn -p1238 30.248.242.17
Starting Nmap 5.51 ( http://nmap.org ) at 2017-10-20 09:54 CEST
Nmap scan report for gencat-qs1.3804.1319.ecs.hp.com (30.248.242.17)
Host is up.
PORT STATE SERVICE
1238/tcp filtered unknown
Nmap done: 1 IP address (1 host up) scanned in 2.12 seconds
#
Testear los puertos abiertos
Con nmap también podemos testear los puertos que tiene abiertos una determinada IP. Es una de las herramientas utilizadas por los piratas informáticos, así como por los responsables de seguridad informática, para detectar puertas de entrada a un servidor.
Veamos un ejemplo de test de los puertos que tenemos abiertos en nuestro servidor local, aunque, lo normal, es atacar a una IP de destino:
[root]# nmap localhost
Starting Nmap 6.40 ( http://nmap.org ) at 2019-01-22 16:38 CET
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000030s latency).
Other addresses for localhost (not scanned): 127.0.0.1
Not shown: 990 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
111/tcp open rpcbind
443/tcp open https
3306/tcp open mysql
9000/tcp open cslistener
9001/tcp open tor-orport
9002/tcp open dynamid
9003/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
[root]#
Levantar un puerto en local
Si queremos levantar un puerto manualmente, podremos hacerlo con el comando ncat:
[root@server ~]# ncat -m 30 -k -l 443
Si abrimos otra sesión, lo podemos comprobar:
[root@server1 ~]# nc -w 10 -zv localhost 443
Connection to localhost 443 port [tcp/https] succeeded!
[root@server1 ~]#+
También podemos comprobar un puerto remoto. En este caso, saliendo a través de un proxy:
[root@server1 ~]# nc -w 10 -X connect -zv -x 192.168.47.162:8080 www.google.com 80
Connection to www.google.com 80 port [tcp/http] succeeded!
[root@server1 ~]#
Probar la conectividad desde un puerto origen
Si queremos saber si se puede establecer conexión desde un puerto origen hacia una IP y puerto destino, utilizaremos el parámetro «-p» del comando nc para indicar el puerto origen (desde donde se inicia la comunicación).
Veamos dos ejemplos, uno con un puerto origen bloqueado otro con un puerto origen permitido:
[root@server1]# nc -p 831 10.49.40.107 2049 -zv -w 10
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connection timed out.
[root@server1]#
[root@server1]# nc -p 50781 10.49.40.107 2049 -zv -w 10
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 10.49.40.107:2049.
Ncat: 0 bytes sent, 0 bytes received in 0.01 seconds.
[root@server1]#
¿Cuál es mi IP?
IPs internas
Si queremos averiguar cuáles son las IPs internas, lo podremos saber con el comando ip:
hostname # ip addr
1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether f0:92:1c:13:9b:60 brd ff:ff:ff:ff:ff:ff
3: eth1: mtu 1500 qdisc mq master bond1 state UP group default qlen 1000
link/ether f0:92:1c:13:9b:64 brd ff:ff:ff:ff:ff:ff
4: eth2: mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether 2c:44:fd:e0:1c:80 brd ff:ff:ff:ff:ff:ff
5: eth3: mtu 1500 qdisc mq master bond1 state UP group default qlen 1000
link/ether 2c:44:fd:e0:1c:84 brd ff:ff:ff:ff:ff:ff
6: bond0: mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether f0:92:1c:13:9b:60 brd ff:ff:ff:ff:ff:ff
inet 30.34.229.22/24 brd 30.34.229.255 scope global bond0
valid_lft forever preferred_lft forever
inet 30.34.229.24/24 brd 30.34.229.255 scope global secondary bond0:1
valid_lft forever preferred_lft forever
inet6 fe80::f292:1cff:fe13:9b60/64 scope link
valid_lft forever preferred_lft forever
7: bond1: mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether f0:92:1c:13:9b:64 brd ff:ff:ff:ff:ff:ff
inet 10.49.64.20/24 brd 10.49.64.255 scope global bond1
valid_lft forever preferred_lft forever
inet 10.49.64.21/24 brd 10.49.64.255 scope global secondary bond1:1
valid_lft forever preferred_lft forever
inet6 fe80::f292:1cff:fe13:9b64/64 scope link
valid_lft forever preferred_lft forever
hostname #
Averiguar la IP pública
Si estamos el servidor está conectado a la red DMZ con una IP pública asignada directamente al servidor o, bien, se conecta a través de un router con IP pública, podremos conocerla con el comando curl
hostname # curl ifconfig.me
52.48.62.26
hostname #
o con servicios externos como cual es mi IP.

Te puede interesar
- Configuración del proxy Squid
- Seguridad en la red con SSH
- Configuración de un servidor de DNS en Linux CentOS
- Configuración del servicio FTP
- Sincronización horaria con NTP
- Tutorial en español de Wireshark para aprender a capturar el tráfico de tu red
- Configuración de un balanceador de carga con HA Proxy para redes con alta disponibilidad