Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: Neoromantic в Jul 10, 2006, 08:43



Титла: Iptables въпрос
Публикувано от: Neoromantic в Jul 10, 2006, 08:43
Ситуацията е следната:
eth0: xxx.xxx.xxx.xxx //външен реален
eth1: 192.168.0.1

iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -j SNAT --to-source xxx.xxx.xxx.xxx

Ще бъде ли добре да напиша:

#iptables -N firewall
#iptables -A firewall -m state --state ESTABLISHED, RELATED -j ACCEPT
#iptables -A firewall -m state --state NEW -i ! eth0 -j ACCEPT
#iptables -A INPUT -j block
#iptables -A FORWARD -j block
// от примера който е показан в статията
Искам да знам дали това ще бъде правилно?


Титла: Iptables въпрос
Публикувано от: Dean79 в Jul 10, 2006, 21:57
Доста простичък firewall, но ще свърши работа...май.
Аз те съветвам да филтрираш само определени портове.


Титла: Iptables въпрос
Публикувано от: Neoromantic в Jul 11, 2006, 07:51
Ами аз имам следните отворени портове:

22 TCP
139 netbios ssn
445 microsoft ds

Откъде може да ми дойде атака?


Титла: Iptables въпрос
Публикувано от: в Jul 11, 2006, 11:44
445 microsoft ds

ne ti preporachvam da otvarqsh tozi port tam varvi virusat Slammer makar da nemoje da te zarazi teb ti shte zarazqvash drugite tova e moito mnenie


Титла: Iptables въпрос
Публикувано от: в Jul 11, 2006, 14:32
Добави и тези 3 реда ако искаш да спреш някой който се опитва да те сканира за отворени портове :

# iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
# iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
# iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP


Титла: Iptables въпрос
Публикувано от: Dean79 в Jul 11, 2006, 19:11
Отворените ти портове ги филтрирай.


Титла: Iptables въпрос
Публикувано от: в Jul 11, 2006, 20:24
Dark Avenger: това въобще не е вярно.

free: за съжаление, така няма да спреш всякакво сканиране. Примерно SYN scan (nmap -sS) праща пакет със SYN, а не със SYN-FIN флагове вдигнати, което няма да се match-не от тези правила.

със -tcp-flags SYN SYN ефективно ще счупиш всякакво SYN сканиране, но други методи ще минат (stealth FIN, Xmas tree). Естествено, набухаш ли такова правило никой хост няма да успее да се свърже към теб (поне по tcp).

Анти-скенерските мерки са много сложна тема за разговор, може да се спретне една дискусия, обаче определено нещата не могат да се решат с няколко правила в iptables (освен ако не те урежда да имаш машина, до която не трябва да се осъществява никаква връзка - дори за домашен потребител това е брутален вариант - ще се прецакат всякакви p2p/skype/ftp transfers/irc DCC/dc++/etc неща)

Портовете 445 и 139 са съответно за netbios resolving (nmbd) и samba. Ако не шерваш нищо през самба дори няма нужда да ги филтрираш (а и в рамките на твоята локална мрежа не е особено желателно). Просто спри smbd/nmbd.

22/tcp е портът, който обикновено се използва от ssh. Ако не се връзваш отдалечено към твоята машина можеш да го филтрираш (но го направи културно с REJECT а не с DROP, за да не ти се сърдят някои хора :) )


Титла: Iptables въпрос
Публикувано от: в Jul 12, 2006, 12:05
/offtopic

Извинявам се за offtopic-a Gateway точно този въпрос ме измъчваше за SYN,SYN дали не пречи на някои p2p програми??значи счупих се да чета за този пусти iptables та то си е цяла наука да си настроиш firewall под Linux но въпреки всичко много ме радва,схване ли идеята човек после няма спирачки   :D


Титла: Iptables въпрос
Публикувано от: в Jul 13, 2006, 09:40
Ахм, пречи на всеки, който се опита да установи tcp връзка с теб, предполагам ще пречи и на някои п2п функции..


Титла: Iptables въпрос
Публикувано от: VladSun в Jul 13, 2006, 13:00
Ето ти една Стара тема.

:)

ПП: Пробвай след това с ShieldsUP





Титла: Iptables въпрос
Публикувано от: VladSun в Jul 13, 2006, 13:24
И тъй като напоследък много се радвам на recent-patch-a :) :

Примерен код

# SSH bruteforce attack protection
$ipt -A INPUT -p tcp --dport 22 -m state --state RELATED,ESTABLISHED -j ACCEPT
$ipt -A INPUT -p tcp --dport 22 -s 127.0.0.1 -j ACCEPT
$ipt -A INPUT -p tcp --dport 22 -s XXX -j ACCEPT
$ipt -A INPUT -p tcp --dport 22 -s YYY -j ACCEPT
$ipt -A INPUT -p tcp --syn --dport 22 -m recent --name bad_ssh --update --seconds 60 -j DROP
$ipt -A INPUT -p tcp --syn --dport 22 -m recent --name bad_ssh --set -j ACCEPT


Това ти позволява осъществяване на една единствена сесия към порт 22 в рамките на 60 сек. Ако през тия 60 сек. се пробваш с втора сесия, то почват нови 60 сек. на блокаж :) И всичко това "per IP"

XXX, YYY са ти IP-та, на които имаш вяра :) Можеш да слагаш колкото си искаш подобни редове.
Сега някой ще каже, че по ключ е по-добре да се достъпва SSH, но това не във всички случаи е най-удобния вариант.

ПП: Не забравяй да инсталираш recent-match-a като модул защото ще трябва да му задаваш по-големи стойности за IP-таблиците (по подр. е 100).





Титла: Iptables въпрос
Публикувано от: в Jul 13, 2006, 14:01
Хм, интересно, нямах идея за тва...

Тия хора кво ли не взеха да тикат в ядрото, крайно време е да спрат да merge-ват разни пачове и да направят една-две версии в която да има само bugfixing...


Титла: Iptables въпрос
Публикувано от: VladSun в Jul 13, 2006, 14:16
/офф
Е, то recent-match-a е доста старичък (2003 г.) :)


Титла: Iptables въпрос
Публикувано от: в Jul 13, 2006, 14:53
За идеята за филтриране на ssh bruteforce мазни по такъв начин имах предвид.

А иначе за време в секунди, за което стои в списъка не знаех че можело. Имах някаква смътни спомени че може по броя получени вече match-нати пакети, но не и на база време. Както и да е, който чете той знае, който не чете - гледа учудено :)


Титла: Iptables въпрос
Публикувано от: VladSun в Jul 13, 2006, 15:08
@ gat3way
1. прав си - и по брой пакети става (може и комбинация време-пакети) :)
2. аз пък имах предвид твоите думи "...Тия хора кво ли не взеха да тикат в ядрото, крайно време .. и т.н. " :p

По този начин, recent-match-a може да се използва вместо limit-match-a навсякъде, където това не е свързано с ограничаване на брой съобщения в логовете. Така защитите стават "по IP" и се избягва DoS при сработване на защитата.
Естествено има и лоша страна :) :
- не съм разглеждал лично кода на recent-match-a, но според коментарите, които съм чел търсенето по ИП става линейно :( .
- до колкото видях от опит, след като едно ИП влезе в списъка, то то не се маха никога (освен при изтриване на правилата или при експлицитно изтриване от списъка). T.e. няма логическа връзка между iptables правилата и списъците с ИП-та. По-естествено би било след изтичане на времето за съществуване на определено правило (логически), то съответното ИП да се маха от списъка. За съжаление според мен не е така (може би греша ?).





Титла: Iptables въпрос
Публикувано от: в Jul 13, 2006, 15:51
btw тия списъци имат ли ограничения откъм големина? Логично хрумват някои лоши идеи ако е така...


Титла: Iptables въпрос
Публикувано от: VladSun в Jul 13, 2006, 16:25
Примерен код

man iptables

recent
........
The module itself accepts parameters, defaults shown:

       ip_list_tot=100
              Number of addresses remembered per table

       ip_pkt_list_tot=20
              Number of packets per address remembered

       ip_list_hash_size=0
              Hash table size. 0 means to calculate it based on ip_list_tot, default: 512

       ip_list_perms=0644
              Permissions for /proc/net/ipt_recent/* files

       debug=0
              Set to 1 to get lots of debugging info


Хм, сега ми направи впечатление съществуването на hash таблица - може би все пак не го правят линейно търсенето??? :)


Титла: Iptables въпрос
Публикувано от: VladSun в Jul 13, 2006, 16:37
Още една дискусия по въпроса: тема


Титла: Iptables въпрос
Публикувано от: VladSun в Jul 14, 2006, 03:21
/off
Лесно решение на проблема с препълването на таблиците на ipt_recent:

Примерен код

#!/usr/bin/perl

sub clear_recent
{
    ($file_name, $last_time) = @_;

    open(IN, '/proc/net/ipt_recent/'.$file_name) || die "Can't open ".$file_name;
    @rec_file = <IN>;
    close (IN);
    foreach (@rec_file)
    {
        chomp($_);
        $_ =~ /^src=(\d+.\d+.\d+.\d+) ttl: \d+ last_seen: (\d+)/;
        $ip = $1;
        $last_seen = $2;

        if ($last_seen < $last_time)
        {
            `echo -$ip > /proc/net/ipt_recent/$file_name`;
        }
    }
}


$last60s = time - 60*1000;
$last20s = time - 20*1000;

clear_recent("bad_ssh", $last60s);
clear_recent("bad_smtp", $last20s);


* имам 2 таблици - за ssh и smtp - iptables правилата за едната е с време на блокаж 60 сек., другата е 20 сек.

И се изпълнява на всеки 5 мин. прим. (мисля, че е достатъчно ефективно)


Титла: Iptables въпрос
Публикувано от: в Jul 14, 2006, 13:48
Цитат (VladSun @ Юли 13 2006,14:00)
Ето ти една Стара тема.

:)

ПП: Пробвай след това с ShieldsUP

Vladsun гледам че си описал Gain.Gator но ми се струва че е по-добре да се опишат сайтовете с ad-ware и spyware в
/etc/hosts

127.0.0.1       207-87-18-203.wsmg.digex.net
127.0.0.1       Garden.ngadcenter.net
127.0.0.1       Ogilvy.ngadcenter.net
127.0.0.1       ResponseMedia-ad.flycast.com
127.0.0.1       Suissa-ad.flycast.com
127.0.0.1       UGO.eu-adcenter.net
127.0.0.1       VNU.eu-adcenter.net
127.0.0.1       a32.g.a.yimg.com
127.0.0.1       ad-adex3.flycast.com
127.0.0.1       ad.adsmart.net
127.0.0.1       ad.ca.doubleclick.net
127.0.0.1       ad.de.doubleclick.net
127.0.0.1       ad.doubleclick.net
127.0.0.1       ad.fr.doubleclick.net
127.0.0.1       ad.jp.doubleclick.net
127.0.0.1       ad.linkexchange.com
127.0.0.1       ad.linksynergy.com
127.0.0.1       ad.nl.doubleclick.net
127.0.0.1       ad.no.doubleclick.net
127.0.0.1       ad.preferences.com
127.0.0.1       ad.sma.punto.net
127.0.0.1       ad.uk.doubleclick.net
127.0.0.1       ad.webprovider.com
127.0.0.1       ad08.focalink.com
127.0.0.1       adcontroller.unicast.com
127.0.0.1       adcreatives.imaginemedia.com
127.0.0.1       adex3.flycast.com
127.0.0.1       adforce.ads.imgis.com
127.0.0.1       adforce.imgis.com
127.0.0.1       adfu.blockstackers.com
127.0.0.1       adimage.blm.net
127.0.0.1       adimages.earthweb.com
127.0.0.1       adimg.egroups.com
127.0.0.1       admedia.xoom.com
127.0.0.1       adpick.switchboard.com
127.0.0.1       adremote.pathfinder.com
127.0.0.1       ads.admaximize.com
127.0.0.1       ads.bfast.com
127.0.0.1       ads.clickhouse.com
127.0.0.1       ads.enliven.com
127.0.0.1       ads.fairfax.com.au
127.0.0.1       ads.fool.com
127.0.0.1       ads.freshmeat.net
127.0.0.1       ads.hollywood.com
127.0.0.1       ads.i33.com
127.0.0.1       ads.infi.net
127.0.0.1       ads.jwtt3.com
127.0.0.1       ads.link4ads.com
127.0.0.1       ads.lycos.com
127.0.0.1       ads.madison.com
127.0.0.1       ads.mediaodyssey.com
127.0.0.1       ads.msn.com
127.0.0.1       ads.ninemsn.com.au
127.0.0.1       ads.seattletimes.com
127.0.0.1       ads.smartclicks.com
127.0.0.1       ads.smartclicks.net
127.0.0.1       ads.sptimes.com
127.0.0.1       ads.tripod.com
127.0.0.1       ads.web.aol.com
127.0.0.1       ads.x10.com
127.0.0.1       ads.xtra.co.nz
127.0.0.1       ads.zdnet.com
127.0.0.1       ads01.focalink.com
127.0.0.1       ads02.focalink.com
127.0.0.1       ads03.focalink.com
127.0.0.1       ads04.focalink.com
127.0.0.1       ads05.focalink.com
127.0.0.1       ads06.focalink.com
127.0.0.1       ads08.focalink.com
127.0.0.1       ads09.focalink.com
127.0.0.1       ads1.activeagent.at
127.0.0.1       ads10.focalink.com
127.0.0.1       ads11.focalink.com
127.0.0.1       ads12.focalink.com
127.0.0.1       ads14.focalink.com
127.0.0.1       ads16.focalink.com
127.0.0.1       ads17.focalink.com
127.0.0.1       ads18.focalink.com
127.0.0.1       ads19.focalink.com
127.0.0.1       ads2.zdnet.com
127.0.0.1       ads20.focalink.com
127.0.0.1       ads21.focalink.com
127.0.0.1       ads22.focalink.com
127.0.0.1       ads23.focalink.com
127.0.0.1       ads24.focalink.com
127.0.0.1       ads25.focalink.com
127.0.0.1       ads3.zdnet.com
127.0.0.1       ads3.zdnet.com
127.0.0.1       ads5.gamecity.net
127.0.0.1       adserv.iafrica.com
127.0.0.1       adserv.quality-channel.de
127.0.0.1       adserver.dbusiness.com
127.0.0.1       adserver.garden.com
127.0.0.1       adserver.janes.com
127.0.0.1       adserver.merc.com
127.0.0.1       adserver.monster.com
127.0.0.1       adserver.track-star.com
127.0.0.1       adserver1.ogilvy-interactive.de
127.0.0.1       adtegrity.spinbox.net
127.0.0.1       antfarm-ad.flycast.com
127.0.0.1       au.ads.link4ads.com
127.0.0.1       banner.media-system.de
127.0.0.1       banner.orb.net
127.0.0.1       banner.relcom.ru
127.0.0.1       banners.easydns.com
127.0.0.1       banners.looksmart.com
127.0.0.1       banners.wunderground.com
127.0.0.1       barnesandnoble.bfast.com
127.0.0.1       beseenad.looksmart.com
127.0.0.1       bizad.nikkeibp.co.jp
127.0.0.1       bn.bfast.com
127.0.0.1       c3.xxxcounter.com
127.0.0.1       califia.imaginemedia.com
127.0.0.1       cds.mediaplex.com
127.0.0.1       click.avenuea.com
127.0.0.1       click.go2net.com
127.0.0.1       click.linksynergy.com
127.0.0.1       cookies.cmpnet.com
127.0.0.1       cornflakes.pathfinder.com
127.0.0.1       counter.hitbox.com
127.0.0.1       crux.songline.com
127.0.0.1       erie.smartage.com
127.0.0.1       etad.telegraph.co.uk
127.0.0.1       fp.valueclick.com
127.0.0.1       oz.valueclick.com
127.0.0.1       gadgeteer.pdamart.com
127.0.0.1       gm.preferences.com
127.0.0.1       gp.dejanews.com
127.0.0.1       hg1.hitbox.com
127.0.0.1       image.click2net.com
127.0.0.1       image.eimg.com
127.0.0.1       images2.nytimes.com
127.0.0.1       jobkeys.ngadcenter.net
127.0.0.1       kansas.valueclick.com
127.0.0.1       leader.linkexchange.com
127.0.0.1       liquidad.narrowcastmedia.com
127.0.0.1       ln.doubleclick.net
127.0.0.1       m.doubleclick.net
127.0.0.1       macaddictads.snv.futurenet.com
127.0.0.1       maximumpc.usads.futurenet.com
127.0.0.1       maximumpcads.imaginemedia.com
127.0.0.1       media.preferences.com
127.0.0.1       mercury.rmuk.co.uk
127.0.0.1       mojofarm.sjc.mediaplex.com
127.0.0.1       nbc.adbureau.net
127.0.0.1       newads.cmpnet.com
127.0.0.1       ng3.ads.warnerbros.com
127.0.0.1       ngads.smartage.com
127.0.0.1       nsads.hotwired.com
127.0.0.1       ntbanner.digitalriver.com
127.0.0.1       ph-ad05.focalink.com
127.0.0.1       ph-ad07.focalink.com
127.0.0.1       ph-ad16.focalink.com
127.0.0.1       ph-ad17.focalink.com
127.0.0.1       ph-ad18.focalink.com
127.0.0.1       rd.yahoo.com
127.0.0.1       realads.realmedia.com
127.0.0.1       redherring.ngadcenter.net
127.0.0.1       redirect.click2net.com
127.0.0.1       regio.adlink.de
127.0.0.1       retaildirect.realmedia.com
127.0.0.1       s2.focalink.com
127.0.0.1       sh4sure-images.adbureau.net
127.0.0.1       spin.spinbox.net
127.0.0.1       static.admaximize.com
127.0.0.1       stats.superstats.com
127.0.0.1       sview.avenuea.com
127.0.0.1       thinknyc.eu-adcenter.net
127.0.0.1       tracker.clicktrade.com
127.0.0.1       tsms-ad.tsms.com
127.0.0.1       v0.extreme-dm.com
127.0.0.1       v1.extreme-dm.com
127.0.0.1       van.ads.link4ads.com
127.0.0.1       view.accendo.com
127.0.0.1       view.avenuea.com
127.0.0.1       w113.hitbox.com
127.0.0.1       w25.hitbox.com
127.0.0.1       web2.deja.com
127.0.0.1       webads.bizservers.com
127.0.0.1       www.PostMasterBannerNet.com
127.0.0.1       www.ad-up.com
127.0.0.1       www.admex.com
127.0.0.1       www.alladvantage.com
127.0.0.1       www.burstnet.com
127.0.0.1       www.commission-junction.com
127.0.0.1       www.eads.com
127.0.0.1       www.freestats.com
127.0.0.1       www.imaginemedia.com
127.0.0.1       www.netdirect.nl
127.0.0.1       www.oneandonlynetwork.com
127.0.0.1       www.targetshop.com
127.0.0.1       www.teknosurf2.com
127.0.0.1       www.teknosurf3.com
127.0.0.1       www.valueclick.com
127.0.0.1       www.websitefinancing.com
127.0.0.1       www2.burstnet.com
127.0.0.1       www4.trix.net
127.0.0.1       www80.valueclick.com
127.0.0.1       z.extreme-dm.com
127.0.0.1       z0.extreme-dm.com
127.0.0.1       z1.extreme-dm.com

то вярно че и темата която си дал за пример е старичак но все пак пък и списъка който давам по-горе не е пълен  ;)  B)