myhand

Рейтинг
278
Регистрация
16.09.2009
Andreyka:
Интересно, что сломается от замены 0.7 на 1.0? Ничего.

Надо было ответить честно "я не знаю".

Как узнать "что сломается": посмотреть в changelog с 0.7 по 1.0. А можешь просто посмотреть раздел "безопасность" и дырки, которые появились только в новых версиях. Дело вкуса с чего начать.

Andreyka:
1. На сайте разработчика указаны поддерживающиеся релизы. URL сам нагуглишь?

Т.е. сам ты там не был, верно? Если бы был - увидел бы то что вижу я:

http://nginx.org/ru/download.html

0.7.x - в разделе "устаревшие версии". Нигде не указано, что они "не поддерживаются". Более того, это *не так*. Например, патчи безопасности выходят.

madoff:
Каждому по возможности, и каждому по потребности, 0-7 является стабильной версией, но без поддержки

Да где вы там поддержки/неподдержки-то углядели? Андрейка - фантазер, не нужно ему в рот смотреть.

Andreyka:
А зачем нужен дистр, в котором для нормального софта нужно его собирать самому? Не задумывался над этим?

Действительно, зачем нужен RHEL? 🍿

Напоминаю андрейке - nginx там нету.

Andreyka:
2. Например для robo.

Например для robo что? Вы таки можете перечислить конкретные, необходимые вам изменения с 0.7 до 1.0 - или нет?

Dram:
В конфиге apache2.conf упоминаний access.log вообще нет

А директивы Include там есть? 🍿

_Dizerd_:
myhand, я понимаю и согласен с вами что в данный момент секретного тама нечего нет, но в будущем я планирую его улучшать и улучшать.. но нехотелось бы чтобы исходники были в открытом доступе... ладно, давайте не будет с вами ссориться, так как честно сказать не люблю разборки и т п вещи. Я лучше пойду исправлять свои ошибки и заниматся своими делами. :)

Замечательно. Но цензурировать других - это нехорошо.

Приятно было вспомнить кунфу:

$ gdb /usr/local/sbin/nddos

set print elements 0
set print repeats 0
break execve
run
s
s
info registers
x/10x $esi
x/s 0x0804a5ba

Так что пусть сие чудо инженерной мысли повисит:

#!/bin/bash

##############################################################################
# NonDDoS System | www.nonddos.ru #
##############################################################################

head()
{
echo
echo '----------------'
echo '[www.nonddos.ru]'
echo '----------------'
}


##### LICENSE


load_lic()
{
LICENSE="/usr/local/nonddos/nddos.lic"
if [ -f "$LICENSE" ] && [ ! "$LICENSE" == "" ]; then
echo > /dev/null 2>&1
else
echo -n $LICENSE
echo " not found."
exit 1
fi
}

load_lic

echo -n `sed -n '3p' /usr/local/nonddos/nddos.lic` > /usr/local/nonddos/lic2.txt
LOADLIC2=`base64 -d /usr/local/nonddos/lic2.txt`
LIC_CODE="8099148014801490014890314380141"

echo -n `sed -n '11p' /usr/local/nonddos/nddos.lic` > /usr/local/nonddos/lic.txt
LOADLIC=`base64 -d /usr/local/nonddos/lic.txt`
DATE=`date '+%Y%m%d'`

rm -f /usr/local/nonddos/lic.txt
rm -f /usr/local/nonddos/lic2.txt

if (( $LOADLIC2 == $LIC_CODE )) > /dev/null 2>&1 ;
then
if (( $LOADLIC > $DATE )) > /dev/null 2>&1 ;
then

#####



##### N1

load_conf()
{
CONF="/usr/local/nonddos/nddos.conf"
if [ -f "$CONF" ] && [ ! "$CONF" == "" ]; then
source $CONF
else
echo -n $CONF
echo " not found."
exit 1
fi
}

start()
{
rm -f $CRON
sleep 1
service crond restart > /dev/null 2>&1
sleep 1
echo "SHELL=/bin/sh" > $CRON
echo "PATH=/sbin:/bin:/usr/sbin:/usr/bin" >> $CRON
echo "0-59/1 * * * * root /usr/local/nonddos/nddos.sh >/dev/null 2>&1" >> $CRON
service crond restart > /dev/null 2>&1
}

stop()
{
rm -f /etc/cron.d/nddos.cron > /dev/null 2>&1
service crond restart > /dev/null 2>&1

}


load_conf

while [ $1 ]; do
case $1 in
'-start' )
start
echo
echo -n 'Starting NonDDoS: '
echo -e '[ \\E[32;32m'"\\033[1mOK\\033[0m ]"
head
exit
;;

'-stop' )
stop
echo
echo -n 'Shutting down NonDDoS: '
echo -e '[ \\E[32;32m'"\\033[1mOK\\033[0m ]"
head
exit
;;
'-restart' )
stop
echo
echo -n 'Shutting down NonDDoS: '
echo -e '[ \\E[32;32m'"\\033[1mOK\\033[0m ]"
start
echo -n 'Starting NonDDoS: '
echo -e '[ \\E[32;32m'"\\033[1mOK\\033[0m ]"
head
exit
;;
'-v' | '-version' )
echo
echo 'NonDDoS version: 1.0.0'
head
exit
;;
esac

shift
done


cd /usr/local/nonddos/ipblock
ConnLimit=$ConnLimit
conns=(`netstat --numeric-hosts --numeric-ports --numeric-users | grep 'tcp\\|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n | sed -e 's/^[ \ ]*//' | sed -e 's/\\s/\\|/'`);

for conn in ${conns[@]}
do
Count=$(echo $conn | cut -d'|' -f1)
IP=$(echo $conn| cut -d'|' -f2)
if [ $Count -ge $ConnLimit ]; then
if [ ${#IP} -ge 7 ]; then
$IPT -I INPUT -s $IP -j DROP
logger "$IP - Autoblocked for exceeding $ConnLimit connections. $Count connections were active"
echo "$IPT -D INPUT -s $IP -j DROP" > $IP
echo "logger $IP - Autounblocked after one hour" >> $IP
echo "rm $IP" >> $IP
chmod +x $IP
at -f $IP now + 1 hour
fi
fi
done


for whiteIP in `cat $WHITE_IP_LIST`;
do
$IPT -D INPUT -s $whiteIP -j DROP > /dev/null 2>&1
done

##### N2

cd /

if [ "$pln" == 'on' ]
then

# search ip bots in log
cat $logs | awk '{print $1}' | sort | uniq -c | awk '{if($1>400){print $1 " " $2}}' | awk '{print $2}' > /tmp/ips1
for ip1 in `cat /tmp/ips1`; do $IPT -I INPUT -s $ip1 -j DROP ; done

cat $logs | grep '400 0 "-" "-" "-" 0.000--' | awk '{print $1}' | sort | uniq > /tmp/ips2
for ip2 in `cat /tmp/ips2`; do $IPT -I INPUT -s $ip2 -j DROP ; done

grep "HTTP/1.1\" 503 " $logs | awk '{print $1}' | sort -n | uniq > /tmp/ips3
for ip3 in `cat /tmp/ips3`; do $IPT -I INPUT -s $ip3 -j DROP ; done

else
echo > /dev/null 2>&1
fi

exit

else
echo
echo 'Invalid license'
head
exit
fi

else
echo
echo 'Invalid license'
head
exit
fi
_Dizerd_:
myhand, я не собираюсь вылаживать..

Мая грусная русская языка :(

_Dizerd_:
если вы считаете это красиво с вашей стороны так безобразно вести себя

Вот я считаю, что безобразие в том - что вы нагло попросили esetnod убрать текст. Это любезность с его стороны.

Делать военную тайну из ерунды - не стоит. Тем более, вам бы указали на проблемы скрипта. А так - даже обсуждать толком нечего. Ну, попросите перенести в раздел "Услуги и предложения" - может какой придурок воспользуется вашим скриптом.

_Dizerd_:
почему бы вам не сделать лучше и не выложить?

Да выкладывали уже подобные однострочники, в т.ч. и мной. Поищите в форуме (вероятнее всего, их показывали zexis).

_Dizerd_:
вижу с какой целью вы зашли в мою тему.

Посмеяться. Как и все остальные, в общем-то.

Andreyka:
1 не поддерживается разработчиком

Кто тебе такое написал?

Andreyka:
2 я тоже могу собрать пакет, непонятно онд - зачем держать в дистре старье?

Старый релиз "держат" потому, что в stable нельзя ломать функционал ПО. Если вам нужна почему-то новая версия - возьмите новую версию. Многих устраивает и старый функционал + исправление критических ошибок и безопасности.

Вот только болтовня это. Ты ведь даже не привел список функционала, который тебе требуется и которого нет в 0.7. Как просили. Получается, 1.0 нужен тебе ради цифирки?

Вряд-ли вы термины поймете. Используйте здравый смысл: задумайтесь над тем, что посторонний человек вряд-ли что хорошего подскажет, не имея никакого представления о задачах вашего сервера.

Miracle:
это хорошо?

Это фиолетово.

Miracle:
подскажите что еще нужно сказать что бы настроили на сервере , ну скажем так из первой необходимости (не считая, пхп, нжинскса)

Голову владельцу ;) Чтобы он не просил что-либо настраивать "по-фотографии".

Miracle:

/dev/mapper/vg-www on /www type ext4 (rw,noexec,noatime,nodiratime)

Ну вот.

10 букав

iBBi:
Только тем что умеет читать логи nginx?

Ну, cat тоже так "умеет".

_Dizerd_:
Да

Выложить исходник вновь или сделаете это сами?

Miracle:
Это должно быть по умолчанию или должны были сделать те кто настраивал мне сервер?

Это *могли* сделать те, кто настраивал ваш сервер.

Покажите вывод

mount
Всего: 4890