Linux порталы рапортуют о скором релизе Linux Kernel 4.0

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

НО. Особо порадовало следующее (цитата с лора):

Весомым аргументом в пользу ядра 4.0 также стало желание как можно скорее увидеть выпуск 4.1.15 – это номер версии ядра Linux, показанный в фильме Терминатор, при демонстрации интерфейса киборга T-800.

Что тут скажешь, до 2015 мы дожили, но машины по прежнему ездят по дорогам (Back to The future). До 4.1.15 тоже доживем.

Неожиданное поведение tcpdump при перехвате пакетов из бриджа

Случайно обнаружил такое свойство tcpdump: если у вас есть бридж, в котором бегают пакеты не адресованные вам (грубо говоря на бридж зеркалируеться траффик адресованный не вам), то при попытке сделать

tcpdump -ne vlan 9

программа не видит пакетов.

Если же записать дамп в файл (без указания vlan), а потом просмотреть его

tcpdump -r dump.file vlan 9

то все работает, и исправно показывает.

Проверялось на Ubuntu 12.04.

Кстати еще убил немало времени разбираясь почему tcpdump не пишет дамп файлы в папку /opt (на самом деле в любую отличную от /home, /var и т.д.), оказалось, что для tcpdump по умолчанию включен apparmor в enforce.

А еще в Ubuntu 12.04 по умолчанию включен apparmor, и tcpdump не хочет писать файлы например в /opt.

Что бы снять ограничение нужно перевести профиль для tcpdump в режим complain, как это сделать я писал здесь: https://pustovoi.ru/2009/778

Внимание, привиденьки!

71554ee628b682412d1ea44dddfddc71

Собственно, 27.01.2015 была опубликована информация о уязвимости в библиотеке libc (в функциях gethostbyname() и gethostbyname2()).

Уязвимость обнаружена в библиотеке начиная с версии glibc-2.2, от 10.11.2000г., т.е. дистрибутивы использующие более раннюю версию, данной проблемы не имеют.

Ошибке было присвоено имя GHOST («призрак») — сокращение, обыгрывающее названия уязвимых функций gethostbyname() и gethostbyname2().

Где то между версиями glibc-2.17 и glibc-2.18 был выпущен патч, закрывающий эту дыру, но т.к. он не был помечен как “security fix”, то в LTS дистрибутивах проблема не решилась.

Но не все так плохо, дело в том, что есть много ньюансов. Что бы переполнить буфер, доменное имя должно:

1. начинаться с цифры;

2. заканчиваться НЕ на точку;

3. состоять только из цифр и точек;

4. быть достаточно длинным, что бы переполнить буфер (т.е. фактически больше 1 килобайта);
Читать

Мелкософт открыл исходники .NET, и сделал его полностью кроссплатформенным

http://news.microsoft.com/2014/11/12/microsoft-takes-net-open-source-and-cross-platform-adds-new-development-capabilities-with-visual-studio-2015-net-2015-and-visual-studio-online/
Однако хорошая новость, т.к. под линукс теперь появиться масса нового десктопного софта.

Непонятно только когда маинтайнеры популярных дистрибутивов включат его в дистрибутив.

Смена часового пояса

В большинстве дистрибутивов linux информация о часовых поясах хранится в директории:

$ ls /usr/share/zoneinfo/
Africa/      CET          Etc/         Hongkong     Kwajalein    Pacific/     ROK          zone.tab
America/     Chile/       Europe/      HST          Libya        Poland       Singapore    Zulu
Antarctica/  CST6CDT      GB           Iceland      MET          Portugal     Turkey       
Arctic/      Cuba         GB-Eire      Indian/      Mexico/      posix/       UCT          
Asia/        EET          GMT          Iran         MST          posixrules   Universal    
Atlantic/    Egypt        GMT0         iso3166.tab  MST7MDT      PRC          US/          
Australia/   Eire         GMT-0        Israel       Navajo       PST8PDT      UTC          
Brazil/      EST          GMT+0        Jamaica      NZ           right/       WET          
Canada/      EST5EDT      Greenwich    Japan        NZ-CHAT      ROC          W-SU 

Часовой пояс в дистрибутивах основанных на Red Hat меняеться сменой символической ссылки:

$ sudo unlink /etc/localtime
$ sudo ln -s /usr/share/zoneinfo/Etc/GMT+6 /etc/localtime

В Debian\Ubuntu это можно сделать через переконфигурацию пакета tzdata:

$ sudo dpkg-reconfigure tzdata

ss #1

или например так:

echo ‘Asia/Tokyo’ | sudo tee /etc/timezone

sudo dpkg-reconfigure -f noninteractive tzdata

а так же, в любом дистрибутиве есть команда tzselect

Кое что о SED

В жизни любого айтишника, бывают моменты, когда нужно сделать много однообразной работы, но инструментами, которые могли бы помочь автоматизировать процесс не владеешь. И тут возникает вопрос, что быстрее: потратить время, научиться пользоваться инструментом, и потом сделать все за 5 минут, или потратить время и сделать все в ручную.

Зачастую, сделать в ручную быстрее, если конечно не думать о том, что возможно придется еще не раз делать эту работу, а обычно так и бывает!

Так случилось, что сегодня мне нужно было в пяти мегабайтном CSV файле из почти 100 000 строк заменить сперва все запятые на точку с запятой, а затем все точки на запятые. Не буду вдаваться в подробности, но сперва, я попробовал как обычно открыть его в Libre  Office Calc. Точнее открыл то я его без проблем, а вот операция “поиск с заменой” подвесила редактор на долго. Прождав минут 10, я его прибил. Решил, что старый добрый nano сделает это быстрее. Хрен там было!

Любой смыслящий в линукс, скажет – в SED это сделать легко, но так уж вышло, что для меня SED это тот самый инструмент, который изучить все не доводилось. Но решил попробовать. Нашел довольно хороший мануал для новичков, и блин эта ацкая прога перемолола файл примерно за 2 СЕКУНДЫ!!!!

Сказать что я был удивлен – ничего не сказать. Я сперва подумал, что команду не правильно ввел…. Но все было верно. Ниже перепост того мануала. Автору ОГРОМНОЕ СПАСИБО. Ссылка на оригинал в конце.

Читать

Обновление старого сервера на примере 8.04.4

Сегодня озадачился вопросом, как фиксить shellshock на сервере, на котором стоит (уже) неподдерживамая производителем версия дистрибутива. Собирать патченный bash из исходников, совершенно не интересно, поэтому был выбран другой путь.

 

Фиксил я Ubuntu 8.04, под нее уже нет ни репов, ни исходников. Следующий из на данный момент поддерживаемых дистрибутивов 10.04, но как не трудно догадаться, в нем отличается версия libc6.

Но другого пути нет, поэтому прописав в /etc/apt/sources.list

deb     http://archive.ubuntu.com/ubuntu                        lucid main
deb     http://archive.ubuntu.com/ubuntu                        lucid-updates main
deb     http://security.ubuntu.com/ubuntu                       lucid-security main

сделал apt-get update, а затем

apt-get install bash

есть ньюанс, обновлять нужно обязательно через apt-get install bash, а не через aptitude. Разница в том, что аптитуд по умолчанию тянет все рекомендуемые пакеты, а в данном случае, это совершенно ни к чему. (Можете попробовать, он вам выдаст охеренно здоровенный список пакетов, которые хочет обновить)

Обновив bash через apt-get, он скачал всего 7 пакетов. Т.е. минимум от которого зависит более свежая версия оболочки.

После чего запустил скрипт, тестирующий оболочку на наличие дырки, и убедился, что все прошло отлично.

2x RDP Client под Ubuntu 14.04 amd64

Переустановил систему, поставил свежую 14.04 LTS. Начал ставить привычный софт, и был неприятно удивлен. Самый удобный RDP клиент под пингвином сегфолится ;(

Проверил что пишет ldd, проверил всего ли ему хватает, проверил стоят ли 32х битные либы. Все ок. Ответ нашел… блин, на форуме техподдержки!!! Как то не удосужился туда сперва посмотреть.

Искомое заклинание было:

apt-get install libstdc++6:i386 libxpm4:i386 libxml2:i386 libqtdbus4:i386

По факту, у меня все это было уже ручками сто раз переустановлено, кроме libqtdbus4:i386. В ней то и была проблема.

Новости продолжают радовать

Сегодня с утра прочитал что “Игра Borderlands 2 доступна для Linux“. Там же написано, что в октябре выйдет “Borderlands: The Pre-sequel”, уже изначально с поддержкой правильной ОС.

Я так понимаю, что вендекапец, который мы все долго ждали, уже близок! Аллилуйя! ))))

Регистронезависимый поиск руских слов в trac

Последнее время все чаще и чаще начали пользовать для внутренних нужд на работе trac. Причем если на первых порах у нас был отдельный движек под wiki и отдельно под исходники и тикеты трак, то в последствии плавно переехали на один единый движек, ибо удобно. Но недавно обнаружили досадный баг, если в поиске трака искать слова из не латинских букв, то поиск получается регистрозависимый.

Вся беда в sqlite, и если перетащить базу в pgsql, то проблема решиться сама собой (сам не пробовал), подробнее про эту проблему можно почитать тут:

http://trac.edgewall.org/ticket/7902
http://trac.edgewall.org/ticket/10327
http://trac.edgewall.org/ticket/5720

Сперва хотел перевести базу в MySQL, но обнаружились проблемы с конвертированием дампа (у sqlite и mysql несколько отличается синтаксис), а так же проблемы с совместимостью с MySQL. Поэтому было принято решение допиливать SqLite.

Решение в общем то есть, вот тут (ссылка) лежит исходник плагина для sqlite реализующего нужный функционал, но по пути были встречены разнообразные грабли, и вот как их обойти. Читать