• Как поймать вредителя или почему ломается curl?

    @younghacker
    Я бы собирал диагностику сети.
    Перед curl или после того как он вернул ошибку запускаете несколько программ которые записывают информацию в лог.
    1) пинг себя, гейтвея, гуглднс и целевого хоста по IP. (в зависимости от сетей размещения источника и цели)
    2) трейсроут до целевого хоста без лукапа имён
    3) переменные окружения (кто я) списки процессов и так далее.
    4) телнет (tcping) в порт целевого хоста и постороннего хоста для сравнения. Чтобы проверить не блокирует ли вас антивирус или целевой хост.
    5) помотреть логи целевого сервера. Увеличить информативность логов.
    6) воткнуть хост в роутер (linuxbox) на нём собрать трафик по интересующему порту (tcpdump в файл)
    7) поставить на хосте виновнике https://www.winpcap.org/ и писать трафик в файл затем посмотреть в wireshark что происходит.
    8) утилиты Марка Русиновича sysinternals для анализа что там происходит с сеткой, процессы, соединения порты, ошибки работы с файлами реестром и так далее.
    9) попробовать отправить файл при помощи PowerShell или любой другой утилиты вместо пайтона и curl

    Стабильность возврата ошибки по идее даёт возможность найти виновника. Но "войти по RDP" имеет много отличий от запуска от имени системы или таймера. Поэтому у Вас по RDP это работает.
    Ответ написан
  • Как сделать автозамену строчки в большом кол-ве файлов .php на Linux?

    @younghacker
    Что будет если добавить -z для sed ?

    `-z'
    `--null-data'
    `--zero-terminated'
         Treat the input as a set of lines, each terminated by a zero byte
         (the ASCII `NUL' character) instead of a newline.  This option can
         be used with commands like `sort -z' and `find -print0' to process
         arbitrary file names.
    Ответ написан
    Комментировать
  • Как исправить DNS leak на OpenVPN?

    @younghacker
    Нужно передать DNS со стороны сервера на клиента , и на клиенте как уже сказали выше рубануть исходящий и входящий трафик на 53 порту везде кроме tun интерфейса.
    Разумеется в этом случае адрес VPN сервера должен быть указал в цифровом виде. Не доменный.
    iptables на клиенте будет выглядить как-то так:
    -A OUTPUT -o lo -j ACCEPT
    -A OUTPUT -o tun+ -j ACCEPT
    -A OUTPUT -o eth0 -d adresservera -p udp -dport vpnport -j ACCEPT
    -A OUTPUT -j DROP


    кусочек конфига openvpn сервера:
    push "dhcp-option DNS 10.1.10.1"
    push "redirect-gateway"


    Разумеется DNS должен быть проксирован или проброшен снаружи через туннель
    Если всё ещё актуально, постучитесь в скайп - поясню/помогу.
    Ответ написан
  • Какого правила не хватает в iptables?

    @younghacker
    Если находит по имени но не находит по адресу значит дело в том что адрес и имя ресолвятся не туда или используется другой протокол. Я бы посмотрел что там с IPv4 и IPv6.
    Для вашего случая туннель я бы поднял несколько иначе:
    ssh -4 -L 9999:127.0.0.1:9999 -N root@111.111.111.111


    Утилита tcpdump поможет узнать больше о сетевом трафике с вашей стороны и со стороны сервера. Для Windows есть wireshark и wincap.

    Что касается iptables - то он содержит правила которые никогда не сработают.
    -A OUTPUT -o eth0 -j ACCEPT
    -A OUTPUT -d 111.222.333.444/32 -o eth0 -p udp -m udp --dport 1194 -j ACCEPT
    Первое сработает, второе никогда. Одно из этих правил лишнее. Скорее второе.
    Потому что если убрать первое то ssh будет заблокирован в eth0 либо должен будет бежать через tun.

    В выходных цепочках у вас определён интерфейс wlan0
    -A OUTPUT -d 111.222.333.444/32 -o wlan0 -p udp -m udp --dport 1194 -j ACCEPT

    А во входных про него забыли.
    Хотя непонятно чей это iptables. :) Клиента или сервера?
    Ответ написан
    Комментировать
  • Фаервол против телеметрии Windows 10?

    @younghacker
    Я бы не стал доверять и внешнему файрволу. Временно это может помочь пока потоки недостатки потоков телеметрии не возмутят MS. Система может складывать и обрабатывать телеметрию локально. А как только появится возможность - отправит её альтернативным способом. Что мешает мне отправить данные через дропбокс?
    Поэтому: Не хотите телеметрию - не ставьте систему с телеметрией.
    Ответ написан
    Комментировать
  • Почему не запускается certbot?

    @younghacker
    Покажите свои конфиги и как Вы запускаете certbot
    Похоже что в конфиге нарушена кодировка либо отсутствуют опции типа аутентификатора:

    2017-03-30 09:34:26,065:DEBUG:certbot.main:Discovered plugins: 
    PluginsRegistry(
    PluginEntryPoint#standalone,
    PluginEntryPoint#manual,
    PluginEntryPoint#nginx,
    PluginEntryPoint#webroot,
    PluginEntryPoint#apache,
    PluginEntryPoint#null)
    2017-03-30 09:34:26,065:DEBUG:certbot.plugins.selection:
    Requested authenticator None and installer None
    2017-03-30 09:34:26,756:DEBUG:certbot.main:Exiting abnormally:
    Ответ написан
    Комментировать
  • CentOS 7 kickstart и пароль в md5, не работает?

    @younghacker
    У меня скрипт который создаёт кикстарты делает это так:

    read -p "Enter root password or leave empty for random: " ROOT_PW
      if [ -z "${ROOT_PW}" ] ; then
        # генерируем пароль для root
        ROOT_PW=`tr -dc A-Za-z0-9_ < /dev/urandom | head -c 15 | xargs`
      fi
      # шифруем пароль так
      ROOT_PW_SALT=`tr -dc A-Za-z0-9_ < /dev/urandom | head -c 16 | xargs`
      ROOT_PWCRYPTED=`echo -e "${ROOT_PW}\n${ROOT_PW_SALT}" | python -c 'import crypt; print crypt.crypt(raw_input(), "\$6\$" + raw_input() + "\$")'`
    ....
    KSFILE=`cat <<EOFINLINEFILE
    text
    lang en_US.UTF-8
    keyboard us
    network --onboot yes --device eth0 --bootproto dhcp --hostname ${HOST_NAME}
    rootpw --iscrypted ${ROOT_PWCRYPTED}
    authconfig --enableshadow --passalgo=sha512
    firewall --service=ssh
    selinux --permissive
    timezone --utc Etc/UTC
    ....

    Шифрованный пароль можно сгенерировать и так:
    echo -e "${ROOT_PW}" | python -c 'import crypt; print(crypt.crypt(raw_input(), crypt.mksalt(crypt.METHOD_SHA512)))'
    Ответ написан
  • Как настроить подключение по vpn в виртуальной машине?

    @younghacker
    Схема как я понял такая:
    windows7 --> lubuntu --> router(pptp)

    На lubuntu маршрутизация включена? IPv4 ?
    Проверьте разрешён ли forward в iptables между интерфейсами внутренним там где виртуалка и внешним там где роутер. Нет ли блокировки по портам протоколам и целевым адресам.
    Если на lubuntu Вы не используете NAT тогда роутер должен знать о том куда отправить ответ!!!
    Тоесть в роутере должен быть роутинг в сеть где находится виртуалка через внешний интерфейс вашего lubuntu

    windows7 проверить ping до lubuntu интерфейс который ближе интерфейс который дальше
    затем проверить ping до router

    Разумеется на пинг роутер и лубунту должны отвечать (ICMP)

    На лубунте можно понаюлюдать за трафиком пинга
    apt-get install tcpdump
    # tcpdump -i any proto ICMP
    Ответ написан
    Комментировать
  • Как настроить VPN?

    @younghacker
    Если сети разные то ключевое слово в ответе - routing

    Все хосты в сети А должны знать что сеть Б находится за гейтом А1
    (или если А1 является default gateway для хостов в сети А то он (А1) должен знать что сеть Б находится за роутером Б1)

    Все хосты в сети Б должны знать что сеть А находится за гейтом Б1
    (или если Б1 является default gateway для хостов в сети Б то он (Б1) должен знать что сеть А находится за роутером А1)

    сеть А ==== А1 ---[VPN]--- Б1 ====== сеть Б
    Ответ написан
    Комментировать
  • Как узнать что инициирует отправку письма postfix?

    @younghacker
    Как искать спамера - рассказали. Теперь один из вариантов как сработать на опережение - предотвратить спам в результате взлома.

    В iptables запрещаем исходящее TCP соединение на любой внешний 25 порт с эккаунтов кроме postfix, root, mail.
    В результате этого web сервер не может отправить почту напрямую.
    Всех нарушителей перед reject-ом пишем в лог. За логом непрерывно следим. Появление массы записей свидетельствует о попытке установить внешние соединения на порт 25.
    -A OUTPUT -o br0 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A OUTPUT -o br0 -m state --state NEW -p tcp -m tcp --dport 25 -j SMTPOUT
    -A SMTPOUT -d 127.0.0.1 -j ACCEPT
    -A SMTPOUT -m owner --gid-owner mail -j ACCEPT
    -A SMTPOUT -m owner --uid-owner root -j ACCEPT
    -A SMTPOUT -m owner --uid-owner smfs -j ACCEPT
    -A SMTPOUT -j LOG --log-uid --log-prefix "Reject outgoing SMTP "  # Houston, we have a problem
    -A SMTPOUT -j REJECT --reject-with icmp-admin-prohibited

    А в почтовике разрешаем отправку почты только с аутентификацией.
    Большинство взломов не смогут разослать спам.
    Более продвинутые взломы вынуждены будут найти аутентификацию и отправлять с ней.
    В постфиксе включаем smtpd_sasl_authenticated_header = yes (Postfix версии 2.3 и выше)
    В результате в чего в заголовке каждого отправленного письма появится имя аутентифицировавшегося пользователя.
    По этому имени получив абузу от спамхауса вы тутже видите кто провинился.
    Мониторим очередь отправки. Бурный рост очереди - чаще всего - результат взлома и попытки рассылки спама.
    Мониторим dnsbl листы.

    Ну и напоследок, что сделать чтобы минимизировать риск взлома?
    Блокировать модификацию и создание файлов из php. Да, автообновление вордпресс провалится. Но если мы запрещаем бесконтрольную модификацию сайта, то запрещаем всем. Можно даже руту запретить.
    chattr +i -R * /var/www/hosts/site.domain/public_html/

    У каталогов куда необходимо разрешить запись файлов (например upload) отключите хендлер обработки php файлов интерпретатором php. Пусть веб сервер его отобразит но не выполнит. Файл .htaccess который это блокирует также защищаем от записи. Основное правило - запретить произвольную бесконтрольную модификацию кода оставив возможность записывать данные но при этом запретить возможожность выполнения данных. :)
    Понятно что не каждая CMS сможет нормально работать в таком режиме.
    В таком режиме много лет у нас работает сайт одного клиента на joomla 1.5 :) Дыра - дырой. И если снять ридонди и его взламывают в течении пары дней.

    И заключительный совет: Не размещайте сайты на хосте который является также и почтовым сервером. Или как минимум разнесите IP адреса с которого отправляется почта от адреса с которого работает вебсервер. Чтобы это хоть снаружи выглядело как разные хосты. Тогда взлом сайта и рассылка спама не приведёт к блокировке IP почтовика в разных dnsbl от которого порой отмыться очень сложно и/или долго.
    Ответ написан
    Комментировать
  • С чего начать разработку VPN сервиса?

    @younghacker
    Работу с шифрованием хорошо начинать с освоения криптоматематики.
    Она сразу поставит всё на свои места. Если осилите тогда дерзайте дальше.
    Параллельно можно почитать классику в подлинниках например OpenVPN, IPSEC.
    Постарайтесь найти проблемы в OpenVPN сравните потом свои достижения с результатами аудита кода профессионалами (как известно на аудит OpenVPN собраны деньги).
    Ответ написан
    Комментировать
  • Можно ли работать на Западе в сфере IT без профильного диплома?

    @younghacker
    Для точго чтобы это узнать сначала найдите работодателя, и если Вы ему нужны все остальные вопросы - его задача. Если ему нужен диплом, а Вам нет - ищите другого работодателя. Пробуйте! Вы ничего не теряете, но приобретаете опыт.

    А почему не попробовать найти работодателя в области медицины? Например разрабочика приборов для медицины. Какой прибор сейчас без процессора... Или просто разрабочика софта для медицины. Глядишь и диплом и знания медицины пригодятся. В данном случае это полезное преимущество разбираться в двух соседних областях.
    Ответ написан
    2 комментария
  • Как спарсить числа из разных файлов?

    @younghacker
    Мам дарагая... Вы это смогли скомпилировать?

    Если все файлы такие же то перебираем файлы в папке и в файлах ищем строку по регулярному выражению.

    В линуксе код вынуть можно например так:
    Перейти в нужный каталог и запустить это
    grep -i 'keyMaterial' * | sed -e 's/<keyMaterial>\(.\+\)<\/keyMaterial>/\1/gI'


    Я бы к выражению ещё добавил название точки доступа.

    Для винды можно это сделать на powershell ну и конечно накодить в С++ (использовать например библиотеку XML парсера)
    Ответ написан
    Комментировать
  • Как сделать свой DNS с блекджеком и доменами?

    @younghacker
    Я так понимаю вопрос о том чтобы настроить так как судя по формулировке вопроса написать свой у вас ещё долго не получится.
    А чтобы настроить нужно знать что должен делать ваш DNS:
    1) кешировать запросы из вашей сети к DNS провадера, яндекса или гугла
    2) самостоятельно "ресолвить" информацию в корневых серверах без участия DNS серверов провайдера, яндекса и даже гугла
    3) обслуживать какие-то домены для всех пользователей интернета? (для бесперебойной работы понадобится минимум два сервера в разных подсетях у разных хостеров)

    BIND умеет решать все три задачи. Многие другие серверы тоже.
    Ответ написан
    Комментировать
  • Как убрать ошибку cURL error 7: Failed to connect to 80: Connection refused?

    @younghacker
    cURL error 7: Failed to connect to foods-service.com.ua port 443: Connection refused (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

    Ваш хост
    1)забанили
    2) у вас криво настроен firewall
    3) с хоста запрещены исходяшие соединения.

    Например у меня всё в порядке
    $ nmap -p80,443 foods-service.com.ua
    
    Starting Nmap 7.12 ( https://nmap.org ) at 2017-02-05 22:24 CET
    Nmap scan report for foods-service.com.ua (37.139.15.228)
    Host is up (0.036s latency).
    PORT    STATE SERVICE
    80/tcp  open  http
    443/tcp open  https
    Ответ написан
    Комментировать
  • Как реализовать защищенный и не отслеживаемый телефон?

    @younghacker
    Вы не сказали от кого защищённый.
    И что значит неотслеживаемый и кем неотслеживаемый.
    Ответ написан
    Комментировать
  • Почему выводится белый экран, при открытии сайта?

    @younghacker
    Сайт случайно не на вордпресс?
    Памяти добавьте для php в .htaccess.
    php_value memory_limit 96M
    Ну и как сказал ThunderCat читайте логи.
    Ответ написан
    Комментировать
  • Как научить bareos/bacula удалять использованные тома и автоматически создавать новые?

    @younghacker
    У каждого пула и задания есть параметр Volume Retention который задаёт время по истечении которого файлы попавшие в этот том бакула считает удалёнными. Если установлена опция AutoPrune = yes то bacula удалит записи из каталога (SQL). А если установлена опция ActionOnPurge = Truncate то урежет размер файла до нуля.

    Нужно для себя уяснить одну вещь: bacula/bareos заточена под ленты и воспринимает файлы как ленты. И ведёт себя соответственно, использует их повторно если не установлен параметр Maximum Volume Jobs = 1. Проблема заключается в том что у меня объём бэкапов растёт и сложно понять сколько нужно хранить. И часто случалось что какой-то том раздувался и заполнял диск. Мы ведь в большинстве своём используем диски, а не ленты. Удалять такие тома дело сложное особенно когда задание "размазано" по нескольким файлам-лентам.
    Поэтому для себя я решил так что задания будут иметь определённый формат напрямую связанный с именем сервера, типом бэкапа и датой. В этом случае очередь на удаление очевидна. Кроме этого не возникает больших проблем при восстановлении из одного лишь файла бэкапа (без SQL каталога, несколько раз приходилось это делать) так как всё задание целиком в одном файле.

    За основу можете взять скрипт отсюда исправить его под свою задачу и добавить в cron. Помните что этот скрипт для ручного запуска. Он интерактивный и удаляет файлы по датам и невзирая на то сколько файлов осталось. Другими словами если бэкап не будет создаваться этот скрипт, выполняясь, будет удалять файлы. И в конце концов удалит все бэкапы. Кстати, скрипт вместо крона можно вставить в обработчик например каталога. Поставить бэкап SQL каталога в конец очереди и в него добавить задание "RunScript after/Run After Job"
    Ответ написан
    Комментировать
  • Что означает странное DNS-имя регистратора?

    @younghacker
    Подключите регистратор к роутеру (который позволяет перехватывать трафик) и на роутере посмотрите трафик. Возможно ждать активности придётся долго.
    А имя странное это где? каким образом вы его получили?
    Домен ресолвится на cloudflare.net а за ним пусто "DNS points to prohibited IP"
    Ответ написан
    1 комментарий
  • Не подключается к ftp?

    @younghacker
    на сервере:
    # netstat -nlp | grep ':21'
    должен показать процесс ftpd или что там у Вас, и адреса которые он слушает. должно быть 0.0.0.0:21 или ваш ip к которому соединяетесь ftp клиентом.

    на сервере же запустить ftp клиент и соединиться тем адресом который точно случает ftp демон. Самый простой вариант поставить midnight commander запустить его и в нём ввести команду (предположим что сервер слушает 0.0.0.0, а значит и 127.0.0.1):
    cd ftp://имяфтппользователя:пароль@127.0.0.1
    в случае успеха увидите каталог ftp сервера.

    # iptables -nvL INPUT
    должно показать правила из которых следует что 21 порт принимается на нужном интерфейсе с нужного IP клиента. Если прописано правило для 21 порта (лучше прописать) то увидите счётчик пакетов. Если от момента рестарта iptables Вы пробовали с клиента соединиться счётчик должен быть ненулевой.

    # cat /etc/sysconfig/iptables-config | grep 'IPTABLES_MODULES='

    добавить модуль ip_nat_ftp и рестартануть IPTABLES

    смотрим что там с AppArmor он тоже может блокировать доступ.
    # aa-status

    обычно на убунте по умолчанию не используют SELinux но проверить стоит.
    # getenforce
    Если активировано - временно можно отключить и попробовать соединиться снова.

    Логи, любимое админское чтиво:
    # cat /var/log/имя лога ftp сервера | grep -i 'ftp'
    # cat /var/log/kern.log


    Сначала нужно добиться соединения с локального ftp клиента, затем пробовать с удалённого.

    PS извиняюсь но Ваши настройки смотреть не стал после того как увидел сколько JS скриптов с разных сайтов хочет подсунуть этот ...сайт ради картинки...
    Ответ написан
    Комментировать