Beri bash i ebash / Говнокод #27268 Ссылка на оригинал

0

  1. 1
$ find ~ -name .git -type d -prune -printf "***\n%p\n***\n" -exec git -C '{}/..' status  \;

Запостил: MAKAKA MAKAKA, (Updated )

Комментарии (128) RSS

  • давайте течь от команды ``find``
    вот так я проверяю статусы своих проектов
    Ответить
  • перешел на sshguard.

    Есть два варианта:
    * цепочка, куда он будет срать -j DROPами, а я буду в нее -j из INPUT
    * использовать ipset

    Вроде как мулион CIDR адресов проще хранить в ipset. Это правильнее?
    Ответить
    • А есть ли смысл? Пароли у тебя всяко отключены, а ключи брутить бесполезно. Выглядит как бесполезный оверхед.

      Про ipset согласен. Он быстрее линейного поиска.
      Ответить
      • смысл в том, чтобы не читать потом в логах
        115.57.127.137 (115.57.127.137): 1697 Times
        Ответить
        • Х.з., этот срач там всё равно будет, у этих ботнетов овердохуя айпишников же, годы пройдут пока всех перебанишь и они начнут повторяться.

          Ну будет 16 раз вместо 1600.
          Ответить
          • >Ну будет 16 раз вместо 1600.
            так в том-то и дело:)

            чем меньше пидорасов тем лучше. Кстати, я хочу загрузить в ipset российские сети из geoip.
            Я за пределы Роиссии всё равно не ежжу, а многих пидорсов это отсечет
            что думаешь?
            Ответить
            • Осетинского пидораса не отсечёт.
              Ответить
              • ну пидарасу нужно еще найти мой порт (он ожидаемо не 22) и начать там подбирать пароль

                Кстати, в истории про чувака, которому поломали RDP в Querty, порт был совсем не стандартный. но это его не спасло
                Ответить
                • Какой смысл делать нестандартный порт? Чтобы тебе в логи меньше срали?
                  Ответить
                  • да. ну и если вдруг по какой-то причине придется включить парольный доступ, то тоже будет спокойнее.

                    Если есть возможность уменьшить соприкосновение с говном, то лучше же уменьшить, нет?

                    ps: в случае RDP всё еще хуже, так как там нет ключа, но RDP вообще без VPN нельзя никогда и никому
                    Ответить
                    • А зачем тебе смотреть в логи? Если не видишь говно, то можно считать, что его и нет.
                      Ну и пароль 123 не ставь.
                      Ответить
                      • если не смотрел логи (точнее не читать сводки с фронта логвотча) то можно проебать важный момент в жизни сервера:)
                        Ответить
                          • момент сдыхания ssd
                            момент прихода urgent обновления, которое нужно поставить
                            момент взлома и захода к тебе с логином admin (ну вдруг там дырку в ssh нашли)
                            Ответить
                            • Попытки входа по ssh и другие важные логи срутся в 1 общий лог? То есть среди сорока тысяч записей с ботнета ты просматриваешь инфу о состоянии ssd?
                              Ответить
                              • куда именно срутся зависит от настроек syslog.
                                Обычно ssh срутся в secure.

                                logwatch собирает из этого дайджест, и про каждый ip пишет, сколько раз он пытался к тебе пробиться
                                Ответить
                                • Так выкинь нахуй эту инфу. Что она тебе даёт? Потешить ЧСВ, что к тебе пытались пробиться, но не пробились?
                                  Ответить
                                  • Трудно объяснить зачем нужно знать, что в целом происходит с твоим сервером.
                                    Ответить
                  • Хм, а если открыть фейковый ssh на 22, то тупые боты не буду сканить другие порты?
                    Ответить
                    • хороший вопрос, кстати!:)

                      или вот открывать порт 22, и сразу отдавать туда терабайт данных.
                      Нехай хомяк подавится
                      Ответить
                      • Лучше в tarpit, если хочешь повеселиться над нубами. А то за терабайт потом платить ещё придётся.

                        А продвинутые ботнеты, я думаю, уже давно научились понимать что к чему и отключаться по таймауту или при кривом ответе.
                        Ответить
                        • >tarpit
                          я так в молодости со спамом боролся. Когда к тебе пидарас подключается, то он обычно делает это с маленьким таймаутом, потому что у пидараса еще миллион лохов на очереди, пидарасу торопиться надо.

                          А нормальный сервер никуда не торопится, так что таймаут в 2 секунды для него не проблема
                          Ответить
                          • Угу, для почты ещё graylist плагин был. Говоришь отправителю зайти через полчаса. Не зашёл -- да и хуй с ним, значит спамер.
                            Ответить
                            • Угу, MTA вроде при ошибке 4xx должен еще несколько раз попробовать прежде, чем послать отправителю NDR.

                              Только вот как ты объянпишь питуху, что его письмо пол часа идет, как в 1988-м году?
                              Ответить
                              • Пока позвонит -- уже и письмо придёт и в вайтлист добавится.
                                Ответить
                                • как у хуёвого админа
                                  --Я тут письмо отсылал пол часа назад. Говорят, оно не пришло
                                  --Ща (смотрит ``mailq``), сейчас поправлю
                                  Ответить
      • Кстати, оцени масштаб отсоса убунтблядей.

        У убунтублядей по умолчанию стоит ufw. Это такой тул для тех, кто слишком туп для iptables.

        ufw по умолчанию делает ``-P INPUT DROP`` и первым правилом -j в какие-то свои цепочки.

        В ``sshguard-setup`` написано, что он создает ipset sshguard4, и предлагает в iptables делать
        ``-m set --match-set sshguard4 src -j DROP``

        У ufw есть спец файл before.rules, в который можно срать кастомными правилами.

        Но разумеется ufw стартует ДО sshguard, не видит такого сета, падает, и машина остается с пустым INPUT с политикой DROP по умолчанию.

        Мучающиеся пользователи обоссаного ufw пишут свои юниты с Before=ufw.service
        https://selivan.github.io/2018/07/27/ipset-save-with-ufw-and-iptables-persistent-and.html

        А белый человек просто берет ``netfilter-persistent``: У него есть плагин для ipset и iptables, и разумеется ipset идет раньше.

        Так что счастливые пользователи ufw либо используют цепочку вместо ipset (цепочку создать в ufw можно, так как она тоже создается через iptables) либо пилят свой юнит

        В этом есть еще глобальный отсос прыщеблядей, потому что iptables и ipset это разные тулы. А должны быть конечно одной и той же тулой.

        В файрволах для белых людей типа pf и таблицы адресов, и правила для работы с ними создаются одинаково
        Ответить
        • > кастомными правилами

          А вкатить туда пустой сет, который потом sshguard наполнит не прокатит? Тогда его скрипт упадёт?

          Или это не шелл скрипт, а именно набор ПРАВИЛ для iptables?
          Ответить
          • Это не скрипт, это набор правил, примерно как из ``iptables-restore``. Там можно писать только команды ``iptables``
            Ответить
        • > netfilter-persistent

          Х.з., мне вообще не нравится идея таскать персистентный снимок правил. Он поди ещё и автоматом всё говно сохраняет, а не когда ты попросишь?
          Ответить
          • netfilter-persistent сохраняет, когда попросишь.
            Работает так:

            * делаешь нужные тебе правила
            * читаешь -L , убеждаешься, что всё ок
            * говоришь ему save

            При старте он их поднимает. из ненужного говна он сохраняет разве что счетчики.
            А как тебе нравится? Шел скрипт с iptables при загрузке?

            Лучше всего конечно pf со своим pf.conf, но увы
            Ответить
            • А, как на сиське copy ru st. Ну это терпимо. Хотя по структуре будет как помойка, конечно.

              Да, шелл скрипт. Его хоть читать и документировать можно, в отличие от.
              Ответить
              • ну так netfilter-save делает именно это: сохраняет текущий слепок используя ``iptables-save``
                # netfilter-persistent save
                run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables save
                # cat /etc/iptables/rules.v4
                # Generated by iptables-save v1.8.7 on Sun Feb 21 05:19:25 2021
                *filter
                :INPUT DROP [29:1670]
                :FORWARD DROP [0:0]
                :OUTPUT ACCEPT [17:1098]
                -A INPUT -i lo -s 127.0.0.1 -j ACCEPT
                -A INPUT -p tcp -m tcp --dport 22 -i enp0s3 -j ACCEPT
                -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -i enp0s3 -j ACCEPT
                -A INPUT -p icmp -m icmp --icmp-type 8 -i enp0s3 -j ACCEPT
                -A INPUT -m limit --limit 10/min -j LOG
                -A INPUT -j DROP
                -A FORWARD -j DROP
                COMMIT
                # Completed on Sun Feb 21 05:19:25 2021

                Комментировать можно через ``-m comment``, да и править руками.

                Но я согласен, что писать руками удобнее
                Ответить
                • > Комментировать можно через `-m comment'

                  Бля, ну это как json комментировать через фейковые поля... Выглядит как говно, если честно.

                  Да и добавлять правила в середину таблицы не особо приятно. А в скрипте это просто курсор подвинуть.
                  Ответить
                  • >середину
                    L --line-number
                    а потом -I [номер] вроде

                    Какой дистриб предлагает скрипт по умолчанию кроме слаки?
                    не хочется делать самопал
                    Ответить
                    • > -I [номер]

                      Сразу вспоминается древний бейсик или какой-нибудь ed...
                      Ответить
                      • ну да) ну вот правила, сохраненные iptables-save, можно править прямо в vim

                        Кстати, проблему возможно можно решить с помощью nfttables: там вроде наконец один интерфейс для работы И с таблтцами адресов, и с правилами, но могу напиздеть
                        Ответить
            • Ну и с шелл скриптом можно делать прикольные штуки в духе тестового режима с откатом по таймауту.

              Ибо "делаешь правила" часто заканчивается отвалом консоли, особенно по ньюфажеству.
              Ответить
              • Сейчас это не так страшно, потому что у нормальных VPS есть доступ к консоли, а у железок серверных -- тоже. На худой конец можно воткнуть кабель в rs232 или usb (если ядро умеет) и сделать типа как reverse telnet в циско: sshнулся на порт другого сервера, и попал на свою консоль.

                Но лучше всего проблему решил микрот:
                https://wiki.mikrotik.com/wiki/Manual:Console#Safe_Mode

                Хз, почему никто эту идею у него не подрезал
                Ответить
        • Кстати, у centos эта проблема решена. Там есть сервис ipset, и он умеет стартовать раньше iptables.
          правда, sshguard там по умолчиню не имеет конфига, а в экзампле лежит кривой, так что чуток нужно попирдолица и почитать ман
          Ответить
    • Это как-то связано с твоим постом, или ты просто сюда насрал?
      Ответить
      • я сру случайными комментами в случайные посты

        У птиц есть такая фишка. У них нету сфинктера, потому процесс сранья они не контролируют.
        Ответить
                • Вполне возможно.

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

                      Анатомически существуют два разных сфинктера:

                      Внутренний сфинктер ануса (The internal sphincter of the anus) - гладкомышечный, непроизвольно сокращаемый сфинктер.
                      Внешний сфинктер ануса (The external sphincter of the anus) - состоящий из поперечно-полосатой мускулатуры, сокращаемый произвольно то есть управляемый сознанием сфинктер.
                      Ответить
                      • У гомосексуалистов он становится произвольно сокращаемым, что значительно извращает акт дефекации. Для того, чтобы расслабиться, я начинаю теребить бумагу, иначе всё говно всасывается обратно в жопу.
                        Ответить
                    • В целом фича полезная. во-первых не гигиенично срать там, где спишь.
                      Млеки не летают, так что бОльшую часть жизни они проводят в каком-то закрытом пространстве, и зачем там срать?

                      во-вторых наверное тебя по говну учуит хищник(если ты жертва) или жертва (если ты хищник)

                      Знаешь же про медведя и колокольчик?

                      ЗЫ: это всем бы не помешало, но видимо не все развились
                      Ответить
                    • на запрос "эволюция сфинктера" ddg выдал:

                      – История появления и эволюция компьютера
                      – Эволюция компьютера - Дилетант
                      – Эволюция Windows - как менялась самая популярная система
                      – Эволюция Интернета
                      Ответить
                • я о том, что рак увидит, что у птиц нет сфинктера и полезет проверять, а потом вернётся на гк делиться результатами
                  Ответить
                  • Ну я знаю, что у владельцев домашних птиц есть такая проблема: если ты выпускаешь её из клетки, то она тусит по квартире, и может серануть случайно где-то без всякого злого умысла. Но вроде если быстро убрать, то не проблема
                    Ответить
                • а раки как птиииицы
                  они одиноки
                  но всё-таки раки не так жестоки
                  Ответить
  • назовите ваш любимый способ деплоя небольшого петпроекта на VPS
    Ответить
      • Спасибо! Это как если бы пхпшника взяли в гугл
        Ответить
      • а как ты выолпняешь нужные после установки действия?

        >git pull
        на прдакш сервере доступ к гиту?
        Ответить
        • Руками, лол. Можно скриптец накатать и закинуть в папку с проектом.

          > на прдакш сервере доступ к гиту?

          - pet project же, что такого? По ключу всё равно доступ. На том же гх можно настроить read-only access
          Ответить
          • > read-only access

            У ngk вообще был r/w доступ на его репу... Ибо кому она нахуй сдалась.

            На серваке пилил, оттуда же коммитил.
            Ответить
            • Кстати, а как правильно сделать разделение по юзерам на обычном ванильном git'е?

              Я так понимаю, что тот же гх чисто по имейлу в коммите юзверя определяет?
              Ответить
              • > разделение по юзерам на обычном ванильном git'е

                А никак. Что напишешь в переменной -- то и закоммитит. Никаких проверок там нет.

                Ты вон даже на гитхабе можешь коммитить от имени Линуса.
                Ответить
              • git нужно пускать по ssh, а ssh по ключу. Так и ограничивать.
                Ответить
                • Ограничивать это понятно. А авторство чисто из имейла, ну или из gpg, если продвинутый?
                  Ответить
                  • Ну ты можешь хук приделать, который сверяет имя в коммите и имя в пуше.

                    Хотя никто вроде так не делает.
                    Ответить
                    • Если пуш по ключу, то это же не сработает?

                      Я просто к тому, насколько просто иметь командный git просто как git over ssh, без гитлабов, gitea и прочего
                      Ответить
                      • Ключ к юзеру же привязан, публичная часть у него в хомяке лежит. Так что юзера ты точно знаешь.

                        Но "права на ветки" и т.п. будешь сам прикручивать, емнип.
                        Ответить
                          • Ну, к примеру, чтобы мастер нельзя было форспушить. Или чтобы пушить в него могли только конкретные люди или сервисные учётки.

                            Для одного человека, конечно, вообще насрать.
                            Ответить
                  • Ну и опять же, я иногда ветки коллег доделывал. А они -- мои. Как это пушить потом, если авторство проверяется?
                    Ответить
                    • Потому в кернеле есть разделение на author(s), reviewer(s) и commiter
                      Ответить
                      • author/commiter это больше про воркфлоу с патчами на почту, имхо.
                        Ответить
          • руками не интересно)
            Я собираю разные подходы

            * сборку пакета и установку
            * пул из гита и запуск шелскрипта
            * python fabric и иже с ними (для удаленного запуска)
            * контейнеры гит
            Ответить
    • Питухи, это был серьезный вопрос между прочим!
      У меня вот при выкладке много всякого говна происходит
      DJANGO_SETTINGS_MODULE=makaka_site.settings.build
      
      [ -n "$MAKAKA_STATIC" ] && rm -r $MAKAKA_STATIC || die "No static set";
      pip3 install --upgrade -r $SITE/requirements.prod.txt || die "Install filed"
      python $SITE/manage.py compilemessages --locale=ru_RU || die "Compile message failed"
      python $SITE/manage.py collectstatic || die "Collect static failed"
      python $SITE/manage.py compress || die "Compress failed"
      python $SITE/manage.py migrate || die "Migrate failed"
      echo "Gzipping static"
      find $MAKAKA_STATIC \( -name '*.css' -o -name '*.js' \) -exec gzip --best -k {} \;
      DJANGO_SETTINGS_MODULE=makaka_site.settings.prod


      А в другом месте делается rsync, чтобы всё не пересоздавать.
      И есть еще фронтэнд с ``npm install`` и вебпаком!

      Неужели каждый свое пилит?
      Ответить
        • нет, просто сравниваю разные

          просто интересно, кто как делает
          Ответить
        • а какая разница? ну будет у тебя то же самое, но внутри контейнера, не?
          Ответить
          • Это будет докерфайл в котором вся эта хуйня описана однообразно

            сборка статики разве не должна быть частью пайплайна фронта?
            а гзип - настройкой сервера?
            Ответить
            • Что значит "однообразно"?
              Как еще она может быть описана кроме как шелл скриптом?

              >сборка статики разве не должна быть частью пайплайна фронта?
              Должна. В этом конкретном проекте ее нет, но если бы была -- то конечно бы я ее туда включил.

              >а гзип - настройкой сервера?
              Это предархивирование. Каждый .css и .js файл архивируется в .gz.
              А потом nginx берет уже готовую gz версию, не архивя ничего на лету (gzip_static)
              Ответить
              • однообразно это значит что все дежрат скрипты в таскраннерах (или шелл файлах) и зовут их из докерфайла, никто не пишет по-своему
                Ответить
                • То есть сначала все пилят на коленке свои скрипты, потом их просто переиспользуют?
                  Ответить
                  • Ну у тебя есть инструмент, скажем webpack. Ты а нем полносью описываешь процесс билда который для каждого проекта уникален (ну или пиздишь с интернета) а потом зовешь через npm run build

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

                      Я правда не понимаю, чем написание шелл скрипта отличается от написания того же самого в RUN в докере)

                      Однако, докер хотя бы автоматизирует процесс (docker pull итд)
                      Ответить
                      • для фронта один докерфайл, для бека - второй, потом варишь их docker-compose или vagga

                        >чем написание шелл скрипта отличается от написания того же самого в RUN в докере

                        если ты все равно используншьдокер для деплоя, почему бы на нем и не написать?
                        Ответить
        • и что? как тут поможет контейнер?
          Ответить
  • На всём ГК обитал лишь один человек, чьему члену я позволил бы погрузиться в недра своего ануса и чьим говном я испачкал бы свой член: Тарас Березняк. Но он был слишком манерным, к тому же сейчас у него наверняка много поклонников, ибо нужно как-то сымать стресс от ёбли с сёй++. Девушка тупо не может выдержать такую нагрузку - вот и приходится шкодерам ебать друг друга. С потерей тарасбера, статус единственного и неповторимого перешёл на Страйко.
    Ответить
    • Совершенно нет.

      Это find, она может в любом shell работать
      Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8