Задать вопрос
  • Telegram bot для вырезки отчетов из Excel на Python?

    Hivemaster
    @Hivemaster
    Админ, который хочет программировать
    Вместо поиска готовых решений можно просто взять и написать с нуля. Если знаний не хватает, то декомпозировать задачу и гуглить подзадачи. С абсолютной уверенностью заявляю, что каждую составляющую не сложно нагуглить.
    Ответ написан
    Комментировать
  • Iptables правила для captive portal?

    iptables:
    *nat
    -A PREROUTING -d 10.100.0.220/32 -p tcp -m tcp --dport 80 -j ACCEPT
    -A PREROUTING -p tcp -m tcp --dport 80 -m set ! --match-set mac-allowed src -j DNAT --to-destination 10.100.0.220
    
    *filter
    -A FORWARD -i vlan1+ -j macallowed
    -A macallowed -d DNS-сервер -p udp -m udp --dport 53 -j ACCEPT
    -A macallowed -m set --match-set mac-allowed src -j ACCEPT
    -A macallowed -j DROP


    ipset:
    create mac-allowed hash:mac hashsize 1024 maxelem 65536
    add mac-allowed A0:4E:A7:55:44:33


    Примерно так.
    В nat prerouting трафик не из ipset разрешенных MAC-адресов заворачивается на хост с порталом.
    И на портале надо в заголовке указать код 511, чтобы captive portal detection понимал, что это песочница и сам
    открывал окно для дополнительных действий для подключения( хотя это не точно):
    header('HTTP/1.1 511 Network Authentication Required', TRUE, 511);
    header("Location: http://10.100.0.220/portal/index.php?step=1");


    PS. Можно обойтись и без ipset, но с ним быстрее, когда записей станет много.
    Ответ написан
    Комментировать
  • Как пустить часть трафика через VPN?

    Vindicar
    @Vindicar
    RTFM!
    Есть два подхода. В обоих случаях тебе нужен список заблокированных IP, его можно взять на антизапрете, например.
    Дальше вопрос, как пускать трафик.
    1. На хабре был материал про динамическую подгрузку маршрутов через BGP. Плюс - работает с любыми протоколами, и не требует дополнительной настройки со стороны проксируемого ПО. Минусы - ощутимо сложнее в понимании, на мой взгляд, да и с кроссплатформенностью могут быть проблемы. В статье приведена реализация на роутере Mikrotik.
    2. Использовать файл proxy.pac. Его можно сгенерировать скриптом типа такого:
    #!/bin/bash
    #!/bin/bash
    DNS_SERVER=8.8.8.8
    BLACKLIST_URL="http://antizapret.prostovpn.org/iplist.txt"
    #куда класть файл proxy.pac
    PACDIR=/var/www/html
    TMPLIST=/tmp/iplist.txt
    #домены, которые нужно пускать через прокси независимо от содержимого iplist.txt
    DOMAINS=(\
    rutracker.org \
    facebook.com \
    facebook.net \
    fbcdn.net \
    twitter.com \
    twitter.co \
    t.co \
    twimg.com \
    twitpic.com \
    periscope.tv \
    pscp.tv \
    )
    #качаем чёрный список
    wget -q --tries=10 -O "$TMPLIST" "$BLACKLIST_URL"
    # вытаскиваем IP наших прописанных доменов
    declare -a EXTRAIPS=()
    for domain in "${DOMAINS[@]}"
    do
            dig A "$domain" +short @$DNS_SERVER | grep -v '\.$' >>"$TMPLIST"
    done
    #в чёрном списке есть отдельные IP и есть подсети
    #также чёрный список очень длинный, поэтому кодируем его более компактно.
    IPLIST=`grep -Ex '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$' "$TMPLIST" | awk '/^[0-9]+/ {split($1,b,/\./); printf("0x%02x%02x%02x%02x,", b[1],b[2],b[3],b[4]);}'`
    SUBNETLIST=`awk '/[0-9.]+\.[0-9]+\.[0-9]+\.[0-9]+\/[0-9]+/ {split($1,p,/\//); printf("[\"%s\", %s], ", p[1], p[2]);}' <"$TMPLIST"`
    #генерируем proxy.pac по шаблону
    #он проверяет домен на вхождение в фиксированные домены, а потом IP по списку.
    function templatePAC {
            NAME=$1
            shift
            DMNLIST=("$@")
            cat >"$PACDIR/$NAME" <<EOF
    function FindProxyForURL(url, host) {
      var domainblacklist = [
    EOF
            for d in "${DMNLIST[@]}"
            do
                    echo "  '$d'," >>"$PACDIR/$NAME"
            done
            cat >>"$PACDIR/$NAME" <<EOF
      ];
      var ipblacklist = [ $IPLIST ];
      var subnetblacklist = [ $SUBNETLIST ];
    
      function endsWith(str, suffix) {
        return str.indexOf(suffix, str.length - suffix.length) !== -1;
      }
      function numberToMask(n) {
        var m=[0,128,192,224,240,248,252,254,255];
        var r=[];
        for (var i=0; i<4; i++) {
          var p = (n > 8) ? 8 : n;
          r[i] = m[p];
          n -= p;
        }
        return r.join(".");
      }
      function maskMatch(ip, mask) {
        var m = numberToMask(mask[1]);
        return isInNet(ip, mask[0], m);
      }
    
      var blocked = false;
      for (var i=0; !blocked && (i<domainblacklist.length); i++)
        blocked = blocked || ((host == domainblacklist[i]) || endsWith(host, '.'+domainblacklist[i]));
      if (!blocked) {
        var ip = dnsResolve(host);
        for (var i=0; !blocked && (i<subnetblacklist.length); i++)
          blocked = blocked || maskMatch(ip, subnetblacklist[i]);
        blocked = blocked || (ipblacklist.indexOf(convert_addr(ip)) != -1);
      }
      if (blocked)
        return "PROXY ТУТ_ТВОЙ_ПРОКСИ:ПОРТ";
      else
        return "DIRECT";
    }
    EOF
    }
    # генерируем файл
    templatePAC proxy.pac "${DOMAINS[@]}"
    
    rm -f "$TMPLIST"

    Тогда можно отдавать этот proxy.pac любым веб-сервером (но лучше внутри VPN - если VPN не работает, то смысл в файле?), и настроить браузер на его использование.
    Минусы: работает только с браузерами, требует наличия вебсервера и полноценного прокси-сервера внутри VPN-сети (т.е. просто арендованный VPN не подойдёт, нужен VPS). Но мне показалось это проще в понимании, чем возня с BGP, да и требуется только наличие современного браузера и VPN клиента, без привязки к роутеру. Можно хоть на ноуте настроить, как я сделал.
    Ответ написан
    Комментировать
  • Какой браузер выбрать для анонимности на Windows?

    AleksandrB
    @AleksandrB
    Совсем недавно вывел "Hello world"
    Основной вопрос: зачем?
    Ты хочешь серфить по заблокированным страницам?
    - Любой с впн
    Ты хочешь что бы Байден не читал твою переписку в вк?
    - С гарантией никак.
    Ты просто хочешь что бы компании меньше о тебе знали?
    - Тут может быть достаточно режима инкогнито.
    Ты хочешь пользоваться сайтами с запрещенной информацией?
    - Никак. Тор отслеживается. Его сложнее отследить чем прокси/впн, но отследить вполне возможно. Но не стоит переживать по этому поводу пока ты не начал реально совершать какие-то действия. Если хочешь что-то купить на этих площадках, тебя отследят не по браузеру, а по крипто-кошельку.

    Все эти способы влекут за собой неудобства. Ты не можешь регистрироваться на площадках. Пользоваться большим колл-вом сервисов. Скорость будет медленная. Зачем?
    А вообще, пора смириться, что все все будут про тебя знать и просто думать что ты делаешь в интернете. Прошло время беззаботного серфинга.
    Ответ написан
    1 комментарий
  • Какие существует серверы по бесплатному предоставлению плиток карты, с возможностью скачивания без ограничений?

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

    @pfg21
    ex-турист
    есть opentopomap.ru автор думаю будет будет рад его использованию
    https://forum.openstreetmap.org/viewtopic.php?id=68308
    п.с. вот прям сейчас у провайдера тех.проблемы, потому тайлики отдаются с обрывами, обещают все исправить. ну таки вот :)
    Ответ написан
    Комментировать
  • Существует ли программа для андроида для получения и снятия предупреждений о недоступности ресурса?

    martin74ua
    @martin74ua Куратор тега Системное администрирование
    Linux administrator
    рассылать уведомления должна одна система мониторинга. А не миллион разных устройств и каждое по своему.

    Поставьте zabbix, nagios, centreon, еще что нить. И там уже настраивайте.
    А ваш андроид - это тупая читалка. На нем вообще ничего не надо )
    Ответ написан
    Комментировать
  • Как задать пароль для ssh отличный от локального?

    @pfg21
    ex-турист
    не мудрить и запретить доступ по паролю по удаленке.
    Ответ написан
    1 комментарий
  • Как задать пароль для ssh отличный от локального?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    1. Можно подхимичить на коленке, создав двух юзеров с одинаковым UID/GID

    правим /etc/passwd
    testuser:x:1003:1003:,,,:/home/testuser:/bin/bash
    testuser1:x:1003:1003:,,,:/home/testuser:/bin/bash

    Пароли делаем разные, все остальное одинаковое.
    При логине обоими юзерами линукс будет везде отображать имя только первого (testuser), так как UID совпадает, HOME совпадает, все совпадает.

    Затем запрещаем одному из юзеров удаленный логин:
    В /etc/ssh/sshd_config
    DenyUsers testuser1
    Перегружаем sshd и все.

    2. Можно замутить почти тоже самое, добавив к pam_unix еще авторизацию по ldap, настроить лдап, и второго юзера завести в LDAP (тоже прописать одинаковый UID/GID).

    3. Лучше всего конечно настроить сложный пароль и ssh ключи, и не париться.
    Ответ написан
    2 комментария
  • Как быстро начать изучать python?

    Atanvar
    @Atanvar
    Frontend developer
    Доусон -> потом начинайте что-то пилить, какой-нибудь парсер сайтов -> берите фласк \ джанго и напишите блог, и вместе с этим читайте лутца.
    Ответ написан
    Комментировать
  • Как запустить второй сервер OpenVPN?

    @mureevms
    Если кратко, то скопировать существующий конфиг и назвать его, пусть будет tcp.conf. Поменять в новом конфиге порт и протокол, и все остальное, что требуется. Затем перечитать конфиг systemd:
    systemctl daemon-reload
    Запустить новый экземпляр OpenVPN при помощи systemctl:
    systemctl start openvpn@tcp.service
    И не забыть его добавить в автозагрузку:
    systemctl enable openvpn@tcp.service
    Ответ написан
    5 комментариев
  • Обозначение www устарело?

    prolis
    @prolis
    Независимый разработчик BPM
    Профессиональный подход - сразу развести сервисы по поддоменам и железу, например:
    • www
    • mail
    • disk
    • crm
    • api

    и т.п.
    Ответ написан
    2 комментария
  • Обозначение www устарело?

    @blugamire
    www используется все реже и реже.
    но настройка его - это секундное дело.
    поэтому все же нужно настраивать и с www в том числе.
    Ответ написан
    6 комментариев
  • Обозначение www устарело?

    amux
    @amux
    alp.ac
    www бывает полезно когда сайт находится на нестандартном домене:
    www.super.ninja / super.ninja
    www.please.help / please.help

    В первом случае более понятно что это сайт, а не имя какого-то аккаунта в соцсетях.
    Прописывать алиас лучше чем не прописывать, кто-то ссылку на ресурс через www напишет, или в браузер вобьёт и перейдет.
    Приписывание алиаса, 2 секунды в nginx, надо быть суперленивым чтобы забить на это)
    Ответ написан
    1 комментарий
  • Linux дистрибутив для предприятия?

    Установил xubuntu в небольшую фирму для тех же целей. Большинство приходящих даже не замечают. Наверное, думают, что это тема для Винды. Стоит уже два года, никаких нареканий.
    Ответ написан
  • Linux дистрибутив для предприятия?

    @akimdi
    Если Вам нужен хороший UI для пользователя, то однозначно нужно смотреть в сторону Linux Mint - он прост в освоении интерфейса. Люди которые привыкли работать на Windows легко смогут понять и перейти на Mint.
    А что бы организовать организовать централизованное управление, Вам лучше Ansible - там начиная от автоматическую установку программ и заканчивая настройкой файлов конфигураций.
    По поводу периферии и прочих, то лучше мяты никто не работает. Там все эти проприетарные кодеки, фирмвари и прочее.
    Так что Вам нужна мята желательно с корицей - однозначно !!! (Linux Mint 19 "Tara" - Cinnamon)
    Напишите пару плэйбуков на Ansible и быстро развернете что вам нужно.

    Ansible
    Linux Mint 19 Tara Cinnamon
    Ответ написан
    1 комментарий
  • Linux дистрибутив для предприятия?

    Sanes
    @Sanes
    Для 150 пользователей нужет отдел IT, который не задает такие вопросы.
    Ответ написан
    Комментировать
  • С чего начать настройку отказоустойчивого шлюза на CentOS 7?

    @MechanID
    Админ хостинг провайдера
    чтобы шлюз был отказусточивым - должно быть два компьютера шлюза а не 1,
    автопереключение с провайдера на провайдер это лиш частичная мера по отказоустойчивости.
    миграция ип адресов между шлюзами - средствами keepalived
    NAT - посредством iptables
    проверка доступности интернета через провайдеров и переключение - небольшие баш скирпты в крон, или циклом в фон если раз в минуту слишком медленно.
    Также для общего развития читайте LARTC https://www.opennet.ru/docs/RUS/LARTC/
    Ответ написан
    3 комментария
  • Существует ли простой аналог certbot?

    Rampages
    @Rampages
    В связке с nginx у меня получалось так:
    установка:
    sudo apt-get install letsencrypt

    настройка:
    sudo letsencrypt certonly -a webroot --webroot-path=/var/www/html -d domain.com -d www.domain.com

    обновление:
    sudo letsencrypt renew
    sudo crontab -e
    	30 2 * * 1 /usr/bin/letsencrypt renew >> /var/log/le-renew.log
    	35 2 * * 1 /bin/systemctl reload nginx


    Под apache можно также сделать. И под другую операционную систему тоже.

    p.s. настройку location и всякие ssl-params не стал приводить, если надо пишите в комментарий.
    Ответ написан
    Комментировать