За что я действительно люблю Linux и немного про зомбирование молодежи.
curl --silent https://www.youtube.com/feed/trending | grep -E ".\"\ \ t..le\=\"" | sed -e 's/^.\+.\"\ \ t..l.\=//g' -e 's/\ a.ia-d.s.r..e..y.\+$//g' | cat -n
curl --silent https://www.youtube.com/feed/trending | grep -E ".\"\ \ t..le\=\"" | sed -e 's/^.\+.\"\ \ t..l.\=//g' -e 's/\ a.ia-d.s.r..e..y.\+$//g' | cat -n
У нас еще очень много «классических админов» (и я не исключение), у которых все за годы работы все автоматизировано и кушать не просит. Например для меня идеология и инструментарий DevOps инженера долгое время был совсем не в почете, да и сотрудничать с разработчиками мне приходилось по минимуму. Однако все меняется и необходимость заставила меня изменить свое мнение, взять в руки документацию и двигаться дальше. И что же я увидел в процессе изучения, так скажем, достаточно новой ветви системного администрирования?
Сопутствующая DevOps автоматизация производственного процесса подразумевает достаточно много работы, зачастую — с новыми технологиями, которые раньше не представляли для меня особого интереса.
Идеология процессов не нова - необходимо автоматизировать любую повседневную задачу и сделать работу команды разработчиков максимально отвлеченной от хлопот, давай им возможность сосредоточится на их основных задачах, а также избавить себя родимого от рутинного труда (хороший системный администратор должен быть ленивым, в самом хорошем смысле этого выражения).
Мне почему-то кажется, что у Windows-инженеров с освоением данной методологии возникнет больше проблем - скриптинг, скриптинг и еще раз скриптинг. Я конечно же понимаю, что существует powershell, но его идеология так далека от скриптовых процедурных интерпретаторов в линукс системах и также конфигураций оркестраторов (например ansible) и идеологии описания инфраструктуры кодом.
Внятно объяснить, что же такое DevOps, по-моему, до сих пор не могут большинство классических админов, более того, многие просто не знают этого слова, что не может не расстраивать.
В любом случае, работая инженером в информационных технологиях мы должны быть как серферы - всегда на волне, иначе мы перестанем быть профессионалами и скатимся в эникей. Так что как бы не не отторгал мозг новые идеологии администрирования настоящий инженер просто обязан отбрасывать субъективное мышление, покидать зону комфорта и всегда держать себя на волне.
Удачного серфинга в ИТ, коллеги!
Если вы пользуетесь Telegram на Маке или Windows, вам будет интересно узнать об обнаруженной в продукте функциональности, позволявшей выяснить IP адрес собеседника при голосовом p2p звонке. В вышедшем обновлении Telegram теперь появилась возможность настроить и другие опции при голосовых звонках, что минимизирует риски с этой проблемой. Есть мнение, что подобная тема есть во всех p2p звонилках, но важна именно возможность выбирать другие виды звонков.
Подробности для специалистов:
https://www.inputzero.io/2018/09/bug-bounty-telegram-cve-201...
Итак, мы хотим быть немного более приватными, нежели нам дают возможности Tor браузера.
Что нам для этого нужно?
В идеале мы хотим получить следующую схему:
////////////////////////////////////////////////////////////////////////////////////////<->Tor Proxy 1
Client (Browser) <----socks5 over openvpn-------------> HAproxy <->Tor Proxy 2
/////////////////////////////////////////////////////////////////////////////////////// <-> Tor Proxy n
Нам понадобитсян небольшая арендованная vps с тремя гигами оперативки и, предположим с убунту, но это не важно.
Предполагается что мы знаем, как настроить на ней OpenVPN и подключиться к нему.
Этот шаг не даст провайдеру сувать нос в наш трафик и знать че мы вообще занимаемся.
Далее займемся Docker (Контейнеры Docker — легковесные механизмы виртуализации в пользовательском пространстве, которые применяют контрольные группы и пространства имен, чтобы управлять изолированием ресурсов, вроде достаточно просто выразился)
Установка Docker:
Буду краток:
sudo apt-get update
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys \ 58118E89F3A912897C070ADBF76221572C52609D
sudo apt-add-repository 'deb https://apt.dockerproject.org/repo ubuntu-xenial main'
sudo apt-get update
sudo apt-get install -y docker-engine
Без лишних подробностей все! Теперь мы можем запускать на нашей машине различные, заранее настроенные приложения в изолированных контейнерах.
Я имею цель быстро и не погружаясь сильно в подробности научить вас собирать свою шпиономашину, поэтому мы опустим некоторые подробности, однако в конце я укажу вам материалы для приятного чтения.
Итак, сейчас мы обратимся к чудесному gitgub юзер zet4, который приложил некоторые усилия и сделал для нас полуфабрикат готового коплекса. Далее обратимся опять к нашей консольке.
sudo mkdir /opt/tmp
sudo git clone https://github.com/zet4/alpine-tor.git
cd alpine-tor
итак, смотрил ls -la и видим
total 40
drwxr-xr-x 3 root root 4096 Aug 2 21:40 .
drwxr-xr-x 3 root root 4096 Aug 2 21:40 ..
-rw-r--r-- 1 root root 671 Aug 2 21:40 Dockerfile
drwxr-xr-x 8 root root 4096 Aug 2 21:40 .git
-rw-r--r-- 1 root root 15 Aug 2 21:40 .gitignore
-rw-r--r-- 1 root root 542 Aug 2 21:40 haproxy.cfg.erb
-rw-r--r-- 1 root root 235 Aug 2 21:40 privoxy.cfg.erb
-rw-r--r-- 1 root root 3405 Aug 2 21:40 README.md
-rw-r--r-- 1 root root 6207 Aug 2 21:40 start.rb
Dockerfile - это очень важно, по сути это рецепт посборке Антироскомнадзорной няшной системы, можете заглянут и почитать. Дальше мы видим конфигурационные файли софта, который будет работать в контейнере, сейчас мы их не будем трогать, все это посто для вдумчивого обучения в будущем.
Итак, не буду вас мучать сборкой нового контейнера, поэтому просто стянем готовый, вполне свежий контейнер с общественного докер репозитория
sudo docker pull zeta0/alpine-tor:latest
И все! Осталось запустить и научиться пользоваться (а на выходе у нас с виду получится socks5, который прописывается в браузере на вашей машине и с виду работает как обычный)
Запускаем:
sudo docker run -d -p 5566:5566 -p 2090:2090 -e tors=100 zeta0/alpine-tor
Все! Теперь мы на нашем vps имеем мультитор прокси револьвеного типа.
Теперь все что вам нужно - отлючить лишние приложения во избежания утечки днс имен, поставить браузер, где нужно отключить кучу ненужного палева, этодругой достаточно длинный разговор и прописать в нем socks5 (айпи вашего сервера:5566, да вы не забыли - мы подлючены через впн, поэтому именно адрес берем отттуда) вашей новой игрушки, благодаря которой вас будет в значительнойстепени труднее идентифицировать в сети, чем просто используя tor браузер.
Я прошу прощения за сумбур, я лишь готоволюсь преподавать, мне многому еще надо научиться в плане педагогики, поэтому в конце я осталю несколько ссылок для полезного чтения:
https://ru.wikipedia.org/wiki/Docker
https://hub.docker.com/r/zeta0/alpine-tor/
В заключении хочу сказать, что только этим методов недостаточно, что быстать невидимкой в сети - для этого требуются серьезные знания, опыт и глубокое понимание механизмов работы современных сетей, так что будем считать, что материал представлен для того, что бы заинтересовать вас темой информационной безопасности. Спасибо!
Доброго дня коллеги. Как то я озаботился получением утреннего дайджеста, а именно среза текущих проблем на момент времени. Не добившись от мидов ясности в глах и азарта впальцах я наковырял сие (иногда используя кусочки чужуго кода. Публикую - вдруг кому понравится.
Работает с базой Zabbix-3.4
zabbix-daily-report.sh
#!/bin/bash
#Working with Zabbix 3.4 Database
SENDWITH0=0
MAIL="***@*** ***@*** #emails with spaces here#"
MAILFROM=zabbix@zabbix.slocal
SMTP="your.smtp.server"
SMTPUSER="******"
SMTPPASS="******"
SQLHOST=$(sed -e '/^DBHost/!d; s/.*=\(.*\)/\1/' /etc/zabbix/zabbix_server.conf)
SQLUSER=$(sed -e '/^DBUser/!d; s/.*=\(.*\)/\1/' /etc/zabbix/zabbix_server.conf)
SQLPASS=$(sed -e '/^DBPassword/!d; s/.*=\(.*\)/\1/' /etc/zabbix/zabbix_server.conf)
SQL='SELECT host, t.description, FROM_UNIXTIME(e.clock) as time, t.value, IF(e.acknowledged=1,"Yes","No") as acknowledged, IF(e.acknowledged=1,a.message,"") as message
FROM triggers t
INNER JOIN functions f ON ( f.triggerid = t.triggerid )
INNER JOIN items i ON ( i.itemid = f.itemid )
INNER JOIN hosts h ON ( i.hostid = h.hostid )
INNER JOIN events e ON ( e.objectid = t.triggerid )
LEFT JOIN acknowledges a ON ( a.eventid = e.eventid )
WHERE (e.eventid DIV 100000000000000)
IN (0)
AND e.object = 0
AND (t.value=1 OR (t.value =0 AND unix_timestamp(now()) - t.lastchange <60))
AND h.status = 0
AND i.status = 0
AND t.status = 0
AND e.eventid = (SELECT max(eventid)
FROM events e
WHERE (e.eventid DIV 100000000000000)
IN (0)
AND e.object = 0
AND (t.value=1 OR (t.value =0 AND unix_timestamp(now()) - t.lastchange <60))
AND h.status = 0
AND i.status = 0
AND t.status = 0
AND e.objectid = t.triggerid
)
GROUP BY host, f.triggerid
ORDER BY t.lastchange DESC;'
echo ${SQL}|mysql -h ${SQLHOST} -u ${SQLUSER} -p${SQLPASS} zabbix -t | sed 's/$/\\n/g; /acknowledged/d; 1d;' > /dev/shm/$(basename $0)
body="This is an automatically generated fokin mail message sent by a script running on zabbix.slocal."
subject="Zabbix daily report by $(date): We have "
num=0
if [ -s /dev/shm/$(basename $0) ]; then
num=$(( $(cat /dev/shm/$(basename $0)|wc -l) -2))
body="${body}
The following triggers are currently active:
`echo -e $(cat /dev/shm/$(basename $0))`"
else
body="${body}
All quiet chef!"
fi
body="${body}
Log in to Zabbix at ${URL}
Regards,
Zabbix Server"
subject="${subject} $num fokin problems."
if [ ${num} -eq 0 ] && [ ${SENDWITH0} -eq 0 ]; then
exit 0;
else
for i in $MAIL
do
echo -e "${body}" | sendemail -s $SMTP -xu $SMTPUSER -xp $SMTPPASS -f $MAILFROM -t $i -u ${subject} > /dev/null 2>&1
done
fi
Предлагаю носителям сих болячек поделиться - каково это, жить на волнах БР и лавировать в мире ритуалов ОКР.