14.10.14

The Practice of Cloud System Administration: Designing and Operating Large Distributed Systems, Volume 2

В прошлом месяце вышла книга "The Practice of Cloud System Administration: Designing and Operating Large Distributed Systems, Volume 2" (amazon link). Авторы - небезызвестные Thomas A. Limoncelli, Strata R. Chalup, Christina J. Hogan, авторы бестселлера "The Practice of System and Network Administration, Second Edition", он же Volume 1, книги, благодаря которой прививается правильный взгляд на системное и сетевое администрирование (IMHO). Ожидаю не меньшего и от второго тома!

30.09.14

ShellShock check

https://github.com/hannob/bashcheck


#!/bin/bash

r=`x="() { :; }; echo x" bash -c ""`
if [ -n "$r" ]; then
echo -e '\033[91mVulnerable to CVE-2014-6271 (original shellshock)\033[39m'
else
echo -e '\033[92mNot vulnerable to CVE-2014-6271 (original shellshock)\033[39m'
fi

cd /tmp;rm echo 2>/dev/null
X='() { function a a>\' bash -c echo 2>/dev/null > /dev/null
if [ -e echo ]; then
echo -e "\033[91mVulnerable to CVE-2014-7169 (taviso bug)\033[39m"
else
echo -e "\033[92mNot vulnerable to CVE-2014-7169 (taviso bug)\033[39m"
fi

bash -c "true $(printf '<<EOF %.0s' {1..79})" 2>/dev/null
if [ $? != 0 ]; then
echo -e "\033[91mVulnerable to CVE-2014-7186 (redir_stack bug)\033[39m"
else
echo -e "\033[92mNot vulnerable to CVE-2014-7186 (redir_stack bug)\033[39m"
fi

bash -c "`for i in {1..200}; do echo -n "for x$i in; do :;"; done; for i in {1..200}; do echo -n "done;";done`" 2>/dev/null
if [ $? != 0 ]; then
echo -e "\033[91mVulnerable to CVE-2014-7187 (nested loops off by one)\033[39m"
else
echo -e "\033[96mTest for CVE-2014-7187 not reliable without address sanitizer\033[39m"
fi

r=`a="() { echo x;}" bash -c a 2>/dev/null`
if [ -n "$r" ]; then
echo -e "\033[93mVariable function parser still active, likely vulnerable to yet unknown parser bugs like CVE-2014-6277 (lcamtuf bug)\033[39m"
else
echo -e "\033[92mVariable function parser inactive, likely safe from unknown parser bugs\033[39m"
fi

loop on f20.

echo loop > /etc/modules-load.d/loop.conf
systemctl status systemd-modules-load.service

echo options loop max_loop=10 > /etc/modprobe.d/loop.conf
dracut --force

Mounting a disk image using the loop device

losetup /dev/loop0 /pathto/file.img
fdisk -l /dev/loop0
losetup -d /dev/loop0

losetup /dev/loop0 /pathto/file.img -o 8704

13.09.14

SSD в f20,rhel7. базовый тюнинг

1) Блочный уровень
Глобально тип планировшика ввода-вывода можно задать в grub'e:
#vim /etc/default/grub
...
GRUB_CMDLINE_LINUX="vconsole.font=latarcyrheb-sun16 $([ -x /usr/sbin/rhcrashkernel-param ] && /usr/sbin/rhcrashkernel-param || :) elevator=noop rhgb quiet"
...

#grub2-mkconfig -o /boot/grub2/grub.cfg

Для отдельного диска можно воспользоваться rc-local:

#vim /etc/rc.d/rc.local
#!/bin/bash
echo noop > /sys/block/sdX/queue/scheduler

#chmod +x /etc/rc.d/rc.local
#systemctl enable rc-local
#systemctl start rc-local


2) Файловый уровень.
#tune2fs -o journal_data_writeback,user_xattr,acl /dev/sdX

#vim /etc/fstab:
...
UUID=XXX    /    ext4    defaults,noatime,data=writeback,barrier=0        1 1
...

#vim /etc/cron.daily/trim 
#!/bin/sh
/usr/sbin/fstrim -v /

#chmod +x /etc/cron.daily/trim

29.08.14

Укрощение HP Elitebook folio 9470m

Нужен был легкий ноутбук и почти решился купить Dell XPS 13, как в руки попал корпоративный HP Elitebook folio 9470m, не собственный, ну да какая разница) Первым делом решил избавиться от установленной ОС, сделав копию разделов. В системе 2 диска: hitachi hts72505 и samsung mzmpc032 (SSD), твердотельный использовался как кэш, что просто кошунство на мой взгляд). Проблема заключалась в том, что при установке fedora, anaconda не видела оба диска, решение нашлось почти сразу - отключение raid в bios и выполнение команды (в live режиме):
#dmraid -r -E

Теперь система на ssd, home на hdd, для шифрования home используется luks. wifi работает, звук тоже, в планах потестить fingerprint.


24.08.14

NetHogs

NetHogs позволяет вывести сетевую скорость по процессам.

21.08.14

Orange Book & CC

Классика)

TCSEC (Trusted Computer System Evaluation Criteria) aka "Orange Book"
http://csrc.nist.gov/publications/history/dod85.pdf
+
CC (common criteria), ISO/IEC 15408
http://www.commoncriteriaportal.org/cc/

10.06.14

Red Hat Forum 2014 & RHEL7

Сегодня посетил Red Hat Forum 2014, все было весьма интересно, как и на всех мероприятиях проводимых Red Hat или сообществом Fedora. Были обзоры практически всех продуктов компании, выступления партнеров и спонсоров (HP, IBM, Dell), общий акцент как уже принято на облака и big data, но самое главное это то, что в этот же день выходит долгожданный RHEL 7!!!

24.05.14

MySQL max_connection

#vim /etc/my.cnf

[mysqld]
...
max_connection=1000
...


(по умолчанию 151)

MySQL InnoDB

#vim /etc/my.cnf

[mysqld]
...
default-storage-engine=InnoDB
...

10.04.14

Узнать свой внешний IP (за NATом)

$curl ifconfig.me
$curl ident.me

PyPI:
$sudo pip install pif
$get-public-ip

Генераторы паролей

apg
$apg -m 12 -M SNC

mkpasswd (пакет expect)
$mkpasswd -l 12

24.01.14

HP Software Delivery Repository

HP Software Delivery Repository
This site provides yum and apt repositories for Linux-related software packages.

http://downloads.linux.hp.com/SDR/

20.10.13

Отключение IPv6

sysctl
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

RHEL6 (/CentOS6):
Отключаем модули ядра для ipv6:
#cat > /etc/modprobe.d/ipv6.conf << EOF
options ipv6 disable=1
alias net-pf-10 off
alias ipv6 off
install ipv6 /bin/true
EOF

Первая строка здесь отключает ipv6, остальные предотвращают загрузку уже ненужного модуля ядра для ipv6.

Отключаем iptables для ipv6:
#chkconfig ip6tables off

Ubuntu 13.10:
#cat /etc/default/grub
...
GRUB_CMDLINE_LINUX_DEFAULT=" ipv6.disable=1"
...

#update-grub2

21.09.13

Конференция «Дорога в облака»

Посетил конференцию «Дорога в облака»

* «Нестандартное использование Puppet в деплойменте» - Михаил Щербаков, Mirantis.
* «Как облачные технологии меняют Linux-дистрибутивы?» - Петр Леменков, Fedora Project.
* «Производительность и масштабируемость OpenStack» - Борис Павлович, Mirantis.
* «Configuration Management at large companies» (in English) - Matthew Mosesohn, Mirantis.
* «Развертывание OpenStack с помощью Fuel» - Михаил Щербаков, Mirantis.
* «Elliptics, отказоустойчивое распределенное KV-хранилище» - Евгений Поляков, Яндекс.
* «Облачные решения от Red Hat, и будущее» - Сергей Бугрин, Red Hat.
 

07.09.13

RPi

Недавно переехал и сейчас задумался отказываться от yota в пользу полноценного интернета (и более дешевого) и заключая сегодня договор с провайдером, я отказался от услуг настройки оборудования и предложений о покупки роутера) мой RaspberryPi куда лучше всей этой шелухи. Geek's HandMade) Only GNU/Linux! Да, сейчас на фото ubuntu, а в Pi - raspbian, но можно и дубль два - будет fedora + pidora) ...дело вкуса...!!!)))

22.07.13

ubuntu edge

Вот телефон который я хочу, ubuntu edge, все остальные по сравнению с ним меркнут!















Очень жаль, что это пока только краудфандинг и поэтому хочется сказать следующее:

16.06.13

WIFI точка доступа в Linux (или WIFI-router из RaspberryPi)

WIFI точку доступа в linux можно настроить используя hostapd, dhcp сервер и поддерживаемый wifi-адаптер, драйвер которого сможет выступать в качестве AP. http://wireless.kernel.org
Один из поддерживаемых USB wifi-адаптеров - TP-LINK TL-WN722N(С) (http://www.tp-linkru.com/products/details/?categoryid=&model=TL-WN722N) им я и воспользовался.

Ниже описана конфигурация wifi точки доступа, собранной из RaspberryPi (raspbian), LTE-модема yota и уже упомянутого wifi-адаптера TP-LINK TL-WN722NС.


  • Настройка интерфейсов:
Устанавливаем resolvconf, необходим для работы опции "dns-nameservers":
#apt-get install resolvconf

Редактируем сами интерфесы:
#cat /etc/network/interfaces
auto lo
        iface lo inet loopback
        iface eth0 inet dhcp

#onboard ethernet
auto eth0
iface eth0 inet static
        address 172.16.0.10
        netmask 255.255.255.0

#yota
auto default eth1
iface eth1 inet dhcp
        dns-nameservers 8.8.8.8

#wifi
auto wlan0
iface wlan0 inet static
        address 192.168.0.1
        netmask 255.255.255.0
        dns-nameservers 8.8.8.8

  • Настройка dhcp:
Ставим dhcp сервер, я воспользовался стандартным:
#apt-get install isc-dhcp-server

Правим стандартную конфигурацию:
#cat /etc/dhcp/dhcpd.conf

ddns-update-style none;
#option domain-name "example.org";
#option domain-name-servers 8.8.8.8;

default-lease-time 600;
max-lease-time 7200;
log-facility local7;

subnet 192.168.0.0 netmask 255.255.255.0 {
  range 192.168.0.25 192.168.0.30;
  option domain-name-servers 8.8.8.8;
  option routers 192.168.0.1;
  interface wlan0
}
  • Настройка точки доступа hostapd:
Устанавливаем пакет:
#apt-get install hostapd

Создаем конфиг, в итоге должно получится следующее:
#cat /etc/hostapd/hostapd.conf

interface=wlan0
driver=nl80211
ssid=SSIDName
hw_mode=g
channel=11
wme_enabled=1
ieee80211n=1
ht_capab=[HT40-][SHORT-GI-40][DSSS_CCK-40]
wpa=2
wpa_passphrase=SecretPasswordPhrase
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
wpa_ptk_rekey=600
macaddr_acl=0

Здесь нужно заменить SSIDName на желаемое имя wifi сети, а SecretPasswordPhrase соответственно на пароль wifi сети.

Также необходимо подправить init-скрипт демона /etc/init.d/hostapd:
присвоить значение для
... 
DAEMON_CONF=/etc/hostapd/hostapd.conf
...
а также добавить управление интерфейсом wlan0 при старте, рестарте и останове демона:

...
#wlan iface
WLAN=wlan0
...
  start)
    #up wlan iface
    /sbin/ifup $WLAN

    log_daemon_msg "Starting $DESC" "$NAME"
    start-stop-daemon --start --oknodo --quiet --exec "$DAEMON_SBIN" \
        --pidfile "$PIDFILE" -- $DAEMON_OPTS >/dev/null
    log_end_msg "$?"
    ;;
  stop)
    log_daemon_msg "Stopping $DESC" "$NAME"
    start-stop-daemon --stop --oknodo --quiet --exec "$DAEMON_SBIN" \
        --pidfile "$PIDFILE"

    #down wlan iface
    /sbin/ifdown $WLAN

    log_end_msg "$?"
    ;;
...

  • Настройка файервола:

Включаем forwrding в sysctl.conf:
net.ipv4.ip_forward=1
В iptables разрешаем forwarding для беспроводного интерфейса и разрешаем masquerading для интерфейса подключенного к Интернет:
#iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
#iptables -A FORWARD -i eth1 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -A FORWARD -i wlan0 -o eth1 -j ACCEPT
Плюс ко всему необходимо блокировать ненужный трафик.

Существует ряд способов применить настройки правил iptables при старте системы, в debian/ubuntu я пользуюсь iptables-persistent:
Ставим пакет, при установке можно не сохранять текущие правила, т.к. будут редактироваться:
#apt-get install iptables-persistent

Далее добавляем необходимые правила в файл:
#cat /etc/iptables/rules.v4

*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT

*filter
:INPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -j ACCEPT
-A INPUT -i wlan0 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -i eth1 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i wlan0 -o eth1 -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

Это необходимый минимум правил. Далее их можно добавлять и совершенствовать усиливая защиту, например добавив проверку по MAC адресам, установить IPS/IDS и т.д.

Такая реализация wifi-роутера меня лично больше устраивает чем скажем OpenWRT+поддерживаемый им роутер, чем я и пользовался ранее, в плане ПО уж точно.
Были опасения по поводу нагрева RaspberryPi в этом корпусе, но температура была вполне штатная 51'С и скорее всего установка радиаторов или отверстий в корпусе не потребуется.

TODO: аналогичная настройка, но на fedora.

12.06.13

Red Hat выпустила Red Hat Enterprise Virtualization 3.2


Вышла новая версия системы виртуализации RHEV 3.2. Основные новшества - полная поддержка Storage Live Migration и поддержка последних моделей процессоров Intel и AMD.

08.06.13

NetGWM

"NetGWM (Network Gateway Manager) — утилита для автоматического переключения сетевых шлюзов в случае недоступности интернет-подключения в операционной системе GNU/Linux. NetGWM позволяет с лёгкостью создавать отказоустойчивые подключения к глобальной сети.", flant.ru

Linux Advanced Routing & Traffic Control

http://lartc.org