As vezes estamos tentando acessar um recurso externo e não há resposta, e ai fica a dúvida se é um problema no recurso ou se tem algo bloqueando o acesso. Uma forma fácil de testar é usar o site portquiz.net e informar na url a porta (:XXXX) que deseja validar. O Portquiz responde todas as portas TCP, de 1 a 65535 (menos a 445 que está com problema no momento). E como podemos ver no próprio site, também é possível fazer o teste via linha de comando: $ telnet portquiz.net 1234 Trying … Connected to portquiz.net. Escape character is ‘^]’. $ nc -v portquiz.net 1234 Connection to portquiz.net 1234 port [tcp/daytime] succeeded! $ curl portquiz.net:1234 Port 1234 test successful! Your IP: 177.45.26.175 $ wget -qO- portquiz.net:1234 Port 1234 test successful! Your IP: 177.45.26.175 # For Windows PowerShell users PS C:\> Test-NetConnection -InformationLevel detailed -ComputerName portquiz.net -Port 1234 Já conheciam esta ferramenta? Achei útil. Até a próxima.
Boas novidades no FMC 7.0.0
A Cisco comprou a SourceFire em 2013 e rapidamente adicionou partes do software em seus produtos. Com relação a segurança a integração foi bem sucedida, mas na parte de funcionalidades e usabilidade a junção não fluiu muito bem. Desde então a Cisco vem trabalhando para melhorar os produtos envolvidos nesta união, e com o nascimento do FTD – Firepower Treat Defense, tivemos uma primeira grande melhoria. A evolução continua a cada atualização, não na velocidade que gostaríamos, mas ainda assim tem andado. Agora com o FMC – Firewall Management Center (ou SFMC – Secure Firewall Management Center) 7.0.0, acredito que temos um salto nesta evolução. Se não estou enganado SFMC é o 5º nome para o mesmo produto: Defense Center > Firesight Management Center > Firepower Management Center > Firewall Management Center > Secure Firewall Management Center. Novas funcionalidades (algumas muito esperadas) estão disponíveis, a performance do FTD deve melhorar, a dashboard está mais bonita e até achei que navegação pelas páginas do FMC está um pouco mais ágil. Na hora de aplicar as configurações não vi muita diferença, mas apesar de estar usando a versão 7.0.0 no FMC o firewall que estou gerenciando ainda está na versão 6.6.1, então não sei se há melhora significativa quando ambos estão na nova versão. Novas funcionalidades A versão 7.0.0 foi lançada no fim de Maio e trouxe bastante novidades. Nesta versão os appliances virtuais (FMCv, FTDv e NGIPSv) podem ser instalados no VMware vSphere/ESXi 7.0 (aliás, a única versão com suporte). E foi adicionado suporte para deployment em Cisco HyperFlex, Nutanix Enterprise Cloud e OpenStack. Funções relacionadas a AVC, IPS (além do Snort 3) e VPN foram otimizadas, e com isso espera-se um ganho de até 30% na performance do FTD. Se isso for confirmado devemos ver atualizações dos números nos datasheets dos equipamentos, onde um Firepower que suportava 1 Gbps pode passar a suportar 1.3 Gbps apenas com o upgrade de software. Veja outras melhorias: VPN: A diferença de funcionalidades do FTD para o ASA-OS vai finalmente terminando. Na versão 7.0.0 voltamos a ter (sem usar FlexConfig) DAP, Load Balancing e autenticação com usuário local para VPN Remote-Access. Para VPN Site-to-Site podemos configurar túnel backup para VPN que usa VTI. E também é possível fazer o deploy seletivo de VPN Remote-Access e Site-to-Site (escolher quando fazer o deploy de cada item). Snort 3: Firewalls instalados com FTD 7.0.0 já serão configurados com a nova versão do Snort, e devices que forem atualizados para a versão 7.0.0 tem a opção de migrar do Snort 2 para o Snort 3. O uso do Snort 3 trás melhorias de desempenho na inspeção do tráfego, e usa uma nova linguagem, mais fácil para escrever regras de IPS. Outra mudança está no update de assinaturas, que agora usa o LSP – Lightweight Security Package, ao invés do SRU. Um FMC 7.0.0 pode administrar Firewalls e IPS com ambas versões de Snort. Dynamic Objects: Com a versão 7.0.0 é possível usar objetos dinâmicos (não estaticamente associados a um IP), que são aplicados imediatamente, sem necessidade de um deploy. Assim, se o IP mudar não é necessário alterar a regra/objeto, pois este é dinamicamente atualizado. Poderíamos, por exemplo, criar uma regra com base em tags definidas no vCenter, que seriam então mapeadas para IP no objeto (claro, desde que a VMware e/ou outros fabricantes aceitem a integração). Parecido com o que é feito com o ISE via PxGrid, mas agora não limitado a isso. Unified Events: Finalmente! Agora podemos visualizar eventos do tipo Connection, File e IPS na mesma tela, e em real time (ou quase) facilitando muito a operação. Conta com opções de filtro e pesquisa na mesma página, o que ficou muito melhor do que era. Upgrade: Foram feitas melhorias no processo de upgrade, incluindo um wizard que funciona para FTD a partir da versão 6.4.0. O passo-a-passo te guia pela cópia do arquivo, checagem de compatibilidade e upgrade. A atualização dos FTDs promete ser mais rápida, e conta com mensagens durante o processo, dando mais visibilidade ao que está sendo feito. O upgrade do FMC deve durar menos de 1h (fiz um, do 6.6.1 para o 7.0.0, que durou mais de 6h, mas pode ter sido por falta de recurso do servidor – estava com lentidão no disco). Deployment: Agora é possível colocar uma descrição no deploy e pesquisar no histórico usando filtros. Também está disponível a opção rollback, com até 10 deployments. O rollback deve ser usado apenas em último caso, pois há parada no processamento do tráfego (se fez uma regra e se arrependeu, apenas remova a regra como sempre foi). Unified Monitoring: Apesar de já estar disponível na versão 6.7, o Health Monitoring evoluiu e ganhou novos indicadores (status HA, estatísticas de VPN, status AMP, estatísticas de roteamento e outros). Dashboard importante, que além de mostrar a saúde dos equipamentos também mostra uma estimativa de quanto tempo de logs teremos, por categoria (Connection, IPS, File, SI, Malware). Global Search: Agora é possível fazer um busca em todo o FMC, e assim encontrar rapidamente itens que façam parte de objetos, políticas ou qualquer outro elemento da interface gráfica. Rest API: Mais de 60 novas API calls foram adicionadas. Isso significa que temos mais opções de uso via APIs. Para ver todas as novas funcionalidades, acesse o Cisco Firepower Release Notes 7.0.0. Compatibilidade Esta nova versão de FMC pode ser instalada em appliances físicos e virtuais. Hardware FMC platforms: FMC 1600, 2600, 4600 FMC 1000, 2500, 4500 FMCv public cloud: FMCv for Amazon Web Services (AWS) FMCv for Microsoft Azure FMCv for Google Cloud Platform (GCP) FMCv for Oracle Cloud Infrastructure (OCI) FMCv on-prem/private cloud: FMCv for Cisco HyperFlex FMCv for Kernel-based virtual machine (KVM) FMCv for Nutanix Enterprise Cloud FMCv for OpenStack FMCv and FMCv 300 for VMware vSphere/VMware ESXi 6.5, 6.7, or 7.0 E com o FMC 7.0.0, a versão mais velha de FTD que pode ser gerênciada é a 6.4.0. Com relação os firewalls, apenas os appliances Firepower, ASA5508X e
Recomendações para configuração de SSH
Já há muitos anos que a recomendação é trabalharmos com SSH ao invés de Telnet (e ainda assim encontro muitos equipamentos configurados com Telnet…), mas além de ativar o SSH podemos adicionar alguns parâmetros para melhorar a segurança. Mesmo usando o SSH estamos sujeitos a vulnerabilidades nos protocolos e algoritmos que ele utiliza, então se seu equipamento/software permitir, adicione os parâmetros abaixo para aumentar a segurança no acesso remoto. 1) Crie a chave com ao menos 2048 bits. Pode usar 4096 também, que deixa a conexão um pouco mais lenta, mas é mais seguro. crypto key generate rsa modulus 2048 2) Use SSHv2 sempre que possível (disponível no IOS desde a versão 12.1(19)E). Considere fazer o upgrade de software ou trocar equipamentos que não suportam. ip ssh version 2 3) Aceite apenas SSH. Observe a quantidade de lines que seu equipamento possui. line vty 0 15 transport input ssh 4) Defina timeout e número de tentativas de autenticação. ip ssh time-out 60 ip ssh authentication-retries 3 5) Escolha algoritmos fortes. Equipamentos com softwares mais novos (a partir da versão 15.5(2)) permitem escolhermos os algoritmos de autenticação e criptografia. Não use RC4 e CBC, nem algoritmos HMAC, MD5 e SHA1. ip ssh server algorithm mac hmac-sha2-256 hmac-sha2-512 ip ssh server algorithm encryption aes256-ctr 6) Quando for adicionar o usuário, use a palavra secrect ao invés de password. Ou ainda use a opção algorithm-type e selecione sha256. username andre algorithm-type sha256 secret senhaforte 7) Limite a origem dos acessos usando ACL. Observe a quantidade de lines que seu equipamento possui. ip access-list standard VTYacl permit 10.10.10.19 line vty 0 15 access-class SNMPacl in Os exemplos de comandos acima são baseados no Cisco IOS, e podemos ter variações em outros softwares (ASA-OS, NX-OS, IOS-XE, IOS-XR…), mas a idéia é a mesma. Exemplo com a configuração completa: BrainworkSW01#conf t BrainworkSW01(config)#username andre algorithm-type sha256 secret senhaforte BrainworkSW01(config)#ip domain-name brainwork.local BrainworkSW01(config)#crypto key generate rsa modulus 2048 The name for the keys will be: BrainworkSW01.local % The key modulus size is 2048 bits Generating RSA keys … [OK] BrainworkSW01(config)#ip ssh version 2 BrainworkSW01(config)#ip ssh time-out 60 BrainworkSW01(config)#ip ssh authentication-retries 3 BrainworkSW01(config)#ip access-list standard VTYacl BrainworkSW01(config-std-nacl)#permit 10.10.10.19 BrainworkSW01(config)#line vty 0 15 BrainworkSW01(config-line)#transport input ssh BrainworkSW01(config-line)#access-class VTYacl in BrainworkSW01(config-line)#end BrainworkSW01#wr A verificação das configurações pode ser feita com o comando show ip ssh. BrainworkSW01#sh ip ssh SSH Enabled – version 2.0 Authentication methods:publickey,keyboard-interactive,password Authentication Publickey Algorithms:x509v3-ssh-rsa,ssh-rsa Hostkey Algorithms:x509v3-ssh-rsa,ssh-rsa Encryption Algorithms:aes256-ctr MAC Algorithms:hmac-sha2-256,hmac-sha2-512 KEX Algorithms:diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1 Authentication timeout: 60 secs; Authentication retries: 3 Minimum expected Diffie Hellman key size : 2048 bits IOS Keys in SECSH format(ssh-rsa, base64 encoded): TP-self-signed-1339421804 Modulus Size : 2048 bits ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCzsdyPavSMpVesA9J3QjCo398BkYiY1wTZU0rVE0tq RP6uxOCJXAXDY0prTUpcHn/YRElbCETdOCppRsTIaxS+KfUK0H4uqfGP3E2OCGc6KCaUvL9rIYRv0vy1 0XBmum1cPUsipIVv5jOFTvI+hhdFQYsipnykfZTNlrguYI9XWNcGn5Y/1jisURmM+umHC18C7lux+YZR wrdv6ydBVGIpdFtR79wuuXXHtXmXFiSRDv568T4xK9umoeHibGnlIGyj7yh0b81s4qP21NouUX 3g9WAmAp5stQes53puxGBuQtzvhISzhwNdOOKvVbO/of8z1LtBy1QIS222C5 Até a próxima.
Quer ganhar um treinamento de segurança Cisco?
Para incentivar novos profissionais na carreira de segurança, a Cisco está sorteando um treinamento e voucher para a prova de certificação. O ganhador, que será anunciado no dia 30 de Junho, deverá escolher um dos 3 pacotes disponíveis. Opção 1: CyberOps Associate Bundle Understanding Cisco Cybersecurity Operations Fundamentals (CBROPS) v1.0 E-learning Course One (1) 200-201 CBROPS Exam Voucher Opção 2: CCNP Security Bundle Implementing and Operating Cisco Security Core Technologies (SCOR) v1.0 E-learning Course One (1) 350-701 SCOR Exam Voucher Opção 3: CyberOps Professional Bundle Performing CyberOps Using Cisco Security Technologies (CBRCOR) v1.0 course One(1) 350-201 CBRCOR Exam Voucher Para concorrer basta se inscrever neste link. O prêmio (treinamento e prova) valem em torno de $1100,00. Até a próxima.
Monitorando o Home Office
Depois de um ano trabalhando de casa e aproveitando o último fim de semana prolongado, resolvi monitorar a conectividade do home office. Temos muitas opções disponíveis (MUITAS) para esse tipo de monitoramento, mas como o objetivo era usar um Raspberry Pi, um dos requisitos era que os softwares fossem leves. Além disso as métricas seriam baseadas em ICMP e DNS (posteriormente acabei adicionando verificação HTTP e dados sobre o WiFi, pois o Telegraf tinha esses plugins prontos) então não tinha porque usar soluções mais elaboradas/pesadas. Com isso em mente, escolhi o combo Telegraf (para coletar as métricas), Prometheus (banco de dados) e Grafana (dashboard com os gráficos). Instalando as aplicações Vou descrever de forma geral pois a) muda a sintaxe de acordo com a distribuição Linux b) é possível encontrar tutoriais detalhados para cada aplicação. Espero que sirva de roteiro, ao menos. Estou usando Raspberry Pi OS, que é baseado no Debian, mas funciona em outras plataformar (a primeira versão montei em uma máquina virtual com CentOs). 1) Instale o Telegraf. sudo apt-get update && sudo apt-get install apt-transport-https wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -source /etc/os-release test $VERSION_ID = “7” && echo “deb https://repos.influxdata.com/debian wheezy stable” | sudo tee /etc/apt/sources.list.d/influxdb.list test $VERSION_ID = “8” && echo “deb https://repos.influxdata.com/debian jessie stable” | sudo tee /etc/apt/sources.list.d/influxdb.list test $VERSION_ID = “9” && echo “deb https://repos.influxdata.com/debian stretch stable” | sudo tee /etc/apt/sources.list.d/influxdb.list sudo apt-get update && sudo apt-get install telegraf sudo systemctl start telegraf 2) Instale o Prometheus (baixe a versão adequada para seu sistema, e opcionalmente mude o nome do diretório). sudo wget https://github.com/prometheus/prometheus/releases/download/v2.26.0/prometheus-2.26.0.linux-arm64.tar.gz tar xvfz prometheus-2.26.0.linux-arm64.tar.gz cd prometheus-* Pode transformar o Prometheus em serviço (recomendado), ou executar com o comando ./prometheus. 3) Temos opção de instalar o Grafana localmente ou usar o Grafana Cloud (preferi usar na nuvem). Se for usar local, instale a aplicação. apt install gnupg2 apt-transport-https software-properties-common wget wget -q -O – https://packages.grafana.com/gpg.key | apt-key add – echo “deb https://packages.grafana.com/oss/deb stable main” | tee -a /etc/apt/sources.list.d/grafana.list apt update apt install grafana systemctl daemon-reload systemctl enable grafana-server systemctl start grafana-server 4) Libere o Prometheus e o Grafana no firewall, caso esteja usando. O Grafana usa a porta 3000 e o Prometheus a porta 9090. sudo ufw allow ssh sudo ufw allow 3000/tcp sudo ufw allow 9090/tcp Configurando Telegraf O Telegraf funciona baseado em plugins de input e output. Para input (coleta dos dados) usei os plugins Ping, DNS, HTTP e Wireless (não funciona no CentOS). Para output o plugin Prometheus (para onde os dados serão enviados). As configurações são feitas no arquivo telegraf.conf. ## Input plugins #Ping plugin [[inputs.ping]] urls = [“192.168.15.1”, “1.1.1.1”, “8.8.8.8”, “208.67.222.222”, “201.10.207.83”, “186.230.16.42”, “189.86.140.98”, “google.com”, “twitter.com”, “amazon.in”, “facebook.com”] count = 4 ping_interval = 5.0 timeout = 2.0 #DNS plugin [[inputs.dns_query]] servers = [“208.67.222.222”] domains = [“www.uol.com.br”, “google.com”, “twitter.com”, “amazon.in”, “facebook.com”] #HTTP request [[inputs.http_response]] urls = [“https://site.desk.ms/?Login”,”https://cisco.com”,”https://outlook.live.com/owa/”,”https://site.pipedrive.com/auth/login?return”] response_timeout = “3s” method = “GET” follow_redirects = true insecure_skip_verify = false #Wifi signal [[inputs.wireless]] ## Sets ‘proc’ directory path ## If not specified, then default is /proc ## host_proc = “/proc” ## Output format plugins #Prometheus [[outputs.prometheus_client]] listen = “:9283” metric_version = 2 Depois de configurar reinicie o telegraf (service telegraf restart) e verifique o status. pi@raspy:/etc/telegraf $ service telegraf status * telegraf.service – The plugin-driven server agent for reporting metrics into InfluxDB Loaded: loaded (/lib/systemd/system/telegraf.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2021-04-07 17:03:34 -03; 29min ago Docs: https://github.com/influxdata/telegraf Main PID: 9375 (telegraf) Tasks: 35 (limit: 4915) CGroup: /system.slice/telegraf.service |- 9375 /usr/bin/telegraf -config /etc/telegraf/telegraf.conf -config-directory /etc/telegraf/telegraf.d Configurando o Prometheus A configuração do Prometheus é feita no arquivo prometheus.yml. Basicamente definimos o tempos de consulta, criamos um job e target para o telegraf (porta 9283) e definimos o Grafana Cloud como destino (para Grafana local não é necessário nenhuma configuração). # my global config global: scrape_interval: 30s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 30s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). # Alertmanager configuration alerting: alertmanagers: – static_configs: – targets: # – alertmanager:9093 # Load rules once and periodically evaluate them according to the global ‘evaluation_interval’. rule_files: # – “first_rules.yml” # – “second_rules.yml” # A scrape configuration containing exactly one endpoint to scrape: # Here it’s Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. – job_name: ‘prometheus’ – job_name: ‘ispmonitor’ # metrics_path defaults to ‘/metrics’ # scheme defaults to ‘http’. static_configs: – targets: [‘localhost:9090’] – targets: [‘localhost:9283’] #telegraf # Send metrics to Grafana Cloud remote_write: – url: https://prometheus-blocks-prod-us-central1.grafana.net/api/prom/push basic_auth: username: 11111 password: eyJrIjoiN2E2NWNiZTY1ZTZjMjg5MTVjZGI4NWEyNjZlNSIsxxxxxxxxxaWQiOjQ30NX0= Se não tiver convertido o Prometheus em serviço, pode usar o netstat e o ps para verificar o status (e ./prometheus para iniciar o serviço). pi@raspy:/etc/telegraf $ netstat -an | grep 9090 tcp6 0 0 :::9090 :::* LISTEN pi@raspy:/etc/telegraf $ ps -ef | grep prometheus root 3418 1 0 Apr05 ? 00:00:00 sudo ./prometheus root 3419 3418 4 Apr05 ? 01:39:13 ./prometheus pi 4934 2405 0 11:49 pts/1 00:00:00 grep –color=auto prometheus Neste ponto podemos acessar a interface gráfica do Prometheus (http://ip:9090) e ver os dados sendo populados. Procure por ping ou dns para ver as opções, selecione uma e clique em Execute. Se não aparecer nada, verifique se os serviços estão rodando, se as portas (9283 e 9090) estão abertas (listen) e se o Telegraf está fazendo os pings. Configurando o Grafana No caso de instalação local, acesse a interface gráfica (http://ip:3000) e adicione o Prometheus como Data Source. Aponte o IP e porta do Prometheus, use Access = Server e HTTP Method = Get. Caso esteja usando o Grafana Cloud, acesse a sua conta e gere um token para o Prometheus (necessário adicionar o remote_write na config do Prometheus). E então faça a integração. Dashboard no Grafana Finalmente a parte legal. Cada um pode montar sua dashboard da forma que preferir. A minha ficou dividida em 5 blocos, onde: Web Apps: Tenho a verficação
SMA (WSA, ESA e CES) e Cisco SecureX
Como já vimos o Cisco SecureX pode receber informações de diversas fontes. Neste post vamos mostrar os passos para integrar o SMA – Security Management Appliance ao SecureX. O SMA é uma plataforma de gerência para os appliances WSA, ESA e CES, e quando temos esta opção, é através dele que a integração com o SecureX é feita. A integração entre SMA e SecureX é feita via API, e um pouco diferente do que fizemos com o FMC no post anterior, mas ainda assim é bem simples. Integrando SMA (WSA, ESA e CES) ao Cisco SecureX 1) Acesse/Crie sua conta no SecureX (https://securex.us.security.cisco.com/). É possível logar com seu CCO ou uma Cisco Security Account (conta da console AMP, por exemplo). Note o “US” na URL, indicando que usará a “cloud americana”, mais próxima do Brasil. 2) Abra o SecureX e no SecureX Ribbon (barra na parte de baixo da tela) clique em Launch para abrir o Security Services Exchange (SSE). 3) No SSE Clique em Cloud Services e garanta que as opções Cisco SecureX threat response e Eventing estejam ativadas. 4) Na aba Devices clique em + (Add Devices and Generate Tokens), e informe quantos devices serão adicionados com o mesmo token. Também defina por quantas horas o token será válido. 5) Agora no SMA, vá em Network e ative a opção Enable Cisco SecureX / Threat Response e aplique a config. Na sequência cole o token no campo Registration Token, e clique em Register. 6) Volte para o Security Services Exchange e atualize a página. Você deverá ver seu SMA registrado. 7) No SecureX vá em Integration Modules, clique em Add New Integration Module e clique em New no SMA Email (ou Web, dependendo do que quer integrar). Seu SMA deve aparecer na lista de dispositivos registrados. Selecione e Save. 8) Agora basta criar sua Dashboard. Clique em Dashboard, selecione SMA Email e Add All (ou selecione quais Tiles deseja). Outras informações sobre a integração SMA e Securex aqui.´ Até a próxima.