2.3 - Configuração
A sintaxe do PF pode ser resumida da seguinte forma:
ação [direção] [log] [quick] [on interface] [fam_de_end] [proto protocolo] \
[from end_de_or [port porta_de_or]] [to end_de_dest [port porta_ de_dest]] \
[flags sinalizadores_tcp] [estado]
Sendo:
| Ação | Executada nos pacotes que corresponderem à regra. Pode ser pass ou block. |
| Direção | Sentido do fluxo do pacote na interface. Pode ser in (entrando) ou out (saindo). |
| Log | Especifica que o pacote deve ser logado. |
| Quick | Significa que essa deve ser a última regra a ser analisada, não verificando as regras seguintes. |
| Interface | Nome da interface de rede que o pacote está passando, como fxp0 e en0. |
| Fam_de_end | Protocolo que está sendo analisado; inet para IPv4 e inet6 para IPv6. |
| Protocolo | Protocolo da camada de transporte que está sendo analisado, pode ser TCP, UDP ou qualquer outro protocolo especificado no arquivo /etc/protocols. |
| End_de_or, end_de_dest | Endereços de origem e/ou destino especificado no cabeçalho dos pacotes IP. Pode ser especificado endereço de host, blocos CIDR com uso da barra, por exemplo: 192.168.1.0/24. |
| Porta_de_or, porta_de_dest | Especifica o número da porta do cabeçalho da camada de transporte. Pode ser representado por número de 1 a 65.535, um nome de serviço válido no arquivo /etc/services, um grupo de portas usando uma lista, ou ainda um range utilizando símbolos. |
| Sinalizadores TCP | Especificam as flags do cabeçalho TCP para serem analisadas, como por exemplo AS, que verifica se as flags SYN e ACK estão ligadas. Uma regra pode ser criada, por exemplo, para permitir acesso ao serviço SSH, tendo como origem da conexão o endereço IP de um segmento de rede. veja um exemplo |
Símbolos que podem ser utilizados:
2 != (diferente de)
2 < (menor que)
2 > (maior que)
2 <= (menor ou igual a)
2 >= (maior ou igual a)
2 >< (uma faixa)
X
pass in quick on fxp0 proto tcp from 192.168.1.4/30 to 192.168.1.1 port ssh
block in quick on fxp0 proto tcp from any to any port ssh
pass in all
X