Задать вопрос
  • Минимальные настройки безопасности Linux на VPS?

    Tyranron
    @Tyranron
    Ряд моментов Вы уже сделали, но я все равно их опишу для полноты списка.

    1. Создать отдельного пользователя и хороший пароль на sudo. Не использовать больше root напрямую. Совсем.

    2. SSH. Отключаем метод аутентификации по паролю. Если Вам не нужны другие методы, то их тоже можно отключить, оставив только publickey. Отключаем возможность аутентификации root'ом. Включаем использование только 2й версии SSH протокола.

    3. Устанавливаем Fail2Ban и настраиваем чтобы после нескольких неуспешных попыток подключения по SSH банило по IP на длительное время. Кол-во попыток и время бана можно тюнить в меру своей паранойи. У меня, например, банит на час после 2х неуспешных попыток.

    4. Iptables. Действуем по принципу "запрещено все, что не разрешено". Запрещаем по умолчанию весь INPUT и FORWARD трафик снаружи. Открываем на INPUT'е 22 порт. В дальнейшем открываем порты/forwarding по мере необходимости. Если у нас предполагаются сервисы на соседних серверах нужные только для внутренней коммуникации (Memcached, Redis, и т.д.), то открываем для них порты только для определенных IP. Просто так торчать наружу для всех они не должны.

    5. Настраиваем автоматические обновления apt-пакетов. Уровень security. То есть так, чтобы обновления безопасности накатывались автоматически, но при этом не выполнялись обновления со сменой мажорной версии (дабы обезопасить себя от "само сломалось").

    6. Устанавливаем ntpd. Серверное время должно быть точным. Также временную зону сервера лучше всего установить в UTC.

    7. TLS (не SSL) используем везде где можем. Через Let's Encrypt получаем бесплатные валидные сертификаты. В конфигах веб-серверов, mail-серверов, и других приложений торчащих наружу (в том числе и OpenVPN), запрещаем/убираем использование слабых шифров. Все ключи/параметры генерируем не менее 2048 бит. Самоподписные сертификаты подписываем с помощью SHA-256 (не SHA-1). Diffie-Hellman параметры (dh.pem) под каждый сервис лучше сгенерить отдельно. Проверяем TLS сервисов через Nmap. Минимальный grade должен быть A, не должно быть warning'ов.

    8. Правильный менеджмент пользователей/групп. Приложения/сервисы не должны запускаться под root'ом (разве что они действительно этого требуют и иначе никак). Для каждого сервиса создается свой пользователь.

    9. Если предполагается upload файлов через PHP (либо другие скриптовые языки), в директории, куда эти файлы загружаются (и которая доступна снаружи), должно быть жестко отключено любое выполнение скриптов/бинарников, что на уровне ОС (x права), что на уровне веб-сервера.

    Это была база.
    Дальше, в меру своей паранойи можно за'harden'ить сервер ещё следующими моментами:
    - SELinux, chroot
    - доступ к SSH только с определенных IP (нужно иметь 3-4 VPN-сервера под рукой)

    UPD И да, все это помнить/настраивать руками каждый раз может быть запарно. Используйте Ansible и автоматизируйте процесс (там родные и YAML, Jinja2 и Python).
    Ответ написан
    10 комментариев
  • Что означают полупрозрачные свойства объекта?

    @Aves
    Те, у которых дескриптор с enumarable: false. Не участвуют в for...in и Object.keys().
    Ответ написан
    1 комментарий
  • Как получить уникальный id устройства в chrome расширении?

    @AnjeyTsibylskij
    Можно достать UserAgent/название браузера/версию браузера и т.д но это все очень плохо подходит для идентификации пользователя т.к. он в любой момент может подменить эти данные. Гораздо проще это сделать, генерируя в расширении уникальный ключ (хоть простой md5).

    Как это выглядит на практике. Пользователь устанавливает расширение, происходит генерация ключа и сохраняется, например в localStorage или chrome.storage. Затем можно отправлять все запросы, на сервер, используя в качестве идентификатора подписи данный ключ.
    Ответ написан
    Комментировать
  • Существует программа для задействия одновременно всез поисковиков по одному запросу?

    Spetros
    @Spetros
    IT-шник
    Без ранжирования и классификации результатов толку не будет, а эта задача по сложности сопоставима с созданием нового поисковика.

    Это в разы ускорит получение информации для работы.

    Это если только ваша работа заключается исключительно в продвижении сайтов.
    Ответ написан
    Комментировать
  • Как перенаправлять на базовый index файл?

    @kgorozhanov
    Front-End Developer
    В HTML указать <base href="/">
    сервер настроить так чтобы он на любой запрос(ну кроме статики и апи) отдавал ваш index.html
    все
    Ответ написан
    Комментировать
  • Есть ли общие требования к комментированию кода?

    jamesgoodwin
    @jamesgoodwin
    Молодой разработчик
    Ответ написан
    Комментировать
  • JavaScript, геттеры и сеттеры в конструкторе класса, как лучше?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Ну если нужны геттеры и сеттеры именно в классе, не в инстансе, то можно так:
    class {
        get prop() { return this._prop; }
        set prop(value) { this._prop = value; }
    
        static get staticProp() { /* и так далее */ }
    }


    Если же каждый инстанс получает свои геттеры и сеттеры по каким-то хитрым правилам, то я бы пожалуй так и оставил это в конструкторе (ну вынес бы в отдельный метод, разумеется). Еще вариант сделать на Proxy. Или на декораторах, но это уж без транспиляции совсем никак.
    Ответ написан
    Комментировать
  • Unix-подобные системы сами по себе работают быстрее на том же железе, чем Windows?

    sashkets
    @sashkets
    Прекратил отвечать после 24.02.2022
    1. железо играет немаловажную роль
    2. из коробки линукс не оптимален также, поэтому см пункт 3
    3. ядро линукс кастомизируется. оставляем, то что нужно - выкидаем остальное. у винды ядро закрытое, поэтому каждый вендор клепает свои драйвера и т.д., что вообщемто както косвено влияет
    4. на линуксе админ компилирует ПО с CPU флагами конкретного процессора и с конкретными фичами. виндовые вендоры дают все в одном флаконе.
    5. реестр винды - это яд ядовитый и зло великое (сорри за лирику-накипело). в линуксе все конфиги текстовые и разобраться не составляет труда. даже если система упала - грузимся с лайф-сиди и все доступно. восстановление винды - это тот еще секс
    6. веб-сервер в линуксе - с обновлением проблем нет. для обновления IIS - "будьте любезны прикупить винду следующей версии"
    7. ну про то, что на линуксе антивирус не нужен - это ясно. можно, но потребности особой нет, если конечно у Вас не почтовик или прокси, где нужно проверять "транзит" идущий потом в винду :-)
    8. с обновление ОСи любого юникса проблем нет, как правило
    9. однако жирный плюс винды - это их серверные версии. да, нужно признать, лучше windows server ничего не придумано. терминал тоже весьма хорош
    10 ну и цена.

    поэтому спор какая система круче - бесперспективен. выбирать ОС нужно по потребности
    Ответ написан
    2 комментария
  • Как сделать капчу?

    ewgenio
    @ewgenio
    Всё по чуть чуть
    Вот репозитроий:
    https://github.com/ist-dsi/jquery-ui-slider-captcha
    Скрин из примера:
    screen.png
    Ответ написан
    Комментировать
  • Как быстро сайт будет доступен по доменному имени?

    @miksir
    IT
    Меняли NS у регистратора домена? Несколько часов (в срднем от часа до 8 часов, там фиксированное расписание). По информации с ру-центра:
    Изменения вступят в силу после обновления информации в зоне верхнего уровня. Зона RU обновляется 4 раза в сутки: в 02:00, 10:00, 14:00, 19:00 (по московскому времени). Зоны SU и РФ обновляются каждый нечетный час. Обновления зон занимают от нескольких минут до получаса.

    И после того, как NS-ы появятся, еще нужно время на протухание кеша DNS серверов. Ели у вас свой ресолвер (DNS сервер, который вы используете на своей рабочей машине для ресолва доменов), то просто сбросить на нем кеш.
    Ответ написан
    1 комментарий
  • Подойдет ли одноплатник для разработки?

    @kalapanga
    Пересаживайтесь, пересаживайтесь! Если всех разработчиков в ресурсах урезать, то глядишь и нам супермегакомп не будет требоваться, чтобы в интернете новости почитать! :)
    Ответ написан
    2 комментария
  • Почему medium использует @ в профилях?

    miraage
    @miraage
    Старый прогер
    - Проще составить правила для роутинга (!!!)
    - Кто сидит на Медиуме, скорее всего пользуется Твиттером или понимает, что @smth = это отсылка к пользователю
    Ответ написан
    Комментировать
  • Как реализовать проверку html?

    @kgorozhanov
    Front-End Developer
    Подключи редактор.
    Ответ написан
    3 комментария
  • Какие есть интересные сайты со статьями на тему Frontend?

    @abberati
    frontend-разработчик
    Ответ написан
    Комментировать
  • Как добавить параметры GET запроса в адресную строку?

    History.pushState() и готовая библиотека History.js
    Ответ написан
    Комментировать
  • Выбор языка для написания скриптов/простеньких приложений под Linux?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    Питон, конечно, если выбирать из этих двух. Он больше подходит для скриптов, у него есть REPL и тд. С# вообще для скрипт не подходит, тем более под линукс.
    Ответ написан
    1 комментарий
  • Есть-ли готовое решение для ввода графического пароля на javascript?

    denis_bardak
    @denis_bardak
    Web Developer
    Ответ написан
    Комментировать
  • Как вы пишете статьи?

    nikolayshabalin
    @nikolayshabalin
    Автор профессиональных курсов в HTML Academy
    Сам пишу в gitbook. Удобно, что markdown. Можно дополнять плагинчиками.
    Вот здесь допустим, можно сохранять в PDF, ePub, Mobi.

    Еще были примеры с пошаговым чтением и с сохранением прочитаного, как здесь
    Ответ написан
    2 комментария
  • Существуют войска для программистов?

    nki
    @nki
    bezkart.ru готовая система лояльности
    Такие войска есть, но шанс туда попасть не высок. В армии ценятся супер-пользователи фотошопа и всяких дизайнерских пакетов. Такие спецы сидят в штабе и рисуют всякого рода наглядную агитацию.
    Для разработки софта в ВС РФ есть специальные НИИ и попасть туда срочнику - максимум дежурить на КПП.
    Ответ написан
    Комментировать