Gå til innhold

Iptables og Brute force


Anbefalte innlegg

Videoannonse
Annonse
Hadde du giddet å omformulere innlegget ditt, i edru tilstand? Jeg vil gjerne hjelpe, men forstår ikke helt hva du er ute etter..

5667465[/snapback]

 

 

På smoothwall så kan du endre oppsettet i rc.firewall.up og smoothwall bruker iptables,men dette har jeg ikke funnet i debian da iptables som jeg har funnet blir det bare rare tegn når jeg åpner for editering.Hadde satt pris på hjelp hvor jeg eventuelt editerer så jeg hadde kunnet lagt inn mottiltak mot brute force og selvsagt att jeg kan editere ved en senere anledning.

 

Og PS trenger ikke være full og beklager sterkt om du ikke skjønte det i den første posten og att du ikke skjønner det nå heller.Men så er jeg ikke like bevandret i linux/unix som du muligens er :)

Lenke til kommentar

Dette skulle jeg ha fått lagt inn

 

iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent \

--set

 

iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent \

--update --seconds 60 --hitcount 4 -j DROP

 

Men vet jo da ikke hvor jeg kan editere dette da jeg ikke finner det ved egen hjelp

Lenke til kommentar
Jo, det burde være det.

 

Men skjønte ikke helt hva han mente med at det kom masse rare tegn..

Er rc.firewall der i det heletatt?

5689071[/snapback]

 

rc.firewall up finnes i SMOOTHWALL som er en firewall basert på redhat.I den fila så kan du da editere scriptet,men i debian så finner jeg ikke noe sånt.Og iptables har jeg funnet,men når jeg åpner det så gir deg meg ingen mening.Men får heller spørre på linuxdelen til linuxmagasinet.Så takker for all den hjelpen som dere har vist.

Lenke til kommentar

Den 'iptables' du har funnet, er kanskje rett og slett /sbin/iptables ?

 

Isåfall er det selv programfila (binær fil), og denne gir ingen mening nå du åpner den i en teksteditor.

 

Du må enten skrive inn kommandoene manuelt, eller putte dem i et script som f.eks. kan kjøre automatisk ved boot. Da må du legge dem et sted under /etc/init.d , enten i en eksisterende fil som passer, eller du kan lage en ny film, men da må du også linke den opp under /etc/rc.X/ for riktig runlevel. Jeg anbefaler at du leser dokumentasjon for Debian, og hvordan man laget oppstartscript der, hvis du ikke kjenner til dette. Distroer kan nemlig være litt forskjellige på dette området.

Lenke til kommentar

#! /usr/bin/perl -w

#

# ssh-brute-stop

#

# Unsophisticated script to block IPs with too many

# illegal ssh attempts.

#

# http://brainsik.to/ssh-brute-force

# Jeremy Avnet >brainsik-code(at)theory.org<

#

# How it works:

# * Reads in your syslog auth log in real time (via fifo).

# * Every bad SSH attempt gives the IP points.

# (Caveat: only illegal attempts are counted,

# i.e. attempts to login as non-existant users.)

# * When a maximum point level is passed,

# the IP is blocked using iptables.

#

# Required configuration:

# 1) mkfifo /var/log/auth.fifo

# 2) edit /etc/syslog.conf and add this line:

# auth,authpriv.* |/var/log/auth.fifo

# (i put mine below the auth.log line near the top)

# 3) /etc/init.d/sysklogd restart

#

# Optional configuration:

# * Whitelists: The script auto-whitelists local addresses. If you

# want to add some more addresses to never be blocked look below for

# "whitelist".

# * Points: You can tweak the point values and max points. The

# current setup blocks any IP that tries to login as 3 different

# (non-existant) users or 9 times for a single (non-existant) user. I

# wanted to be careful about valid users trying to login under a

# single, wrong name (as happens sometimes).

#

use strict;

use Socket;

use Sys::Syslog;

 

my $DEBUG = 0;

 

my $NAME = 'ssh-brute-stop';

my $MAXPOINTS = 9;

my $PTS_NEWILLEGAL = 3;

my $PTS_OLDILLEGAL = 1;

my $AUTH_FIFO = "/var/log/auth.fifo";

 

#

# bad password

# sshd[5768]: (pam_unix) authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=localhost.localdomain user=brainsik

# sshd[5768]: error: PAM: Authentication failure for brainsik from localhost.localdomain

 

my( %log, %blocked, %points );

 

die "The required named pipe at $AUTH_FIFO does not exist! Exiting..\n" unless -p $AUTH_FIFO;

 

 

# IP whitelist

whitelistself(\%blocked); # add local addresses to whitelist

# add any more like below

#$blocked{'127.0.0.1'} = 'never';

 

while ( open(AUTH_FIFO, $AUTH_FIFO) ) {

while (<AUTH_FIFO>) {

my( $user, $ip );

 

# check for illegal (unknown) user attempts

if ( /sshd\[\d+\]: Illegal user (\w+) from (?:::ffff:)?([\d.]+)/ ) {

($user, $ip) = ($1, $2);

$points{$ip} += (exists $log{$ip}{$user}) ? $PTS_OLDILLEGAL : $PTS_NEWILLEGAL;

$log{$ip}{$user} = time

}

else { next }

blockip(\%points, \%blocked, $ip);

}

close AUTH_FIFO;

print STDERR "closed $AUTH_FIFO at ", scalar localtime, "\n" if $DEBUG;

sleep 1;

}

die "Could not open $AUTH_FIFO\n";

 

 

sub blockip {

my $points = shift;

my $blocked = shift;

my $ip = shift;

 

my $iptables = '/sbin/iptables -I INPUT -j DROP -s';

 

# block if past threshold

if ( $$points{$ip} >= $MAXPOINTS ) {

 

# avoid duplicate iptable block lines

unless ( exists $$blocked{$ip} ) {

 

system "$iptables $ip\n";

$$blocked{$ip} = 'iptables';

 

my $iaddr = inet_aton($ip);

my $host = gethostbyaddr($iaddr, AF_INET);

 

openlog($NAME, 'pid', 'auth');

syslog('notice', 'BLOCKED: %s', ( ($host) ? "$host ($ip)" : "$ip") . " [+$$points{$ip}]");

closelog();

}

return 1; # ip is blocked

}

return 0; # ip not blocked this time

}

 

sub whitelistself {

my $blocked = shift;

my @ifconfig = `/sbin/ifconfig`;

foreach (@ifconfig) {

next unless /inet addr:([\d.]+)/;

$$blocked{$1} = 'never';

}

print "* added local addresses to whitelist:", map { " $_" } keys %blocked, "\n";

}

 

Vil dette scriptet fungere og vil det starte opp automatisk?

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...