Portál AbcLinuxu, 10. května 2025 06:26
Zdravim mam takovy skromny dotaz , mam soubor s obsahem priklad
xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx
xxx.xxx.xxx.xxx
a potrebuju nekakym skriptem upravit takto
$IPT -A INPUT -s xxx.xxx.xxx.xxx -j DROP
$IPT -A INPUT -s xxx.xxx.xxx.xxx -j DROP
$IPT -A INPUT -s xxx.xxx.xxx.xxx -j DROP
$IPT -A INPUT -s xxx.xxx.xxx.xxx -j DROP
$IPT -A INPUT -s xxx.xxx.xxx.xxx -j DROP
napadl me program sed , ale nanapadlo me jak na to
sed 's/^/$IPT -A INPUT -s /; s/$/ -j DROP/'
sed -r 's/(.*)/$IPT -A INPUT -s \1 -j DROP/' soubor
Nevím proč to tak chceš, ale sed nemusí být tou nejlepší možností. Někdy je vhodnější nechat IP adresy sepsané v samostaném souboru a zpracovat je cyklem. Pokud potom budeš potřebovat změnit příkaz, který je zpracovává, tak stačí úprava jen jednou v cyklu a ne pro každou adresu zvlášť.
cat soubor | while read adresa; do $IPT...$adresa -j DROP; done
#!/bin/sh
blacklist='/etc/server/mujblacklist'
firewall='/etc/server/firewall'
rm $blacklist
IPT=`$whereis iptables | grep "iptables:" | awk '{print $2}'`
echo '#!/bin/sh' > $blacklist
echo 'IPT='$IPT >> $blacklist
ssh=`cat /var/log/auth.log | grep "Invalid user" | awk '{print $10}' | sort -u | sed '/^$/d' | sed 's/^/$IPT -A INPUT -s /; s/$/ -j DROP/'`
echo "$ssh" >> $blacklist
$firewall stop
sleep 5
$firewall start
/bin/sh $blacklist
Chtel jsem to jen na utoky pres ssh ktery se mi zapisujou do logu a vytahem z logu se generujou pravidla do firewall skriptu.
Zatim na tom porad delam a neustale se ucim necemu novemu , ale dulezite je ze me to bavi
co tak sa pozret po denyhosts ?:)
denyhost znam a i mam , spis me zajimala vlastni funkce , dobudoucna budu rozsirovat i o dalsi , denyhost myslim umi blokovat jen porty a ne cele IP
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.