Ilyenkor jön a virginmedia.com és lassítósztrájkot játszik velem. - ami mértékadó vélemények szerint (vagyis inkább énszerintem) önbíráskodás:) - A leges leges legártalmatlanabb letöltéseimbe belekotyog, - pl.: Linux telepítőkészletek, rég lejért 'szavatosságú' filmek ... - hibás adatokat küldözget, és ehhez hasonló tevékenységekkel bosszant, rabolja a sávszélességemet, az időmet, és mindent amit csak tud.
De elég az önsajnálatból. Lássuk, hogy
mire nem képes a zember ha felbosszantják!
Azért ne gondoljatok valami nagy ellenséges tevékenységre, gépfeltörésre meg egyéb eléggé el nem ítélhető, rossz dolgokra:) - csúnya, gonosz, rossz Esneki! - csak szigorúan a saját kis házi szerveremen belüli védelmi óvintézkedésre. Vagy inkább óv-esetlenkedésre:) Leginkább csak egy játék az iptables-szel.
Ezen a mini/mikró szerveren egy transmission-deamon fut. A le- és feltöltési sebessége erősen korlátozva van, hogy azért maradjon sávszélesség pl. a HUP-ra, 'meg ilyesmi'.
Amikor is feltöltök rá agy torrent fájlt, jön a 'fent említett' szarakodni. ennek kivédésére találtam ki a következőt:
root@server:~/bin# cat ban-virginmedia
#! /bin/bash
HOSTS=("virgin[a-z0-9\-]*\.[a-z]\{2,4\}[\.]$" "unitymediagroup\.[a-z]\{2,4\}[\.]$")
filter() {
local y
for y in $(seq 0 $((${#HOSTS[*]}-1)) )
do
echo $@ | grep -q ${HOSTS[$y]} && return 0
done
return 1
}
while :;
do
for y in $(find /tmp -amin +30 -type f -name \*.banner | sed 's/^\/.*\/\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\)\.banner$/\1/'); do
iptables -D OUTPUT -d $y -j DROP
iptables -D INPUT -s $y -j DROP
rm "/tmp/$y.banner"
done
NS="$(netstat -tunp | grep 'ESTABLISHED.*transmission' | sed 's/.* \(.*\):.* \(.*\):.*/\2/' | egrep -v '^0\.0\.0\.0|^192\.168\.|^127\.|^10\.')"
for i in $NS
do
HOST=$(host $i | awk '{print $5}')
if filter $HOST
then
echo -en "$i:"
if iptables -n -L INPUT | grep -q $i
then
echo " banned."
else
iptables -I OUTPUT -d $i -j DROP
iptables -I INPUT -s $i -j DROP
touch /tmp/$i.banner
if ! iptables -n -L transmission 2>/dev/null | grep -q "$(echo $i|sed 's/\./\\\./g')"
then
iptables -I transmission -s "$i" -j DROP
sed -i '/^:transmission - \[0:0\]/a -A transmission -s '"$i"' -j DROP' /etc/iptables.up.rules
sleep 1
fi
FUND=1
echo " ban!"
fi
fi
sleep 1
done
sleep 120
done
Az emberi elme és találékonyság eme csodájának futtatásához néhány beállítást kell eszközölni.
Létre kell hozni a tranmission Chain-t, a Chain-ból returnel vissza kell adni a csomagokat oda ahonnan jöttek, ill. el kell neki küldeni azokat a csomagokat, amik a transmission nyitott portjára mennének, maja az iptables beállításait el kell menteni a /etc/iptables.up.rules fájlba, valamint gondoskodni kell a beállítások visszatöltéséról a szerver bottolása során. És az sem nagy baj, ha a program maga is elindul ugyanekkor, mondjuk az rc.local-ból.
Éééés valami ilyesmi lesz az eredmény:))
root@server:~# iptables -v -n -L
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
...
...
7559K 8913M transmission tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:51413
4498K 3354M transmission udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:51413
14M 13G ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
...
...
29501 1588K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:51413
864K 108M ACCEPT udp -- * * 0.0.0.0/0 0.0.0.0/0 udp dpt:51413
...
...
Chain transmission (2 references)
pkts bytes target prot opt in out source destination
0 0 DROP all -- * * 82.14.0.215 0.0.0.0/0
1929 103K DROP all -- * * 82.12.251.61 0.0.0.0/0
64 3872 DROP all -- * * 109.91.151.186 0.0.0.0/0
310 16012 DROP all -- * * 77.99.120.140 0.0.0.0/0
50 2702 DROP all -- * * 86.21.122.23 0.0.0.0/0
3042 154K DROP all -- * * 92.232.198.68 0.0.0.0/0
0 0 DROP all -- * * 94.169.169.19 0.0.0.0/0
0 0 DROP all -- * * 86.24.92.174 0.0.0.0/0
0 0 DROP all -- * * 80.7.116.221 0.0.0.0/0
0 0 DROP all -- * * 81.105.15.175 0.0.0.0/0
0 0 DROP all -- * * 94.168.59.2 0.0.0.0/0
0 0 DROP all -- * * 62.253.57.1 0.0.0.0/0
0 0 DROP all -- * * 77.98.61.146 0.0.0.0/0
5 268 DROP all -- * * 81.97.61.247 0.0.0.0/0
4 212 DROP all -- * * 82.27.57.236 0.0.0.0/0
0 0 DROP all -- * * 82.4.46.29 0.0.0.0/0
15 877 DROP all -- * * 82.30.145.28 0.0.0.0/0
3 144 DROP all -- * * 82.12.236.99 0.0.0.0/0
0 0 DROP all -- * * 81.101.121.61 0.0.0.0/0
1 95 DROP all -- * * 82.44.15.34 0.0.0.0/0
0 0 DROP all -- * * 82.36.254.89 0.0.0.0/0
0 0 DROP all -- * * 213.107.57.75 0.0.0.0/0
13 731 DROP all -- * * 94.172.137.17 0.0.0.0/0
0 0 DROP all -- * * 86.28.114.153 0.0.0.0/0
21 1167 DROP all -- * * 82.0.25.108 0.0.0.0/0
65 3998 DROP all -- * * 81.97.172.71 0.0.0.0/0
10 587 DROP all -- * * 81.99.151.12 0.0.0.0/0
0 0 DROP all -- * * 86.17.72.144 0.0.0.0/0
0 0 DROP all -- * * 92.232.134.219 0.0.0.0/0
0 0 DROP all -- * * 86.29.141.242 0.0.0.0/0
0 0 DROP all -- * * 82.41.41.57 0.0.0.0/0
0 0 DROP all -- * * 86.28.130.201 0.0.0.0/0
6 355 DROP all -- * * 82.11.122.2 0.0.0.0/0
0 0 DROP all -- * * 82.38.11.72 0.0.0.0/0
0 0 DROP all -- * * 80.4.161.80 0.0.0.0/0
0 0 DROP all -- * * 82.17.237.108 0.0.0.0/0
21 1135 DROP all -- * * 81.103.165.103 0.0.0.0/0
0 0 DROP all -- * * 94.175.96.163 0.0.0.0/0
0 0 DROP all -- * * 86.28.146.187 0.0.0.0/0
0 0 DROP all -- * * 81.98.228.71 0.0.0.0/0
0 0 DROP all -- * * 94.172.128.77 0.0.0.0/0
0 0 DROP all -- * * 213.105.86.57 0.0.0.0/0
0 0 DROP all -- * * 80.193.151.176 0.0.0.0/0
0 0 DROP all -- * * 77.98.28.243 0.0.0.0/0
0 0 DROP all -- * * 82.8.228.105 0.0.0.0/0
0 0 DROP all -- * * 81.100.91.128 0.0.0.0/0
32 1984 DROP all -- * * 82.12.162.215 0.0.0.0/0
0 0 DROP all -- * * 82.12.252.192 0.0.0.0/0
0 0 DROP all -- * * 82.1.141.238 0.0.0.0/0
0 0 DROP all -- * * 94.172.150.182 0.0.0.0/0
4 192 DROP all -- * * 82.8.243.126 0.0.0.0/0
0 0 DROP all -- * * 92.235.221.63 0.0.0.0/0
0 0 DROP all -- * * 82.1.77.200 0.0.0.0/0
0 0 DROP all -- * * 92.235.78.190 0.0.0.0/0
0 0 DROP all -- * * 62.255.142.70 0.0.0.0/0
0 0 DROP all -- * * 82.36.162.216 0.0.0.0/0
0 0 DROP all -- * * 82.17.207.170 0.0.0.0/0
0 0 DROP all -- * * 81.105.99.58 0.0.0.0/0
0 0 DROP all -- * * 94.169.105.10 0.0.0.0/0
0 0 DROP all -- * * 86.6.189.187 0.0.0.0/0
0 0 DROP all -- * * 80.193.41.140 0.0.0.0/0
0 0 DROP all -- * * 77.100.176.173 0.0.0.0/0
0 0 DROP all -- * * 92.235.116.77 0.0.0.0/0
0 0 DROP all -- * * 82.1.105.100 0.0.0.0/0
0 0 DROP all -- * * 86.16.165.206 0.0.0.0/0
0 0 DROP all -- * * 82.2.26.140 0.0.0.0/0
0 0 DROP all -- * * 77.98.245.218 0.0.0.0/0
0 0 DROP all -- * * 62.30.54.198 0.0.0.0/0
0 0 DROP all -- * * 86.27.176.220 0.0.0.0/0
0 0 DROP all -- * * 82.46.144.109 0.0.0.0/0
2 128 DROP all -- * * 82.16.153.204 0.0.0.0/0
0 0 DROP all -- * * 86.4.199.116 0.0.0.0/0
0 0 DROP all -- * * 94.170.64.76 0.0.0.0/0
0 0 DROP all -- * * 80.3.156.179 0.0.0.0/0
0 0 DROP all -- * * 80.3.21.195 0.0.0.0/0
0 0 DROP all -- * * 82.37.7.60 0.0.0.0/0
0 0 DROP all -- * * 213.106.181.99 0.0.0.0/0
0 0 DROP all -- * * 82.21.175.249 0.0.0.0/0
0 0 DROP all -- * * 82.18.90.9 0.0.0.0/0
0 0 DROP all -- * * 82.38.65.213 0.0.0.0/0
0 0 DROP all -- * * 94.173.255.42 0.0.0.0/0
0 0 DROP all -- * * 82.33.64.206 0.0.0.0/0
0 0 DROP all -- * * 92.238.163.105 0.0.0.0/0
0 0 DROP all -- * * 213.106.90.160 0.0.0.0/0
0 0 DROP all -- * * 77.103.254.16 0.0.0.0/0
0 0 DROP all -- * * 86.27.221.34 0.0.0.0/0
0 0 DROP all -- * * 77.98.147.123 0.0.0.0/0
0 0 DROP all -- * * 82.40.62.227 0.0.0.0/0
0 0 DROP all -- * * 62.31.206.140 0.0.0.0/0
0 0 DROP all -- * * 82.28.195.70 0.0.0.0/0
0 0 DROP all -- * * 82.0.136.195 0.0.0.0/0
0 0 DROP all -- * * 81.107.150.118 0.0.0.0/0
0 0 DROP all -- * * 81.109.189.94 0.0.0.0/0
0 0 DROP all -- * * 94.175.103.42 0.0.0.0/0
0 0 DROP all -- * * 82.34.180.46 0.0.0.0/0
0 0 DROP all -- * * 92.233.193.42 0.0.0.0/0
0 0 DROP all -- * * 86.8.248.56 0.0.0.0/0
0 0 DROP all -- * * 86.22.165.214 0.0.0.0/0
0 0 DROP all -- * * 81.102.121.6 0.0.0.0/0
0 0 DROP all -- * * 82.7.7.116 0.0.0.0/0
0 0 DROP all -- * * 77.101.88.213 0.0.0.0/0
0 0 DROP all -- * * 94.174.156.215 0.0.0.0/0
0 0 DROP all -- * * 86.28.136.229 0.0.0.0/0
0 0 DROP all -- * * 94.171.122.48 0.0.0.0/0
0 0 DROP all -- * * 94.171.231.94 0.0.0.0/0
0 0 DROP all -- * * 82.12.145.245 0.0.0.0/0
0 0 DROP all -- * * 82.15.221.229 0.0.0.0/0
9 559 DROP all -- * * 77.99.171.6 0.0.0.0/0
102 6269 DROP all -- * * 77.99.175.211 0.0.0.0/0
0 0 DROP all -- * * 82.13.30.115 0.0.0.0/0
0 0 DROP all -- * * 82.35.209.20 0.0.0.0/0
0 0 DROP all -- * * 80.4.96.90 0.0.0.0/0
0 0 DROP all -- * * 94.172.83.216 0.0.0.0/0
0 0 DROP all -- * * 77.99.246.168 0.0.0.0/0
0 0 DROP all -- * * 82.24.224.130 0.0.0.0/0
0 0 DROP all -- * * 77.103.196.226 0.0.0.0/0
0 0 DROP all -- * * 86.30.9.147 0.0.0.0/0
0 0 DROP all -- * * 95.222.130.163 0.0.0.0/0
0 0 DROP all -- * * 94.174.37.158 0.0.0.0/0
0 0 DROP all -- * * 82.30.147.199 0.0.0.0/0
0 0 DROP all -- * * 86.16.27.22 0.0.0.0/0
0 0 DROP all -- * * 86.25.205.1 0.0.0.0/0
0 0 DROP all -- * * 92.237.195.111 0.0.0.0/0
0 0 DROP all -- * * 82.12.240.101 0.0.0.0/0
0 0 DROP all -- * * 86.15.176.22 0.0.0.0/0
0 0 DROP all -- * * 82.43.224.152 0.0.0.0/0
0 0 DROP all -- * * 86.26.130.40 0.0.0.0/0
0 0 DROP all -- * * 86.13.64.230 0.0.0.0/0
0 0 DROP all -- * * 86.19.141.218 0.0.0.0/0
0 0 DROP all -- * * 92.234.131.207 0.0.0.0/0
0 0 DROP all -- * * 80.7.190.129 0.0.0.0/0
0 0 DROP all -- * * 82.20.21.67 0.0.0.0/0
0 0 DROP all -- * * 82.8.75.17 0.0.0.0/0
0 0 DROP all -- * * 80.4.102.43 0.0.0.0/0
0 0 DROP all -- * * 82.4.250.105 0.0.0.0/0
0 0 DROP all -- * * 94.168.31.190 0.0.0.0/0
0 0 DROP all -- * * 82.38.100.123 0.0.0.0/0
0 0 DROP all -- * * 82.11.235.122 0.0.0.0/0
0 0 DROP all -- * * 95.223.139.100 0.0.0.0/0
0 0 DROP all -- * * 109.90.227.125 0.0.0.0/0
0 0 DROP all -- * * 178.203.153.56 0.0.0.0/0
0 0 DROP all -- * * 210.238.103.18 0.0.0.0/0
0 0 DROP all -- * * 77.255.158.207 0.0.0.0/0
0 0 DROP all -- * * 77.97.2.207 0.0.0.0/0
0 0 DROP all -- * * 77.98.245.215 0.0.0.0/0
0 0 DROP all -- * * 80.5.219.135 0.0.0.0/0
0 0 DROP all -- * * 81.96.24.198 0.0.0.0/0
0 0 DROP all -- * * 82.4.66.64 0.0.0.0/0
0 0 DROP all -- * * 82.16.82.29 0.0.0.0/0
0 0 DROP all -- * * 86.21.198.221 0.0.0.0/0
0 0 DROP all -- * * 86.6.107.231 0.0.0.0/0
0 0 DROP all -- * * 86.8.56.105 0.0.0.0/0
0 0 DROP all -- * * 87.57.112.22 0.0.0.0/0
0 0 DROP all -- * * 94.172.38.72 0.0.0.0/0
12M 12G RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
Amint az a transmission Chain-ban látható, hellyel-közzel működik is:)
Mivel azonban szabadságolások néhány hét múlva véget érnek, e remekmű fejlesztése is abbamarad, és a holt projektek amúgy is népes táborát tovább gazdagítja.
Arra azért felhívnám minden kedves és kedvetlen érdeklődő figyelmét, hogy a saját - v. más - gépét csak saját felelősségére cseszheti el, és nem pediglen az enyémre:)
- apostroph3 blogja
- A hozzászóláshoz be kell jelentkezni
- 1962 megtekintés
Hozzászólások
imádom az ilyen undorító regexeket! :)
------------------------------------
Ha a barátnőmre gondolok, az a null pointer dereference.
- A hozzászóláshoz be kell jelentkezni
Ebben egy fia undorító regexpet nem látok, legalábbis mind elég egyszerűnek tűnik :-)
sed 's/.* \(.*\):.* \(.*\):.*/\2/
ebben nem tudom így hirtelen, mire kell az első pár zárójel… meg a „[\.]”-ot sem értem túlságosan, a parserem szerint az ugyanaz, mint a „\.”
int getRandomNumber() { return 4; } // ← aláírás
//szabályos kockadobással választva. garantáltan véletlenszerű. xkcd
- A hozzászóláshoz be kell jelentkezni
na a regexekhez meg fel kell nonom, ugyanis marhara nem ertem a mukodesuket :D Ez a script azon resze pl mit csinal?
- A hozzászóláshoz be kell jelentkezni
Fogalmam sincs, de pl. ilyenekre illeszkednek:
virgin[a-z0-9\-]*\.[a-z]\{2,4\}[\.]$
→ virginluzalnfa876-wak47aw4t-a4tt4w4t.aaaa.
virgin, majd tetszőleges számú szám, betű vagy kötőjel, majd 2–4 betű, majd pont a string végén
unitymediagroup\.[a-z]\{2,4\}[\.]$
unitymediagroup, majd pont, majd 2–4 darab betű, majd pont megint a string végén
sed 's/^\/.*\/\([0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\)\.banner$/\1/'
ez egy /bármi/IPCÍM.banner formátumú stringből gyomlál ki mindent, csak az IPCÍM-et hagyja.
'ESTABLISHED.*transmission'
ESTABLISHED{akárhány tetszőleges karakter}transmission
sed 's/.* \(.*\):.* \(.*\):.*/\2/'
{bármi} ({bármi1}):{bármi} ({bármi2}):{bármi} stringet cserél le bármi2-re, ahol a bármi lehet tetszőleges számú (akár 0) karakter.
'^0\.0\.0\.0|^192\.168\.|^127\.|^10\.'
IP címekre illeszkedik: 0.0.0.0 vagy 192.168.bármi vagy 127.bármi vagy 10.bármi
int getRandomNumber() { return 4; } // ← aláírás
//szabályos kockadobással választva. garantáltan véletlenszerű. xkcd
- A hozzászóláshoz be kell jelentkezni
virgin[a-z0-9\-]*\.[a-z]\{2,4\}[\.]$
virgin, majd tetszőleges számú szám, betű vagy kötőjel, majd 2–4 betű, esetleg pont a string végén
szerk.: ja hát ez itt le van ba..ltázva:)) helyesen
"virgin[a-z0-9\-]*\.[a-z]\{2,4\}[\.]\{0,1\}$"
vagy
"virgin[a-z0-9\-]*\.[a-z]\{2,4\}[\.]*$"
vagy ilyesmi
- A hozzászóláshoz be kell jelentkezni
„nougye” ;)
int getRandomNumber() { return 4; } // ← aláírás
//szabályos kockadobással választva. garantáltan véletlenszerű. xkcd
- A hozzászóláshoz be kell jelentkezni