viernes, 26 de agosto de 2016

Centos 7 y firewall-cmd

Con las recientes actualizaciones de Centos trae como novedad el firewall-cmd que es una manera de usar iptables para mi gusto mas simple que las largas lineas que se ponían.

Por default en la instalación viene activado lo cual puedes desactivar o usarlo si quieres.

A continuación veremos comandos mas usados para el uso de firewall-cmd desde la consola de linux en Centos.

Saber si esta corriendo el firewall:

[root@files ~]# firewall-cmd --state
not running


Arrancar el servicio:

[root@files ~]# systemctl start firewalld.service

Revisamos

[root@files ~]# firewall-cmd --state
running




Existen varias zonas en el firewall por las cuales se subdivide, para revisar cual es la default ponemos:

[root@files ~]# firewall-cmd --get-default-zone
public

Para saber cuantas zonas tenemos usamos:

[root@files ~]# firewall-cmd --get-active-zones
public
  interfaces: eth0

Las zonas pueden ir de la mano con el numero de tarjetas de red que tenemos.

Ahora listaremos las opciones configuradas dentro de nuestro firewall.

[root@files ~]# firewall-cmd --list-all
public (default, active)
  interfaces: eth0
  sources:
  services: dhcpv6-client ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:


Destaca los servicios que tenemos configurados en el firewall.

Para ver las posibles zonas a usar utilizaremos:

[root@files ~]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work

La zona public es la que tenemos configurada para nuestra tarjeta de red eth0.

Para ver los servicios de una zona en particular.

[root@files ~]# firewall-cmd --zone=home --list-all
home
  interfaces:
  sources:
  services: dhcpv6-client ipp-client mdns samba-client ssh
  ports:
  masquerade: no
  forward-ports:
  icmp-blocks:
  rich rules:

Para ver los servicios de todas las zonas de golpe pondremos:

[root@files ~]# firewall-cmd --list-all-zones

Si se desea cambiar de zona una itnerface tomaremos:

[root@files ~]# firewall-cmd --zone=home --change-interface=eth0

Para ver nuestras zonas activas:

[root@files ~]# firewall-cmd --get-active-zones
public
  interfaces: eth0

 Si se quisiera dejar configurada la zona dentro de la tarjeta de red tendriamos que modificar el siguiente archivo:

[root@files ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

Y en la parte final poner:

ZONE=home

Reiniciar la red y el servicio.

[root@files ~]# systemctl restart network.service

[root@files ~]# systemctl restart firewalld.service

Para seleccionar la zona default:

 [root@files ~]# firewall-cmd --set-default-zone=home

Para mostrar los servicios que podemos usar haremos:

[root@files ~]# firewall-cmd --get-services
RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imaps ipp ipp-client ipsec iscsi-target kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind rsyncd samba samba-client smtp ssh telnet tftp tftp-client transmission-client vdsm vnc-server wbem-https

Para agregar un servicio al firewall es necesario usar el siguiente comando:

[root@files ~]# firewall-cmd --zone=public --add-service=http
success












Si la zona que deseamos es la default entonces no es necesario poner zone (en mi caso).

Listamos los servicios permitidos:

[root@files ~]# firewall-cmd --zone=public --list-services
dhcpv6-client http ssh

Aqui vemos como se agrego el servicio de http, sin embargo ese es para esa sesion, es decir que si se reinicia el server no quedara ese permiso. Para hacerlo permanente hay que usar:

[root@files ~]# firewall-cmd --zone=public --permanent --add-service=http

Para ver los servicios que estan permanentes usamos:

[root@files ~]# firewall-cmd --zone=public --permanent --list-services

Para abrir un puerto con numero usaremos:

[root@files ~]# firewall-cmd --zone=public --add-port=5555/tcp

Haciendo referencia si es tcp o udp, recuerden para hacerlo permanente hay que agregar la opcion --permanent.

Para listar los puertos abiertos:

[root@files ~]# firewall-cmd --list-ports

Para un rango de puertos seria:

[root@files ~]# firewall-cmd --zone=public --add-port=4990-4999/udp

Para que los cambios que hemos hechos queden aplicados debemos hacer:

[root@files ~]# firewall-cmd --reload

Por ultimo en esta guia (hay mucho mas desde luego pero sera en otro tuto) veremos como agregar una zona o zonas para cuando tenemos varias tarjetas de red con diferentes servicios a diferentes redes.

[root@files ~]# firewall-cmd --permanent --new-zone=privateDNS

Verificar que la zona fue agregada:

[root@files ~]# firewall-cmd --permanent --get-zones

Revisar todas las zonas:

[root@files ~]# firewall-cmd --get-zones

Recuerda recargar la zona:

[root@files ~]# firewall-cmd --reload

Si esta zona creada es para otra tarjeta de red recuerda que debes incluirla en el archivo que mencione arriba y poner en la parte de abajo la zona.

Agregar un servicio a la zona creada:

[root@files ~]# firewall-cmd --zone=privateDNS --add-service=dns

Recuerda usar el --permanent si quieres que el cambio se quede.

Por ultimo para que el firewall arranque por default al iniciar el server hay que poner:


[root@files ~]# systemctl enable firewalld
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
Created symlink from /etc/systemd/system/basic.target.wants/firewalld.service to /usr/lib/systemd/system/firewalld.service.

Como plus les pongo como agregar y quitar servicios:

 [root@files ~]# firewall-cmd --zone=public --add-port=12345/tcp --permanent

[root@files ~]# firewall-cmd --zone=public --remove-port=12345/tcp --permanent

Portforwarding (forwardiar un puerto)

[root@files ~]# firewall-cmd --zone="public" --add-forward-port=port=80:proto=tcp:toport=12345

Activar el MASQUARADE

[root@files ~]# firewall-cmd --zone=public --add-masquerade

Hacer forward de un puerto a otro server otro puerto.

[root@files ~]# firewall-cmd --zone="public" --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.1




 Espero les sirva.



Bibliografia: DigitalOcean y Linode


No hay comentarios:

Publicar un comentario