Обновить
259
0
Alexander@simpleadmin

Пользователь

Отправить сообщение
geo $whitelist {
default 0;

77.88.0.0/18 1;
93.158.128.0/18 1;
95.108.128.0/17 1;
178.154.128.0/17 1;
199.36.240.0/22 1;

Не доверяйте просто так подсетям ПС. Они далеко не безгрешны. Парсинг 2-х летней давности с серверов Яндекса:

178.154.243.106 -       5011415253      1419741951.254  [GET]   [/servis-centr/texet?ah62]      200     15241     -       [Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) YaBrowser/1.0.1084.5402 Chrome/19.0.1084.5409 Safari/536.5]       m*****.ru       XXX.XXX.217.215:80    28/Dec/2014:07:45:51 +0300      RU      w:1     []
178.154.243.105 -       5011428078      1419741951.345  [GET]   [/servis-centr/texet?ah141]     200     241     -       [Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) YaBrowser/1.0.1084.5402 Chrome/19.0.1084.5409 Safari/536.5]       m*****.ru       XXX.XXX.217.215:80    28/Dec/2014:07:45:51 +0300      RU      w:1     []
178.154.243.104 -       5011415952      1419741951.354  [GET]   [/servis-centr/texet?ah88]      200     19249     -       [Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) YaBrowser/1.0.1084.5402 Chrome/19.0.1084.5409 Safari/536.5]       m*****.ru       XXX.XXX.217.215:80    28/Dec/2014:07:45:51 +0300      RU      w:1     []
95.108.158.134  -       5011424897      1419741951.430  [GET]   [/servis-centr/texet?ah69]      200     52415     -       [Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) YaBrowser/1.0.1084.5402 Chrome/19.0.1084.5409 Safari/536.5]       m*****.ru       XXX.XXX.217.215:80    28/Dec/2014:07:45:51 +0300      RU      w:1     []
178.154.243.107 -       5011410458      1419741951.574  [GET]   [/remont-chasov/royal-london18ao]       200     8029    -       [Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) YaBrowser/1.0.1084.5402 Chrome/19.0.1084.5409 Safari/536.5]       m*****.ru       XXX.XXX.217.215:80     28/Dec/2014:07:45:51 +0300      RU      w:1     []
5.255.253.3     -       5011428792      1419741951.586  [GET]   [/remont-chasov/royal-london19au]       200     8030    -       [Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) YaBrowser/1.0.1084.5402 Chrome/19.0.1084.5409 Safari/536.5]       m*****.ru       XXX.XXX.217.215:80     28/Dec/2014:07:45:51 +0300      RU      w:1     []
95.108.128.241  -       5011423471      1419741951.593  [GET]   [/remont-chasov/royal-london22a]        200     8028    -       [Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) YaBrowser/1.0.1084.5402 Chrome/19.0.1084.5409 Safari/536.5]       m*****.ru       XXX.XXX.217.215:80     28/Dec/2014:07:45:51 +0300      RU      w:1     []
95.108.128.242  -       5011427425      1419741951.617  [GET]   [/servis-centr/texet?ah73]      200     15245     -       [Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) YaBrowser/1.0.1084.5402 Chrome/19.0.1084.5409 Safari/536.5]       m*****.ru       XXX.XXX.217.215:80    28/Dec/2014:07:45:51 +0300      RU      w:1     []

Около 3'000'000 запросов за сутки. Разумеется никакими Яндекс-ботами здесь и не пахнет
счетчик used у свопа работает по принципу «только прибавляем».

[19:32]# swapinfo
Device 1K-blocks Used Avail Capacity
/dev/ada0b 5022720 311000 4711720 6%
[21:30]# swapinfo
Device 1K-blocks Used Avail Capacity
/dev/ada0b 5022720 309288 4713432 6%
т.е. работает и на освобожение.
Другой вопрос зачем он вообще используется при 13G Free (и с момента старта системы Free ниже 12 не опускалась).
Mem: 20M Active, 244M Inact, 2206M Wired, 10M Cache, 1643M Buf, 13G Free
Swap: 4905M Total, 303M Used, 4602M Free, 6% Inuse

Но вопрос свопа второстепенен.

Мне кажется, это проблема tmpfs.

Нет, проблемы проявляются и без него. Я задействовал tmpfs просто для наглядности.
К сожалению и это не отвечает на вопрос «сколько в данный момент может быть доступно памяти приложению?»

# top -b 0 | grep Mem
Mem: 1925M Active, 53G Inact, 2901M Wired, 431M Cache, 3310M Buf, 4267M Free

Выделяю 100M блоками пока не произойдёт исключение и освобождаю.
# top -b 0 | grep Mem
Mem: 1832M Active, 1398M Inact, 3091M Wired, 431M Cache, 1949M Buf, 56G Free

В итоге Cache вообще остался нетронут, Inact похудел на 52G. Но как выяснить, что эти 52G были доступны?
Для того, чтобы обезопасить себя от атаки с использованием данной ошибки безопасности, следует осуществить следующие действия:
Отключить IPv6-адресацию…


Да вы страшные люди…

V. Solution

Perform one of the following:

1) Upgrade your vulnerable system to a supported FreeBSD stable or
release / security branch (releng) dated after the correction date.
Rebooting to the new kernel is required.

2) To update your vulnerable system via a binary patch:

Systems running a RELEASE version of FreeBSD on the i386 or amd64
platforms can be updated via the freebsd-update(8) utility:
# freebsd-update fetch
# freebsd-update install


Rebooting to the new kernel is required.

3) To update your vulnerable system via a source code patch:

The following patches have been verified to apply to the applicable
FreeBSD release branches.

a) Download the relevant patch from the location below, and verify the
detached PGP signature using your PGP utility.

# fetch https://security.FreeBSD.org/patches/SA-16:01/sctp.patch
# fetch https://security.FreeBSD.org/patches/SA-16:01/sctp.patch.asc
# gpg --verify sctp.patch.asc


b) Apply the patch. Execute the following commands as root:
# cd /usr/src
# patch < /path/to/patch


c) Recompile your kernel as described in
<URL:https://www.FreeBSD.org/handbook/kernelconfig.html> and reboot the
system.
if ($http_referer = "" ) {set $ban $ban$add;}
if ($request_method = POST ) {set $ban $ban$add;}
if ($query_string = «action=login» ){set $ban $ban$add;}
if ($ban = 111 ){
return 444;
}

>>

map "$http_referer$request_method$query_string" $ban {
    "POSTaction=login"  "1";
}
if ($ban) {
    return 444;
}

А если он есть, то выполнят SYSLOG_ACTION_CLEAR до того как буфер достигнет LOG_BUF_LEN
В этом случае и history -c будет бесмысленным, т.к. при history -S буфер сбросится в ~/.history, но дефолтный alias postcmd отсутствует, поэтому это уже отличные от «по умолчанию» настройки.
Тут, возможно, чтобы подчистить придётся подредактировать ~/.history перед уходом.
Хотя скорее всего даже kill -9 $$ при этом отлогируется в ~/.history
это не актуально для
# `echo $SHELL` --version
tcsh 6.18.01 (Astron)

на самом деле
# history -c
здесь вообще лишнее, т.к. история фиксируется в ~/.history про логауте, а при
# kill -9 $$
у нас не будет корректного выхода и как следствие история не зафиксируется
Собственно, здесь можно обойтись и без пайпинга, а посмотреть в сторону github.com/openresty/drizzle-nginx-module#drizzle_query
Тут же для борьбы с инъекциями (о которых подымал вопрос aleks_raiden)можно использовать github.com/openresty/set-misc-nginx-module#set_quote_sql_str
Логики вышеописанного это не меняет, запросы всё-равно попадут в ngx_http_form_input_post_read(ngx_http_request_t *r).
Только разбор JSON опять же придётся отдать на откуп этому модулю.
Код модуля смотрел очень давно, не помню. Но если обработки в нём и нет, то добавить её не так сложно.
Самим модулем пользовался на нагрузке около 100k per sec, падений не было.
Данные вносятся полагаю через form input? Если да, то
в которую идут основные инсерты — ИД юзера, плюс ИД записи данных этого юзера
навскидку сохраняя структуру, логику, не уходя от mysql и не писав собственного модуля для nginx:

— добавляем в nginx модуль HttpFormInputModule от taobao

— делаем
log_format mylog 'INSERT IGNORE INTO `log`.`access` (`user`, `data1`, `data2`) VALUES ("$post_user","$post_data1","$post_data2");\n';
логируем в нужном локейшине

— создаём fifo-шку
# mkfifo /var/log/nginx/fifo.mylog && chmod 666 /var/log/nginx/fifo.mylog

— пайпим данные напрямую без php-шной обработки
# tail -F /var/log/nginx/fifo.mylog | mysql -pMYSQL_PASS

Вероятнее всего, для того чтобы данные полились придётся рестратануть (НЕ reload) nginx, чтобы он нашёл fifo.
С таким потоком данных по поводу flush'a буферов можно не заморачиваться.
Тем самым input-переменные не требующие дополнительной обработки льются напрямую без всякого php.
Из статьи не понятна структура таблиц/запросов. Но вероятнее всего под такой нагрузкой хранятся пары вида «ключ, значение».
Если так, то не лучше ли перейти на решения а-ля redis?
Если по каким-то причинам no-sql решения не подходят, а структура запросов INSERT одинакова гоните их в mysql через fifo pipe напрямую.
Согласен. Только cat излишен.
угу, а в связке с find вообще убойная сила
find ./ -name '*.txt' -type f -exec sed -i '.bak' 's/first/second/g' {} \;
И вот такой шедевр 65-го года
image
Стерео с пружинным ревербератором.
Тоже на ходу, иглы только подгулявшие.
Рекорд 6 (УНТ-35) на второй полке справа, под ним Рекорд 67 (УНТ-35-1)
С незапамятных времен у меня валялись германиевые транзисторы П1А и П3А. Год выпуска — 1957.

image
«Старт 2», 58 или 59-го года выпуска.
И он и все остальные на фото в исправном состоянии.
Блин, он на немецком =)

Хм, а читается как английский :)

drwatson32, спасибо, весьма занимательное чтиво

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность