AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-387296

Tono Nam's questions

Martin Hope
Tono Nam
Asked: 2022-11-29 15:40:21 +0800 CST

Um bot escaneando meu servidor pode alterar seu ip de origem? Por que continuo recebendo ataques mesmo depois de bloquear o IP?

  • 5

Eu tenho um PBX (servidor VOIP) onde os telefones se conectam para fazer chamadas telefônicas. O pbx que estou usando é o Asterisk . Esse servidor não está sendo usado e seu único objetivo é analisar ataques.

O serviço PBX não é importante se eu tiver um serviço diferente, como um mongodb. Tenho certeza de que bots na Internet procurarão vulnerabilidades para atacar esse banco de dados.

De qualquer forma, estou analisando todos os pacotes que chegam ao meu servidor na porta UDP 5060 (que é onde o asterisco escuta) e os pacotes que chegam são assim:

IP (tos 0x0, ttl 113, id 654, offset 0, flags [none], proto UDP (17), length 521)
    43.249.129.89.58255 > 171.21.78.225.5060: SIP, length: 493
        REGISTER sip:54.84.215.2:5060 SIP/2.0
        To: <sip:[email protected]>
        From: <sip:[email protected]>;tag=824e5f4a7221279e4f7a
        Via: SIP/2.0/UDP 10.4.1.117:58255;branch=z9hG4bK183d5a24-59ec-4f05-8325-747389112824;rport
        Call-ID: e5f4a722128024e4f7a824
        CSeq: 1 REGISTER
        Contact: <sip:[email protected]:58255>
        Expires: 3600
        Max-Forwards: 70
        Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
        User-Agent: PolycomSoundPointIP SPIP_550 UA 3.3.2.0413
        Content-Length: 0

Esse pacote é de um bot porque NÃO estou enviando nenhum pacote para o meu servidor.

Observe que o único objetivo desse servidor é entender como os bots funcionam e ver como eles atacam meu servidor. Não estou usando esse PBX; portanto, qualquer solicitação que chegue a esse servidor deve vir de um bot mal-intencionado. Sempre que recebo um pacote UDP enviado para a porta 5060, bloqueio esse endereço IP.

Agora minha pergunta é:

Estou executando esse servidor há um mês e a cada minuto ou mais ainda recebo ataques. Eu bloqueei mais de 15.000 IPs! Quantos bots existem na internet? Eles estão mudando seu endereço IP de origem e esse é o motivo pelo qual eles continuam acessando meu servidor? Se eles conseguem alterar o IP de origem, é porque estou usando o protocolo UDP? Devo usar TCP em vez de UDP para resolver isso?

Também é engraçado como os ataques de ips diferentes são tão semelhantes. Por exemplo, eles usam o mesmo agente de usuário como telefone e o ataque vem de ips diferentes. É como se todos os bots tivessem o mesmo código.

Depois de resolver esse problema e entender como os bots funcionam, gostaria de implementar essa solução em meu servidor real. Não estou usando o servidor real para isso porque filtrar os pacotes bons dos pacotes ruins será difícil. Uma solução seria usar uma lista branca de ips no meu firewall, mas não quero que meus usuários tenham que fazer alguma forma extra de autenticação, especialmente se usarem o serviço do celular, onde o endereço IP pode mudar muito.

brute-force-attacks
  • 1 respostas
  • 44 Views
Martin Hope
Tono Nam
Asked: 2022-10-27 22:44:00 +0800 CST

Você deve criptografar dados entre 2 servidores na nuvem?

  • 17

Se eu tiver várias instâncias do AWS EC2 e do Azure em execução em regiões separadas. Estou usando o rabbitmq para trocar mensagens entre eles. Devo me preocupar em adicionar TLS e criptografar essas conexões?

Em outras palavras, se o servidor A estiver na AWS us-east, por exemplo, e o servidor B estiver no azure, quão ruim será se eles trocarem informações sem que sejam criptografadas? Somente o provedor de serviços de Internet e a Amazon/Microsoft poderão ver esses dados não criptografados corretos?

Obviamente, vou criptografar qualquer coisa que lide com o cliente. Estou apenas curioso sobre 2 servidores back-end conversando entre si.


Editar

Obrigado pela ajuda pessoal. Eu sei como criptografar a conexão e também como configurar uma VPN. Desculpe eu formulei a pergunta incorretamente.

Eu só queria saber quem poderá ver esse tráfego entre esses servidores. Por que será arriscado? Eu sei que vai ser arriscado eu acredito em você lol. Eu só quero saber o porquê. Além disso, quão ruim será gerar meus próprios certificados SSL e confiar neles em cada servidor.

security ssl
  • 3 respostas
  • 2888 Views
Martin Hope
Tono Nam
Asked: 2018-03-23 08:53:10 +0800 CST

Por que o squid (servidor proxy) escuta na porta 48512?

  • 1

Acabei de instalar o squid na minha máquina ubuntu ( sudo apt-get install squid3) e depois de instalá-lo notei que ele escuta na porta 48512.

$ netstat -tulpn | grep squid
tcp        0      0 0.0.0.0:3128            0.0.0.0:*               LISTEN      44365/(squid-1)
udp        0      0 0.0.0.0:48512           0.0.0.0:*                           44365/(squid-1)

Eu sei que ele escuta na porta 3128 por padrão e isso pode ser alterado indo para/etc/squid/squid.conf

Mas a porta 48512 não está listada em nenhum lugar. Como configuro o squid para não escutar na porta 48512?


Além disso, quando eu faço uma pesquisa no google na porta 48512, ele diz que é um Trojan.

security
  • 1 respostas
  • 1384 Views
Martin Hope
Tono Nam
Asked: 2018-03-21 09:57:59 +0800 CST

Ao fazer chamadas seguras com asterisco (SRTP), por que os certificados de cliente são necessários para dispositivos SIP?

  • 2

Acabei de adicionar segurança ao Asterisk seguindo este tutorial:

https://wiki.asterisk.org/wiki/display/AST/Secure+Calling+Tutorial#SecureCallingTutorial-Keys

Observe que o asterisk não é instalado por padrão com o srtp por padrão. Para poder seguir esse tutorial você deve instalar o asterisk com libsrtp e pjsip. Aqui está como eu instalei o asterisk para dar suporte ao srtp:

# (1) make sure everything is up to date
apt-get update
apt-get upgrade

# (2) Install dependencies that will be needed in order to install asterisk pjproject etc...
apt-get install aptitude -y
aptitude install build-essential -y
aptitude install git -y
aptitude install libssl-dev -y
aptitude install zlib1g-dev -y
aptitude install openssl  -y
aptitude install libxml2-dev -y
aptitude install libncurses5-dev -y
aptitude install uuid-dev -y
aptitude install sqlite3 -y
aptitude install libsqlite3-dev -y
aptitude install pkg-config -y
aptitude install libjansson-dev -y

# (3) make sure everything is up to date again
apt-get update
apt-get upgrade

# (4) Install libsrtp  (library used to encrypt rtp)
cd /root    
wget https://github.com/cisco/libsrtp/archive/v1.6.0.tar.gz
tar -xzf v1.6.0.tar.gz
cd libsrtp-1.6.0

./configure CFLAGS=-fPIC --prefix=/usr
make
make runtest
make install
cd ..

# (5) install pjproject 

git clone https://github.com/asterisk/pjproject pjproject
cd pjproject
 ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr --with-external-srtp
make dep
make

make install
cd ..


# (6) Install Asterisk  WITH SRTP AND PJPROJECT

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
tar xvf asterisk-13-current.tar.gz
cd  asterisk-13.19.2
./configure --with-pjproject --with-ssl --with-srtp

make
make install
make samples
make config

De qualquer forma, isso não faz parte da questão.

Então eu segui o tutorial e consegui fazer chamadas criptografadas.

Como eu estava repetindo os passos para conectar todos os telefones não entendi porque tinha que gerar um certificado para cada dispositivo sip . O servidor já tem um certificado por que os telefones precisam de outro certificado? Em outras palavras, não entendi porque tive que executar a etapa do tutorial que diz:

"geramos um certificado de cliente para nosso dispositivo SIP"

./ast_tls_cert -m client -c /etc/asterisk/keys/ca.crt -k /etc/asterisk/keys/ca.key -C phone1.mycompany.com -O "My Super Company" -d /etc/asterisk/keys -o malcolm

Então, com um dos telefones, decidi pular essa etapa apenas por curiosidade. Não gerei um certificado de cliente para o telefone X e, por algum motivo, o telefone X ainda conseguiu se conectar ao asterisco e fazer chamadas. O Phone X também bloqueou a tela ao fazer chamadas, o que significa que a chamada foi criptografada. O Asterisk mostrou que a chamada estava passando pelo SRTP. Eu não sabia dizer a diferença entre os telefones que tinham um certificado de CLIENTE e o telefone X. Então minha pergunta é por que o tutorial diz para você gerar um certificado de cliente?

security
  • 1 respostas
  • 2112 Views
Martin Hope
Tono Nam
Asked: 2018-03-17 20:17:21 +0800 CST

Asterisk usa as variáveis ​​erradas do sip.conf

  • 1

Eu completei este tutorial para fazer chamadas seguras com asterisco.

Tutorial de Chamada Segura | Wiki do Projeto Asterisk

Estou executando o asterisk versão 13.19.2 no Ubuntu versão 16 (debian) e assim que adicionei o TLS e o SRTP, tive problemas.

Apenas leia isto se você deseja instalar o asterisk! Estas são apenas minhas notas caso você queira instalar o asterisk com suporte a TLS e SRTP para fazer chamadas seguras. A questão real está no fundo!


  1. Instale o asterisk 13.19.2 com libsrtp e SRTP:

{

# (1) make sure everything is up to date again
apt-get update
apt-get upgrade

# (2) Install dependencies that will be needed in order to install asterisk pjproject etc...
apt-get install aptitude -y
aptitude install build-essential -y
aptitude install git -y
aptitude install libssl-dev -y
aptitude install zlib1g-dev -y
aptitude install openssl  -y
aptitude install libxml2-dev -y
aptitude install libncurses5-dev -y
aptitude install uuid-dev -y
aptitude install sqlite3 -y
aptitude install libsqlite3-dev -y
aptitude install pkg-config -y
aptitude install libjansson-dev -y

# (3) make sure everything is up to date again
apt-get update
apt-get upgrade

# (4) Install libsrtp  (library used to encrypt rtp)
cd /root    
wget https://github.com/cisco/libsrtp/archive/v1.6.0.tar.gz
tar -xzf v1.6.0.tar.gz
cd libsrtp-1.6.0

./configure CFLAGS=-fPIC --prefix=/usr
make
make runtest
make install
cd ..

# (5) install pjproject 

git clone https://github.com/asterisk/pjproject pjproject
cd pjproject
 ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr --with-external-srtp
make dep
make

make install
cd ..


# (6) Install Asterisk  WITH SRTP AND PJPROJECT

wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
tar xvf asterisk-13-current.tar.gz
cd  asterisk-13.19.2
./configure --with-pjproject --with-ssl --with-srtp

make
make install
make samples
make config
  1. Gere as chaves (certificados). Você também pode comprá-lo de uma autoridade de certificação.

    # GENERATE KEYS

    # make a place for our keys mkdir /etc/asterisk/keys

    cd /root/asterisk-13.19.2/contrib/scripts

    ./ast_tls_cert -C my_company.com -O "my_company" -d /etc/asterisk/keys

    # TODO later generate keys for clients (ip phones). This part is explained on first tutorial link and is not relevant to this question

  2. Crie sip.conf e extensions.conf

sip.conf:

[general]
  tcpenable=yes
  udpenable=yes
  udpbindaddr=0.0.0.0
  tcpbindaddr=0.0.0.0

  ; allow tls !
  tlsenable=yes
  tlsbindaddr=0.0.0.0:5868 ; <------------------------ note I am changing the default port 6061 to 5868
  tlscertfile=/etc/asterisk/keys/asterisk.pem ; key generated on step 2
  tlscafile=/etc/asterisk/keys/ca.crt ; certificate generated on step 2
  tlscipher=ALL
  tlsclientmethod=tlsv1
  encryption=yes
  tlsdontverifyserver=yes ; trust ublux more than godaddy!

  videosupport=yes
  nat=force_rport,comedia


; shared configuration used for ip phones
[base-config](!)
  type=peer
  ;type=friend
  disallow=all
  allow=ulaw,h264,vp8
  context=common ;<------------------ context used on extensions.conf
  dtmfmode=auto
  insecure=port,invite
  canreinvite=no
  host=dynamic
  directmedia=no
  registertrying=yes
  qualify=yes; monitof peer in order to know if its connected
  transport=tls ; Only allow secure transport!
  encryption=yes
  icesupport=yes
  dtlsenabled=yes
  dtlsverify=no

colegas no sip.conf

; peer 1
[101](base-config)
  secret=password123
  setvar=ID=Tono 
  setvar=Foo=test101 

; peer 2
[102](base-config)
  secret=password123
  setvar=ID=Monir
  setvar=Foo=test102 

extensions.conf

[general]
  static=yes
  writeprotect=no

[common]    
  exten => 101,1,NoOp(Calling 101)
  same => n,NoOp(Foo = ${Foo} )
  same => n,Dial(SIP/101)
  same => n,Hangup()

  exten => 102,1,NoOp(Calling 102)
  same => n,NoOp(Foo = ${Foo} )
  same => n,Dial(SIP/102)
  same => n,Hangup()

De qualquer forma fica a pergunta:

Depois de executar essas etapas, consigo fazer chamadas, receber chamadas, mas algo muito estranho acontece! O Asterisk usa as variáveis ​​incorretas . Por exemplo quando eu ligo do telefone 101para 102o asterisco pega as variáveis ​​do peer 102! Observe que isso só acontece quando os dois telefones têm o mesmo endereço IP porque estão atrás de um NAT.

Aqui está a prova:

ubuntu*CLI> sip show peers
Name/username             Host                                    Dyn 
Forcerport Comedia    ACL Port     Status      Description
101                   170.55.7.131                             D  Yes        Yes            50178    Unmonitored
102                   170.55.7.131                             D  Yes        Yes            50137    Unmonitored
103                   170.55.7.132                             D  Yes        Yes            50212    Unmonitored

os peers 101 e 102 mostram o mesmo endereço IP porque estão atrás do mesmo roteador. Em outras palavras 170.55.7.131 é um ip público. Se eles tiverem um endereço IP público diferente, isso não acontece. Em outras palavras, isso não acontece entre as extensões 101 e 103 por algum motivo estranho.

Quando ligo de 101 para 102, é isso que o log de asterisco mostra: (correto)

Executing [102@common:1] NoOp("SIP/101-00000095", "Calling 102") in new stack
Executing [102@common:2] NoOp("SIP/101-00000095", "Foo = test101 ") in new stack
Executing [102@common:3] Dial("SIP/101-00000095", "SIP/102") in new stack
Using SIP VIDEO CoS mark 6
 ....

Quando eu chamo de 102 para 101 é isso que o log de asterisco mostra!!: (incorreto)

Executing [101@common:1] NoOp("SIP/101-00000097", "Calling 101") in new stack
Executing [101@common:2] NoOp("SIP/101-00000097", "Foo = test101 ") in new stack
Executing [101@common:3] Dial("SIP/101-00000097", "SIP/101") in new stack

por que Foo= test101deve ser igual test102!!! também a variável de canal 101-00000097contém 101deve ser 102-00000097porque 102o telefone iniciou a chamada!

Se eu reiniciar o serviço asterisk e fizer a mesma chamada de 102 para 101, é isso que o asterisco mostra:

Executing [101@common:1] NoOp("SIP/102-00000002", "Calling 101") in new stack
Executing [101@common:2] NoOp("SIP/102-00000002", "Foo = test102 ") in new stack
Executing [101@common:3] Dial("SIP/102-00000002", "SIP/101") in new stack

Agora está correto. O asterisco está mapeando as variáveis ​​para o endereço IP?????


Soluções temporárias que corrigem esse problema:

  1. Por algum motivo, se eu colocar o telefone em um local diferente onde ele tenha um endereço IP diferente, isso não acontece. Esse problema só acontece quando os dois telefones estão na mesma rede e têm o mesmo endereço IP público. Isso não faz sentido para mim porque o NAT atribuirá diferentes portas internas.

  2. Se eu remover segurança (tls) e usar udp ou tcp como métodos de transporte. esse problema não ocorre mais.

ssl
  • 1 respostas
  • 1088 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve