LINUX.ORG.RU

Сообщения Dimarius

 

nilfs2 - зло

# mount.nilfs2 /dev/sda /test
mount.nilfs2: Error while mounting /dev/sda on /test: Input/output error

И вот:

# dmesg | tail
[ 3626.910556] Remounting filesystem read-only
[ 3626.910808] NILFS: bad btree node (blocknr=1684208010): level = 0, flags = 0x10, nchildren = 0
[ 3626.910810] NILFS error (device sda): nilfs_bmap_lookup_at_level: broken bmap (inode number=3)
[ 3626.910810] 
[ 3626.910810] Remounting filesystem read-only
[ 3626.911834] NILFS: bad btree node (blocknr=2306032988): level = 0, flags = 0x18, nchildren = 0
[ 3626.911837] NILFS error (device sda): nilfs_bmap_lookup_at_level: broken bmap (inode number=3)
[ 3626.911837] 
[ 3626.911839] NILFS warning (device sda): nilfs_ifile_get_inode_block: unable to read inode: 2
[ 3626.911843] NILFS: get root inode failed

Похоже выход один - mkfs ((( lscp ругается на cannot open NILFS, снапшоты тоже не монтируются.

Может кто восстанавливал ЭТО nilfs2 с подобной проблемой?

 

Dimarius
()

параноидальная защита 22 порта с помощью iptables

Эта запись больше для себя, чтоб не потерялась, но обоснованная критика приветствуется.

Правила делают следующее:

1) 10 минутная пауза для любых новых ip адресов, причем больше 5 попыток в эти 10 минут блокируют ip наглухо.

2) Больше 5 подключений после 10 минут перманентный блок

3) Больше 2 подключений в 5 минут - отброс (можно и исключить)

iptables -N BAN_SSH
iptables -N SSH_2
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --rcheck --name ssh_baned                           -j DROP
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --update --name ssh_2    --seconds 600 --hitcount 5 -j BAN_SSH
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --update --name ssh_2    --seconds 300 --hitcount 2 -j DROP
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --update --name ssh_2                               -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --update --name ssh_grey --seconds 600 --hitcount 5 -j BAN_SSH
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --update --name ssh_grey --seconds 600              -j DROP
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --rcheck --name ssh_grey                            -j SSH_2
iptables -A INPUT -p tcp -m tcp --dport 22 -m recent --set    --name ssh_grey                            -j REJECT
iptables -A BAN_SSH                        -m recent --set    --name ssh_baned                           -j DROP
iptables -A SSH_2                          -m recent --set    --name ssh_2                               -j ACCEPT

И еще, по умолчанию модуль recent ограничен 100 записями, изменить это дело на 5000000 записей можно например так:

sudo chmod 777 /sys/module/xt_recent/parameters/ip_list_tot
sudo echo 5000000 > /sys/module/xt_recent/parameters/ip_list_tot 
sudo chmod 400 /sys/module/xt_recent/parameters/ip_list_tot

 ,

Dimarius
()

Из iptables в ipfw

iptables -A INPUT -p tcp -m tcp --dport 22     -m recent --name ssh_delay --rcheck --seconds 300 -j DROP
iptables -A INPUT -p tcp -m tcp --dport 22     -m recent --name ssh_delay --set                  -j DROP

Вроде простое правило задержки в 5 минут для всех новых подключений на 22 порт. Iptables легко реализуемое 2 правилами. А как тоже самое сделать средствами ipfw? Неужели без костылей не обойтись? Знатоки ipfw подскажите пожалуйста решение.

p.s. Устанавливать iptables не предлагать.

 , ,

Dimarius
()

Bluetooth гарнитура, ubuntu автопереключение профилей возможно?

Есть гарнитура, которая поддерживает 2 профиля одновременно HFP и A2DP (HS и AVRCP тоже умеет). Со смартом можно слушать музыку по A2DP, а при звонке происходит переход в HFP. А есть ли возможность в ubuntu активировать переключение протоколов автоматически при звонке на скайп например? В идеале было бы классно слушать любой звук (включая скайп) по A2DP, а по HFP чтоб микрофон работал, но это похоже фантастика или есть варианты реализации?

Гарнитура - CBR CHP636, ОС - Ubuntu 12.04 LTS 32bit (актуальные обновления), Bluetooth модуль - asus usb-bt21 (дрова по дефолту), Аудио крутится через PulseAudio.

 , ,

Dimarius
()

nilfs2 расписание снапшотов

Собственно руками все создаётся и удаляется, но хочется автоматизировать процесс. Примерное расписание 1 раз в день (например в 19-30), с понедельника по пятницу. Актуальность например 2 месяца. С созданием проблем нет:

mkcp -s /dev/drbd0
-в крон по расписанию.. А вот с удалением ss старше 2 месяцев загвоздка. Список имеющихся ss -
lscp -s /dev/drbd0
                 CNO        DATE     TIME  MODE  FLG     NBLKINC       ICNT
                1013  2013-06-06 09:43:52   ss    -           18          5
Удаление происходит в 2 этапа с указанием именно номера ss, а не даты или периода :(

1) Преобразование ss в cp:

chcp cp /dev/drbd0 1013
2) Удаление cp:
rmcp /dev/drbd0 1013

В синтаксисе можно указать напрямую номер ss или список вида: 1) начало..конец 2) начало.. 3) ..конец

Полагаю надо уже отобраный по датам вывод lscp запихать в аргументы удаляющих команд. Помогите с кодом пожалуйста.

 , , rmcp

Dimarius
()

Готовый скрипт проверки соединения с хостом (проверка инета или хоста)

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

#!/bin/bash
#
# Скрипт в бесконечном цикле пингует удалённый хост в инете с интервалом 5 сек
# при первой удачной или неудачной попытке пинга пишется соответствующее сообщение в лог и на экран
# следующая запись в лог делается только при изменении состояния связи

# Узел опроса
ip="ya.ru"
# Кол-во пингов
count=3
# инициализация переменной результата, по умолчанию считается, что связь уже есть
status=connected
# Файл логов
logfile=/ping.log

echo `date +%Y.%m.%d__%H:%M:%S`' Скрипт проверки связи запущен' >> ${logfile}
# бесконечный цикл
while [ true ]; do
    # пинг с последующей проверкой на ошибки
    result=$(ping -c ${count} ${ip} 2<&1| grep -icE 'unknown|expired|unreachable|time out')

    # если ни один не прошел, то
    if [ "$status" = connected -a "$result" != 0 ]; then
	# Меняем статус, чтоб сообщение не повторялось до смены переменной result
	status=disconnected
	# Записываем в лог результат
	echo `date +%Y.%m.%d__%H:%M:%S`' Соединение с интернет отсутствует' >> ${logfile}
	# Вывод результата на экран
	echo `date +%Y.%m.%d__%H:%M:%S`' Соединение с интернет отсутствует'
    fi
    # если все пинги прошли, то
    if [ "$status" = disconnected -a "$result" -eq 0 ]; then
	# Меняем статус, чтоб сообщение не повторялось до смены переменной result
	status=connected
	# Пишем в лог время установки соединения
	echo `date +%Y.%m.%d__%H:%M:%S`' Связь есть' >> ${logfile}
	# Вывод результата на экран
	echo `date +%Y.%m.%d__%H:%M:%S`' Связь есть'
    fi
    # 5 сек задержка
    sleep 5
done

 bash связь проверка

Dimarius
()

RSS подписка на новые темы