O que há de errado com o knockd?

1

Estou tentando implementar a porta batendo para o serviço ssh no meu servidor pessoal. Eu tenho dois outros serviços públicos que estarão sempre abertos. As regras do meu iptables são assim:

Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source         destination         
 7229  545K ACCEPT     all  --  any    any     anywhere             anywhere             ctstate RELATED,ESTABLISHED
0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:4352
0     0 ACCEPT     tcp  --  any    any     anywhere             anywhere             tcp dpt:25565

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 4 packets, 448 bytes)
 pkts bytes target     prot opt in     out     source               destination

Meu arquivo knockd.conf no /etc/knockd.conf tem esta aparência:

[options]
 logfile = /var/log/knockd.log

[SSH]
sequence = 7000,8000,9000
seq_timeout = 15
tcpflags = syn
start_command = /sbin/iptables -D INPUT 1 -s %IP% -p tcp --dport ssh -j ACCEPT
cmd_timeout = 10
stop_command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

Eu também tenho o arquivo / etc / default / knockd

################################################
#
# knockd's default file, for generic sys config
#
################################################

# control if we start knockd at init or not
# 1 = start
# anything else = don't start
#
# PLEASE EDIT /etc/knockd.conf BEFORE ENABLING
START_KNOCKD=1

# command line options
#KNOCKD_OPTS="-i eth1"

A execução sudo /etc/init.d/knockd restart é executada normalmente. O arquivo de log simplesmente diz que o knockd foi iniciado.

No lado do cliente, corro knock -v $ address 7000 8000 9000 . Saída diz:

hitting tcp x.x.x.x:7000
hitting tcp x.x.x.x:8000
hitting tcp x.x.x.x:9000

No entanto, a tentativa de conectar yeilds não resulta, e as regras do iptables permanecem inalteradas. O que estou fazendo errado?

EDITAR

É claro que, assim que eu postar esta pergunta, o meu terminal ssh decide morrer, e agora eu estou fora do servidor por duas semanas até que eu possa realmente chegar lá. Tome seu tempo, não é como se eu pudesse fazer qualquer coisa com as informações em breve.

    
por jaredad7 16.11.2014 / 05:51

3 respostas

2

Não vejo nada de errado com qualquer coisa que você tenha postado, então você provavelmente precisará solucionar problemas (depois de verificar o ps -aux|grep knockd ou o log do knockd no servidor que o knockd está rodando):

  • Eu coloco um comando no iptables que registra as entradas do seu PC, então use tail -f no arquivo /var/log/kern.log para ver se as portas que você escolheu estão sendo permitidas até o fim -fim. Esteja ciente de que seu sistema pode não usar o arquivo /var/log/kern.log, apesar do meu.

Exemplo - (insira isso no servidor knockd com su power, cxx.xxx.xxx.xxx é o endereço IP do client knocker)      iptables -w -I INPUT 1 -s cxx.xxx.xxx.xxx -j LOG; tail -n-0 -f /var/log/kern.log|stdbuf -o0 grep cxx.xxx.xxx.xxx

Em seguida, envie as batidas do cliente, observando a saída do comando acima. Se as batidas não estão sendo registradas, então na linha de comando do cliente separe cada batida de porta pelo sleep 1. A linha de comando para isto seria parecida com knock sxx.xxx.xxx.xxx nnnn1;sleep1;knock sxx.xxx.xxx.xxx nnnn2;sleep 1;knock sxx.xxx.xxx.xxx nnnn3;sleep 1... onde sxx.xxx.xxx.xxx é o IP do servidor e nnnn1 , 2,3,4 são as portas na sequência de detonação. Se isso ainda não funcionar, use a técnica de logging em seu cliente (instale iptables / netfilter e coloque uma regra LOG na cadeia OUTPUT com -d sxx.xxx.xxx.xxx; tail -f o arquivo de log do cliente)

Se você encontrar todos os golpes estão ficando muito bem logados na aldrava do cliente, então são necessárias etapas adicionais de solução de problemas. (1º passo - Certifique-se de que o seu knockd.conf está sendo encontrado pelo knockd ao iniciar.) Poste seus resultados para obter ajuda com outras soluções de problemas. O ISP em uma extremidade ou o outro ou seu roteador [wifi] pode estar bloqueando portas numeradas mais altas. Descobri que a rede do meu provedor de celular parecia bloquear meus golpes do meu smartphone.

    
por kenneth558 31.10.2015 / 21:24
1

Eu sei que isso é bem antigo, mas acho que vejo seu problema

Seu comando de início é start_command = /sbin/iptables -D

Isso deve ser -A não -D

    
por Trel 24.11.2016 / 10:38
0

insted de adicionar é melhor inserir então tente -I

algumas melhorias são marcadas: * *

[opções]

***useSyslog***

logfile = /var/log/knockd.log

[SSH] sequência = 7000, 8000, 9000 seq_timeout = 15 tcpflags = syn start_command = / sbin / iptables -I ENTRADA 1 -s% IP% -p tcp --dportar ssh -j ACEITAR cmd_timeout = 10 stop_command = / sbin / iptables -D ENTRADA -s% IP% -p tcp --dportar 22 -j ACEITAR

    
por Orfescu Horatiu 18.09.2017 / 22:34