• Как решить проблему с жестким диском?

    Zoominger
    @Zoominger
    System Integrator
    Он определяется системой? Есть вариант снять с него образ с помощью dd с LiveCD Ubuntu и попытаться восстановить файлы.
    Ответ написан
    5 комментариев
  • Как решить проблему с жестким диском?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    выяснилось что умер жд

    Нужно больше информации:
    - Каким именно образом выяснилось?
    - Какую именно неисправность вы подразумеваете под "умер"?

    Я подключил его к своему пк, он определился

    Диск после включения издаёт какие-либо посторонние звуки (щелчки, писк/жужжание, скрежет)? Это 2.5" диск, приложите к нему ухо, звуки могут быть тихими.

    В чем может быть проблема ?

    Если диск виден в системе и у вас Windows, скачайте бесплатный R.tester: https://rlab.ru/tools/rtester.html
    В нём можно сделать предварительную алгоритмическую диагностику жёсткого диска с использованием информации от пользователя.

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

    Jump
    @Jump
    Системный администратор со стажем.
    • Если вам важны данные - несите специалистам.
    • Если данные неважны и хотите поиграться - делайте что хотите.
    • Если данные не важны, и в качестве игрушки он вас не устраивает - несите на помойку.
    Ответ написан
    Комментировать
  • Создание вероятности на php. Можете помочь?

    GeneMoss
    @GeneMoss
    void
    /**
     * Случайная выборка с учетом веса каждого элемента.
     * @param array $data Массив, в котором ищется случайный элемент
     * @param string $column Параметр массива, содержащий «вес» вероятности
     * @return int Индекс найденного элемента в массиве $data 
     */
    function getRandomIndex($data, $column = 'ver') {
      $rand = mt_rand(1, array_sum(array_column($data, $column)));
      $cur = $prev = 0;
      for ($i = 0, $count = count($data); $i < $count; ++$i) {
        $prev += $i != 0 ? $data[$i-1][$column] : 0;
        $cur += $data[$i][$column];
        if ($rand > $prev && $rand <= $cur) {
          return $i;
        }
      }
      return -1;
    }
    
    // Использование
    $games = [
    	['name' => 'Игра 1', 'ver' => 2], // вероятность 2/15
    	['name' => 'Игра 2', 'ver' => 0], // вероятность 0/15
    	['name' => 'Игра 3', 'ver' => 1], // вероятность 1/15
    	['name' => 'Игра 4', 'ver' => 4], // вероятность 4/15
    	['name' => 'Игра 5', 'ver' => 8], // вероятность 8/15
    ];
    $i = getRandomIndex($games);
    echo $games[$i]['name'];

    В параметре массива «ver» задается вероятность выпадения данного элемента таким образом, что вероятность выпадения каждого элемента равна ver/sum, где sum — сумма вероятностей в данном массиве (в примере это: 2 + 0 + 1 + 4 + 8 = 15).

    После миллиона испытаний получено следующее количество выпадений:
    • Игра 1 = 13.3958%
    • Игра 2 = 0%
    • Игра 3 = 6.671%
    • Игра 4 = 26.6124%
    • Игра 5 = 53.3208%

    Что до сотой доли процента совпадает с заданной вероятностью в параметре «ver».

    P. S. Суть алгоритма — имитация случайной выборки из массива, который заполнен элементами, которые дублируются с заданной частотой.
    Ответ написан
    Комментировать
  • Какую архитектуру проекта выбрать?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Для всех пользователей - лендинг на www.example.com.
    Все API www.example.com/api/version/whatever

    Все скрывать за реверсивным прокси!
    full-stack-front-end-back-end-comic-joke


    А теперь почему следует делать именно так.
    Домен следует вешать на www по простой причине - субдомены кэшируются на более короткое время, а следовательно переезд будет менее болезненный.
    Лендинги и дребедень делать удобнее всего внутри каталогов. Например, у вас есть ссылка www.example.com/megapartner она может быть расшарена в соц.сетях, на форумах и т.д. Это все увеличивает вес вашего домена для поисковых систем. Если вы будете использовать субдомены, то этот вес будет размываться, т.к. поисковики будут все считать разными сайтами.
    Авторизация и управление пользователями должны быть унифицированы. Не стоит делать 20 разных мест, для которых надо авторизовываться по 100 раз. Для этого давно были придуманы роли. Я рекомендую сразу реализовывать вход через тот же Facebook/Google/OK/VK и т.д.
    Общая авторизация дает громадное количество преимуществ, например облегчает поддержку в разы, позволяет знать контекст выполнения действий.
    Один домен облегчает взаимодействие с пользователем, т.к. ему не нужно запоминать десяток разных страниц.
    Ну и дополнительные плюшки реверсивного прокси заключаются в том, что всегда можно настроить редирект, что-то закэшировать, показать правильную станичку, если какой-то из сервисов отвалился.
    Позади прокси следует все делить по назначению, держать каждый проект в разных репозитариях и т.д. Это может существенно упростить разработку, например можно отдать какой-то лендинг в переработку просто дав доступ к репозитарию.

    Если очень хочется упороться и поиграть в девопса, разбейте на 100500 микросервисов, засуньте все внутрь кубернетиса с каким-нибудь истио. Будет красивая архитектура с контейнерами и плюшками.
    Когда наиграитесь, возьмете обычный nginx, напишете конфигурацию простого реверса и он будет работать годами как часы.
    Ответ написан
    Комментировать
  • Как убедиться, что соседский Wifi безопасен?

    Jump
    @Jump
    Системный администратор со стажем.
    в теории, с какими проблемами я могу столкнуться если буду пользоваться этой сетью?
    В теории сосед может написать заявление в полицию, а там статья насчет неправомерного доступа.
    Но это маловероятно.

    Сосед сможет перехватить все мои взаимодействия с http-сайтами?
    Теоретически да. Практически на таком железе - нет.

    Сосед сможет подглядывать за мной в вебку?
    Нет.

    Сосед сможет подглядывать за мной в вебку? Сосед сможет меня сдеанонить и побить?
    Запросто.

    Конечно, я не буду пользоваться невежеством соседа и обязательно собираюсь рассказать ему, что через его модем сидит половина подъезда.
    Скорее всего ему просто пофиг на это.
    Ответ написан
    8 комментариев
  • Как управлять ролями и правами Laravel 5 и VUE.JS?

    @imhuman
    Все, что хранится на фронте, может быть изменено, это не секрет, поэтому использовать разрешения можно только на уровне показать/скрыть кнопку. Основной контроль должен быть только на бекенде. Поэтому массив разрешений можно загружать вместе с успешной авторизацией, а прятать его смысла нет.
    Ответ написан
    2 комментария
  • Какая разница между ssh, stunnel,ipsec и openvpn?

    vvpoloskin
    @vvpoloskin Куратор тега Сетевое администрирование
    Инженер связи
    В общем случае разница во всех этих сервисах в том, на каком уровне TCP/IP они работают. Отсюда вытекает, что они могут и что позволяют.

    1. Openvpn - работает на уровне L2 и L3, создает новое сетевое соединение, влияет на всю систему, можно пропустить весь трафик, нужны рутовые права.
    2. Stunnel - работает на L4, L5. Это SSL, только для вполне указанных сервисов. Рутовых прав не требует, работает с конкретными портами и протоколами, можно подключаться через проксю.
    3. IPSec - в принципе, как openvpn, только на L3. Чуть тяжелее в конфигурировании, зато более универсален. Можно подключаться с сетевых железок. А вообще, IPSec - целый фрейворк для конфигурирования различных шифрованных соединений
    4. SSH в режиме туннеля - тот же самый openvpn, который не надо настраивать. Он использует те же самые алгоритмы, библиотеки и функции, что и openvpn. Рутовые права, создание новых интерфейсов при этом никто не отменял. Я бы сказал - разовое мероприятие.
    5. SSH в режиме прокси - в принципе, аналог Stunnel. Также прикладной уровень, также SSL, также не нужно рутовых прав, также работает через проксю. Ну и нужно каждый раз заново запускать, тоже разовое мероприятие


    В общем одни решения - SSL, другие - VPN. Через SSL общается конкретное приложение с другим конкретным. Через VPN могут общаться целые сети по любым протоколам.

    Если интересно, вот здесь более детальное описание, правда на буржуйском.
    Ответ написан
    Комментировать
  • NET::ERR_CERT_AUTHORITY_INVALID на большинстве сайтов?

    neco
    @neco
    инженерммм
    (мысли в слух) провайдер может подменять сертефикаты....
    Ответ написан
    Комментировать
  • Как провайдеры интернета ограничиваю скорость доступа?

    vvpoloskin
    @vvpoloskin Куратор тега Компьютерные сети
    Инженер связи
    Сеть оператора ШПД в общем случае довольно простая, по крайней мере по сравнению с мобильными, спутниковыми и магистральными сетями, она состоит из множества коммутаторов, одного маршрутизатора и биллинга. Фактически это большая сеть доступа. Маршрутизатор здесь называется BRAS (ну или dslam если мы о adsl). Так вот конкретно для pppoe на клиентской стороне создается так называемый туннельный интерфейс, и на стороне BRAS аналогичный при успешном подключении абонента. На BRAS на этом туннельном интерфейсе и вешается ограничение. Сами данные по ограничению услуги BRAS берет из биллинга при создании подключения (взаимодействует с ним по RADIUS/TACACS или даже DIAMETER).

    Ни один нормальный оператор по умолчанию не будет использовать шейпинг, без каких-либо доп договоренностей везде стоит полисинг. Скажу больше - правило зорошего тона ставить с клиентской стороны в сторону оператора шейпинг, а с операторской в сторону клиента - полисер.

    И да, PPPoE уже давно несовременная технология авторизации, сейчас все стараются переходить (и успешно переходят) на IPoE. Но это уже совсем другая история.
    Ответ написан
    Комментировать
  • За счет чего такая скорость?

    rockon404
    @rockon404
    Frontend Developer
    Это SPA на React с server side rendering. Приложение рендерится и получает данные на стороне сервера. При переключении поста, срабатывает роутер, рендерится нужный пост, а из интернета подтягиваются только картинки. Скорость node тут не причем. Такие SPA принято называть изоморфными.
    Ответ написан
    Комментировать
  • Чему учиться для работы из дома?

    @klim76
    android/java/sql
    путь первый:
    1) закупитесь дошираком
    2) найдите хоть кого нибудь кто возьмёт вас без опыта не за бесплатно, удалённо со знаниями "никаких кроме HTML"
    3) копайте вглубь и вширь на этом месте
    4) найдите что вам в ваших раскопках будет больше по душе и учите это
    путь второй:
    1) почитайте интернеты, выберите себе, как вам кажется, приемлемое направление развития
    2) пытайтесь изучать это
    2.1) умрите с голоду...
    Ответ написан
    1 комментарий
  • Как работает интернет провайдер?

    Jump
    @Jump Куратор тега Системное администрирование
    Системный администратор со стажем.
    1)Нет. Задача провайдера зарабатывать деньги оказывая услугу. Он и зарабатывает.
    Как строить сеть - его дело, он это решает исходя из ситуации, имеющегося оборудования, опыта, финансов, и.т.д.
    2)От текущей ситуации и планов на будущее.
    3)Нет.
    4)Адреса IPv4 уже закончились и их никому не выдают. В итоге у провайдера столько адресов сколько он успел отхватить до того как они закончились. У кого-то больше, у кого-то меньше. Сейчас адреса можно получить либо купив у кого-то диапазон, либо чаще всего при поглощении крупным провайдером более мелкого.
    Имеющиеся адреса приходится экономить - как минимум динамические адреса выделять. Если и так не хватает - перевод пользователей за NAT.
    Практически все предоставляют белый статический адрес по просьбе абонента - разумеется не бесплатно.
    5)Разумеется возможно. Хотя ситуация не совсем понятна.
    У вас серая сеть за вашим роутером, у провайдера серая сеть - адреса могут пересекаться.
    Хотя я так полагаю что не работало по простой причине - список каналов висел на сервере с серым адресом в сети провайдера, если вы резольвите имена сторонними DNS серверами, они ничего не знают про серую сеть провайдера, и не выдают адрес, либо выдают неправильно.
    Ответ написан
    2 комментария
  • Минимальные настройки безопасности 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 комментариев
  • Имею ли я право препятствовать работе сайтов, использующих созданную мною CMS незаконно?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Часть первая, добрая

    1. Идете к юристу и оформляете правильную лицензию, в которой вы предоставляете право на использование вашего продукта. Жестко запретите модификацию кода CMS всеми, кроме вас. Оставьте за собой право модификации кода удаленно, в любое время без предварительных уведомлений. Оставьте за собой право отзыва или изменения лицензий без уведомлений и объяснений. Запретите перепродажу. В лицензии добавьте оговорку насчет статьи 273, что действия по модификации кода сайта являются санкционированными и неотъемлемой частью продукта.
    2. Реализуете и обкатываете механизм автоматического лицензирования через интернет. Вешаете лицензионное соглашение на официальный сайт продукта.
    3. Рассылаете всем нелицензионным пользователям "письмо счастья", в котором доходчиво объясняете, что их копия не лицензирована и т.д. Рекомендую вам разрешить использование своей CMS для некоммерческих организаций и домашних страничек без рекламы при наличии ссылки на сайт продукта. Предложите бесплатное обновление для некоммерческих пользователей.

    Часть вторая, злая

    1. После введения новой лицензии, но до уведомления всех письмами счастья, удаленно зашиваете код, который будет выводить html-комментарий о том, что данная копия не имеет лицензии т.д. и т.п. Там же должна быть ссылка на ваш сайт, где можно лицензировать продукт. Данный шаг не будет препятствовать работе с сайтом.
    2. Рассылаете письма счастья.
    3. Ждете, пока пройдет срок, в течение которого компании должны лицензировать свои версии.
    4. Вместе с юристом выбираете компанию, на которую вы подадите в суд за нелицензионное использование своей CMS и у которой точно выиграете дело. Судитесь. Выигрываете. Далее на сайте проекта вешаете официальную информацию о судебном разбирательстве и решении в пользу истца. Делаете огласку истории, публикуете ее на всяких Спарках/Хабрах/Цукербергах и прочих ресурсах.
    5. Через месяцок рассылаете новые письма счастья с уведомлением о том, что бывает с теми, кто отказался. Ссылку на результаты разбирательства приводите.
    Плюс, можете вывесить список сайтов у себя, где нелегально используется ваша CMS.

    Работайте и разговаривайте исключительно с компаниями, которые непосредственно зарабатывают деньги через вашу CMS и для которых сайт действительно важен. На школьников, геймеров и мусор не тратье время. Шкурка выделки не стоит.

    Часть третья, плохая

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

    SergGrbanoff
    @SergGrbanoff
    UX/UI Desinger, Front-End Developer
    Фреймворки, библиотеки и плагины для верстки сайта.

    1. Bootstrap - самый популярный HTML, CSS, и JS фреймворк в мире для разработки отзывчивых, mobile-first проектов в вебе.

    2. slick - Адаптивный слайдер для сайта

    3. Owl Carousel 2 - красивый, отзывчивый карусельный слайдер

    4. Fotorama - плагин для создания галереи на сайте

    5. MagnificPopup - плагин для создания модальных окон

    6. FancyBox - построениe всплывающих окон

    7. Mmenu - мобильное меню


    8. bxSlider - отзывчивый jQuery-слайдер для контента


    9. Fullscreen Slit Slider - слайдер с интересной анимацией

    10. parallax.js - эффект Parallax

    Первая 10-ка
    Ответ написан
    Комментировать
  • У всех ли багает Chorme на macOS?

    edinorog
    @edinorog
    Троллей не кормить!
    вопрос задан некорректно. у всех ли багает хром на любой оси!? да у всех!
    Ответ написан
    1 комментарий
  • Посредством чего блокирует сайт мой провайдер?

    @yaror
    10 лет в мобильном телекоме
    Поскольку резолвинг DNS происходит корректно, промышленно готовых вариантов остаётся три:

    1. Провайдерский DPI: наверняка он уже есть у всех провайдеров в том или ином виде.
    Логически DPI обычно включается в разрыв линка между ядром и NAT.
    Физически зачастую тоже.
    Кроме обычных шейпинга и подсчёта трафика per-subscriber, там реализован набор ALG (Application Layer Gateway), которые представляют из себя, фактически, прозрачные прокси для типичных протоколов: HTTP, FTP, DNS и т.д.
    Как правило, ALG умеют не только реагировать на определённые значения полей, но и вмешиваться в процесс передачи данных.
    Количество ALG зависит от навороченности DPI; в Procera даже World of Warcraft есть )
    Ну а уж подмена HTTP-страницы - пожалуй, самая используемая функция HTTP ALG.

    2. Наколенное решение раз:
    Описано у none7
    Завести у себя в сети сервер с ip-адресами, совпадающими с Ip-адресами Вконтакта (ну, или NAT'ить все запросы к нему на сервер-заглушку, что примерно то же самое) - вполне себе решение, если надо заблокировать сервис целиком, а не отдельные страницы на нём.
    Но если вдруг ваши политики наберутся дурости у наших, и список блокируемых ресурсов начнёт расти, провайдеры взвоют этот вариант поддерживать )

    3. Наколенное решение два:
    На самом деле, в России есть свой список блокируемых ресурсов (т.н. список Роскомнадзора) с сотнями тысяч URL.

    Выяснилось, что таким количеством записей множество провайдерских DPI попросту давится, поэтому эта задача зачастую решается следующим образом: заводятся отдельные серверы, подключаемые непосредственно к провайдерским BR (Border router'ам).

    Задачи серверов:
    - заглотить список блокируемых ресурсов, выдрать оттуда имена доменов и разрезолвить их в ip-адреса; адресов получается несколько десятков тысяч
    - полученные адреса через OSPF или BGP сливаются в BR. BR - он большой, спокойно держит BGP Full View, поэтому 10-20-50k лишних префиксов для него - капля в море

    Получается, что весь трафик в сторону ip-адресов, на которых находится хотя бы одна заблокированная страница, теперь льётся на эти серверы.
    Казалось бы, фиг какой сервер всё это переварит, но их можно плодить десятками: срабатывает ECMP/Load Balancing на уровне маршрутизации, и трафик размазывается между серверами примерно поровну.

    На самих серверах Linux, а в Linux - squid в transparent mode и iptables )
    Соответственно:
    - tcp port 80 силами iptables отправляется в сквид, где каждый запрошенный абонентом URL ищется в списке блокированных ресурсов
    - в tcp port 443 проверяется SNI чтобы понять, пропускать трафик дальше, или резать к такой-то матери
    - весь остальной трафик (и пинги, угу) пропускается насквозь без изменения
    Ответ написан
    1 комментарий
  • Вопрос по поводу деплоя приложения на laravel?

    skobkin
    @skobkin
    Гентушник, разработчик на PHP и Symfony.
    Любой CI (Jenkins, CodeShip, Teamcity, etc) + инструмент для деплоя (Deployer, Rocketeer, Capistrano, Bash, etc).
    Ответ написан
    8 комментариев