[Sysadmins] osec & DoS

Алексей Шенцев =?iso-8859-1?q?ashen_=CE=C1_nsrz=2Eru?=
Ср Авг 22 18:28:15 MSD 2007


В сообщении от Wednesday 22 August 2007 18:17:03 Michael Shigorin написал(а):
> On Wed, Aug 22, 2007 at 05:29:18PM +0400, Алексей Шенцев wrote:
> > > На эту тему есть большие мануалы.
> >
> > Угу ... и анекдоты то же ... ;)
> >
> > > Нужно снять всю текущую информацию, которая может поспособствовать
> > > расследованию инциндента, вплоть до дампов оперативки
> >
> > Поздно: 1) сервер запущен в работу; 2) сервак у меня завис так,
> > что даже на клаву не реагировал. На экране было такое:
> > int=eth0 его мак-адрес bla-bla-bla SRC=125.190.36.89 bla-bla-bla
>
> Фотографировать надо.
Не было под рукой чем фотать ... хотя идея ... 

<skip>

> При малейших подозрениях тебе светит выдирание/проверка конфигов
> и построение системы с нуля с их использованием.
Давно хочу снести этот сервак и построить систему с нуля. По иному ...

> Более интересно другое -- какой комплект софта у тебя смотрит в сеть?
Правила для iptables начинаются с такого:
$IPTABLES -P INPUT DROP
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP
# удаляем все имеющиеся правила
$IPTABLES -F
$IPTABLES -X
# создаем свои цепочки
#Для NetAMS
/sbin/modprobe ip_queue
$IPTABLES -A INPUT -i all -j QUEUE
$IPTABLES -A FORWARD -i all -j QUEUE
$IPTABLES -A OUTPUT -o all -j QUEUE
# отбрасываем tcp с неправильными флагами
$IPTABLES -N bad_tcp_packets
# tcp, прошедшие основную проверку
$IPTABLES -N allowed
# все пакеты соотв. протоколов
$IPTABLES -N tcp_packets
$IPTABLES -N udp_packets
$IPTABLES -N icmp_packets
# безусловно разрешаем соединения по локальному интерфейсу (loopback, 
127.0.0.1)
$IPTABLES -A INPUT -i lo -j ACCEPT
$IPTABLES -A OUTPUT -o lo -j ACCEPT
# безусловно разрешаем соединения по интерфейсу ЛВС (et0)
$IPTABLES -A INPUT -i $LAN_IFACE -j ACCEPT
$IPTABLES -A OUTPUT -o $LAN_IFACE -j ACCEPT
#для подсчёта с помощью ulogd-acctd
$IPTABLES -A allowed -j ULOG --ulog-nlgroup 1 --ulog-qthreshold 
50 --ulog-prefix allow
$IPTABLES -A rejected -m limit --limit 5/minute -j 
LOG --log-prefix "REJECTED: "
$IPTABLES -A rejected -j ULOG --ulog-nlgroup 1 --ulog-qthreshold 
50 --ulog-prefix drop
#/sbin/modprobe ip_conntrack_ftp
# сюда пойдут все tcp-пакеты, и будут отброшены имеющие статус NEW, но не 
имеющие флагов SYN,ACK
# предохраняет от определенных типов атак, подробности в приложении B4 к 
Iptables Tutorial
$IPTABLES -A bad_tcp_packets -p tcp --tcp-flags SYN,ACK SYN,ACK -m 
state --state NEW -j DROP
# принимаем все пакеты, относящиеся к уже установленным соединениям
$IPTABLES -A allowed -p TCP --syn -j ACCEPT
$IPTABLES -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
# а все остальные из этой цепочки сбрасываем
$IPTABLES -A allowed -j DROP
# здесь открываем  некоторые порты, т.к. по умолчанию мы закрыли всё
# СЛушаем DNS
$IPTABLES -A tcp_packets -p TCP -s 0/0 --sport 53 -j ACCEPT                                     
# Domain Name Server
$IPTABLES -A udp_packets -p UDP -s 0/0 --sport 53 -j ACCEPT                                     
# Domain Name Server
# Принимаем
#$IPTABLES -A INPUT -i $INET_IFACE -p tcp -m tcp --dport 20 -j ACCEPT                                   
# File Transfer [Default Data]
#$IPTABLES -A INPUT -i $INET_IFACE -p udp -m udp --dport 20 -j ACCEPT                                   
# File Transfer [Default Data]
#$IPTABLES -A INPUT -i $INET_IFACE -p tcp -m tcp --dport 21 -j ACCEPT                                   
# File Transfer [Control]
#$IPTABLES -A INPUT -i $INET_IFACE -p udp -m udp --dport 21 -j ACCEPT                                   
# File Transfer [Control]
$IPTABLES -A INPUT -i $INET_IFACE -p tcp -m tcp --dport 25 -j ACCEPT                                    
# Simple Mail Transfer Protocol
$IPTABLES -A INPUT -i $INET_IFACE -p udp -m udp --dport 25 -j ACCEPT                                    
# Simple Mail Transfer Protocol
$IPTABLES -A INPUT -i $INET_IFACE -p tcp -m tcp --dport 110 -j ACCEPT                                   
# Post Office Protocol - Version 3
$IPTABLES -A INPUT -i $INET_IFACE -p udp -m udp --dport 110 -j ACCEPT                                   
# Post Office Protocol - Version 3
#$IPTABLES -A INPUT -i $INET_IFACE -p tcp -m tcp --dport 995 -j ACCEPT                                  
# pop3 protocol over TLS/SSL
#$IPTABLES -A INPUT -i $INET_IFACE -p udp -m udp --dport 995 -j ACCEPT                                  
# pop3 protocol over TLS/SSL
#$IPTABLES -A INPUT -i $INET_IFACE -p tcp -m tcp --dport 143 -j ACCEPT                                  
# IMAP2
#$IPTABLES -A INPUT -i $INET_IFACE -p udp -m udp --dport 143 -j ACCEPT                                  
# IMAP2
#$IPTABLES -A INPUT -i $INET_IFACE -p tcp -m udp --dport 220 -j ACCEPT                                  
# IMAP3
#$IPTABLES -A INPUT -i $INET_IFACE -p udp -m udp --dport 220 -j ACCEPT                                  
# IMAP3
#$IPTABLES -A INPUT -i $INET_IFACE -p tcp -m tcp --dport 993 -j ACCEPT                                  
# IMAP4
#$IPTABLES -A INPUT -i $INET_IFACE -p udp -m udp --dport 993 -j ACCEPT                                  
# IMAP4
$IPTABLES -A INPUT -i $INET_IFACE -p tcp -m tcp --dport 80 -j ACCEPT                                    
# World Wide Web HTTP
$IPTABLES -A INPUT -i $INET_IFACE -p udp -m udp --dport 80 -j ACCEPT                                    
# World Wide Web HTTP
#$IPTABLES -A INPUT -i $INET_IFACE -p tcp -m tcp --dport 443 -j ACCEPT                                  
# http protocol over TLS/SS
#$IPTABLES -A INPUT -i $INET_IFACE -p udp -m udp --dport 443 -j ACCEPT                                  
# http protocol over TLS/SS
$IPTABLES -A INPUT -i $INET_IFACE -p tcp -m tcp --dport 3389 -j ACCEPT                                  
# RDP
#$IPTABLES -A INPUT -i $INET_IFACE -p tcp -m tcp --dport 5222 -j ACCEPT                                  
# Jabber Client Connection
#$IPTABLES -A INPUT -i $INET_IFACE -p udp -m udp --dport 5222 -j ACCEPT                                  
# Jabber Client Connection
#$IPTABLES -A INPUT -i $INET_IFACE -p tcp -m tcp --dport 5269 -j ACCEPT                                  
# Jabber Server Connection
#$IPTABLES -A INPUT -i $INET_IFACE -p udp -m udp --dport 5269 -j ACCEPT                                  
# Jabber Server Connection
$IPTABLES -A INPUT -i $INET_IFACE -p tcp -m multiport --dport $VP_PORTS -j 
ACCEPT   # VideoPhone
$IPTABLES -A INPUT -i $INET_IFACE -p udp -m multiport --dport $VP_PORTS -j 
ACCEPT   # VideoPhone
# Принимаем форвардинг для установленных соединений
$IPTABLES -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT


Т.е. в инет открыты следующие порты:
53 tcp/udp
25,110 tcp/udp
80 tcp/udp
3389 tcp
389,522,1300,1718:1720,1503,11720,1731,1739,15329:15332,32700:32799 tcp/udp

Что смотрит в инет: named, postfix, apache2. Остальные: squid, proftpd, mysql 
слушают только локалку.
Для apache2 во многие каталоги можно попасть либо только из локалки, либо 
только с определённых машин локалки.
-- 
С уважением Шенцев Алексей Владимирович.
E-mail: ashen на nsrz.ru
XMPP: ashen на altlinux.org, AlexShen на jabber.ru
ICQ: 271053845


Подробная информация о списке рассылки Sysadmins