Ваш логин:
Ваш пароль:
 
 
30-05-2010, 21:03, прочитали: 469 раз, раздел: ---
Тут было бы описание моего сайта во всех красках, с массой эпитетов — НО Я ЛЕНТЯЙ!
Добавил: nickon, комментариев: 1, читать дальше ...
3-06-2010, 09:52, прочитали: 421 раз, раздел: Заметки сисадмина » FreeBSD
Как-то проснувшись утром наблюдаю на почте такую картину:

login failures:
Jun 2 07:07:55 4dle sshd[45556]: Failed password for invalid user webadmin from 163.21.230.20 port 35758 ssh2
Jun 2 07:07:58 4dle sshd[45560]: Failed password for invalid user ftp from 163.21.230.20 port 35844 ssh2
Jun 2 07:08:01 4dle sshd[45569]: Failed password for invalid user test from 163.21.230.20 port 35933 ssh2
Jun 2 07:08:07 4dle sshd[45620]: Failed password for invalid user admin from 163.21.230.20 port 36102 ssh2
Jun 2 07:08:10 4dle sshd[45625]: Failed password for invalid user guest from 163.21.230.20 port 36183 ssh2
Jun 2 07:08:13 4dle sshd[45630]: Failed password for invalid user master from 163.21.230.20 port 36273 ssh2
Jun 2 07:08:16 4dle sshd[45652]: Failed password for invalid user apache from 163.21.230.20 port 36360 ssh2


Явно подбирают логин\пароль к ssh. Бороться с данным видом атак вручную, явно бесполезное занятие, наличие IP адреса атакующего ничего не дает, так как, в подавляющем большинстве случаев, являются "левыми" и периодически меняются.

Было решено поставить програмку sshguard.

Принцип работы программы программы следующий: sshguard парсит лог файл регистраций в системе, если обнаруживает аномальное количество неудачных подключений с определенного IP, помечает адрес как нарушителя и добавляет в IPFW блокирующее правило на определенный промежуток времени, по умолчанию, время блокировки, 7 минут. Если в дальнейшем, данный IP вновь обратит на себя внимание sshguard своим неадекватным поведением, снова будет создано блокирующее правило в IPFW, но срок будет 2*7. Схема расчета времени блокировки следующая: 7 минут, 2*7 минут, 2*2*7 минут ..... 2^(n-1)*7 минут. В дальнейшем, после определенного количества рецидивов, указанного в опции -b, IP может будет помещен с черный список на постоянной основе.
Добавил: nickon, комментариев: 0, читать дальше ...
2-06-2010, 08:22, прочитали: 110 раз, раздел: Заметки сисадмина » FreeBSD
От чего будем защищатся?

От подобных запросов:

78.24.217.120 - - [02/Jun/2010:08:06:00 +0400] "GET / HTTP/1.1" 200 1036 "-" "-"
78.24.217.120 - - [02/Jun/2010:08:06:00 +0400] "GET /index.php HTTP/1.1" 200 1036 "-" "-"


Продолжение под катом...
Добавил: nickon, комментариев: 0, читать дальше ...
29-05-2010, 09:51, прочитали: 215 раз, раздел: JavaScript
Визуальный редактор на jQuery


Очень акуратный, лёгкий и симпатичный визивиг редактор на JQuery, правда не лишён багов, но буду следить за ним.
Добавил: nickon, комментариев: 1, читать дальше ...
29-05-2010, 08:37, прочитали: 119 раз, раздел: JavaScript
FC-CropResizer


Неплохое решение для crop\resiz'а изображений на javascript!

Задача была сделать универсальный, по-возможности, скрипт, который мог бы заниматься ресайзом (изменением размеров) и кропом (обрезанием) любых изображений. Это иногда бывает нужно:
* для "умного" вырезания превью из большого изображения,
* для подготовки аватара из любой загруженной фотки,
* ну и мало ли еще зачем нужен кроп и ресайз :-)
Добавил: nickon, комментариев: 0, читать дальше ...
3-05-2010, 13:28, прочитали: 270 раз, раздел: Разработка
В который раз задаюсь вопросом каким же должен быть шаблонизатор?

При разработке последнего проекта на enigm'e делал свой шаблонизатор - некий гибрид DLE'шного... получилось очень сыро, но уже тогда задумался о необходимости использовать условия и switch'и...

От концепции блочных тегов я ушёл сразу - крайне неудобная штука имхо... конструкция $tpl->set также не прижилась...

Обработка регулярными выражениями тегов (+ блоков) также крайне неправильна...

Теория

Вот список требований которым он как Я считаю должен удовлетворять:

Замена простых тегов в пределах одного шаблона.

Замена глобальных тегов для всех шаблонов. (например языковых констант)

Использование условий и switch'ей. Обязательно необходимо поддерживать вложенность операторов друг в друга.

Использование определённого набора ф-ций (например translit) и возможность вставки php кода. Набор функций должен расширяться динамически.

Шаблоны необходимо кэшировать, но при этом соблюдая актуальность данных.

Шаблонизатор должен обеспечивать обработку иерархических данных т.е. если из модуля пришёл результат в определённом формате (в моём случае это массив), то шаблонизатор должен автоматически подгрузить необходимые шаблоны и подставить нужные данные.


Дополнительно... при компиляции можно реализовать следующее:

* Автоматически вырезать весь js код и стили из тела шаблона, сжимать всё (в gzip) и сохранять в отдельные файлы.

* Автоматически валидировать html, пробывать "причесать" код.

Основная задача — максимально разграничить труд программера и дизайнера, при этом сохранив чоткую, простую и понятную структуру шаблонов и тегов, в которой смог бы разобраться любой.
Добавил: nickon, комментариев: 0, читать дальше ...
30-04-2010, 13:18, прочитали: 192 раз, раздел: Заметки сисадмина, Ubuntu
После пожара на hosting.ua мы потеряли 2 больших проекта, на которые было потрачено более полугода работы и уйму денег.

Так уж получилось что работали в команде. Команда небольшая и бекапы естественно никто не хранил (ктож знал...), не было такой необходимости, работали прямо на сервере из разных мест. Знаю, что глупо было всё держать на одном сервере, но вот как то так =)

Вобщем пришлось восстанавливать всё с нуля! Особую ценность представляли написанные ранее модули. Частично они сохранились на компах у разработчиков, но это были старые версии без баг-фиксов ... и я волей неволей задумался о контроле версий всех проектов ...
Добавил: nickon, комментариев: 0, читать дальше ...
11-04-2010, 13:31, прочитали: 449 раз, раздел: Заметки сисадмина, FreeBSD, nginx, apache
Настройка nginx

Итак приступим!
Открываем /usr/local/etc/nginx/nginx.conf

http {

    include     mime.typs;
    default_type    application/octet-stream;    

    log_format  main  '$remote_addr - $remote_user [$time_local] $request '
                      '"$status" $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    sendfile on;
    keepalive_timeout 65;
    
    gzip on;
    gzip_min_length 1100;
    gzip_buffers 64 8k;
    gzip_comp_level 3;
    gzip_http_version 1.1;
    gzip_proxied any;
    gzip_types text/plain application/xml application/x-javascript text/css;

    server_tokens off;    
    reset_timedout_connection on;
    limit_req_zone $binary_remote_addr zone=one:10m rate=2r/s;

    server {
        listen 80;
        server_name site.ru www.site.ru;

        rewrite ^(/manager/.*)$ https://$host$1 permanent;
        location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
            proxy_pass http://127.0.0.1:8080;
            proxy_redirect http://127.0.0.1:8080/ /;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Real-IP $remote_addr;
        }

        location / {
            proxy_pass http://127.0.0.1:8080;
            proxy_redirect http://127.0.0.1:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Real-IP $remote_addr;
            limit_req zone=one burst=4;    
        }
        
        location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|cur)$ {
            root /home/nickon/data/www/site.ru;
            expires 1y;
            access_log /home/httpd-logs/site.ru.access.log;
            error_page 404 = @fallback;
        }
        
        location @fallback {
            proxy_pass http://127.0.0.1:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Real-IP $remote_addr;    
        }

    }
}
Добавил: nickon, комментариев: 0, читать дальше ...
© 2008-2010 nick-on.name
Любая перепечатка материалов без разрешения редакции запрещена!

Обратная связь