Есть сервер на FreeBSD 5.2.Relise на нем www+ftp+mail+ssh.
У меня появился скрипт irc и геренит большой трафик, похоже мне его через ssh запихнули...
Собственно не получается:1. Обновить ssh демон не получается, и вообще обновить установленные приложения, ssh что то не видно в установленных портах как он может обзыватся :(
cvsup сегодня запускал, а с portupdates не получается что то :(
Обновление базы данных портов не получается:На команду
#portsdb -Uu
Идут ошибки:===========
Updating the ports index ... Generating INDEX.tmp - please wait.."Makefile", line 61: warning: String comparison operator should be either == or !=
"Makefile", line 61: Malformed conditional (defined(PHP_VERS) && ${PHP_VERS} < 420)
"Makefile", line 61: Need an operator
"Makefile", line 63: if-less endif
"Makefile", line 63: Need an operator
make: fatal errors encountered -- cannot continue
===> databases/pear-MDB2 failed
*** Error code 1
1 error********************************************************************
Before reporting this error, verify that you are running a supported
version of FreeBSD (see http://www.FreeBSD.org/ports/) and that you
have a complete and up-to-date ports collection. (INDEX builds are
not supported with partial or out-of-date ports collections -- in
particular, if you are using cvsup, you must cvsup the "ports-all"
collection, and have no "refuse" files.) If that is the case, then
report the failure to ports@FreeBSD.org together with relevant
details of your ports configuration (including FreeBSD version,
your architecture, your environment, and your /etc/make.conf
settings, especially compiler flags and WITH/WITHOUT settings).Note: the latest pre-generated version of INDEX may be fetched
automatically with "make fetchindex".
*********************************************************************** Error code 1
Stop in /usr/ports.
*** Error code 1Stop in /usr/ports.
failed to generate INDEX!
index generation error===========
2. И ipfw что то не получается настроить :( чтобы только с 2х айпишников пускал к себе по ssh
# ipfw show
ipfw: getsockopt(IP_FW_GET): Protocol not availableHELP... А то погргяз в мануалах, запутался, а нужно срочняк прикрыть дырку, второй раз уже этот скрипт запускается, я его убираю перезагрузкой апача... но это все временное решение :(
>Собственно не получается:
>
>1. Обновить ssh демон не получается, и вообще обновить установленные приложения, ssh
>что то не видно в установленных портах как он может обзыватсяSSH установился при инсталяции фри и его в списке установленных программ ты не увидишь. Тут вариант такой: ставишь из портов новый sshd, вешаешь его на другой порт (например 2222). Проверяешь работу, старый отключаешь, новый перевешиваешь на 22 порт.
>cvsup сегодня запускал, а с portupdates не получается что то :(
>Обновление базы данных портов не получается:
>
>На команду
>#portsdb -Uu
>Идут ошибки:
>
>===========
>Updating the ports index ... Generating INDEX.tmp - please wait.."Makefile", line 61:
>warning: String comparison operator should be either == or !=
>"Makefile", line 61: Malformed conditional (defined(PHP_VERS) && ${PHP_VERS} < 420)
>"Makefile", line 61: Need an operator
>"Makefile", line 63: if-less endif
>"Makefile", line 63: Need an operator
>make: fatal errors encountered -- cannot continue
>===> databases/pear-MDB2 failed
>*** Error code 1
>1 errorобнови сначала порты cvsup -g -L2 /путь/до/supfile
Заходишь в /usr/ports/sysutils/portupgrade
делаешь make deinstall
далее make install
Потом апгрейдь что надо.
>>1. Обновить ssh демон не получается, и вообще обновить установленные приложения, ssh
>>что то не видно в установленных портах как он может обзыватся
>
>SSH установился при инсталяции фри и его в списке установленных программ ты
>не увидишь. Тут вариант такой: ставишь из портов новый sshd, вешаешь
>его на другой порт (например 2222). Проверяешь работу, старый отключаешь, новый
>перевешиваешь на 22 порт.
Если я буду ставить с портов, он же сам на 22 и сядет или как его к др. прикрутить порту?
>обнови сначала порты cvsup -g -L2 /путь/до/supfile
>Заходишь в /usr/ports/sysutils/portupgrade
>делаешь make deinstall
>далее make install
>Потом апгрейдь что надо.Сделал, не получается :(
Я так пнимаю ноужно Makefile другой или INDEX какойто кривой cvsup делает :(
После переустановки portupgrade..# portsdb -Uu
Updating the ports index ... Generating INDEX.tmp - please wait.."Makefile", line 61: warning: String comparison operator should be either == or !=
"Makefile", line 61: Malformed conditional (defined(PHP_VERS) && ${PHP_VERS} < 420)
"Makefile", line 61: Need an operator
"Makefile", line 63: if-less endif
"Makefile", line 63: Need an operator
make: fatal errors encountered -- cannot continue
===> databases/pear-MDB2 failed
*** Error code 1
1 error********************************************************************
Before reporting this error, verify that you are running a supported
version of FreeBSD (see http://www.FreeBSD.org/ports/) and that you
have a complete and up-to-date ports collection. (INDEX builds are
not supported with partial or out-of-date ports collections -- in
particular, if you are using cvsup, you must cvsup the "ports-all"
collection, and have no "refuse" files.) If that is the case, then
report the failure to ports@FreeBSD.org together with relevant
details of your ports configuration (including FreeBSD version,
your architecture, your environment, and your /etc/make.conf
settings, especially compiler flags and WITH/WITHOUT settings).Note: the latest pre-generated version of INDEX may be fetched
automatically with "make fetchindex".
*********************************************************************** Error code 1
Stop in /usr/ports.
*** Error code 1Stop in /usr/ports.
failed to generate INDEX!
portsdb: index generation error
>Если я буду ставить с портов, он же сам на 22 и
>сядет или как его к др. прикрутить порту?
не сядет :)
portinstall sshd
потом в /usr/local/etc/ssh/sshd_config указываешь ему порт 2222
запускаешь скриптом из /usr/local/etc/rc.d/sshd start
и он у тебя висит на 2222 порту.
(машинка случайно не удалённая?)>>обнови сначала порты cvsup -g -L2 /путь/до/supfile
>>Заходишь в /usr/ports/sysutils/portupgrade
>>делаешь make deinstall
>>далее make install
>>Потом апгрейдь что надо.
>
>Сделал, не получается :(
>Я так пнимаю ноужно Makefile другой или INDEX какойто кривой cvsup делает
>:(
>После переустановки portupgrade..
># portsdb -UuУ меня такая же фигня на одном серваке была, я не перебивал базу, а сразу дал команду portupgrade что-то-там. Портапгрейд качнул INDEX.tar.gz (или INDEX.gz - не помню) сам перебил базу и пошёл ставить софт.
Попробуй выполнить portinstall sshd
>>>1. Обновить ssh демон не получается, и вообще обновить установленные приложения, ssh
>>>что то не видно в установленных портах как он может обзыватся
>>
>>SSH установился при инсталяции фри и его в списке установленных программ ты
>>не увидишь. Тут вариант такой: ставишь из портов новый sshd, вешаешь
>>его на другой порт (например 2222). Проверяешь работу, старый отключаешь, новый
>>перевешиваешь на 22 порт.
>Если я буду ставить с портов, он же сам на 22 и
>сядет или как его к др. прикрутить порту?
>
>
>>обнови сначала порты cvsup -g -L2 /путь/до/supfile
>>Заходишь в /usr/ports/sysutils/portupgrade
>>делаешь make deinstall
>>далее make install
>>Потом апгрейдь что надо.
>
>Сделал, не получается :(
>Я так пнимаю ноужно Makefile другой или INDEX какойто кривой cvsup делает
>:(
>После переустановки portupgrade..
>
># portsdb -Uu
>Updating the ports index ... Generating INDEX.tmp - please wait.."Makefile", line 61:
>warning: String comparison operator should be either == or !=
>"Makefile", line 61: Malformed conditional (defined(PHP_VERS) && ${PHP_VERS} < 420)
>"Makefile", line 61: Need an operator
>"Makefile", line 63: if-less endif
>"Makefile", line 63: Need an operator
>make: fatal errors encountered -- cannot continue
>===> databases/pear-MDB2 failed
>*** Error code 1
>1 error
>
>********************************************************************
>Before reporting this error, verify that you are running a supported
>version of FreeBSD (see http://www.FreeBSD.org/ports/) and that you
>have a complete and up-to-date ports collection. (INDEX builds are
>not supported with partial or out-of-date ports collections -- in
>particular, if you are using cvsup, you must cvsup the "ports-all"
>collection, and have no "refuse" files.) If that is the case,
>then
>report the failure to ports@FreeBSD.org together with relevant
>details of your ports configuration (including FreeBSD version,
>your architecture, your environment, and your /etc/make.conf
>settings, especially compiler flags and WITH/WITHOUT settings).
>
>Note: the latest pre-generated version of INDEX may be fetched
>automatically with "make fetchindex".
>********************************************************************
>
>*** Error code 1
>
>Stop in /usr/ports.
>*** Error code 1
>
>Stop in /usr/ports.
>failed to generate INDEX!
>portsdb: index generation error
нужно воспользоваться sockstat или lsof из портов чтобы посмотреть
что запущено и что генерит траффик, trafshow - тоже из портов.
Если установлен RELEASE, можно воспользоваться готовыми пакетами для
него: trafshow, lsof и кое-что из security и sysutils
Если же, допустим, произошла подмена ps и других важных системных
утилит -> самый правильный подход взять КОМПАКТ или ДИСТРИБУТИВ с которого
вы ставили свой release и развернуть оттуда заново sources ПОВЕРХ
текущих (на случай если вам изменили что-то прямо в sources - /usr/src),
после чего перезагрузиться в single-user mode, и пересобрать МИР:boot -s (грузимся в single-user)
производим проверку всех необходимых FS (файловых систем)
# cat /etc/fstab
# fsck -y /
# fsck -y /usr
# fsck -y ...после того как "продули" все нужные FS, монтируем их на RW:
# mount -w /
# mount -w /usr
...# cd /usr/src
# make buildworld
# make installworld
# rebootСнова грузимся в single-user mode (boot -s)
Все как и раньше: fsck, затем mount, ПОСЛЕ ЧЕГО:- меняем рутовый пароль и ищем в /root ВСЕ что может дать доступ,
проверка например .rhosts и .ssh/auth* файлов и тд и тп, затем
смотрим кто входит в группу wheel и блокируем им вход, или меняем
пароли, тоже самое и с sudo - если использовалось. Далее смотрим
запускается ли у нас inetd и что в нем, затем содержимое скриптов в
/usr/local/etc/rc.d, затем сравниваем ВСЕ md5 скриптов /etc/rc* и
/etc/rc.d/* с суммами их оригиналов из /usr/src/etcПосле верхних действий и устранения найденных проблем, поднимаем машину
в multiuser mode:
теперь у нас 100% уверенность в ЧИСТОТЕ самой системы и системных
утилит, далее начинаем искать ПОДЦЕПЛЕННОЕ или ВКЛЯЧЕННОЕ гавно,
если конечно его воткнули в автозапуск и завуалировали.
Если нет такого в автозапуске, запуск скриптов из периодиков для
проверки ГОВНА содержащего SUID bit там где их не должно быть, если
нашли - изучаем с помощью strings и трассировщиков, отладчиков и
перекладываем или копируем в ЛИЧНЫЙ архив (действия зависят от того
ЧТО мы хотим - найти взлом или только устранить)
Если ничего не нашли - продолжаем искать у пользователей и в разных
"далеких" уголках FS :)Главное что после пересборки ВСЕЙ системы из оригинальных sources - сама
система будет чистая и значит проще найти проколы.Ну и как всегда использовать логи, если их не почистили совсем или
не вычистили из них моменты вторжения и последующих действий
Системные файлы, вроде не повреждены...
От меня летел трафик, я поглядел sockstat и увидел "левое" соединенияwww apache 91906 3 tcp46 *:80 *:*
www apache 91906 27 tcp4 мой.айпи.:52799 216.193.223.223:6667У меня апач работает под другим именам и группой :)
Сделал рестарт апача - помогло!
В логах нашел кто долбился ко мне по ssh2: после перебора стандартных юзерей www, root, mysql, и т.д. у меня повалил трафик, это по времени я отследил. Я пришел к выводу, что кто то ко мне залез по ssh.Но закрыть ssh я на машине пока не получается, поэтоиу и прошу помощи...
Т.к. смена паролей не помогла и случай повторился:
Опять дятел долбится по ssh и опять попер трафик, помогает рестарт апача, просто я пока не нашел сам скрипт и др. способа решения.Я натравил Shadow Security Scanner на свой сервер...
Выяснил 5 дырок по ssh, нужно апдейтить, а у меня он не установлен.
SSH при установке системы вставал, и я не знаю, как теперь его обновить...И закрыть не получается ssh. Нужно сделать доступ с моего рабочего ip и моего домашенго - остальным закрыть ssh
И не могу...
Вот и прышаю тут вокруг больного с бубном :(
>И закрыть не получается ssh. Нужно сделать доступ с моего рабочего ip
>и моего домашенго - остальным закрыть ssh
>И не могу...
>Вот и прышаю тут вокруг больного с бубном :(Можно разрешить доступ по ssh только с твоей домашней и рабочей машины таким образом.
в файле .etc/hosts.allow закоментируй строкуALL : ALL : allow
и добавь
sshd : ip_твоей_домашней_машины : allow
sshd : ip_твоей_рабочей_машины : allow
sshd : ALL : deny
>в файле .etc/hosts.allow закоментируй строку
>
>ALL : ALL : allow
Этого я неделал, боясь что отрубит работу почты и сайта?
Если закоментирую не отрубятся все сервисы????
>и добавь
>
>sshd : ip_твоей_домашней_машины : allow
>sshd : ip_твоей_рабочей_машины : allow
>sshd : ALL : deny
Это я сделал не помогло :(Рестартовать что то нужно??? После правки .etc/hosts.allow
># ipfw show
>ipfw: getsockopt(IP_FW_GET): Protocol not available
А кто сказал что он у тебя вообще есть? :)
М.б. ты уже давно в chroot кем-то посажен? Или нечто подобное.
>># ipfw show
>>ipfw: getsockopt(IP_FW_GET): Protocol not available
>А кто сказал что он у тебя вообще есть? :)
>М.б. ты уже давно в chroot кем-то посажен? Или нечто подобное.ну не знаю...
#man ipfw
по крайне мере пишет...
А что? Как проверить то? А то может его установить нужна...
Везде где не нашел в инете по настройке, везде компелировать ядро нужно... я этого никогда не делал... а на боевом тазике, эксперементировать не охота... Сейчас вот комп еще один достану, на него поставлю все сам и потренируюсь, тогда уже буду на боевой машине делать... а то вдруг случись что и все - припляли...
По ходу очень похоже на SuckIt... Проверь все в locale в директориях для языка sk вручную, что лежит. И chrootkit запусти на всяк пожарный.
>>># ipfw show
>>>ipfw: getsockopt(IP_FW_GET): Protocol not available
>>А кто сказал что он у тебя вообще есть? :)
>>М.б. ты уже давно в chroot кем-то посажен? Или нечто подобное.
>
>ну не знаю...
>#man ipfw
>по крайне мере пишет...
>А что? Как проверить то? А то может его установить нужна...
>Везде где не нашел в инете по настройке, везде компелировать ядро нужно...
>я этого никогда не делал... а на боевом тазике, эксперементировать не
>охота... Сейчас вот комп еще один достану, на него поставлю все
>сам и потренируюсь, тогда уже буду на боевой машине делать... а
>то вдруг случись что и все - припляли...
н-да...# ipfw l
если получите тоже сообщение что и раньше, значит у вас:
1) отсутствует FIREWALL в ядре
2) и не подгружен модуль FIREWALL (kldstat)можно собрать монолитное ядро с FIREWALL'ом, а можно подгружать модулем
вместо пересборки ядра.В первом случае - встраивание в ядро, есть два варианта:
- by default fireewall - открыт всем
- закрыт всемдалее при загрузке можно выбрать тип, например open, или client или
построить всем, понято что порядок правил будет разный при открытом и закрытом - это нужно иметь ввиду.Правильно использовать открытый файервол и потом накладывать ограничения,
в этом случае если администрируешь удаленную машину, не промахнешься
с перезагрузкой.
Точное руководство найдешь в Handbook'е.запуск openssh который идет с системой:
[alone]~ > grep sshd /etc/rc.conf
sshd_enable="YES"
[alone]~ >Дефолтный конфиг SSHD нужно обязательно поправить под себя:
/etc/ssh/sshd_configЕсли нужно установить более свежий OpenSSH, это можно сделать из портов:
# cd /usr/ports/security/openssh-portable
Последнее, вероятно тебя сканируют по SSH с перебором паролей, варианты:
воспользоваться tcpwrapper'ом: less /etc/hosts.allowможно и нужно ограничить доступ через sshd_config откуда разрешено
ну и банить через ipfw те ip с которых идет перебор с отписыванием
Инцендента официальным лицам которые являются владельцами тех IP
с которых тебя атакуют.Нельзя разрешать пользователям использовать легкие пароли, ставишь john-ripper и сам себя проверяшь, после чего делаешь disable пользователей
с простеньким паролем который легко подбирается через словари.
2 lavr
Спасибо за подробный ответ...
># ipfw l
>если получите тоже сообщение что и раньше, значит у вас:
>1) отсутствует FIREWALL в ядре
>2) и не подгружен модуль FIREWALL (kldstat)
# ipfw l
ipfw: getsockopt(IP_FW_GET): Protocol not availableСейчас буду делать и разбиратся что и как де
2 dravor
Что это такое, можно подробней... ничнго не понял :(
>2 dravor
>Что это такое, можно подробней... ничнго не понял :(
Просто предположение о том, что ситуация у тебя намного сложнее чем просто работающий скрипт или демон.
>>2 dravor
У меня еще на 50224 порту ерунда висела...
http://www.securityreference.com/computers/ports/50000/50224...
Я не понял твое предложение, что проверить и как?
>1) отсутствует FIREWALL в ядре
>2) и не подгружен модуль FIREWALL (kldstat)
>можно собрать монолитное ядро с FIREWALL'ом, а можно подгружать модулем
>вместо пересборки ядра.
Пересборка ядра временно мне не подходит, а вот про модулем вопрос актуальный.>запуск openssh который идет с системой:
>
>[alone]~ > grep sshd /etc/rc.conf
>sshd_enable="YES"
>[alone]~ >
>
>Дефолтный конфиг SSHD нужно обязательно поправить под себя:
>/etc/ssh/sshd_config
Я не нашел какими ключами указывается в этом конфиги кто имеет доступ, кто нет..
я прописал только:
#vi /etc/ssh/ssh_config
ForwardAgent no
ForwardX11 no
CheckHostIP yes
Port 22
Protocol 2
#vi /etc/hosts.allowALL : ALL : allow
sshd : ALL : deny
sshd : x.x.x.x : allow # x.x.x.x - мой ip
>
>Если нужно установить более свежий OpenSSH, это можно сделать из портов:
>
># cd /usr/ports/security/openssh-portable
НУЖНО установить новый!!!
Мне просто запустить make install или нужно сначала отключать установленный? Новый поверх встанет???>Последнее, вероятно тебя сканируют по SSH с перебором паролей, варианты:
>воспользоваться tcpwrapper'ом: less /etc/hosts.allow
Это что? у меня ведь прописано #vi /etc/hosts.allowALL : ALL : allow
sshd : ALL : deny
sshd : x.x.x.x : allowИли еще что то нужно добавить?
У меня нету /etc/hosts.deny файла, может из за него не работает?
ПО крайне мере по ssh можно с любого компа зайти сечас :(
>можно и нужно ограничить доступ через sshd_config откуда разрешено
Я не нешел каким ключом это делается :(
>#vi /etc/hosts.allow
>
>ALL : ALL : allow
>
>sshd : ALL : deny
>sshd : x.x.x.x : allow # x.x.x.x - мой ip
Закомментируй строку ALL : ALL : allow, иначе всё, что ты написал ниже - не будет обрабатываться.
sshd : x.x.x.x : allow # x.x.x.x - мой ip поставь выше sshd : ALL : deny
>>#vi /etc/hosts.allow
>>ALL : ALL : allow
>>sshd : ALL : deny
>>sshd : x.x.x.x : allow # x.x.x.x - мой ip
>Закомментируй строку ALL : ALL : allow, иначе всё, что ты написал
>ниже - не будет обрабатываться.
>sshd : x.x.x.x : allow # x.x.x.x - мой
>ip поставь выше sshd : ALL : denyДа, точно это помогло!!!
Теперь для POP3 и FTP нужно что то прописать,
Сейчас я прописал:pop3 : ALL : allow
ftp : ALL : allowНо это не помогает :(
Прием почты и фтп не работают...В initd.conf у меня вот что:
pop3 stream tcp nowait root /usr/local/libexec/popa3d popa3d
ftp stream tcp nowait root /usr/local/libexec/proftpd proftpd
>>>#vi /etc/hosts.allow
>>>ALL : ALL : allow
>>>sshd : ALL : deny
>>>sshd : x.x.x.x : allow # x.x.x.x - мой ip
>>Закомментируй строку ALL : ALL : allow, иначе всё, что ты написал
>>ниже - не будет обрабатываться.
>>sshd : x.x.x.x : allow # x.x.x.x - мой
>>ip поставь выше sshd : ALL : deny
>
>Да, точно это помогло!!!
>
>Теперь для POP3 и FTP нужно что то прописать,
>Сейчас я прописал:
>
>pop3 : ALL : allow
>ftp : ALL : allow
>
>Но это не помогает :(
>Прием почты и фтп не работают...
>
>В initd.conf у меня вот что:
>pop3 stream tcp nowait
> root /usr/local/libexec/popa3d
> popa3d
>ftp stream tcp
>nowait root /usr/local/libexec/proftpd proftpdпропиши так:
popa3d : ALL : allow
proftpd : ALL : allow
>пропиши так:
>popa3d : ALL : allow
>proftpd : ALL : allowУ меня сейчас рописано:
inetd : ALL : allow
ftp : ALL : allow
pop3 : ALL : allowpopa3d : ALL : allow
proftpd : ALL : allowИ это не помогает... :(
ХЕЛП!
Доступ закрыть про SSH через hosts.allowСегодня опять трафик попер с моего сервера :(
Помогите найти причину... время, примерно знаю когда трафик большой был (ночью в 2 часа ночи), сейчас спокойно.
Как отловить и найти что было???
ipfw отключен и пока не получается его активировать без компеляции ядра?
Как его утановить чтобы работал как модуль, без компеляции ядра?
попробуй поставить trafd для отображения всего трафика, а вообще - раз все так плохо - переставь систему сам, с нуля.
>попробуй поставить trafd для отображения всего трафика, а вообще - раз все
>так плохо - переставь систему сам, с нуля.посадили тебе бэкдор через дыру в апачевском приложении (форум? хостинг?)
Просмотри все cgi-bin - это навернякак php или perl скрипт запускается
, форкается и занимается этой ерундой
>ХЕЛП!
>Доступ закрыть про SSH через hosts.allow
>
>Сегодня опять трафик попер с моего сервера :(
>
>Помогите найти причину... время, примерно знаю когда трафик большой был (ночью в
>2 часа ночи), сейчас спокойно.
>
>Как отловить и найти что было???
>
>ipfw отключен и пока не получается его активировать без компеляции ядра?
>Как его утановить чтобы работал как модуль, без компеляции ядра?Тебе писали повесь ssh на другой порт
ForwardAgent no
ForwardX11 no
CheckHostIP yes
Port 22 ------> 12345 !!!!!!!!!
Protocol 2По крайней мере остановит от подбора, да и зайти будет проблематично если порт не знать (сканировать надо)
Затем добавляеш AllowUser myname (могу ошибаться в написание, подробние в man)
Делаеш рестарт sshd.
Меняеш себе пароль на какойнибуть ооочень длинный.
После этого если сам ssh родной, то несанкционированого входа ты более мение защищён.
Потом через крон ps ax, sockstat, lsof или ещё что то в почту или файл, может поймаеш что то необычное в моменты большоо трафика.
И какая бы "лошадка" не была, тем более рабочая фаервол иметь надо. Подними ipfw, и закрой всё ненужное.
Дальше разбирайся с портами, а лучше всю систему обновить через cvs.