Покажи Публикации - tmcdos
* Виж публикациите на потр. | Виж темите на потр. | Виж прикачените файлове на потр
Страници: 1 2 [3] 4
31  Linux секция за напреднали / Хардуерни и софтуерни проблеми / Isp-serv за traffic shaping -: Nov 23, 2007, 01:13
Докато се ровех в Yandex, търсейки статия за Traffic Shaping, попаднах на нещо, което ме заинтригува.
Статията е на руски език. За хората от предното поколение (като мен) това не е проблем - но малцина от по-младите го владеят. Надявам се информацията да е полезна на повече хора.
Всъщност това е цикъл от 7 статии, в които много подробно се описват стъпки за прекомпилиране на ядрото, добавяне на пачове от Patch-o-Matic към IPtables (най-вече Layer7, GeoIP, ConnLimit, Quota), инсталиране на IProute2, IPsentinel, добавяне на IMQ и ESFQ, конфигуриране на IPtables и самия Traffic Shaping.
Целта е да се получи олекотен "пакет" само с най-необходимите драйвери и модули, и оптимизация на някои скриптове за по-бърз BootUp процес.

Адресът на това богатство е ISP-serv

Досега съм го правил върху 2 машини.
Едната е у дома, със следните версии:
1. Ядро - 2.6.16.18
2. IPtables - 1.3.5
3. IProute2 - 2.6.16
4. IPsentinel - 0.12 (не съм го инсталирал)
5. Patch-o-matic - 20060511 и 20060525
6. ESFQ - 2.6.15.1
7. Layer7 - 2.2
Работи върху Pentium III/450 MHz повече от година и половина, държи се задоволително (не съм правил задълбочени тестове, но успешно разделя трафика между мен и брат ми).
Втората е в офиса:
1. Ядро - 2.6.21
2. IPtables - 1.3.7
3. IProute2 - 2.6.20
4. Patch-o-matic - 20070619
5. ESFQ - 2.6.21.4
6. Layer7 - 2.9
Наложи се да се поровя в Google за разни пачове на пачовете в Patch-o-Matic, тъй като NETFILTER преминава от IPTABLES към XTABLES, и интегрира някои от модулите от Patch-o-Matic в ядрото. При нужда ще ги предоставя допълнително.
Все още не съм проверил доколко успешно разделя трафика.
32  Linux секция за напреднали / Хардуерни и софтуерни проблеми / Postfix проблем -: Nov 23, 2007, 00:48
Тези три реда в main.cf се карат помежду си. Избери си един от тях - най-добре първия - и махни другите два реда.
Примерен код

smtpd_recipient_restrictions=permit_sasl_authenticated,permit_mynetworks, reject_unauth_destination
smtpd_recipient_restrictions = regexp:/etc/postfix/access_regexp
smtpd_recipient_restrictions = pcre:/etc/postfix/access_regexp

Ако ти даде други грешки в LOG-файла, пиши - ще помагаме.
33  Linux секция за начинаещи / Настройка на програми / Помощ: много бавен apache -: Nov 22, 2007, 21:36
...



34  Linux секция за начинаещи / Настройка на програми / Postfix - защита от dictionary атака -: Jul 26, 2007, 16:29
smtpd_data_restrictions = reject_unauth_pipelining
го имам сложено при мен откакто е пуснат сървъра.
Може би трябва да извадя от логовете списъка с релейките, които участват в атаката, и да пратя по едно писмо за ABUSE ? Макар че в началото като пращах, от 50-ина само на 1-2 ми отговориха  '<img'>
35  Linux секция за начинаещи / Настройка на програми / Postfix - защита от dictionary атака -: Jul 26, 2007, 14:27
Може би говориш за "smtpd_error_sleep_time" ? Това няма ли да доведе до DoS ?
За greylist не съм чел нищо ...
36  Linux секция за начинаещи / Настройка на програми / Postfix - защита от dictionary атака -: Jul 26, 2007, 13:29
Не, по втората схема си работи - още след RCPT TO връща грешка.
37  Linux секция за начинаещи / Настройка на програми / Postfix - защита от dictionary атака -: Jul 26, 2007, 12:41
Привет.
От време на време (3 пъти за година и половина) получавам истинска буря от атаки, насочени към налучкване на пощенски акаунти. Започва се по азбучен ред, и всяко писмо идва от различен IP-адрес (почти всички си имат прав и обратен DNS запис)
Сървъра ми е Postfix 2.2.4 на Fedora Core 4.
Има ли начин някакси да огранича такива атаки или е неспасяемо ?
38  Linux секция за начинаещи / Настройка на програми / Iptables с drop по дефолт - отворени портове -: Jun 01, 2007, 15:31
Добре '<img'>
Приемам темата за приключена успешно с ваша помощ, приятели.
39  Linux секция за начинаещи / Настройка на програми / Iptables с drop по дефолт - отворени портове -: Jun 01, 2007, 15:12
@teh

Съгласих се с теб, че SYN-cookies са добро решение. Също и със забележката, че никъде не се проверят хората/пакетите/топчетата ... кой е легитимен, и кой не е.

Малко коментари по
Примерен код

/sbin/sysctl -w net.ipv4.conf.all.send_redirects=0
/sbin/sysctl -w net.ipv4.conf.all.accept_redirects=0
/sbin/sysctl -w net.ipv4.conf.all.accept_source_route=0
/sbin/sysctl -w net.ipv4.conf.all.mc_forwarding=0
/sbin/sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
/sbin/sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1
/sbin/sysctl -w net.ipv4.conf.all.log_martians=1
/sbin/sysctl -w net.ipv4.conf.all.rp_filter=1


send_redirects=0
accept_redirects=0
Първият параметър изобщо не влияе, ако срещу теб започне DoS-атака. Влияението на втория е спорно, и обикновено препоръчват да се оставя в 1, особено ако хоста се намира в мрежа с множество възможни маршрути.

log_martians=1
Това само би спомогнало на целите на атакуващия, особено ако използва невалидни значения в адреса на изпращача - всеки пакет ще се логва.

rp_filter=1
Това също не помага за защита от DoS, защото изисква нападнатия хост да проверява обратния път до атакуващия, допринасяйки за допълнително натоварване на мрежата.

mc_forwarding=0
Това влияе само на пакетите с групов адрес, и на нормален хост изобщо не работи - само на маршрутиратор.

Методът с --limit правилото, който аз бях използвал, е нож с две остриета - именно защото не проверява кой пакет е легитимен, и кой не е. И всъщност в някои случаи по-скоро помага на атакуващия, отколкото да предпазва.

По принцип общи правила за защита от DoS май не съществуват, и всеки сам се спасява  '<img'> Ако атаката се състои в тъпо запълване на външния канал с входящи пакети, няколко правила на моя сървър няма да помогнат кой знае колко. Ако атаката е конкретно към дадена машина, се опитва да се идентифицира паразитния трафик, и да се филтрира.

Това, което аз наблюдавам при мен, е че периодично с автоматични скенери за дупки в сигурността се сондира WEB-сървъра, с идеята да бутнат някакъв троянец и да вземат машината под контрол за по-нататъшна "дообработка"
Най-често ме проверяват за присъствието на:
Примерен код

blog
drupal
phpgroupware
xmlrpc
xmlsrv
awstats
mambo
dbadmin
myadmin
sysadmin
webadmin
PMA
horde


Но това вече излиза извън темата на разговора  '<img'>

Примерен скрипт за IPTABLES - според мен е тежък, но може да послужи да си извади човек по нещичко оттук-оттам.
TBF пач за разширяване на възможностите на limit и hashlimit за инверсия в правилата.

На The Open Net има доста интересни статии.
40  Linux секция за начинаещи / Настройка на програми / Iptables с drop по дефолт - отворени портове -: Jun 01, 2007, 13:30
Алекс, не му се връзвай на teh, вече разбрах откъде ми идва проблема, и дори си го оправих  '<img'>
Благодаря ти.

teh, не се сърди - но твоето решение не ми върши работа.
41  Linux секция за начинаещи / Настройка на програми / Iptables с drop по дефолт - отворени портове -: Jun 01, 2007, 11:22
Съвсем нарочно и преднамерено съм си сложил "вратичката" още в началото, това го научих малко по-отдавна  '<img'>
Алекс, наистина заслужи бирата - остава само да я изпием. За пореден път се убеждавам колко е важен реда на правилата.
Влади, аз продължавам да съм убеден, че DROP-ACCEPT начина на работа позволява да имаш по-малко правила и (поне на мен) ми е по-лесен да си го представя, отколкото ACCEPT-DROP. Както винаги - въпрос на лични предпочитания. Между другото, ти с коя версия на IPTABLES си, използваш ли някакви допълнителни пачове ? Защото доколкото зная, до версия 1.3.1 опцията LIMIT не може да работи с инверсия:
Примерен код

-A TCP -p tcp --syn -m ! limit --limit 25/s --limit-burst 35 -j DROP
-A TCP -p tcp --syn -m limit ! --limit 25/s --limit-burst 35 -j DROP

този код не работи.
Преработих си малко правилата, и сега вече порт 3306 е отворен само за мен и никой друг.

Примерен код

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT

*filter
:FORWARD DROP [0:0]
:INPUT DROP [0:0]
:OUTPUT ACCEPT [0:0]
:protect - [0:0]

-A INPUT -s хх.хх.хх.хх/32 -i eth0 -j ACCEPT
-A INPUT -p all -s localhost -i eth0 -j DROP
-A INPUT -p all -s localhost -i eth1 -j DROP
-A INPUT -i lo -j ACCEPT

# PROTECTION port scanner
#-A INPUT -i eth0 -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 3/s --limit-burst 5 -j REJECT --reject-with icmp-host-unreachable

# Drop hijackers !!!
-A INPUT -i eth0 -s 81.169.186.45/32 -j DROP
-A INPUT -i eth0 -s 84.170.202.66/32 -j DROP
-A INPUT -i eth0 -s 203.172.213.122/32 -j DROP
-A INPUT -i eth0 -s 194.242.112.72/32 -j DROP
-A INPUT -i eth0 -s 212.241.246.148/32 -j DROP
-A INPUT -i eth0 -s 204.13.82.60/32 -j DROP
-A INPUT -i eth0 -s 85.140.156.23/32 -j DROP
-A INPUT -i eth0 -s 213.234.30.79/32 -j DROP
-A INPUT -i eth0 -s 87.106.12.174/28 -j DROP
-A INPUT -i eth0 -s 213.91.242.188/32 -j DROP
-A INPUT -i eth0 -s 87.126.147.86/32 -j DROP
-A INPUT -i eth0 -s 217.160.23.161/32 -j DROP

-A INPUT -i eth0 -p tcp -m tcp --dport 25 -j protect
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j protect
-A INPUT -i eth0 -p tcp -m tcp --dport 110 -j protect
#-A INPUT -i eth0 -p tcp -m tcp --dport 443 -j protect
-A INPUT -i eth0 -p tcp -m tcp --dport 2120 -j protect
-A INPUT -i eth0 -p tcp -m tcp --dport 909 -j protect
-A INPUT -i eth0 -p tcp -m tcp --dport 5222:5223 -j protect
-A INPUT -i eth0 -p tcp -m tcp --dport 5269 -j protect
-A INPUT -i eth0 -p tcp -m tcp --dport 30000:30024 -j protect
# Should be last in this block
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

# PROTECTION SYN flood
-A protect -i eth0 -p tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 100/s --limit-burst 200 -j ACCEPT
# There is no need for the next rule, since if packet does not match the rule above, it will leave chain PROTECT
# and return back to the originating INPUT chain, where a DROP by default will be made
#-A protect -i eth0 -p tcp --tcp-flags SYN,RST,ACK SYN -j REJECT --reject-with icmp-host-unreachable

# PROTECTION Ping of Death
-A INPUT -i eth0 -p icmp -m icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 3 -j ACCEPT
# Accept all ICMP answers, hopefully they do not need further processing
# but this is not tested against DoS attacks
-A INPUT -i eth0 -p icmp -m icmp --icmp-type echo-reply -j ACCEPT
-A INPUT -i eth0 -p icmp -m icmp --icmp-type time-exceeded -j ACCEPT
-A INPUT -i eth0 -p icmp -m icmp --icmp-type destination-unreachable -j ACCEPT
# if this is Ping-of-Death or something similar, it will not match the rules above, so we handle it here
-A INPUT -i eth0 -p icmp -m icmp -j REJECT --reject-with icmp-host-unreachable

COMMIT


Само защитата от сканиране на портове още не съм измислил как да я направя, но ще се справя.

Благодаря !
42  Linux секция за начинаещи / Настройка на програми / Iptables с drop по дефолт - отворени портове -: May 31, 2007, 19:48
Сетих се нещо.
Може би проблема идва от това, че имам няколко виртуални интерфейса на един физически. И тъй като в правилата съм написал -i eth0, може би не се получава съвпадение.
Но пак няма логика - защото нали ако нито едно правило не съвпадне, трябва да се приложи политиката по подразбиране - която е указана като DROP.
Хм ....

Пробвах да махна
-A INPUT -i eth0 -p tcp -m tcp --dport 25 -j ACCEPT

и скенера пак показа, че порта е отворен ...



43  Linux секция за начинаещи / Настройка на програми / Iptables с drop по дефолт - отворени портове -: May 31, 2007, 19:40
Цитат (VladSun @ Май 31 2007,19:33)
Идеята ми беше да видим до колко са достоверни резултатите от този тест ...

Теста си работи както трябва - на портовете, на които няма услуга, се бави по 1 минута и накрая изплюва, че порта е затворен.
Ето му адреса Online Port Scanner
44  Linux секция за начинаещи / Настройка на програми / Iptables с drop по дефолт - отворени портове -: May 31, 2007, 19:35
Този код ще спре изцяло достъпа до MySQL - на мен ми трябва да реже всички, освен мен ;-)

Цитат
iptables -t nat -A PREROUTING -p tcp -s 0.0.0.0 -d ip.to.na.servera --dport 3306 -j DROP


В ръководството на IPTABLES изрично се указва, че таблица NAT се използва само за промяна на адресите и/или портовете на източника/получателя на пакета - а за филтрация на пакетите да се използва таблица FILTER.



45  Linux секция за начинаещи / Настройка на програми / Iptables с drop по дефолт - отворени портове -: May 31, 2007, 18:57
Е, не разбира се - нали като го спра, никой не отваря порта - няма LISTEN. Въпроса е, че като съм го пуснал, трябва да е достъпен само за мен - а не за всички, както е с останалите услуги. Демек трябва да дропи всички пакети, които не идват от моето IP.
Страници: 1 2 [3] 4