• Почему возникает бесконечная рекурсия в операторе with?

    @throughtheether
    human after all
    не понимаю, о какой именно рекурсии речь, но на вашем месте исправил бы
    url_list = [x.strip for x in fh.read().split("\n")]

    на
    url_list = [x.strip() for x in fh.read().split("\n")]
    Ответ написан
    Комментировать
  • Как ограничить взаимодействие хостов внутри VLAN?

    @throughtheether
    human after all
    Мне представляются следующие варианты.
    Switchport protected на 2960 как вегетарианская замена private vlans.
    Если хосты общаются между собой при помощи протоколов поверх IP, то можно подумать насчет proxy arp на устройстве, маршрутизирующем данный влан (3750).
    Самый тоталитарный вариант - VLAN ACL (mac access-list, vlan access-map) на 2960. Разрешить трафик к хосту только от default gateway (учитывая FHRP, если у вас что-то подобное настроено).

    Думал сделать route map, и пакеты в null направлять, а теперь задумался, проходят-ли пакеты внутри влана через интерфейс влана на котором роут мап будет?
    Пакеты (фреймы) могут скоммутироваться от источника до адресата уже на уровне access, где, я предполагаю, L3-интерфейсов для этого влана нет.
    Ответ написан
    Комментировать
  • Математическая литература - почему всё так плохо?

    @throughtheether
    human after all
    Вот я и подумал, авось знает кто что. Может есть неизвестный мне человек, что написал монументальный труд, являющийся чем-то всеобъемлющим.
    У меня создалось впечатление, что у вас отношение к математике, как к некоей "царице наук", что есть какая-то всеобъемлющая математическая теория и т.д. С моей (инженерной) точки зрения, к математике следует относиться как к дисциплине, предоставляющей некоторые модели. Как выразился один человек, все модели неверны, но некоторые из них в определенных условиях полезны. Вы же не видите в реальной жизни "прямые", "сферы" и "цилиндры", но эти сущности могут быть полезны при моделировании (предсказании поведения и т.д.) реальных объектов. Или пример из статистики - какая вам разница, 60% пациентов, получивших лекарство, выздоравливают, или 40%? Вам, если вы сами пациент, важно, подействует ли лекарство на вас.

    Ибо математика сейчас сама себя раздирает.
    Не понял о чем вы, но если о "противоречиях" (геометрии Евклида, Римана, Лобачевского как пример), то, по-моему, "пусть цветут тысячи цветов". Каждая из "противоречащих" моделей имеет определенное приложение к реальной жизни и некие полезные результаты. Хотя могут пройти годы, прежде чем созданная модель (поля Галуа, геометрия Лобачевского) найдет применение.

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

    Из книжек, думаю, может быть полезно прочитать "Апологию математики" Успенского, хотя это не совсем то, что вы запрашиваете.
    Ответ написан
    2 комментария
  • Как настроить ACL между VLAN cisco 3750?

    @throughtheether
    human after all
    Возникла необходимость запретить трафику ходить из vlan2 в vlan, но из vlan во vlan 2 доступ должен остаться прежним, т.е. полным.
    Необходимо понимать, что ACL в данном случае (Catalyst 3750) - это пакетный фильтр без отслеживания состояния. Соответственно, он может только разрешать/запрещать перенаправлять пакеты от одного интерфейса к другому. Если вы уверены, что именно это вам и нужно, и если маршрутизацией занимается 3750, то вам следует:
    1) создать ACL:
    ip access-list extended deny_vlan2_to_vlanX
     deny ip 10.0.2.0 0.0.0.255 10.0.1.0 0.0.0.255
     permit ip any any
    2) завесить ACL:
    interface vlanX
    ip access-group deny_vlan2_to_vlanX out

    3) пронаблюдать результат.

    Знаю, что это как-то запрещается и разрешается на уровне ACL, но никак не могу настроить, в основном трафик вообще пропадает.
    Необходимо понимать, что если "доступ" из влана X во влан 2 подразумевает какой-либо двусторонний протокол (т.е. практически любой), то "доступа" из влана X во влан 2 не будет.
    В этом случае вам может помочь фаервол с поддержкой состояния (который выделит, например, начало сессии), которого в catalyst 3750, насколько мне известно, нет.
    В случае использования для "доступа" протокола, использующего TCP, возможен вариант с ключевым словом established.
    ip access-list extended deny_vlan2_to_vlanX_variant2
     permit tcp 10.0.2.0 0.0.0.255 10.0.1.0 0.0.0.255 established
     deny ip 10.0.2.0 0.0.0.255 10.0.1.0 0.0.0.255
     permit ip any any

    Этот ACL завесить на тот же интерфейс vlanX таким же образом, что и в предыдущем случае.

    Буквой X везде отмечен ваш таинственный влан с префиксом 10.0.1.0/24 (который не 2).
    Ответ написан
    Комментировать
  • Какие учебные пособия выбрать для систематизированного изучения программирования на основе ЯП Python?

    @throughtheether
    human after all
    Рекомендую обратить внимание на курсы трека Fundamentals of computing на coursera. Деньги (50 долларов за курс) нужно платить только если вам нужен диплом в бумажной форме.
    Ответ написан
    Комментировать
  • Перебор в Python: есть ли способ ускорить?

    @throughtheether
    human after all
    Пример: нужно фильтровать все сайты, которые содержат точку и расширение файла из списка.
    Я не знаю, что означает "сайты, которые содержат точку". Если вам нужно среди всех URL исключить те, которые указывают на файл с определенным расширением, то я бы на вашем месте воспользовался строковым методом endswith:
    import timeit
    setup_code="""
    sites_list = ["http://google.com",
                  "http://www.yandex.com",
                  "http://rambler.com/ololo.jpg",
                  "http://ya.ru/a.bmp"]
    
    format_files = ['jpg', 'bmp', 'jpeg']
    """
    print timeit.timeit("x=list(filter(lambda url: not any('.' + format_file in url for format_file in format_files),  sites_list))",setup=setup_code,number=100000)
    print timeit.timeit("x=list(url for url in sites_list if not url.endswith(tuple(format_files)))",setup=setup_code,number=100000)

    Результаты:
    1.01494306967
    0.616600117219

    Кроме того, я бы заменил, где это возможно, списки (list) на кортежи (tuple) или множества (set).
    Ответ написан
  • Возможно ли перепрограммировать флешку на эмулятор клавиатуры?

    @throughtheether
    human after all
    На базе флеш-накопителя, полагаю, создать нечто подобное будет затруднительно. На вашем месте я бы обратил внимание на teensy (пример использования) или USB Rubber ducky.
    Ответ написан
    Комментировать
  • Как защититься от Ddos наименее затратным способом?

    @throughtheether
    human after all
    В результате сайт полег от атаки через пару часов.
    Вы уверены, что это именно целенаправленная атака? Исходя из каких данных вы делаете такой вывод? В моем опыте были пациенты, у которых сервер генерировал главную страничку при помощи SQL-запроса с множеством операторов join, с полным отсутствием кэширования, со специфической конфигурацией (nginx на windows). Сайт переставал работать при 30 одновременных клиентах. Естественно, внешние мероприятия по фильтрации трафика могли гарантировать работоспособность сервера только при условии его доступности узкому кругу веб-клиентов. Как правило, объяснить это таким людям было затруднительно.
    Я вчера подключила couldflare, не знаю поможет ли это при уже идущей атаке
    Может помочь. Но, насколько мне известно, можно узнать ip-адрес, на который cloudflare переадресовывает трафик, и соответственно направить атаку. Соответственно, нужны дополнительные меры защиты на вашем хостинге (запретить входящий трафик, кроме перенаправляемого с cloudflare)
    Атака http - флуд. Есть ли какие-то еще способы защиты?
    Я как сетевик выскажу свое мнение (стоит учитывать проф. деформацию личности). Я полагаю, что говорить о дополнительных мерах защиты (аппаратные решения и прочая) имеет смысл только если входящий трафик на сервер составляет значительную долю (50-60%) пропускной способности интерфейса. Я полагаю, что сервер, в идеале, должен выдерживать line-rate объем трафика, то есть объем трафика, полностью утилизирующего пропускную способность сетевого интерфейса. И только исчерпав возможности оптимизации сервера, имеет смысл обращаться к внешним решениям. Незрелая оптимизация в данном случае, я полагаю, вредна. Однако, учитывая наличие сервисов вроде cloudflare, использовать их в ряде случаев (вроде вашего) полезно.
    Слышала о каких-то фаерволах, плагинах для wordpress (сайт на нем стоит
    Если много запросов из нецелевых стран, что бывает при покупке вероятным злоумышленником дешевого ботнета, то можете попробовать фильтровать клиентов по странам, используя базы geoIP. Но будьте готовы к ошибкам определения. Также стоит задуматься о настройках кэширования.
    Дорогой хостинг пока нет возможности купить...
    У вас используется shared-хостинг? Если да, то задумайтесь о покупке VPS, настроив кэширование при помощи cloudflare. Это даст вам гибкость настроек. Хотя в редких случаях shared-хостинг может быть более устойчив к некоторым атакам, нежели дешевый VPS.

    Вкратце - вы сделали что могли (подключили сервис cloudflare). Для дальнейшей настройки необходимо понимать многие нюансы работы вашего сайта. DDoS-атаки в вашем случае может и не наличествовать. Вам стоит задуматься об организации грамотной поддержки вашего сайта (нанять системного администратора или самостоятельно углубиться в этом направлении).
    Ответ написан
    1 комментарий
  • Как сделать такой realtime мониторинг трафика?

    @throughtheether
    human after all
    Вообще главная задача у меня это такой мониторинг загрузки канала на web-сервере с разделением по доменам. Может будут советы по алгоритмам измерения?
    Я правильно понимаю, ваш веб-сервер обслуживает несколько доменных имен и вы хотите узнать статистику запросов по доменным именам? В таком случае, полагаю, как SNMP, так и netflow вам помогут вряд ли. Дело в том, что в общем случае, эти запросы отличаются заголовком "Host:" HTTP-сообщений. Я сомневаюсь, что SNMP-агент вашего маршрутизатора предоставит подобную информацию. В netflow эти параметры тоже не учитываются. Если я правильно понял вашу задачу, логичнее парсить access-логи. Полученные данные можно отправлять на collectd/graphite, например.
    Ответ написан
    Комментировать
  • Как определить тип числа с помощью regexp?

    @throughtheether
    human after all
    Если отвлечься от регулярных выражений, то можно реализовать и так (Python 2.7):
    def foo(s):
        try:
            s_int=int(s)
            return s_int
        except ValueError:
            try:
                s_float=float(s)
                return s_float
            except ValueError:
                print "Incorrect string!"
    
    print foo('123')
    print foo('123.5')
    print foo('1e-10')
    print foo('toster')

    Из преимуществ такого подхода - поддерживается экспоненциальная запись (1e-10). Но я не уверен относительно производительности, и возможны другие нюансы.
    Ответ написан
    Комментировать
  • Каковы недостатки One-armed router?

    @throughtheether
    human after all
    Насколько жизнеспособна подобная схема?
    Вполне жизнеспособна, для "домашнего" использования (если смотреть со стороны клиента во влане 2, download+upload в сумме ограничен гигабитом, хотя, думаю, гораздо раньше, чем вы упретесь в это ограничение, истощатся ресурсы cubieboard).
    Есть ли какие-то принципиальные проблемы?
    Принципиальных нет, только нюансы. В случае использование оборудования cisco, например, я бы заменил влан 1 на любой другой.
    Тут получается, что веб-интерфейс коммутатора будет доступен и в подсети провайдера. Насколько это небезопасно?
    Если будет доступен - то это небезопасно, с возможными последствиями от подбора пароля и изменения настроек вашего коммутатора до потенциальных DoS-атак. В качестве защиты или измените настройки доступа к веб-интерфейсу (уже упомянутый management vlan, acl, и т.д.) или вообще отключите его, если есть возможность настройки коммутатора через консоль.
    Ответ написан
    4 комментария
  • Есть ли образы с 15 ios для GNS3?

    @throughtheether
    human after all
    Я слышал, что есть один крупный российский трекер в зоне .org (тот, что с регистрацией). На нем, якобы, есть релевантная раздача на 180 гигабайт. Там, говорят, есть образы 15 ветки.
    Ответ написан
    Комментировать
  • Поломка zyxel keenetik, возможна ли починка?

    @throughtheether
    human after all
    Ответте пожайлуста можно ли его перепаять
    Почему нет? Правда, трудно издалека утверждать, что после перепайки у вас все гарантированно заработает.
    и как называется эта деталь.
    маленький прямоуголтничек
    Это или резисторная сборка, или, что вероятнее, специальный развязывающий трансформатор. Но вообще говоря, без фото судить затруднительно.
    Ответ написан
  • Как сгенеририровать строку по id?

    @throughtheether
    human after all
    Есть пользователь с закрепленным за ним id (например, 10 цифр). Надо получить уникальную строку из букв и цифр большей длинны (около 200). Надо что бы в любой момент эту строку можно было получить зная только id юзера, не прибегая к БД.

    Наивный (но имеющий место, на мой взгляд) подход таков. Вычисляете 2-3-4 различных хэш-суммы (md5, sha-1, и т.д.) от id + произвольная соль (которую храните глобально). Полученные 'hexdump', т.е. представления хэшей в шестнадцатеричном формате конкатенируете. Результат кодируете в base64. Для достижения необходимой длины может понадобиться: 1) конкатенация хэша с самим собой несколько раз, до кодирования 2) конкатенация результата base64-кодирования с самим собой несколько раз.

    Можно использовать только один алгоритм вычисления хэш-суммы, в таком случае вероятность коллизии повысится (но все равно будет пренебрежительно мала, как я понимаю). Можно наоборот, добавить еще солей, все зависит от того, как вы планируете использовать этот идентификатор.
    Ответ написан
  • Почему происходит резкое сокращение скорости интернета при использовании Port Triggering в настройках рутера?

    @throughtheether
    human after all
    Если я правильно понял, Port triggering подразумевает динамическое создание правил NAT ("проброс портов") в зависимости от исходящего трафика. Соответственно, каждый раз, когда ваш компьютер шлет пакет с новым портом назначения (что, скорее всего, он делает часто из-за использования протокола uTP программой utorrent), создается новое правило, что повышает утилизацию процессора (процесс описан в первом приближении).

    На вашем месте я бы:
    1) проверил утилизацию процессора маршрутизатора
    2) использовал бы port forwarding вместо port triggering, где это возможно.
    Ответ написан
    Комментировать
  • Почему не проходят входящие ip соединения?

    @throughtheether
    human after all
    на точках интернет работает, sip через спутник работает, никаких проблем, я могу подключиться к серверам через ammyy admin, но! Не работает RDP, я не могу подключиться к админке роутера, то есть не работают ни пробросы, ни роутер не отвечает. Пинг в это время идет. Еще получалось подключиться телнетом, в самом начале, потом я не проверял. ССШ висит, висит, отваливается по таймауту. Winbox - mikrotik утилита для конфигурирования - может висеть очень-очень долго. RDP аналогично висит, устанавливает соединение. Проброс в админки ip-камер аналогично не отрабатывает, браузер очень быстро выдает что не удается отобразить страницу.
    Я предполагаю, проблема наблюдается в случае использования по крайней мере некоторых протоколов, работающих поверх TCP. Есть предположение, что провайдер, вероятно, каким-то образом дифференцирует TCP-трафик от UDP. Это может быть связано с использованием "ускорителей интернета" а-ля Transport Flow Optimization в Cisco WAAS.
    в какую сторону копать?
    Убедиться в различном поведении TCP и UDP (я не уверен, какой именно протокол использует ammyy admin). Если возможно, завернуть часть "проблемного" трафика в VPN-over-UDP. Пронаблюдать ситуацию. Изучить поведение TCP между интересующими вас точками. Вы говорите, есть доступ через ammyy admin до серверов. На вашем месте я бы поднял на одном из серверов tcp-сервис (настроив соответствующим образом NAT ("проброс портов")), периодически обращался к нему с клиента, сохраняя дампы трафика на обоих концах. В моем представлении, это можно автоматизировать. Если гипотеза подтвердится, и обнаружится разница в дампах, с этими данными можно задать представителям провайдера предметный вопрос.
    Ответ написан
    Комментировать
  • Как разбить строки на слова?

    @throughtheether
    human after all
    Такой вариант подойдет?
    SEPARATORS=",.;?! "
    def toster_word_split(s):
        result=[]
        current_word=''
        for char in s:
            if char in SEPARATORS:
                if current_word: result.append(current_word)
                current_word=''
            else:
                current_word+=char
        return result
    print toster_word_split("Lorem,ipsum;bingo.Bongo? King of Kongo.")
    Ответ написан
    Комментировать
  • Статическое электричесво Macbook или?

    @throughtheether
    human after all
    Статическое электричество подразумевает постепенное накопление заряда. Таким образом, после проскакивания искры заряды выравняются, и повторная искра может возникнуть после некоторого периода повторного накопления заряда. Я так понимаю, это не ваш случай.

    В вашем случае, по моему представлению, присутствует напряжение (переменное) между зарядным устройством и HDMI-кабелем. В этом вы можете убедиться при помощи мультиметра (соблюдая осторожность).
    Возможные причины:
    1) контрафактная зарядка.
    2) самодельная "земля" внутри зарядки (делитель переменного напряжения из двух конденсаторов), и/или такая же схема в телевизоре. В этом случае может помочь переворачивание вилки.
    3) различные вариации пункта 2), помноженные на возможные нюансы электропитания. Попробуйте воткнуть зарядку ноутбука в тот же разветвитель питания, в который включен телевизор. Может потребоваться переворачивание вилки.

    Насколько опасно это для ноута?
    Трудно сказать, но вообще говоря ситуация, как я понимаю, нештатная.

    У меня подобная ситуация наличествовала во времена локальной сети на тонком коаксиале, наблюдались небольшие искры между металлическим коннектором (BNC-T) и корпусом компьютера. Тогда я не понимал, в чем дело, сеть проработала полгода без особых проблем.
    Ответ написан
    Комментировать
  • Почему пропадают пакеты в сети?

    @throughtheether
    human after all
    Если я вас правильно понял, у вас есть 3 компьютера, "пинги" от которых до сервера вас не устраивают.
    есть идеи?
    Основная идея - узнать, чем отличаются эти три проблемных компьютера от остальных. Практические приложения этой идеи таковы:
    1) Проблемые клиенты находятся в том же L2-домене (влане), что и обычные?
    2) Как вообще устроена сеть? Один L2-домен или присутствует маршрутизация? Если L2-домен один, на нем используется один ip-префикс ("подсеть") или несколько?
    3) Сравните arp-таблицы (командами вроде arp или ip neighrbor, ваш вариант может отличаться) на проблемном и на обычном клиенте, особое внимание обратите на разрешение IP-адресов сервера (если он находится в то же L2-домене) и шлюза по умолчанию.
    4) Сравните выводы команды ethtool (ethtool eth0, подставьте ваш интерфейс) на проблемном и нормальном клиентах.
    5) Далее, выделите два клиента, проблемный и обычный, подключите проблемный клиент в порт коммутатора, куда был подключен обычный и наоборот. Что изменилось?

    Получив ваши ответы на вопросы по пунктам (вывод команд тоже пригодится), можно будет строить более конкретные предположения.
    Ответ написан
    Комментировать
  • Существует ли ПО только под Win7 Prof?

    @throughtheether
    human after all
    Наша компания участвует в одном тендере и там указано что обязательным условием является Win7, типа у них есть ПО которое работает только под ним.
    Мое видение таково - кому-то очень надо, чтобы тендер выиграл определенный поставщик. Причины могут быть разные - от освоения бюджетов уважаемыми людьми до нежелания менять существующего поставщика.
    Ответ написан
    1 комментарий