Задать вопрос
  • Как выглядят купонные сайты и сами купоны с точки зрения партнёров этих самих сайтов?

    В закрывшемся уже Joybuy купон пользователь приобретал на сайте, динамически генерился уникальный код купона. Отдельная админка для клиентов, где они видели свои акции и купленные на них купоны. Раз в день список новых оплаченных купонов уходил на почту.
    В личном кабинете так же можно было "валидировать" номера купонов - например, в кафе вводят номер очередного купона — и видят, что «да, купон валиден, куплен тогда-то, еще не прокатывался». Или «этот номер уже был использован».
    Ответ написан
    Комментировать
  • Как выглядят купонные сайты и сами купоны с точки зрения партнёров этих самих сайтов?

    opium
    @opium
    Просто люблю качественно работать
    Глупости, купонные сайт атакует клиента, наверно достаточно редко они приходят сами, потом после того как клиент согласился продавать купоны, договариваются сколько и по чем, купонный сайт делает сам все оформление тексты и прочее(так как клиент обычно не мастер в этом, а надо чтобы все выглядело красиво). Ну и сам купонный сайт все запускает как ему надо, он следит чтобы скидки по меньше пересекались и всегда были в наличии. Скажем чтобы не было 100500 пиц в одно время, а в другое время их не было вообще.
    В общем b2b общение оно больше телефонное, а b2c уже как сайтоплощадка для нас хомячков. Список купленных купонов чаще всего приходит на емайл + можно проверить на сайте.
    Ответ написан
    Комментировать
  • Как в iptables блокировать все соединения SYN_RECV?

    DerBlogger
    @DerBlogger

    SYN_RECV - это состояние tcp-соединения во время three-handshake, означающее что сервер принял пакет с установленным флагом SYN (запрос на соединение), отправил SYN/SYN-ACK клиенту и ожидает от клиента пакет с флагом ACK.

    Поскольку ACK от клиента (в нашем случае, от атакующего хоста) не приходит, то соединение висит до момента, пока оно не будет убито по таймауту. Пока такое соединение существует в системе - оно потребляет ресурсы, что может создать прецедент для замедления работы системы.

    Таким образом, чтобы таких соединений не создавалось нужно отсеивать из них неугодные до того, как система выделит для них ресурсы. В Вашем случае, нужно фильтровать все входящие пакеты с установленным флагом SYN и дропать те из них, которые нас не устраивают. Легитимный пользователь не будет создавать по десятку соединений каждую секунду, а атакующий - будет.

    Соответственно, Вам нужно выяснить закономерность (периодичность, количество запросов и т. п.), позволяющую отличить легитимный хост от атакующего конкретно в Вашем случае, и в соответствии с ней создать правила.

    Если говорить обобщенно, то в Вашем случае, я думаю, проблему можно решить с помощью модуля recent в iptables. Уверен, его функционала Вам будет достаточно. Сможете обойтись несколькими правилами. Алгоритм следует применить примерно такой:

    1. Сначала разрешаете входящий tcp-трафик по соединениям в состояниях ESTABLISHED и RELATED (модуль conntrack).

    iptables -I INPUT 1 -p tcp -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

    2. Открываете нужные порты, разрешая пропуск пакетов по этим правилам только в случаях если:
    - установлен флаг SYN (опция --syn);
    - соединение находится в состоянии NEW (модуль conntrack);
    - не превышен лимит соединений с одного ip-адреса (модуль recent).
    Примерно так:
    iptables -A INPUT -p tcp -m multiport --dports 80,443 --syn -m conntrack --ctstate NEW -m recent --name webtraffic --update --seconds 5 --hitcount 16 -j DROP
    
    iptables -A INPUT -p tcp -m multiport --dports 80,443 --syn -m conntrack --ctstate NEW -j ACCEPT


    Первое правило будет применено только к пакетам с установленным флагом SYN, которые приходят с отдельно взятого IP-адреса со скоростью более 16 пакетов в течение 5 секунд. Этим правилом будет отброшен флуд.

    Второе правило пропустит пакеты, не подошедшие под предыдущее правило (легитимный трафик).

    Разумеется, все нужно адаптировать под Ваши условия и нагрузку. Подробности по модулям смотрите в man iptables-extensions. Настоятельно рекомендую ознакомиться с описанием модуля recent для лучшего понимания.

    3. Дропаете весь остальной tcp-трафик либо отдельным правилом, либо политикой по-умолчанию.

    Также, дабы легитимных пользователей не откидывало при попытке подключения, Вы можете увеличить очередь SYN-пакетов в sysctl, в соответствии с имеющимися системными ресурсами. За это отвечает параметр net.ipv4.tcp_max_syn_backlog, и уменьшить таймаут для соединений в состоянии SYN_RECV, за что отвечает параметр net.netfilter.nf_conntrack_tcp_timeout_syn_recv.
    Рекомендуемые параметры индивидуальны для каждой системы. У меня используются такие:
    net.ipv4.tcp_max_syn_backlog = 262144
    net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 20

    Ответ написан
    1 комментарий
  • Почему корневые серверы ДНС не хотят со мной разговаривать?

    kenny_opennix
    @kenny_opennix
    Через dig и nslookup работает, через host у меня тоже не работает (freebsd9).
    mail# nslookup
    > server f.root-servers.net
    Default server: f.root-servers.net
    Address: 192.5.5.241#53
    Default server: f.root-servers.net
    Address: 2001:500:2f::f#53
    > set q=ns
    > ru.
    Server:         f.root-servers.net
    Address:        192.5.5.241#53
    
    Non-authoritative answer:
    *** Can't find ru.: No answer
    
    Authoritative answers can be found from:
    ru      nameserver = e.dns.ripn.net.
    ru      nameserver = a.dns.ripn.net.
    ru      nameserver = d.dns.ripn.net.
    ru      nameserver = b.dns.ripn.net.
    ru      nameserver = f.dns.ripn.net.
    a.dns.ripn.net  internet address = 193.232.128.6
    b.dns.ripn.net  internet address = 194.85.252.62
    d.dns.ripn.net  internet address = 194.190.124.17
    e.dns.ripn.net  internet address = 193.232.142.17
    f.dns.ripn.net  internet address = 193.232.156.17
    a.dns.ripn.net  has AAAA address 2001:678:17:0:193:232:128:6
    b.dns.ripn.net  has AAAA address 2001:678:16:0:194:85:252:62
    d.dns.ripn.net  has AAAA address 2001:678:18:0:194:190:124:17
    e.dns.ripn.net  has AAAA address 2001:678:15:0:193:232:142:17
    f.dns.ripn.net  has AAAA address 2001:678:14:0:193:232:156:17
    
    

    Зато с ключом -v прекрасно работает
    mail# host -v -t ns ru. f.root-servers.net
    Trying "ru"
    Using domain server:
    Name: f.root-servers.net
    Address: 192.5.5.241#53
    Aliases: 
    
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 435
    ;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 5, ADDITIONAL: 10
    
    ;; QUESTION SECTION:
    ;ru.                            IN      NS
    
    ;; AUTHORITY SECTION:
    ru.                     172800  IN      NS      f.dns.ripn.net.
    ru.                     172800  IN      NS      a.dns.ripn.net.
    ru.                     172800  IN      NS      e.dns.ripn.net.
    ru.                     172800  IN      NS      d.dns.ripn.net.
    ru.                     172800  IN      NS      b.dns.ripn.net.
    
    ;; ADDITIONAL SECTION:
    a.dns.ripn.net.         172800  IN      A       193.232.128.6
    b.dns.ripn.net.         172800  IN      A       194.85.252.62
    d.dns.ripn.net.         172800  IN      A       194.190.124.17
    e.dns.ripn.net.         172800  IN      A       193.232.142.17
    f.dns.ripn.net.         172800  IN      A       193.232.156.17
    a.dns.ripn.net.         172800  IN      AAAA    2001:678:17:0:193:232:128:6
    b.dns.ripn.net.         172800  IN      AAAA    2001:678:16:0:194:85:252:62
    d.dns.ripn.net.         172800  IN      AAAA    2001:678:18:0:194:190:124:17
    e.dns.ripn.net.         172800  IN      AAAA    2001:678:15:0:193:232:142:17
    f.dns.ripn.net.         172800  IN      AAAA    2001:678:14:0:193:232:156:17
    
    Received 332 bytes from 192.5.5.241#53 in 64 ms
    mail# 
    
    
    Ответ написан
    Комментировать
  • Почему корневые серверы ДНС не хотят со мной разговаривать?

    xaker1
    @xaker1
    Да, DNS выполняют рекурсивные запросы.
    Утилита host почему-то не отрабатывает, если указать принудительно dns сервер.

    Попробуйте dig
    dig
    xaker1@xaker1:~ > dig -t ns f.root-servers.net. ru.

    ; <<>> DiG 9.9.2-P1 <<>> -t ns f.root-servers.net. ru.
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<< — opcode: QUERY, status: NOERROR, id: 55260
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

    ;; QUESTION SECTION:
    ;f.root-servers.net. IN NS

    ;; AUTHORITY SECTION:
    root-servers.net. 3600 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2013010300 14400 7200 1209600 3600000

    ;; Query time: 3 msec
    ;; SERVER: 127.0.1.1#53(127.0.1.1)
    ;; WHEN: Thu Aug 1 17:21:15 2013
    ;; MSG SIZE rcvd: 96

    ;; Got answer:
    ;; ->>HEADER<< — opcode: QUERY, status: NOERROR, id: 11972
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0

    ;; QUESTION SECTION:
    ;ru. IN NS

    ;; ANSWER SECTION:
    ru. 84996 IN NS f.dns.ripn.net.
    ru. 84996 IN NS e.dns.ripn.net.
    ru. 84996 IN NS a.dns.ripn.net.
    ru. 84996 IN NS d.dns.ripn.net.
    ru. 84996 IN NS b.dns.ripn.net.

    ;; Query time: 3 msec
    ;; SERVER: 127.0.1.1#53(127.0.1.1)
    ;; WHEN: Thu Aug 1 17:21:15 2013
    ;; MSG SIZE rcvd: 112

    xaker1@xaker1:~ > dig -t a habr.ru. +trace +all

    ; <<>> DiG 9.9.2-P1 <<>> -t a habr.ru. +trace +all
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<< — opcode: QUERY, status: NOERROR, id: 9020
    ;; flags: qr ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 1

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;. IN NS

    ;; ANSWER SECTION:
    . 516394 IN NS d.root-servers.net.
    . 516394 IN NS m.root-servers.net.
    . 516394 IN NS l.root-servers.net.
    . 516394 IN NS f.root-servers.net.
    . 516394 IN NS a.root-servers.net.
    . 516394 IN NS i.root-servers.net.
    . 516394 IN NS c.root-servers.net.
    . 516394 IN NS g.root-servers.net.
    . 516394 IN NS j.root-servers.net.
    . 516394 IN NS b.root-servers.net.
    . 516394 IN NS k.root-servers.net.
    . 516394 IN NS e.root-servers.net.
    . 516394 IN NS h.root-servers.net.

    ;; Query time: 508 msec
    ;; SERVER: 208.67.222.222#53(208.67.222.222)
    ;; WHEN: Thu Aug 1 17:09:13 2013
    ;; MSG SIZE rcvd: 239

    ;; Got answer:
    ;; ->>HEADER<< — opcode: QUERY, status: NOERROR, id: 13022
    ;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 7, ADDITIONAL: 11

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags: do; udp: 4096
    ;; QUESTION SECTION:
    ;habr.ru. IN A

    ;; AUTHORITY SECTION:
    ru. 172800 IN NS a.dns.ripn.net.
    ru. 172800 IN NS e.dns.ripn.net.
    ru. 172800 IN NS f.dns.ripn.net.
    ru. 172800 IN NS b.dns.ripn.net.
    ru. 172800 IN NS d.dns.ripn.net.
    ru. 86400 IN DS 14072 8 2 DFFBFE59FBBD3289D0C3819F05F94610A1E03B556D64540A2CC5F8C4 158A00E7
    ru. 86400 IN RRSIG DS 8 1 86400 20130807000000 20130730230000 49656. kO5UkU+BBko5+QDOkU6jkerC6WzsEqMHxc+RVfE+y3e8PPWI+HKHBj6Z e6/x4Ddn4BpUBM732dWbz88n00PqFhD3Q+00RM+7YwPnEDmDk1eZJrJT 33opWG5L8hn+5DYoHRPuSGJBcRhyIQHwHWwvhtiX7IsPj2GmskUssBLG 6ro=

    ;; ADDITIONAL SECTION:
    a.dns.ripn.net. 172800 IN A 193.232.128.6
    b.dns.ripn.net. 172800 IN A 194.85.252.62
    d.dns.ripn.net. 172800 IN A 194.190.124.17
    e.dns.ripn.net. 172800 IN A 193.232.142.17
    f.dns.ripn.net. 172800 IN A 193.232.156.17
    a.dns.ripn.net. 172800 IN AAAA 2001:678:17:0:193:232:128:6
    b.dns.ripn.net. 172800 IN AAAA 2001:678:16:0:194:85:252:62
    d.dns.ripn.net. 172800 IN AAAA 2001:678:18:0:194:190:124:17
    e.dns.ripn.net. 172800 IN AAAA 2001:678:15:0:193:232:142:17
    f.dns.ripn.net. 172800 IN AAAA 2001:678:14:0:193:232:156:17

    ;; Query time: 243 msec
    ;; SERVER: 199.7.91.13#53(199.7.91.13)
    ;; WHEN: Thu Aug 1 17:09:13 2013
    ;; MSG SIZE rcvd: 555

    ;; Got answer:
    ;; ->>HEADER<< — opcode: QUERY, status: NOERROR, id: 22012
    ;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 6, ADDITIONAL: 1

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags: do; udp: 4096
    ;; QUESTION SECTION:
    ;habr.ru. IN A

    ;; AUTHORITY SECTION:
    habr.ru. 345600 IN NS ns2.habradns.net.
    habr.ru. 345600 IN NS ns1.habradns.net.
    TDUI9D4JKUDS8B9T86GJ39PGFLCNLGM5.ru. 3600 IN NSEC3 1 1 3 00FF TEFG7J6PMM47P5H81JFQ4VC5FIS9TDOL NS SOA RRSIG DNSKEY NSEC3PARAM
    TDUI9D4JKUDS8B9T86GJ39PGFLCNLGM5.ru. 3600 IN RRSIG NSEC3 8 2 3600 20130818050420 20130711212102 9879 ru. uHu+S8E4WHqaTPtZhxOWcvOFvfGyPg3gmZb4COgF+W+pXrx9HIZbT0UP Bidi9p94FwfpxRrV9oz1QXooF9Q9oLU/1l0Hc/2r6HyY7RTpZDeRQlnt Fy6LHVboDazKHBm50XAU15IidiIgzG9cZV69ITT0kqMqxUR0zVXwFc6J 8zg=
    BELG7FO0P653NH4HS77LQ0E5E0MV4JIF.ru. 3600 IN NSEC3 1 1 3 00FF BMP1PHBL4O1LE1IPTV9I1AM84T3N48KJ NS DS RRSIG
    BELG7FO0P653NH4HS77LQ0E5E0MV4JIF.ru. 3600 IN RRSIG NSEC3 8 2 3600 20130901075644 20130719092154 9879 ru. UdZCtFE/kLSoCBiEGGd9woNFy7kCxWWxr/5zkqpEads3ev+AX1qWjDgg iNrLv4HqzNvaCezTEJNa6UVoPxQxtoq97Z+1EoaMBjuepzbWfYs77GH4 nzCAJX5/DoFNjlIScfY/ghdCEYTqQMQItt4coLTFdsgS+9vp8BVRLEWm Sdc=

    ;; Query time: 128 msec
    ;; SERVER: 193.232.142.17#53(193.232.142.17)
    ;; WHEN: Thu Aug 1 17:09:15 2013
    ;; MSG SIZE rcvd: 571

    ;; Got answer:
    ;; ->>HEADER<< — opcode: QUERY, status: NOERROR, id: 11959
    ;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1

    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags: do; udp: 4096
    ;; QUESTION SECTION:
    ;habr.ru. IN A

    ;; ANSWER SECTION:
    habr.ru. 900 IN A 178.63.117.149

    ;; AUTHORITY SECTION:
    habr.ru. 900 IN NS ns2.habradns.net.
    habr.ru. 900 IN NS ns1.habradns.net.

    ;; Query time: 79 msec
    ;; SERVER: 78.46.61.175#53(78.46.61.175)
    ;; WHEN: Thu Aug 1 17:09:15 2013
    ;; MSG SIZE rcvd: 100
    Ответ написан
    Комментировать
  • Debian отображает не всю оперативную память. Как решить?

    romeo_ordos
    @romeo_ordos
    Решения 2:

    1) Установить расширение PAE на уже установленную ОС с архитектурой X86
    2) Установить ОС с архитектурой X86_64
    Ответ написан
    8 комментариев
  • А существует ли ресурс для bad practice по системному администрированию?

    @egorinsk
    > А существует ли ресурс для bad practice по системному администрированию?

    Некоторые пользователи считают, что это habrahabr.ru
    Ответ написан
    1 комментарий
  • Xen - чем-то съедается память в dom0?

    okazymyrov
    @okazymyrov
    Вы не по тому параметру отсортировали. Нужно по (MEM%). И ещё поиграйтесь с опцией «Display options» (при нажатии F2).
    Ответ написан
    1 комментарий
  • Apache2 - логгирование времени ответа сервера?

    кстати если поставит nginx перед апачем, то «The time taken to serve the request» как раз будет = времени обработки запроса, так как nginx у apache его забирает очень быстро, а потом уже сам неспеша отдает клиенту.
    Ответ написан
    1 комментарий
  • Apache2 - отключить gzip для редиректов

    homm
    @homm
    Хотел ссылку кинуть на похожий вопрос, но я смотрю это ваш вопрос и был :)

    Раз за столько времени ответ не нашелся, может быть уже стоит поставить вопрос по другому?
    Устанавливаете nginx фронтендом. Отключаете любое сжатие в Апаче, включаете в nginx, задаете порог минимально сжимаемого тела ответа. Все.
    Ответ написан
    1 комментарий
  • В request-tracker-3.8 не получается изменить или создать юзера, очередь и т.п?

    @mitnlag
    На request-tracker.ru вам дорога.

    Не забудьте дать доступ юзеру rt в папку mason_data и session_data, или как-то так. Он там всякие кешированные элементы хранит, если не может создать — падает со всякой ересью.
    Ответ написан
    1 комментарий
  • Nginx: Как ограничить количество соединений для различных виртуальных хостов?

    akalend
    @akalend
    программирую
    Модуль ngx_http_limit_zone_module позволяет ограничить число одновременных соединений для заданной сессии или, как частный случай, с одного адреса.
    Ответ написан
    3 комментария
  • Modrewrite - статья для новичков?

    SwampRunner
    @SwampRunner
    вот так:

    #domain.com/user-66
    RewriteRule ^(user\-)([0-9]+)$ /user.php?id=$2 [L]

    #domain.com/user/66/
    RewriteRule ^(user)/([0-9]+)/$ /user.php?id=$2 [L]

    #user.domain.com
    RewriteCond %{HTTP_HOST} ^([0-9a-z\-]+)\.domain\.com$ [NC]
    RewriteRule ^$ /user.php?login=%1 [L]

    Последний вариант с виртуальными поддоменами возможен только если у вас есть доступ к настройкам сервера.
    Ответ написан
    3 комментария
  • Запуск Tomcat5.5 под Windows с Security Manager'ом

    iSage
    @iSage
    Вопрос тогда в том, откуда и как вы ставили томкат.
    Ибо в www.sai.msu.su/apache/tomcat/tomcat-5/v5.5.31/bin/apache-tomcat-5.5.31.zip в папке bin есть искомый catalina.bat
    Ответ написан
    1 комментарий
  • Почему растут GC паузы у JBoss'а?

    apangin
    @apangin
    Э-м-м… почему такой большой размер YoungGen? На то и нужен generational GC, чтоб молодое поколение было маленьким и быстрым. Какой общий размер Java Heap?
    Для максимизации пропускной способности ParallelGC лучше.
    Похоже на утечку памяти в самом приложении. Есть возможность запустить с -Xloggc:gc.log -XX:+PrintGC [-XX:+PrintGCDetails -XX:+Verbose]?
    Ответ написан
    2 комментария
  • Счетчики на западных сайтах

    @bondbig
    да есть там счетчики, просто они, как правило, не выставляют их напоказ, как наши. Тяга к показухе, не более, имхо.
    Ответ написан
    Комментировать
  • Копирование файлов через промежуточный сервер?

    slang
    @slang
    Я бы попробовал scp, но, думаю, это мало чем отличалось бы от Вашего копирования через mc.
    В любом случае, всегда можно сделать туннелирование по ssh.
    Ответ написан
    Комментировать
  • Подключение к удаленному рабочему столу

    Кроме DynDNS который поможет подключатся без постоянного ip, нужно еще настроить роутер на проброску порта внутрь локальной сети, это справедливо и для VPN и без него (RDP например). С vpn до сервера подключение предпочтительней, тк безопасней.
    Ответ написан
    Комментировать
  • Подключение к удаленному рабочему столу

    @bondbig
    — Либо таки пробросить на роутере порт 3389 (любой другой, по желанию) на этот сервер
    — Либо юзать logmein (не требуется никаких коммерческих версий)
    — Либо у той же конторы hamachi, но потребуется и на клиенте тогда ставить компонент.
    Ответ написан
    Комментировать