LINUX.ORG.RU
ФорумAdmin

Как найти и обезвредить рассылку спама?

 


0

5

Ребят, помогите разобраться с гадостью (за $, если у кого есть время).

OS: Debian 7.8 | iRedMail

Есть шлюз: 192.168.1.100 с apache2 на котором висел lightsquid на 80 порту и 443 редиректился на web-интерфейс почтовика RoundCube.

В логах apache2 видно, что кто-то ломал веб-сервер:

[Thu Apr 09 09:53:16 2015] [error] [client 104.243.47.26] File does not exist: /var/www/muieblackcat
[Thu Apr 09 09:53:16 2015] [error] [client 104.243.47.26] File does not exist: /var/www/phpMyAdmin
[Fri Apr 10 01:58:15 2015] [error] [client 59.108.91.237] File does not exist: /var/www/img
Хотя взломали и сам почтовик, т.к. после переустановки шлюза без web-сервера повторилось всё тоже самое.

Теперь с почтового сервера iRedMail 192.168.1.5 идёт отправка спама.

Судя по логам, отправка идёт от шлюза [192.168.1.100], от чужих IP [63.20.194.21] и самого почтовика 127.0.0.1

Apr 10 17:04:56 mail postfix/smtp[11064]: 3E89424A007E: to=<irene025@yahoo.com.tw>, relay=127.0.0.1[127.0.0.1]:10024, delay=16, delays=13/0.02/0.01/3.5, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 3C39424A0086)
Apr 10 17:04:58 mail postfix/smtpd[11075]: connect from mail.mydomain[127.0.0.1]
Apr 10 17:04:58 mail postfix/smtpd[11075]: 1B18024A0088: client=mail.mydomain[127.0.0.1]
Apr 10 17:04:58 mail postfix/cleanup[11039]: 1B18024A0088: message-id=<XCJEPIYOIJQWCWQPNTGSVF@163.com>
Apr 10 17:04:58 mail postfix/smtpd[11075]: disconnect from mail.mydomain[127.0.0.1]
Apr 10 17:04:58 mail postfix/qmgr[11021]: 1B18024A0088: from=<sqldqh@163.com>, size=7382, nrcpt=1 (queue active)
Apr 10 17:04:58 mail amavis[8783]: (08783-01) Passed SPAM {RelayedTaggedInternal}, MYNETS/MYUSERS LOCAL [192.168.1.100]:3719 [63.20.194.21] <sqldqh@163.com> -> <janeisq@yahoo.com.tw>, Queue-ID: 3E89424A007E, Message-ID: <XCJEPIYOIJQWCWQPNTGSVF@163.com>, mail_id: RZ2ZpksUjUzT, Hits: 16.795, size: 5950, queued_as: 1B18024A0088, 5356 ms
Apr 10 17:04:58 mail postfix/smtp[11065]: 3E89424A007E: to=<janeisq@yahoo.com.tw>, relay=127.0.0.1[127.0.0.1]:10024, delay=18, delays=13/0.03/0.01/5.4, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0.1]:10025): 250 2.0.0 Ok: queued as 1B18024A0088)

Почтавил логирование php5 в /etc/php5/apache2/php.ini

mail.add_x_header = On
mail.log = /var/log/php.mail.log
Но в логах пусто...

В очереди было более 6000 писем... Удалил их. Как это обезвредить?



Последнее исправление: Alpha789 (всего исправлений: 4)

переустанавливай с нуля, сайт бери из старых бекапов, сервисы впредь изолируй

anonymous
()
Ответ на: комментарий от anonymous

да сайт висел просто для lightsquid.

а как быть, что в логах почтовика не только адрес шлюза, но и адрес локалхоста? Получается, что пакость заразила и почтовик?

Alpha789
() автор топика
Ответ на: комментарий от anonymous

Шлюз-то я переустановлю за часок, это раз плюнуть. А почтовик бы не хотелось заново поднимать, поэтому и возникает вопрос заражён ли он или достаточно переустановки шлюза?

Alpha789
() автор топика

Судя по логам, отправка идёт от шлюза 192.168.1.100 и самого почтовика 127.0.0.1

С самого почтовика, вероятно, идут уведомления о проблемах доставки этого самого спама. Внимательно смотри заголовки сообщений. Мне, в этом плане, как раз, Sendmail больше нравится тем, что сообщения в очереди смотреть удобнее - они там с нормальными переносами строк. Но и в Postfix оно тоже смотрится вполне доступно.

Ну а там, где стоит web-сервер, надо сделать две вещи. Во-первых, надо подменить bin/sendmail на самописный врапер, который тебе добавит в заголовок, хотябы, имя пользователя и каталог, откуда sendmail дёрнули, во-вторых, включить mail.add_x_header в php.ini. Впрочем, вероятно, что хватит последнего, так как не на php такой гадости я давненько не встречал. Этот x_header искать потом в заголовках в очереди на почтовике.

AS ★★★★★
()
Ответ на: комментарий от Alpha789

Шлюз-то я переустановлю за часок, это раз плюнуть.

Да ладно, поломали PHP-шечку, типовое дело. Вероятность выхода из апачевой песочницы мала, даже если локальные эксплойты присутствуют незакрытые. Перестраховаться можно, но не факт, что нужно.

AS ★★★★★
()

В очереди было более 6000 писем...

А неужели ничего на адрес постмастера не свалилось ?

AS ★★★★★
()
Ответ на: комментарий от Alpha789

почтовика конфиги перекинь, туда взломавший тебя бот вряд ли будет чото прятать

А на апаче что крутилось?

anonymous
()
Ответ на: комментарий от anonymous

На апаче на 80 порту висел lightsquid - показывал статистику юзверей.

Порт 443 редиректится на веб-морду почтовика - RoundCube \ iRedAdmin

Alpha789
() автор топика
Ответ на: комментарий от AS

В случае, если в похапе не закрыты сокеты или курла, можно слать штатную функцию нафиг и слать через сокеты.

В случае, если не закрыт system/exec - можно спокойно выполнять сендмыл, опять же не трогая mail().

svr4
()
Ответ на: комментарий от svr4

В случае, если в похапе не закрыты сокеты или курла, можно слать
штатную функцию нафиг и слать через сокеты.

Можно. Это легко проверяется по логу на шлюзе.

В случае, если не закрыт system/exec - можно спокойно выполнять сендмыл, опять же не трогая mail().

«надо сделать две вещи. Во-первых, надо подменить bin/sendmail на самописный врапер». Но, как я там написал, я давно не видел, чтобы так делали.

AS ★★★★★
()
Ответ на: комментарий от AS

Я не очень в этом разбираюсь. Можно конкретнее:
- какие логи смотреть?
- где смотреть закрытые/открытые сокеты?
- что за штатная функция и как её послать?
- как слать через сокеты?
- и в щавершении «посылальной» темы: как послат нахер эту гадость навсегда? ))
- как подменить bin/sendmail?

Alpha789
() автор топика
Ответ на: комментарий от Alpha789

- какие логи смотреть ?

/var/log/maillog. Если там (на шлюзе) пусто, значит, действительно, сам по smtp шлёт. Но сомневаюсь.

- где смотреть закрытые/открытые сокеты ?

svr4 tcp-порты имел ввиду, на которых MTA на почтовике слушает. iptables -nL на шлюзе.

- что за штатная функция и как её послать?
- как слать через сокеты?

svr4 вёл речь про PHP, PHP-шную функцию mail() и прочее программирование на PHP. Подробнее за 5 минут не объяснить. Если интересно, бери книжку по PHP.

- как подменить bin/sendmail?

Написать/найти/разное bin/sendmail и положить вместо правильного. Правильный переименовать и вызывать из этого врапера.

AS ★★★★★
()
Ответ на: комментарий от AS

Написать/найти/разное bin/sendmail и положить вместо правильного.

Что-нибудь такое:

#!/usr/bin/perl

use Env;
use Sys::Syslog;

my $ScriptName = "sendmail-wraper";
my $SysLogFacility = "mail";
my $SysLogPriority = "info";

my $mailprog = '/usr/sbin/sendmail.kasbfakjsfbk';

my $uid = $>;
my @info = getpwuid($uid);

openlog("$ScriptName" . "[$$]", "ndelay", $SysLogFacility);

syslog($SysLogPriority, "Directory: $PWD, info: @info, args: @ARGV");

if (! open (MAIL,"|$mailprog @ARGV")) {
    syslog("err", "cannot open $mailprog: $!");
    closelog;
    die "cannot open $mailprog: $! \n";
}

closelog;

print MAIL "X-Abuse-Mailer-Call-Dir: running from $PWD\n";

while (<STDIN>) {
        print MAIL;
}

close (MAIL);

Оригинальный sendmail переименовать в соответствии со значением $mailprog, которое сделать от балды.

AS ★★★★★
()
Ответ на: комментарий от AS

В логах /var/log/mail.* пусто.

Порты на шлюзе:

iptables -nL                             
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state NEW

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            192.168.1.5          tcp dpt:110
ACCEPT     tcp  --  0.0.0.0/0            192.168.1.5          tcp dpt:25
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 
Когда закрываю эти порты, тогда в логах ничего не пишется от отправке спама.

По поводу штатной функции mail() в PHP. Если я правильно понял, то надо включить логирование в /etc/php5/apache2/php.ini

mail.add_x_header = On
mail.log = /var/log/php.mail.log
Но в логах /var/log/php.mail.log пусто.

Sendmail. У меня такого нет:

locate sendmail
/etc/fail2ban/action.d/sendmail-buffered.conf
/etc/fail2ban/action.d/sendmail-whois-lines.conf
/etc/fail2ban/action.d/sendmail-whois.conf
/etc/fail2ban/action.d/sendmail.conf
/usr/lib/sendmail
/usr/sbin/sendmail
/usr/share/apache2/roundcubemail-1.0.4/program/steps/mail/sendmail.inc
/usr/share/doc/amavisd-new/README.sendmail-dual.gz
/usr/share/doc/amavisd-new/README.sendmail-dual.old.gz
/usr/share/doc/amavisd-new/README.sendmail.gz
/usr/share/logwatch/default.conf/services/sendmail-largeboxes.conf
/usr/share/logwatch/default.conf/services/sendmail.conf
/usr/share/logwatch/scripts/services/sendmail
/usr/share/logwatch/scripts/services/sendmail-largeboxes
/usr/share/man/man1/sendmail.1.gz
/usr/share/perl5/Mail/Mailer/sendmail.pm
и в /usr/sbin/sendmail
cat /usr/sbin/sendmail
#!/bin/bash
logger -p mail.info sendmail-ext-log: site=${HTTP_HOST}, client=${REMOTE_ADDR}, script=${SCRIPT_NAME}, pwd=${PWD}, uid=${UID}, user=$(whoami)

Alpha789
() автор топика
Ответ на: комментарий от Alpha789

Так и обращаюсь же за помощью, готов отблагодарить.

Судя по приведенному выше списку непонятных тебе вещей, разжевывание всего этого и последующее вытягивание из тебя информации по крупицам займет непомерно много времени.

Удаленный доступ можешь организовать?

edigaryev ★★★★★
()
Ответ на: комментарий от Alpha789

и в /usr/sbin/sendmail

Ну так sbin. Правда вот содержимое странное. С одной стороны намекает, что у тебя там нечто, похожее на приведённый мной врапер, но на bash, а не на perl, с другой, что это что-то недоделанное, так как одного вызова logger тут мало.

В общем, edigaryev правильно про время написал, тут надо начинать сначала почти.

AS ★★★★★
()

Я бы начал с TARPIT или блокировки на 25 порт localhost-а и посмотрел какой процесс на этом попадется. Пока он на SYN висит можно pstree & lsof посмотреть что и как.

vel ★★★★★
()
Ответ на: комментарий от vel

Пока порты на шлюзе закрыты, левых процессов вjрое бы нет:

master    3746        0   12u  IPv4   8173      0t0  TCP *:25 (LISTEN)
master    3746        0   13u  IPv6   8175      0t0  TCP *:25 (LISTEN)
Как только открываю порты на шлюзе, так сразу появляются какие-то процессы левые:
master    3746        0   12u  IPv4   8173      0t0  TCP *:25 (LISTEN)
master    3746        0   13u  IPv6   8175      0t0  TCP *:25 (LISTEN)
smtpd     3876      104    6u  IPv4   8173      0t0  TCP *:25 (LISTEN)
smtpd     3876      104    7u  IPv6   8175      0t0  TCP *:25 (LISTEN)
smtp      3978      104   16u  IPv4   9798      0t0  TCP 192.168.1.5:37502->27.123.206.55:25 (ESTABLISHED)
smtp      3979      104   16u  IPv4   9831      0t0  TCP 192.168.1.5:57815->203.188.197.111:25 (ESTABLISHED)
smtp      3980      104   16u  IPv4   9844      0t0  TCP 192.168.1.5:37743->203.188.197.119:25 (ESTABLISHED)
smtp      3981      104   16u  IPv4  11310      0t0  TCP 192.168.1.5:37744->203.188.197.119:25 (ESTABLISHED)
smtp      3983      104   16u  IPv4   9876      0t0  TCP 192.168.1.5:37748->203.188.197.119:25 (ESTABLISHED)
Буду разбираться что за процессы...

Alpha789
() автор топика
Ответ на: комментарий от edigaryev

По шлюзу. Ранее был редирект 443 порта на вебморду iRedAdmin и iRedMail. Видимо, так и взломали.

iptables-save
# Generated by iptables-save v1.4.14 on Sat Apr 11 13:28:51 2015
*mangle
:PREROUTING ACCEPT [208:16888]
:INPUT ACCEPT [198:14696]
:FORWARD ACCEPT [8:2092]
:OUTPUT ACCEPT [157:12127]
:POSTROUTING ACCEPT [165:14219]
COMMIT
# Completed on Sat Apr 11 13:28:51 2015
# Generated by iptables-save v1.4.14 on Sat Apr 11 13:28:51 2015
*nat
:PREROUTING ACCEPT [104:6253]
:INPUT ACCEPT [102:6153]
:OUTPUT ACCEPT [1:73]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -s 192.168.1.5/32 -p tcp -j ACCEPT
-A PREROUTING -d x.x.x.x/32 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.1.5
-A PREROUTING -d x.x.x.x/32 -p tcp -m tcp --dport 110 -j DNAT --to-destination 192.168.1.5
-A OUTPUT -d x.x.x.x/32 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.1.5
-A OUTPUT -d x.x.x.x/32 -p tcp -m tcp --dport 110 -j DNAT --to-destination 192.168.1.5
-A POSTROUTING -d 192.168.1.5/32 -p tcp -m tcp --dport 25 -j SNAT --to-source 192.168.1.1
-A POSTROUTING -d 192.168.1.5/32 -p tcp -m tcp --dport 110 -j SNAT --to-source 192.168.1.1
-A POSTROUTING -o eth1 -j SNAT --to-source x.x.x.x
COMMIT
# Completed on Sat Apr 11 13:28:51 2015
# Generated by iptables-save v1.4.14 on Sat Apr 11 13:28:51 2015
*filter
:INPUT ACCEPT [93:5580]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [166:13475]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -m state --state NEW -j ACCEPT
-A FORWARD -d 192.168.1.5/32 -i eth1 -o eth0 -p tcp -m tcp --dport 110 -j ACCEPT
-A FORWARD -d 192.168.1.5/32 -i eth1 -o eth0 -p tcp -m tcp --dport 25 -j ACCEPT
-A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o eth1 -j ACCEPT
-A FORWARD -i eth1 -o eth1 -j REJECT --reject-with icmp-port-unreachable
COMMIT
# Completed on Sat Apr 11 13:28:51 2015
По netstat
netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 gateway.domain.:ssh 43.255.191.158:52277    ESTABLISHED
tcp        0    160 gateway.domain.:ssh 2.92.164.12:47096       ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  4      [ ]         DGRAM                    6811     /dev/log
unix  3      [ ]         STREAM     CONNECTED     38347    
unix  3      [ ]         STREAM     CONNECTED     38346    
unix  2      [ ]         DGRAM                    32177    
unix  2      [ ]         DGRAM                    5563     
unix  3      [ ]         STREAM     CONNECTED     5427     
unix  3      [ ]         STREAM     CONNECTED     5426     
unix  3      [ ]         DGRAM                    1991     
unix  3      [ ]         DGRAM                    1990  
netstat -antulp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1867/rpcbind    
tcp        0      0 0.0.0.0:36786           0.0.0.0:*               LISTEN      1898/rpc.statd  
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      2555/sshd       
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2583/exim4      
tcp        0    288 x.x.x.x:22		    2.92.164.12:47096       ESTABLISHED 5474/0          
tcp        0      0 x.x.x.x:22        	    43.255.191.158:55355    ESTABLISHED 6152/sshd: root [pr
tcp6       0      0 :::111                  :::*                    LISTEN      1867/rpcbind    
tcp6       0      0 :::22                   :::*                    LISTEN      2555/sshd       
tcp6       0      0 ::1:25                  :::*                    LISTEN      2583/exim4      
tcp6       0      0 :::53666                :::*                    LISTEN      1898/rpc.statd  
udp        0      0 0.0.0.0:38026           0.0.0.0:*                           1898/rpc.statd  
udp        0      0 0.0.0.0:770             0.0.0.0:*                           1867/rpcbind    
udp        0      0 127.0.0.1:802           0.0.0.0:*                           1898/rpc.statd  
udp        0      0 0.0.0.0:111             0.0.0.0:*                           1867/rpcbind    
udp6       0      0 :::770                  :::*                                1867/rpcbind    
udp6       0      0 :::49960                :::*                                1898/rpc.statd  
udp6       0      0 :::111                  :::*                                1867/rpcbind 
Получается, что шлюз не заражён. а просто по открытым портам ломятся на почтовик к какой-то учётной\системной записи, которая была взломана.

Alpha789
() автор топика
Ответ на: комментарий от vel

На почтовике добавил правило:

iptables -A OUTPUT -p tcp -m tcp --dport 25 -j LOG --log-uid 
В логах
Apr 11 13:50:41 mail kernel: [ 3101.747954] IN= OUT=eth0 SRC=192.168.1.5 DST=203.188.197.119 LEN=167 TOS=0x00 PREC=0x00 TTL=64 ID=37486 DF PROTO=TCP SPT=39399 DPT=25 WINDOW=455 RES=0x00 ACK PSH URGP=0 UID=104 GID=107 
Apr 11 13:50:42 mail kernel: [ 3102.040088] IN= OUT=eth0 SRC=192.168.1.5 DST=203.188.197.119 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=37487 DF PROTO=TCP SPT=39399 DPT=25 WINDOW=500 RES=0x00 ACK URGP=0 UID=104 GID=107 
Apr 11 13:50:42 mail kernel: [ 3102.067948] IN= OUT=eth0 SRC=192.168.1.5 DST=203.188.197.119 LEN=83 TOS=0x00 PREC=0x00 TTL=64 ID=37488 DF PROTO=TCP SPT=39399 DPT=25 WINDOW=500 RES=0x00 ACK PSH URGP=0 UID=104 GID=107 
Apr 11 13:50:42 mail kernel: [ 3102.068070] IN= OUT=eth0 SRC=192.168.1.5 DST=203.188.197.119 LEN=52 TOS=0x00 PREC=0x00 TTL=64 ID=37489 DF PROTO=TCP SPT=39399 DPT=25 WINDOW=500 RES=0x00 ACK FIN URGP=0 UID=104 GID=107 
Но UID=104 GID=107 - это postfix!

Alpha789
() автор топика
Ответ на: комментарий от edigaryev

Получается, если этот ip мой 2.92.164.12, то кто-то (c 43.255.191.158) постоянно ломает шлюз после переустановки:

tcp        0      0 x.x.x.x:22        	    43.255.191.158:55355    ESTABLISHED 6152/sshd: root [pr
Два раза блин ОС переустанавливал.... Как он пароль получил? Образ диска мне подсунул левый или же я с протрояненой винды заходил...

Alpha789
() автор топика
Ответ на: комментарий от Alpha789

Правила конечно упоротые. Например:

-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth0 -m state --state NEW -j ACCEPT

не имеет смысла (как и -m state --state NEW в третьем правиле), ибо:

:INPUT ACCEPT [93:5580]

Наверное все-таки задумывалось установить полиси INPUT в DROP.

Ну и так далее.

edigaryev ★★★★★
()
Ответ на: комментарий от edigaryev

Переустановил шлюз. Никаких левых сессий нет. Но при открытии 25-го прота всё равно лезет эта хрень.

tail -f /var/log/mail.info
Apr 11 21:34:51 mail postfix/bounce[3891]: 2478724A0085: sender non-delivery notification: 9E14D24A0084
Apr 11 21:34:51 mail postfix/qmgr[3724]: 9E14D24A0084: from=<>, size=10600, nrcpt=1 (queue active)
Apr 11 21:34:51 mail postfix/qmgr[3724]: 2478724A0085: removed
Apr 11 21:34:51 mail postfix/qmgr[3724]: AE79424A008A: from=<>, size=10683, nrcpt=1 (queue active)
Apr 11 21:34:51 mail postfix/bounce[3879]: 9079224A0086: sender non-delivery notification: AE79424A008A
Apr 11 21:34:51 mail postfix/qmgr[3724]: 9079224A0086: removed
Apr 11 21:34:53 mail postfix/smtp[3881]: 3E50D24A0088: to=<cojvwwm@163.com>, relay=163mx03.mxmail.netease.com[220.181.14.163]:25, delay=2.5, delays=0.07/0/1.2/1.2, dsn=5.0.0, status=bounced (host 163mx03.mxmail.netease.com[220.181.14.163] said: 550 User not found: cojvwwm@163.com (in reply to RCPT TO command))
Apr 11 21:34:53 mail postfix/smtpd[3816]: connect from unknown[192.168.1.1]
Apr 11 21:34:53 mail postfix/qmgr[3724]: 3E50D24A0088: removed

Вывод iptables-save

# Generated by iptables-save v1.4.21 on Sat Apr 11 21:48:53 2015
*nat
:PREROUTING ACCEPT [4255:304666]
:INPUT ACCEPT [264:18754]
:OUTPUT ACCEPT [14:851]
:POSTROUTING ACCEPT [3:180]
-A PREROUTING -s 192.168.1.5/32 -p tcp -j ACCEPT
-A PREROUTING -d xx.xx.xx.xx/32 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.1.5
-A PREROUTING -d xx.xx.xx.xx/32 -p tcp -m tcp --dport 110 -j DNAT --to-destination 192.168.1.5
-A OUTPUT -d xx.xx.xx.xx/32 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.1.5
-A OUTPUT -d xx.xx.xx.xx/32 -p tcp -m tcp --dport 110 -j DNAT --to-destination 192.168.1.5
-A POSTROUTING -d 192.168.1.5/32 -p tcp -m tcp --dport 25 -j SNAT --to-source 192.168.1.1
-A POSTROUTING -d 192.168.1.5/32 -p tcp -m tcp --dport 110 -j SNAT --to-source 192.168.1.1
-A POSTROUTING -o eth1 -j SNAT --to-source xx.xx.xx.xx
COMMIT
# Completed on Sat Apr 11 21:48:53 2015
# Generated by iptables-save v1.4.21 on Sat Apr 11 21:48:53 2015
*filter
:INPUT DROP [1067:72785]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -m state --state INVALID -j DROP
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -i eth1 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth1 -p tcp -m multiport --ports 49152:65535 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A FORWARD -d 192.168.1.5/32 -i eth1 -o eth0 -p tcp -m tcp --dport 110 -j ACCEPT
-A FORWARD -d 192.168.1.5/32 -i eth1 -o eth0 -p tcp -m tcp --dport 25 -j ACCEPT
-A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
-A FORWARD -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -m state --state INVALID -j DROP
-A FORWARD -i eth0 -o eth1 -j ACCEPT
-A FORWARD -i eth1 -o eth0 -j REJECT --reject-with icmp-port-unreachable
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -o eth0 -j ACCEPT
-A OUTPUT -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
COMMIT
# Completed on Sat Apr 11 21:48:53 2015
# Generated by iptables-save v1.4.21 on Sat Apr 11 21:48:53 2015
*mangle
:PREROUTING ACCEPT [54853:38154967]
:INPUT ACCEPT [4949:467459]
:FORWARD ACCEPT [47565:37515725]
:OUTPUT ACCEPT [2157:238036]
:POSTROUTING ACCEPT [49715:37753481]
COMMIT
# Completed on Sat Apr 11 21:48:53 2015

Alpha789
() автор топика
Ответ на: комментарий от vel

Есть что подозрительное на почтовике?

netstat -antulp

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:10024         0.0.0.0:*               LISTEN      2113/amavisd-new (m
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      3049/mysqld     
tcp        0      0 0.0.0.0:53258           0.0.0.0:*               LISTEN      1626/rpc.statd  
tcp        0      0 127.0.0.1:11211         0.0.0.0:*               LISTEN      2449/memcached  
tcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN      3422/dovecot    
tcp        0      0 127.0.0.1:9998          0.0.0.0:*               LISTEN      2113/amavisd-new (m
tcp        0      0 127.0.0.1:10031         0.0.0.0:*               LISTEN      3450/perl       
tcp        0      0 0.0.0.0:143             0.0.0.0:*               LISTEN      3422/dovecot    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1595/rpcbind    
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      2133/apache2    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3164/sshd       
tcp        0      0 0.0.0.0:24              0.0.0.0:*               LISTEN      3422/dovecot    
tcp        0      0 0.0.0.0:538             0.0.0.0:*               LISTEN      2358/gdomap     
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      2133/apache2    
tcp        0      0 0.0.0.0:4190            0.0.0.0:*               LISTEN      3422/dovecot    
tcp        0      0 127.0.0.1:20000         0.0.0.0:*               LISTEN      2083/sogod      
tcp        0      0 0.0.0.0:993             0.0.0.0:*               LISTEN      3422/dovecot    
tcp        0      0 127.0.0.1:7777          0.0.0.0:*               LISTEN      2408/python     
tcp        0      0 0.0.0.0:995             0.0.0.0:*               LISTEN      3422/dovecot    
tcp        0      0 127.0.0.1:56263         127.0.0.1:3306          ESTABLISHED 3461/perl       
tcp        0      0 127.0.0.1:3306          127.0.0.1:56266         ESTABLISHED 3049/mysqld     
tcp        0      0 127.0.0.1:3306          127.0.0.1:56267         ESTABLISHED 3049/mysqld     
tcp        0      0 127.0.0.1:3306          127.0.0.1:56263         ESTABLISHED 3049/mysqld     
tcp        0      0 127.0.0.1:56517         127.0.0.1:3306          TIME_WAIT   -               
tcp        0      0 127.0.0.1:3306          127.0.0.1:56310         ESTABLISHED 3049/mysqld     
tcp        1      0 127.0.0.1:47935         127.0.0.1:10025         CLOSE_WAIT  3125/amavisd-new (c
tcp        0      0 127.0.0.1:3306          127.0.0.1:56284         ESTABLISHED 3049/mysqld     
tcp        0      0 127.0.0.1:56518         127.0.0.1:3306          TIME_WAIT   -               
tcp        0      0 127.0.0.1:3306          127.0.0.1:56361         ESTABLISHED 3049/mysqld     
tcp        1      0 127.0.0.1:47915         127.0.0.1:10025         CLOSE_WAIT  3124/amavisd-new (c
tcp        0      0 127.0.0.1:56284         127.0.0.1:3306          ESTABLISHED 3830/perl       
tcp        0      0 127.0.0.1:56307         127.0.0.1:3306          ESTABLISHED 3125/amavisd-new (c
tcp        1      0 127.0.0.1:47937         127.0.0.1:10025         CLOSE_WAIT  3131/amavisd-new (c
tcp        0      0 127.0.0.1:3306          127.0.0.1:56390         ESTABLISHED 3049/mysqld     
tcp        0      0 192.168.1.5:22          192.168.1.1:56812       ESTABLISHED 4324/0          
tcp        0      0 127.0.0.1:56266         127.0.0.1:3306          ESTABLISHED 3462/perl       
tcp        0      0 127.0.0.1:56310         127.0.0.1:3306          ESTABLISHED 3123/amavisd-new (c
tcp        0      0 127.0.0.1:56390         127.0.0.1:3306          ESTABLISHED 3124/amavisd-new (c
tcp        1      0 127.0.0.1:47936         127.0.0.1:10025         CLOSE_WAIT  3123/amavisd-new (c
tcp        0      0 127.0.0.1:56267         127.0.0.1:3306          ESTABLISHED 3465/perl       
tcp        0      0 127.0.0.1:56361         127.0.0.1:3306          ESTABLISHED 3131/amavisd-new (c
tcp        0      0 127.0.0.1:3306          127.0.0.1:56307         ESTABLISHED 3049/mysqld     
tcp6       0      0 :::110                  :::*                    LISTEN      3422/dovecot    
tcp6       0      0 :::54862                :::*                    LISTEN      1626/rpc.statd  
tcp6       0      0 :::143                  :::*                    LISTEN      3422/dovecot    
tcp6       0      0 :::111                  :::*                    LISTEN      1595/rpcbind    
tcp6       0      0 :::22                   :::*                    LISTEN      3164/sshd       
tcp6       0      0 :::24                   :::*                    LISTEN      3422/dovecot    
tcp6       0      0 :::4190                 :::*                    LISTEN      3422/dovecot    
tcp6       0      0 :::993                  :::*                    LISTEN      3422/dovecot    
tcp6       0      0 :::995                  :::*                    LISTEN      3422/dovecot    
udp        0      0 0.0.0.0:538             0.0.0.0:*                           2358/gdomap     
udp        0      0 0.0.0.0:922             0.0.0.0:*                           1595/rpcbind    
udp        0      0 127.0.0.1:954           0.0.0.0:*                           1626/rpc.statd  
udp        0      0 127.0.0.1:11211         0.0.0.0:*                           2449/memcached  
udp        0      0 0.0.0.0:111             0.0.0.0:*                           1595/rpcbind    
udp        0      0 0.0.0.0:32962           0.0.0.0:*                           1626/rpc.statd  
udp6       0      0 :::922                  :::*                                1595/rpcbind    
udp6       0      0 :::36912                :::*                                1626/rpc.statd  
udp6       0      0 :::111                  :::*                                1595/rpcbind 

Alpha789
() автор топика
Ответ на: комментарий от anonymous

О как... я то думал, что эта запись о том, что «соединение от шлюза», то есть какая-то пакость на шлюзе шлёт письма.

Alpha789
() автор топика
Ответ на: комментарий от Alpha789

в первом посте у шлюза другой адрес. А почему у тебя на шлюзе вообще есть торчащий за пределы локалхоста почтовик, опенрелей поди, ежели в локалке есть ещё один почтовик?

anonymous
()
Ответ на: комментарий от anonymous

Да, был адрес 100. Когда переустанавливал ОС, поменял адрес на 1. На шлюзе есть штатный exim, он ставится вместе с системой.

Alpha789
() автор топика
Ответ на: комментарий от edigaryev

Ладно. Поставил новый почтовик, из бекапов думаю восстановлю.

Но опять кто-то ломится!

Apr 12 10:23:04 mail postfix/smtpd[15036]: NOQUEUE: reject: RCPT from unknown[192.168.1.1]: 504 5.5.2 <xx.xx.xx.xx>: Helo command rejected: need fully-qualified hostname; from=<tjdwptqentiggx@yahoo.com.jp> to=<achang1111@yahoo.com.tw> proto=SMTP helo=<xx.xx.xx.xx>
Apr 12 10:23:05 mail postfix/smtpd[15036]: NOQUEUE: reject: RCPT from unknown[192.168.1.1]: 504 5.5.2 <xx.xx.xx.xx>: Helo command rejected: need fully-qualified hostname; from=<tjdwptqentiggx@yahoo.com.jp> to=<battlejking@yahoo.com.tw> proto=SMTP helo=<xx.xx.xx.xx>
Apr 12 10:23:07 mail postfix/smtpd[15036]: NOQUEUE: reject: RCPT from unknown[192.168.1.1]: 504 5.5.2 <xx.xx.xx.xx>: Helo command rejected: need fully-qualified hostname; from=<tjdwptqentiggx@yahoo.com.jp> to=<0h9q@yahoo.com.tw> proto=SMTP helo=<xx.xx.xx.xx>

Ну где дыра-то? Дистрибутив на шлюз ставил скаченный с debian.org используя Bittorrent.

Alpha789
() автор топика

А почему бы не перенастроить постфикс так, что бы почта отправлялась только если клиент авторизовался? При чем запретить без авторизации слать письма даже с локалхоста. Так хотя бы перекроешь поток спама

Покажи заодно /etc/postfix/main.cf

JB ★★★★★
()
Последнее исправление: JB (всего исправлений: 1)
Ответ на: комментарий от Alpha789

Если коротко, в голове

Иди на 192.168.1.1, смотри почтовые логи на нём. Откуда пришло письмо, и почему 192.168.1.1 его принял

router ★★★★★
()
Ответ на: комментарий от Alpha789

У вас зараза на клиентском компе, а в логах он выглядит как 192.168.1.1 потому, что вместо split horizon DNS вы сделали на шлюзе NAT loopback:

-A POSTROUTING -d 192.168.1.5/32 -p tcp -m tcp --dport 25 -j SNAT --to-source 192.168.1.1

И да, не надо вот так вот делать:

-A INPUT -i eth0 -j ACCEPT

Доступ должен быть максимально ограничен потому что DNS rebinding attak.

rubic
()
Ответ на: комментарий от rubic

Значит правильно так?

iptables -t nat -A POSTROUTING -d 192.168.1.5 -p tcp --dport 25 -j MASQUERADE

Может кто-то скинуть пример правильных настроек iptables?

в том числе с проброслм портов, а брал из примеров на блогах сисалминов и получается все равно е то.

Alpha789
() автор топика
Ответ на: комментарий от Alpha789

Нет, это хрен с редькой и проблему не решает. Если лень по очереди выключать клиентские компы и смотреть логи, то настройте внутренний DNS сервер так чтобы из локальной сети mail.ns-*******.ru разрешался в 192.168.1.5, а снаружи - в 80.x.x.115 и уберите на шлюзе это:

-A POSTROUTING -d 192.168.1.5/32 -p tcp -m tcp --dport 25 -j SNAT --to-source 192.168.1.1
-A POSTROUTING -d 192.168.1.5/32 -p tcp -m tcp --dport 110 -j SNAT --to-source 192.168.1.1

Т. е. сделайте split-horizon DNS. Тогда сразу увидите в логах с какого локального IP левая почта лезет.

rubic
()
Ответ на: комментарий от rubic

не лень... все компы выключил. настроил bind. со шлюза идёт пакость «gateway»

Apr 12 12:58:36 mail postfix/smtpd[4246]: NOQUEUE: reject: RCPT from gateway.mydomain.ru[192.168.1.1]: 504 5.5.2 <XX.XX.XX.XX>: Helo command rejected: need fully-qualified hostname; from=<srlwwhzgmtqnn@mail2000.com.tw> to=<x123794@yahoo.com.tw> proto=SMTP helo=<XX.XX.XX.XX>
Apr 12 12:58:37 mail postfix/smtpd[4242]: NOQUEUE: reject: RCPT from gateway.mydomain.ru[192.168.1.1]: 504 5.5.2 <XX.XX.XX.XX>: Helo command rejected: need fully-qualified hostname; from=<ffdtubuykurpte@sfilc.com> to=<love555554@yahoo.com.tw> proto=SMTP helo=<XX.XX.XX.XX>
Apr 12 12:58:37 mail postfix/smtpd[4244]: NOQUEUE: reject: RCPT from gateway.mydomain.ru[192.168.1.1]: 504 5.5.2 <XX.XX.XX.XX>: Helo command rejected: need fully-qualified hostname; from=<wrbgwaexhmxzq@yahoo.com.hk> to=<yakuooo@yahoo.com.tw> proto=SMTP helo=<XX.XX.XX.XX>
Apr 12 12:58:37 mail postfix/smtpd[4246]: NOQUEUE: reject: RCPT from gateway.mydomain.ru[192.168.1.1]: 504 5.5.2 <XX.XX.XX.XX>: Helo command rejected: need fully-qualified hostname; from=<srlwwhzgmtqnn@mail2000.com.tw> to=<zone720628@yahoo.com.tw> proto=SMTP helo=<XX.XX.XX.XX>
Alpha789
() автор топика
Ответ на: комментарий от JB

Да, авторизацию надо будет настроить. Но хочется пока это оставить так, чтобы смотреть убита гадость или нет. Конфиг постфикса большой, выложил сюда: http://pastebin.com/aPqscVTi

Alpha789
() автор топика
Ответ на: комментарий от anonymous

Так шлюз\клиентские машинки не заражёны? Осталось только правильно настроить iptables, наверно, и авторицацию, как упоминалось JB.

Alpha789
() автор топика
Ответ на: комментарий от Alpha789

сорри, неправильно понял, это ты сам себе шлёшь. netstat -tlepna показывает что-нибудь? у рута пароль не 123?

anonymous
()
Ответ на: комментарий от router

На шлюзе только exim стоит. Смотрю его логи - там ничего особенного6

cat /var/log/exim4/mainlog
2015-04-12 10:00:54 Start queue run: pid=1998
2015-04-12 10:00:54 End queue run: pid=1998
2015-04-12 10:30:54 Start queue run: pid=2027
2015-04-12 10:30:54 End queue run: pid=2027
2015-04-12 11:00:54 Start queue run: pid=2031
2015-04-12 11:00:54 End queue run: pid=2031
2015-04-12 11:30:54 Start queue run: pid=2172
2015-04-12 11:30:54 End queue run: pid=2172
2015-04-12 12:00:54 Start queue run: pid=2542
2015-04-12 12:00:54 End queue run: pid=2542
2015-04-12 12:30:54 Start queue run: pid=2905
2015-04-12 12:30:54 End queue run: pid=2905
2015-04-12 13:00:54 Start queue run: pid=2971
2015-04-12 13:00:54 End queue run: pid=2971

Alpha789
() автор топика
Ответ на: комментарий от anonymous

показывает!

netstat -tlepna
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode       PID/Program name
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      0          10945       442/rpcbind     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      0          11599       467/sshd        
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      0          11690       733/exim4       
tcp        0      0 0.0.0.0:45950           0.0.0.0:*               LISTEN      106        11389       451/rpc.statd   
tcp        0    248 192.168.1.1:22          192.168.1.10:37344      ESTABLISHED 0          56915       2975/sshd: vadmin [
tcp        0      0  xx.xx.xx.xx:22        218.65.30.107:52288     ESTABLISHED 0          57949       3037/sshd: root [pr
tcp6       0      0 :::111                  :::*                    LISTEN      0          10948       442/rpcbind     
tcp6       0      0 :::22                   :::*                    LISTEN      0          11601       467/sshd        
tcp6       0      0 ::1:25                  :::*                    LISTEN      0          11691       733/exim4       
tcp6       0      0 :::43583                :::*                    LISTEN      106        11393

значит ли это, что пароль рута взломали?

Alpha789
() автор топика
Ответ на: комментарий от Alpha789

Значит, как уже сказал rubic, дело в твоих трансляциях.

Добавь хоть логирование перед ними, если внутренний DNS не можешь поднять

Правило то же, но цель - LOG ( iptables <blabalbla> -j LOG )

router ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.