Existe um lugar onde as transferências FTP são registradas?

1

Ok, digamos que eu seja responsável pelo aplicativo antigo que realmente não conheço os detalhes, estou tentando proteger meu servidor e alguém sugeriu proibir a porta 21 usada para FTP.

Mas não sei quais programas estão sendo executados e uso o FTP diariamente.

Digamos que eu não tenha a solução para instalar as ferramentas desejadas no servidor ou na rede. Quais são minhas soluções?

  • Devo cortar a porta 21 e ver quais transferências estão bloqueadas pelo firewall?
  • Existe um lugar no servidor AIX no qual devo ir e procurar a lista de acessos e acessos de servidores por meio dessa porta? Se eu tiver o IP do (s) servidor (es) e os nomes dos arquivos, poderei rastrear o programa fazendo isso. Então, há um arquivo de log para FTP?

Editar:

a) inetd está ativo e ftp está nele (obrigado @JeffSchaller)

b) Estou tentando saber o tráfego de entrada e de saída nesta porta - com os comandos que foram executados (se possível). Em outras palavras, meu objetivo é conhecer

  • Quais comandos foram executados no servidor FTP local
  • Quais comandos foram executados pelo cliente FTP local para outros servidores

Qualquer sugestão é bem-vinda.

    
por J. Chomel 17.05.2018 / 15:53

1 resposta

6

What commands have been performed on the local FTP server?

Para ativar o registro FTP em um sistema AIX, é necessário reconfigurar o FTP (sendo chamado pelo inetd no seu caso) para enviar logs de depuração para o syslog e configurar o syslog para salvar esses logs em um arquivo.

  1. Edite /etc/inetd.conf e adicione -d ao final da linha ftpd:

    ftp     stream  tcp6    nowait  root    /usr/sbin/ftpd  ftpd -d
    
  2. Atualize inetd: refresh -s inetd

  3. Edite /etc/syslog.conf e adicione uma linha para daemon.debug para salvar os registros em algum lugar:

    daemon.debug /var/log/ftp.log
    
  4. Crie um arquivo para o syslog para gravar: touch /var/log/ftp.log

  5. Atualize o syslogd: refresh -s syslogd

O syslog enviará os logs de qualquer daemon para esse arquivo, então você vai querer filtrá-lo com grep , talvez: grep 'daemon:debug ftpd' /var/log/ftp.log .

Os comandos que foram enviados via FTP serão registrados com a string command: ; aqui está uma amostra:

May 18 10:13:35 ftpserver daemon:debug ftpd[3932700]: command: USER username-here^M
May 18 10:13:35 ftpserver daemon:debug ftpd[3932700]: <--- 331
May 18 10:13:35 ftpserver daemon:debug ftpd[3932700]: Password required for username-here.
May 18 10:13:42 ftpserver daemon:debug ftpd[3932700]: command: PASS
May 18 10:13:42 ftpserver daemon:debug ftpd[3932700]: <--- 230-
May 18 10:13:42 ftpserver daemon:debug ftpd[3932700]: Last login: Fri May 18 10:13:02 EDT 2018 on ftp from ftpclient.example.com
May 18 10:13:43 ftpserver daemon:debug ftpd[3932700]: <--- 230
May 18 10:13:43 ftpserver daemon:debug ftpd[3932700]: User username-here logged in.
May 18 10:13:43 ftpserver daemon:debug ftpd[3932700]: command: PORT 10,1,1,1,229,54^M
May 18 10:13:43 ftpserver daemon:debug ftpd[3932700]: <--- 200
May 18 10:13:43 ftpserver daemon:debug ftpd[3932700]: PORT command successful.
May 18 10:13:43 ftpserver daemon:debug ftpd[3932700]: command: LIST^M
May 18 10:13:43 ftpserver daemon:debug ftpd[3932700]: <--- 150
May 18 10:13:43 ftpserver daemon:debug ftpd[3932700]: Opening data connection for /bin/ls.
May 18 10:13:43 ftpserver daemon:debug ftpd[3932700]: <--- 226
May 18 10:13:43 ftpserver daemon:debug ftpd[3932700]: Transfer complete.

Sim, os Control-M's aparecem como tal nos registros!

What commands have been performed by the local FTP client to other servers?

Como os aplicativos podem executar suas próprias ações de FTP, seria difícil envolver todos os possíveis programas clientes (como /usr/bin/ftp ) para detectar isso. A melhor aposta é configurar o servidor FTP remoto para registrar os comandos, assim como fizemos acima. O segundo melhor seria configurar o firewall do AIX para permitir e registrar o tráfego destinado à porta 21.

Certifique-se de ter o conjunto de arquivos ipsec instalado:

lslpp -L bos.net.ipsec.rte; echo $?

Ele deve mostrar um conjunto de arquivos listado com um código de retorno de 0 e não:

lslpp: 0504-132  Fileset bos.net.ipsec.rte not installed.

Verifique se os dispositivos ipsec estão ativados:

lsdev -l ipsec_v4

Você deve receber uma linha dizendo "Disponível", não "Definida" ou sem linhas de volta.

Se não houve saída ou o dispositivo foi "Definido":

  1. executar smitty ipsec4
  2. escolha Start/Stop IP Security ,
  3. escolha Start IP Security ,
  4. deixe os padrões em Now and After Reboot e Deny All Non_Secure = no
  5. pressione Enter.

O ipsec device_v4 deve agora aparecer como "Disponível".

Crie um arquivo de registro com: touch /var/log/ipsec.log .

Atualizar syslog:

echo "local4.debug /var/log/ipsec.log rotate size 100k files 4" >> /etc/syslog.conf
refresh -s syslogd

Adicione uma regra para permitir e registrar o tráfego destinado à porta 21:

# -v 4 == IPv4
# -n 2 == add this after the first rule
# -a P == permit
# -O eq == destination port *equals* 21
# -P 21 == destination port 21
# -w O == outbound connections; change this to “B” to log in both directions
# -c tcp == TCP protocol
# -s, -m, -d, -M = source/dest IP & mask (any)
# -l Y = Log it
# -r L = applies only to packets destined or originated from the local host
genfilt -v 4 -n 2 -a P -O eq -P 21 -w O -c tcp -s 0.0.0.0 -m 0.0.0.0 -d 0.0.0.0 -M 0.0.0.0  -l Y -r L -D “allow and log port 21 traffic”

Iniciar registro:

mkfilt -g start

Ative o conjunto de regras:

mkfilt -u

Aguarde a ocorrência de conexões FTP de saída e, em seguida:

grep ipsec_logd /var/log/ipsec.log | grep DP:21

Você verá IPs de origem e de destino para conexões FTP de saída, juntamente com os timestamps, como:

May 18 11:29:40 localhost local4:info ipsec_logd: #:0 R:p  O:10.1.1.1 S:10.1.1.1 D:10.2.2.2 P:tcp SP:55091 DP:21 R:l I:en0 F:n T:0 L:0

Ele não registra o conteúdo (comandos) da sessão FTP, mas você terá timestamps e destinos. Note que todo pacote de cada conexão FTP está registrado!

Referências:

por 18.05.2018 / 18:03

Tags