Linux Admin - Configuração do Firewall

firewalld é o controlador front-end padrão para iptables no CentOS. O front-end firewalld tem duas vantagens principais sobre o iptables bruto -

  • Usa cadeias e regras de abstração de zonas fáceis de configurar e implementar.

  • Os conjuntos de regras são dinâmicos, o que significa que as conexões com estado não são interrompidas quando as configurações são alteradas e / ou modificadas.

Lembre-se, firewalld é o wrapper para iptables - não um substituto. Embora os comandos iptables personalizados possam ser usados ​​com o firewalld , é recomendado usar o firewalld para não quebrar a funcionalidade do firewall.

Primeiro, vamos ter certeza de que firewalld está iniciado e habilitado.

[[email protected] rdc]# systemctl status firewalld 
● firewalld.service - firewalld - dynamic firewall daemon 
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) 
Active: active (running) since Thu 2017-01-26 21:42:05 MST; 3h 46min ago 
 Docs: man:firewalld(1) 
Main PID: 712 (firewalld) 
  Memory: 34.7M 
 CGroup: /system.slice/firewalld.service 
       └─712 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

Podemos ver, firewalld está ativo (para iniciar na inicialização) e atualmente em execução. Se inativo ou não iniciado, podemos usar -

systemctl start firewalld && systemctl enable firewalld

Agora que nosso serviço firewalld está configurado, vamos garantir que ele esteja operacional.

[[email protected]]# firewall-cmd --state 
running 
[[email protected]]#

Podemos ver que o serviço firewalld está totalmente funcional.

Firewalld trabalha com o conceito de zonas . Uma zona é aplicada às interfaces de rede por meio do Network Manager. Discutiremos isso na configuração da rede . Mas, por enquanto, por padrão, alterar a zona padrão mudará todos os adaptadores de rede deixados no estado padrão de "Zona Padrão".

Vamos dar uma olhada rápida em cada zona que vem fora da caixa com o firewalld .

Sr. Não. Zona e Descrição
1

drop

Baixo nível de confiança. Todas as conexões de entrada e pacotes são descartados e apenas as conexões de saída são possíveis por meio de statefullness

2

block

As conexões de entrada são respondidas com uma mensagem icmp informando ao iniciador que a solicitação é proibida

3

public

Todas as redes são restritas. No entanto, as conexões de entrada selecionadas podem ser explicitamente permitidas

4

external

Configura firewalld para NAT. A rede interna permanece privada, mas acessível

5

dmz

Apenas certas conexões de entrada são permitidas. Usado para sistemas em isolamento DMZ

6

work

Por padrão, confie em mais computadores na rede, assumindo que o sistema está em um ambiente de trabalho seguro

7

hone

Por padrão, mais serviços não são filtrados. Supondo que um sistema esteja em uma rede doméstica onde serviços como NFS, SAMBA e SSDP serão usados

8

trusted

Todas as máquinas da rede são confiáveis. A maioria das conexões de entrada são permitidas sem restrições.This is not meant for interfaces exposed to the Internet

As zonas mais comuns de uso são: pública, queda, trabalho e casa.

Alguns cenários onde cada zona comum seria usada são -

  • public- É a zona mais comum usada por um administrador. Ele permitirá que você aplique as configurações personalizadas e cumpra as especificações RFC para operações em uma LAN.

  • drop- Um bom exemplo de quando usar o drop é em uma conferência de segurança, em uma rede WiFi pública ou em uma interface conectada diretamente à Internet. drop assume que todas as solicitações não solicitadas são maliciosas, incluindo probes ICMP. Portanto, qualquer solicitação fora do estado não receberá uma resposta. A desvantagem da queda é que ele pode interromper a funcionalidade de aplicativos em certas situações que exigem conformidade RFC estrita.

  • work- Você está em uma LAN corporativa semissegura. Onde todo o tráfego pode ser considerado moderadamente seguro. Isso significa que não é WiFi e possivelmente temos IDS, IPS e segurança física ou 802.1x em vigor. Também devemos estar familiarizados com as pessoas que usam a LAN.

  • home- Você está em uma LAN doméstica. Você é pessoalmente responsável por cada sistema e usuário na LAN. Você conhece todas as máquinas da LAN e sabe que nenhuma foi comprometida. Freqüentemente, novos serviços são apresentados para compartilhamento de mídia entre indivíduos confiáveis ​​e você não precisa perder tempo por questões de segurança.

As zonas e interfaces de rede funcionam de um a vários níveis. Uma interface de rede só pode ter uma única zona aplicada a ela por vez. Enquanto, uma zona pode ser aplicada a várias interfaces simultaneamente.

Vamos ver quais zonas estão disponíveis e quais são as zonas atualmente aplicadas.

[[email protected]]# firewall-cmd --get-zones 
 work drop internal external trusted home dmz public block

[[email protected]]# firewall-cmd --get-default-zone 
public
[[email protected]]#

Pronto para adicionar algumas regras personalizadas no firewalld?

Primeiro, vamos ver como é a nossa caixa, para um scanner de porta de fora.

bash-3.2# nmap -sS -p 1-1024 -T 5  10.211.55.1
 
Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-27 23:36 MST 
Nmap scan report for centos.shared (10.211.55.1) 
Host is up (0.00046s latency). 
Not shown: 1023 filtered ports 
PORT   STATE SERVICE 
22/tcp open  ssh


Nmap done: 1 IP address (1 host up) scanned in 3.71 seconds 
bash-3.2#

Vamos permitir as solicitações de entrada na porta 80.

Primeiro, verifique qual zona é aplicada como padrão.

[[email protected]]# firewall-cmd --get-default-zone 
public
[[email protected]]#

Em seguida, defina a regra permitindo a porta 80 para a zona padrão atual.

[[email protected]]# firewall-cmd --zone=public --add-port = 80/tcp 
success
[[email protected]]#

Agora, vamos verificar nossa caixa após permitir as conexões da porta 80.

bash-3.2# nmap -sS -p 1-1024 -T 5  10.211.55.1

Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-27 23:42 MST 
Nmap scan report for centos.shared (10.211.55.1) 
Host is up (0.00053s latency). 
Not shown: 1022 filtered ports 
PORT   STATE  SERVICE 
22/tcp open   ssh 
80/tcp closed http

Nmap done: 1 IP address (1 host up) scanned in 3.67 seconds 
bash-3.2#

Agora permite tráfego não solicitado para 80.

Vamos colocar a zona padrão para descartar e ver o que acontece com a varredura de porta.

[[email protected]]# firewall-cmd --set-default-zone=drop 
success

[[email protected]]# firewall-cmd --get-default-zone 
drop

[[email protected]]#

Agora vamos examinar o host com a interface de rede em uma zona mais segura.

bash-3.2# nmap -sS -p 1-1024 -T 5  10.211.55.1 
Starting Nmap 7.30 ( https://nmap.org ) at 2017-01-27 23:50 MST 
Nmap scan report for centos.shared (10.211.55.1) 
Host is up (0.00094s latency). 
All 1024 scanned ports on centos.shared (10.211.55.1) are filtered

Nmap done: 1 IP address (1 host up) scanned in 12.61 seconds 
bash-3.2#

Agora, tudo é filtrado de fora.

Conforme demonstrado abaixo, o host nem mesmo responderá às solicitações de ping ICMP quando em queda .

bash-3.2# ping 10.211.55.1 
PING 10.211.55.1 (10.211.55.1): 56 data bytes 
Request timeout for icmp_seq 0 
Request timeout for icmp_seq 1 
Request timeout for icmp_seq 2

Vamos definir a zona padrão como pública novamente.

[[email protected]]# firewall-cmd --set-default-zone=public 
success

[[email protected]]# firewall-cmd --get-default-zone 
public

[[email protected]]#

Agora vamos verificar nosso conjunto de regras de filtragem atual em público .

[[email protected]]# firewall-cmd --zone=public --list-all 
public (active) 
target: default 
icmp-block-inversion: no 
interfaces: enp0s5 
sources:  
services: dhcpv6-client ssh 
ports: 80/tcp 
protocols:  
masquerade: no 
forward-ports:  
sourceports:  
icmp-blocks:  
rich rules:

[[email protected] rdc]#

Conforme configurado, nossa regra de filtro da porta 80 está apenas dentro do contexto da configuração em execução. Isso significa que assim que o sistema for reinicializado ou o serviço firewalld for reiniciado, nossa regra será descartada.

Estaremos configurando um daemon httpd em breve, então vamos fazer nossas mudanças persistentes -

[[email protected]]# firewall-cmd --zone=public --add-port=80/tcp --permanent 
success

[[email protected]]# systemctl restart firewalld

[[email protected]]#

Agora, nossa regra de porta 80 na zona pública é persistente em reinicializações e reinicializações de serviço.

A seguir estão os comandos firewalld comuns aplicados com firewall-cmd .

Comando Açao
firewall-cmd --get-zones Lista todas as zonas que podem ser aplicadas a uma interface
firewall-cmd —status Retorna o status atual do serviço firewalld
firewall-cmd --get-default-zone Obtém a zona padrão atual
firewall-cmd --set-default-zone = <zone> Define a zona padrão no contexto atual
firewall-cmd --get-active-zone Obtém as zonas atuais no contexto, conforme aplicado a uma interface
firewall-cmd --zone = <zone> --list-all Lista a configuração da zona fornecida
firewall-cmd --zone = <zone> --addport = <port / transport protocol> Aplica uma regra de porta ao filtro de zona
--permanente Torna as alterações na zona persistentes. Sinalizador é usado em linha com comandos de modificação

Estes são os conceitos básicos de administração e configuração do firewalld .

Configurar serviços de firewall baseados em host no CentOS pode ser uma tarefa complexa em cenários de rede mais sofisticados. O uso e a configuração avançados de firewalld e iptables no CentOS podem levar a um tutorial inteiro. No entanto, apresentamos o básico que deve ser suficiente para completar a maioria das tarefas diárias.