ммм

12
S
На сайте с 01.11.2009
Offline
2
1044

извиняюсь конечно, но как называется команда которой писать в файл ? т.е. допустим ей передается текст а она в папке /tmp в файл file добавляет этот текст? и если этого файла нет то создает его?

что то типа

writetofile /tmp/file "text\n"

ssh linux

Статья про заработок на файлообменниках. (http://tinyurl.com/attjoj) Что такое сапа? (http://tinyurl.com/sapehelp) Рефам везде возвращаю $5.
M
На сайте с 16.09.2009
Offline
278
#1

echo "text" >> /tmp/file

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
S
На сайте с 01.11.2009
Offline
2
#2

Это работает отлично, теперь может ли кто-нибудь сказать как сделать следующее:

есть файл /etc/ddoslist

cat /tmp/ddoslist

/sbin/iptables -I INPUT -s 188.17.161.211 -j DROP
/sbin/iptables -I INPUT -s 212.119.251.92 -j DROP
/sbin/iptables -I INPUT -s 92.101.68.222 -j DROP
/sbin/iptables -I INPUT -s 95.25.139.174 -j DROP
/sbin/iptables -I INPUT -s 95.220.125.120 -j DROP

Т.е. туда записываются ип которые нужно банить.

Нужно сделать чтоб допустим каждую минуту все это экзекалось от рута, и после этого файл удалялся.

т.е. я так понимаю нужно редактировать файл

cat /etc/crontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
26 * * * * root run-parts /etc/cron.hourly
25 0 * * * root run-parts /etc/cron.daily
16 4 * * 0 root run-parts /etc/cron.weekly
37 1 3 * * root run-parts /etc/cron.monthly

Добавить в конце

1 * * * * root ?????

вот как сделать чтоб запускался файл что выше а потом удалялся?

M
На сайте с 16.09.2009
Offline
278
#3

1 * * * * root test -f /etc/ddoslist && sh /etc/ddoslist && rm -f /etc/ddoslist

N
На сайте с 06.05.2007
Offline
419
#4

Я правильно понимаю, что вы не нашли другого способа запускать iptables из под рута кроме как через cron ?

Похоже, вам стоит изучить запуск команд через sudo. А то в /tmp вам понапишут однажды скриптов.

Кнопка вызова админа ()
S
На сайте с 01.11.2009
Offline
2
#5
myhand:
1 * * * * root test -f /etc/ddoslist && sh /etc/ddoslist && rm -f /etc/ddoslist

Изменил так, теперь нужно подождать пока кто-нибудь поймается

cat /etc/crontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
26 * * * * root run-parts /etc/cron.hourly
25 0 * * * root run-parts /etc/cron.daily
16 4 * * 0 root run-parts /etc/cron.weekly
37 1 3 * * root run-parts /etc/cron.monthly
1-59 * * * * root test -f /tmp/ddoslist && sh /tmp/ddoslist && rm -f /tmp/ddoslist

snoppy добавил 17.11.2009 в 21:57

netwind:
Я правильно понимаю, что вы не нашли другого способа запускать iptables из под рута кроме как через cron ?
Похоже, вам стоит изучить запуск команд через sudo. А то в /tmp вам понапишут однажды скриптов.

sudo не получилось... сейчас так попробую без него обойтись - будет работать да и ладно

M
На сайте с 16.09.2009
Offline
278
#6
netwind:
Я правильно понимаю, что вы не нашли другого способа запускать iptables из под рута кроме как через cron ?
Похоже, вам стоит изучить запуск команд через sudo. А то в /tmp вам понапишут однажды скриптов.

sudo здесь не к месту. если вам нужно запустить доверяемый

код с правами root,

то

# /home/user/script.sh

или

$ sudo /home/user/script.sh

- оно без разницы. весь вопрос - в доверии контенту скрипта.

S
На сайте с 01.11.2009
Offline
2
#7

Все, проверилось. mod evasive сработал на ип, и ип попал в iptables. Все работает.

мод евайзив я так понимаю сам как-то блокирует эти ип, но нагрузка все равно большая.

Когда эти ип вручную забиваю в иптейблс - становится получше, теперь это будет хотябы автоматизировано.

Но это все равно не спасает, т.е. айпишники с которых ддосят известны, их не так много, одновременно вроде не более 20, все получаются в iptables -DROP - но нагрузка на сервере vps 700 мегагерц 384 ram примерно 10 процентов, хотя обычно около 1 процента. И это при том что ддосят главную - где ДЛЕ движок - он отключен, работает только форум IPB.

Если ДЛЕ врубить все кладется (

snoppy добавил 17.11.2009 в 22:10

myhand:
sudo здесь не к месту. если вам нужно запустить доверяемый
код с правами root,
то
# /home/user/script.sh
или
$ sudo /home/user/script.sh

- оно без разницы. весь вопрос - в доверии контенту скрипта.

Судо не для запуска скрипта, а все дело в том что стоит mod_evasive - он когда обнаруживает ip - он его блочит и может выполнить команду. Если просто прописать эту команду

sudo /sbin/iptables -I INPUT -s %s -j DROP

(%s - вместо этого модевейзив подставляет обнаруженный ип), у меня что-то не получилось, хотя вроде через visudo сделал чтоб юзер apache (centos стоит) мог пользоваться командой судо без пароля.

Но так вроде заработало - и ладно

N
На сайте с 06.05.2007
Offline
419
#8

myhand, смотрите ширше - товарищ защиту от ддос делает и запись у него в /tmp. Доверия к контенту скрипта в /tmp как раз нет. Изначально в руководствах для mod_evasive все-таки sudo. То, что кто-то не смог в нем разобраться, это другой вопрос.

Если "добрый друг" пущеный похоститься закачает скрипт в /tmp или в другое место, где создаются команды для рута - все закончится плачевно.

M
На сайте с 16.09.2009
Offline
278
#9

обратите внимание на рекоммендованную _мной_ команду: там /etc/ - не /tmp/

для /tmp проблемы также нет - просто нужно проверять

дополнительно владельца и разрешения.

N
На сайте с 06.05.2007
Offline
419
#10

myhand, а я и обратил. Это подтверждает, что вы, ориентируясь только на известные условия, не видите в чем конечная цель.

Разумеется в /tmp создается скрипт из под пользователя apache как и результат работы всех остальных скриптов или, например, модуля mod_evasive.

Я уж молчу про классический race condition в таких унылскриптах проверяющих владельца и разрешения.

sudo не просто так рекомендован.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий