Skip to content


Cisco ACL

К, примеру, стоит задача заблокировать отправку почты по протоколу SMTP для пользователя с затрояненной машинкой, которая рассылает спам. Создаем расширенный список доступа:

ip access-list extended spamblock
deny tcp any any eq smtp
permit ip any any

Вешаем созданный список доступа на нужный интерфейс:

interface Fa0/0.x
ip access-group spamblock in

Другой пример – разрешаем трафик только для двух заданных хостов (10.10.10.1 и 10.10.10.254) + icmp-трафик для сети 172.16.0.0/19, все остальное запрещаем:

ip access-list extended client1_in_rules
  permit ip host 10.10.10.1 any
  permit ip host 10.10.10.254 any
  permit icmp 172.16.0.0 0.0.31.255 any
  deny ip any any
ip access-list extended client1_out_rules
  permit ip any host 10.10.10.1
  permit ip any host 10.10.10.254
  permit icmp any 172.16.0.0 0.0.31.255
  deny ip any any
 
interface FastEthernet0/0.77
  description client1
  encapsulation dot1Q 77
  ip address 10.10.10.7 255.255.255.0
  ip access-group client1_out_rules in
  ip access-group client1_in_rules out
  no cdp enable
!

Следует учитывать, что здесь в именах ACL-ей слова "in" и "out" используются с точки зрения клиента, а ключевые слова "in" и "out" в конце выражений "ip access-group" используются с точки зрения маршрутизатора. Т.е. что для клиента входящий трафик, то для клиентского подинтерфейса роутера – исходящий и наоборот.

Posted in Cisco.

Tagged with , .


О психиатре

Сидит психиатр у себя в кабинете - скучает... пациенты не идут... Тут тихонько так приоткрывается дверь - и к нему на четвереньках заползает человек, сжимая что-то в зубах, руках и т. д. плюс что-то ещё волочится сзади.
Психиатр:
- Ой, кто это к нам тут ползёт!!! Это, наверное, маленькая змейка?! Заползай, змейка, заползай, маленькая - доктор тебе поможет!
Человек отрицательно машет головой.
- А-а-а - это, наверное, черепашка к нам в гости пожаловала... Заползай, черепашка, в кресло и расскажи дяде доктору, что с тобой случилось...
Человек отрицательно машет головой.
- Так кто же это у нас - наверное, маленький червячок?!!
- ДОКТОР, ИДИТЕ В ЖОПУ!!! Я СИСАДМИН, ВАМ СЕТЬ ПРОКЛАДЫВАЮ!!!

Posted in Развлекуха.

Tagged with .


Пересборка initrd

Пример как пересобрать initrd для поддержки определенного железа.
Взято с http://forums.fedoraforum.org/archive/index.php/t-138530.html.

This problem on CentOS:
http://www.centos.org/modules/newbb/viewtopic.php?topic_id=10855.

I made it for Fedora 8.
==================
## 1. Remove Adaptec ASR-2010s
## 2. Install Fedora on a single disk
## 3. Edit loader

cp -r /boot /boot_copy
cp /boot/initrd-2.6.23.1-42.fc8.img /tmp/initrd.img.gz
gunzip /tmp/initrd.img.gz
mkdir /tmp/initrdnew
cd /tmp/initrdnew
cat /tmp/initrd.img | cpio -i
cp /lib/modules/2.6.23.1-42.fc8/kernel/drivers/message/i2o/* /tmp/initrdnew/lib/
 
## edit loader:
vi /tmp/initrdnew/init
 
## rem this lines:
#echo "Loading aic79xx.ko module"
#insmod /lib/aic79xx.ko
 
## and add lines:
echo "Loading i2o_core.ko module"
insmod /lib/i2o_core.ko
echo "Loading i2o_block.ko module"
insmod /lib/i2o_block.ko
find . -xdev | cpio -o -H newc > /tmp/newinitrd.img
gzip /tmp/newinitrd.img
cp /tmp/newinitrd.img.gz /boot/initrd-2.6.23.1-42.fc8.img
 
mkdir /dev/i2o
ln -s /dev/sda /dev/i2o/hda
ln -s /dev/sda1 /dev/i2o/hda1
ln -s /dev/sda2 /dev/i2o/hda2
ln -s /dev/sda3 /dev/i2o/hda3
ln -s /dev/sda4 /dev/i2o/hda4
 
## edit mtab:
vi /etc/mtab</code>
## replace /dev/sdaX to /dev/i2o/hdaX
/dev/i2o/hda1 /boot ext3 rw 0 0

## 4. turn off server
## 5. install Adaptec ASR-2010s
## 6. turn on server and correct RAID-bios (Ctrl+A) to RAID-1

I think RAID-5 can be work if correct RAID-bios to RAID-5, and after this remove disks and install Fedora on single disk, and after that input other disks. But I use only RAID-1.

По поводу конкретно контроллера Adaptec ASR-2010s есть пару замечаний.

1. Чтобы linux увидел диски, подключенные к контролееру, нужно загрузить модуль ядра i2o_block:

sh-3.21# /sbin/modprobe i2o_block
I20 subsystem v1.325
i2o: max drivers = 8
i2o: Checking for PCI I20 controllers...
ACPI: PCI Interrupt 0000:02:02.0[A] -> GSI 48 (level, low) -> IRQ 201
iop0: controller found (0000:02:02.0) 
iop0: PCI I20 controller
    BAR0 at 0xDA200000 size=1048576
    BAR1 at 0xDD000000 size=16777216
iop0: Installed at IRQ 201 
i2o: iop0: Activating I2O controller...
i2o: iop0: This may take a few minutes if there are many devices 
iop0: HRT has 1 entries of 16 bytes each.
Adapter 00000012: TID 0000:[HPC*]:PCI 1: Bus 1 Device 22 Function 0
i2o: iop0: Controller added
I20 Block Device OSM vl.325
block-osm: registered device at major 80
 i2o/hda: i2o/hda1
block-osm: device added (TID: 212): i2o/hda

2. Чтобы иметь возможность управлять контроллером, нужно установить утилиту raidutils. Raidutils ожидает, что загружен модуль ядра i2o_config и что существует устройство /dev/i2o/ctl. Если такового устройства у вас нет, его можно создать командой

mknod /dev/i2o/ctl c 10 166

Но делать это нужно, только если raidutils не работает, выдавая ошибку «Engine connect failed: COMPATIBILITY number…», поскольку в последних версиях ядра при загрузке модуля i2o_config нужное блочное устройство создается автоматически. Подробнее о raidutils можно почитать на сайте «I2O on Linux».

Posted in *nix.

Tagged with , , , , .


Дисковые квоты в Linux

Включение дисковых квот в Linux.
Взято с http://www.yolinux.com/TUTORIALS/LinuxTutorialQuotas.html

  1. Редактируем файл /etc/fstab, добавляя параметры "usrquota" и/или "grpquota" в строки для нужного дискового раздела.
    Примеры:

    /dev/hda1     /home   ext3    defaults,usrquota              1    1
    /dev/hda2     /home   ext3    defaults,usrquota,grpquota     1    1
  2. Перемонтируем файловую систему. Пример:
    /bin/mount -o remount /hda2
  3. Проверяем, что квоты включились, заглядывая в /etc/mtab. Там должно быть что-то вроде:
    /dev/hda2 / ext3 rw,usrquota,grpquota 0 0
  4. Запускаем процесс подсчета текущего использования дискового пространства, после чего должны создаться/обновиться файлы /aquota.user, /aquota.group в корне файловой системы:
    quotacheck -vgum /partition

    или

    quotacheck -vguma
  5. Включаем квоты для файловой системы:
    quotaon -v /dev/hda2
  6. Расставляем квоты для определенных пользователей/групп. Пример:
    edquota -u user1
    Disk quotas for user user1 (uid 501):
    Filesystem    blocks       soft       hard     inodes     soft     hard
    /dev/hda5       1944       5120      10240        120        0        0

    blocks - блоки по 1 килобайту
    soft - максимальное количество блоков/inodes, которые пользователь может использовать, перед тем, как будет сгенерировано предупреждение и начнется отсчет "периода терпимости" (grace period). Если установлено в "0" (ноль), то лимита нет.
    hard - максимальное количество блоков/inodes, которые пользователь может использовать вообще.
    В примере лимит установлен в 10 мегабайт. Для редактирования групповых квот использовать edquota с ключом -g.

    "Grace Period" задается с помощью edquota -t, это промежуток времени, перед тем, как soft limit преваратиться в тыкву hard limit. Единицы: sec, min, hour, day, week и month. Пример:

    Grace period before enforcing soft limits for users:
    Time units may be: days, hours, minutes, or seconds
    Filesystem             Block grace period     Inode grace period
    /dev/hda5                     7days                  7days

    То есть в примере выше пользователь user1 может использовать до 5-ти МБ дискового пространтва на постоянной основе без каких либо прочих ограничений. Когда общий размер файлов превысит 5МБ дискового пространства, начнёт действовать grace period (7 дней по умолчанию), в течение которых user1 может занять до 10МБ дискового пространства. По истечении 7-ми дней с момента превышения лимита в 5МБ создание новых файлов будет недоступно до тех пор, пока user1 не удалит часть своих файлов, чтобы суммарный их объём не превышал 5МБ.

  7. Просмотр квот. Команды quota, repquota. Примеры:
    quota -u user1
    Disk quotas for user user1 (uid 501):
    Filesystem  blocks  quota   limit   grace files  quota   limit   grace
    /dev/hda6      992  50000   55000            71  10000   11000

    Получить отчет по всем пользователям, что превысили квоту:

    quota -q
    repquota -a
    *** Report for user quotas on device /dev/hda5
    Block grace time: 7days; Inode grace time: 7days
    Block limits                File limits
    User            used    soft    hard  grace    used  soft  hard  grace
    root      -- 4335200       0       0         181502     0     0
    bin       --   15644       0       0            101     0     0
    ...
    user1     --    1944       0       0            120     0     0

    quotacheck следует запускать периодически, особенно после аварийных выключений сервера.

    У edquota есть также интересный ключик -p, который позволяет задавать квоты массово на основе шаблона. Пример:

    edquota -p user1 `awk -F: '$3 > 499 {print $1}' /etc/passwd`

    Здесь для пользователей с uid >= 500 будут установлены такие же квоты, как и у пользователя user1.

    В Redhat quotacheck и quotaon запускаются из /etc/rc.d/rc.sysinit:

    if [ -x /sbin/quotacheck ]; then
    echo "Checking root filesystem quotas"
    /sbin/quotacheck -v -a
    fi
    ...
    if [ -x /usr/sbin/quotaon ] then
    echo "Turning on quota."
    /usr/sbin/quotaon -v -a
    fi

    Чтобы пользователи, превысившие лимиты, получали уведомление об этом по email, следует периодически из cron-а запускать команду warnquota.

Posted in *nix.

Tagged with , , .