Podemos ver nos logs do nginx que há um endereço IP fazendo coisas desagradáveis.
Como podemos bloqueá-lo com um pf
comando e depois permanentemente com o /etc/pf.log
? Como podemos bloquear um x.x.x.x/24
para esse IP? É um exemplo: 1.2.3.4
UPDATE: não, parece que o OpenBSD não possui arquivo de permissão / negação em / etc. E o AFAIK, o melhor conselho para bloquear endereços IP abusivos, está usando o pf.
# cd /etc
# ls -la|egrep -i 'deny|allow'
# uname -a
OpenBSD foo.com 5.4 GENERIC.MP#0 amd64
#
Respostas:
A melhor maneira de fazer isso é definir uma tabela e criar uma regra para bloquear os hosts, em
pf.conf
:E adicione / exclua dinamicamente endereços IP a partir dele:
Outros comandos da 'tabela' incluem
flush
(remover tudo)replace
eshow
. Vejaman pfctl
para mais.Se você deseja uma lista mais permanente, pode mantê-la em um (ou mais) arquivos. Em
pf.conf
:Você também pode adicionar nomes de host em vez de endereços IP. Veja a seção "Tabelas" de
man pf.conf
eman pfctl
.Nota : Os exemplos acima assumem que a interface da Internet é
fxp0
, altere de acordo com a sua configuração. Além disso, lembre-se de que as regraspf.conf
são avaliadas sequencialmente e sãoblock
ou sãopass
a última regra de correspondência que se aplica. Com este conjunto de regrase depois de adicionar 1.2.3.4 e 192.168.0.10 à
badhosts
tabelatodo o tráfego de 1.2.3.4 e 192.168.0.10 será bloqueado, mas a segunda série vai ser capaz de fazer conexões à porta de outras máquinas de 80 porque os
pass
jogos de regras e substitui ablock
regra.fonte
block in from <badhosts>
. Você não precisa especificar a interface ou ato any
peça.De outras respostas, não está claro que você precisa criar uma tabela real dos badhosts que você está tentando bloquear.
Isso ocorre no arquivo pf.conf, por exemplo, eu tenho dois arquivos badguys, 1 e 2 badguys1 são para aqueles que vêm e vão e badguys2 é para lista negra permanente.
Portanto, se você precisar adicionar um ip de alguém que seja incômodo por um período de tempo, adicione-o ao badguys1.
Agora, no seu arquivo pf.conf, você tem isso. No meu exemplo eu uso en1, porque essa é a minha interface WiFi. Defina isso para qualquer interface da sua rede.
Agora você pode adicionar endereços temporários ao badguys1. (NÃO badhosts, esse é um nome para as tabelas)
Embora diga 1 tabela criada - ele realmente adiciona o ip, não criando uma nova tabela. Agora, se você olhar em badguys1, verá o novo IP.
fonte
Eu obtive essas informações no site e me perdoe pelo meu mau conhecimento
OpenBSD
, mas aqui vai. Dê uma olhada neste URL . Segundo ele, ele afirma que, para bloquear um IP, você:echo '123.123.123.123' >> /etc/pf.blocked.ip.conf
Então você reiniciaria o firewall:
Ou, para adicionar sem reiniciar o tipo de firewall:
pfctl -t blockedips -T add 111.222.333.444
Agora, para verificar se foi adicionado, digite:
pfctl -t blockedips -T show
Atualização: Talvez isso ajude.
Abra o seguinte arquivo no vi:
vi /etc/pf.conf
Adicione a seguinte linha de código:
table <blockedips> persist file "/etc/pf.blocked.ip.conf" ext_if="bge0" # interface connected to internet
Após esse ponto, tentaria reiniciar o firewall e confirmar que o IP está bloqueado digitando:
fonte
pfctl -f /etc/pf.conf
basta.man pf.conf
, você ficará surpreso com o quão boas as páginas de manual do OpenBSD são. Além disso, ospf.conf
arquivos precisam ser lidos como um todo (a ordem na qual as regras são colocadas é crucial); portanto, copiar e colar linhas únicas geralmente é uma má idéia. Crie o arquivo e atable
regra (isso está correto), mas você compartilha todo opf.conf
arquivo ou depende de você descobrir ablock
regra apropriada e sua localização no arquivo.ext_if="bge0"
macro e por que você não tem uma regra de bloqueio , criticarei sua resposta, porque ela é incompleta (ou seja, não é uma resposta adequada), independentemente do esforço que você coloca nela. Além disso, meu comentário sobre os HOWTOs foi abordado no OP, não você (desculpas, eu deveria ter deixado isso claro).