Як заборонити створення символічних лінків в /tmp

FreeBSD: В графі «оption» /etc/fstab для розділу /tmp потрібно вказати:

rw,noexec,nosuid,nodev,nosymfollow

Також можна на /home поставити nodev. Якщо там не буде виконуваних то й noexec. На  /var теж можана поміняти nodev, noexec, а взагалі nodev скрізь корисний,  символьні лінки  ніде не потрібні.

Як оцінити величину трафіку і стан системи в динаміці для FreeBSD

Динаміка зміни параметрів:

netstat -w 1
iostat -w 1
vmstat -w 1
gstat

Стан буферів:

vmstat -z
netstat -m
netstat -Lan
netstat -s -p tcp

Як позбавиться від зростання висять FIN_WAIT_2 з’єднань під FreeBSD

Якщо використовується ipfw2 і зберегти стан правила, то від безперервного зростання з’єднань зі статусом FIN_WAIT_2 допомагає:

sysctl -w net.inet.ip.fw.dyn_keepalive=0

 

Заборона завантаження модулів ядра Linux

Capability Bounding діє на всі процеси, якщо якийсь із Capability-режимів заборонений через  /proc/sys/kernel/cap-bound, то використовувати дану можливість не зможе жоден процес, незалежно від його привілеїв.
Використовуючи даний режим можна блокувати для користувача root можливість  завантаження модулів ядра, зміни правил пакетного фільтра, використання raw-сокетів, зміни власника файлів, монтування розділів та інших системних дій.

Capability /proc/sys/kernel/cap-bound пов’язаного працює тільки для Linux-ядер до версії 2.6.25. Починаючи з ядра 2.6.25 припинена підтримка глобального загальносистемного Capability Bounding, маску можна вказувати з використанням системного виклику prctl тільки для окремих ниток (установка Capability Bounding для процесу, відбивається і на всіх його нащадків).

Переглянути поточний стан режиму можна командою:

cat /proc/sys/kernel/cap-bound

а для установки нового значення, можна використовувати команду:

echo значення > /proc/sys/kernel/cap-bound

Наприклад, встановивши режим CAP_SYS_MODULE (для установки потрібно очистити біт номер 16):

echo $((0xffffffff ^ (1 << 16))) > /proc/sys/kernel/cap-bound

або в шістнадцятковому вигляді:

echo 0xFFFEFFFF > /proc/sys/kernel/cap-bound

буде заблокована завантаження будь-яких модулів ядра.

Спроба завантажити або вивантажити модуль призведе до висновку помилки.
modprobe ide_cd

FATAL: Error inserting ide_cd (/lib/modules/2.6.18-194.3.1.el5/kernel/drivers/ide/ide-cd.ko): Operation not permitted
Список інших  Capability-режимів можна подивитися у файлі /usr/src/linux/include/linux/capability.h:

grep ‘#define CAP’ /usr/src/linux/include/linux/capability.h

 #define CAP_CHOWN            0
   #define CAP_DAC_OVERRIDE     1
   #define CAP_DAC_READ_SEARCH  2
   #define CAP_FOWNER           3
   #define CAP_FSETID           4
   #define CAP_KILL             5
   #define CAP_SETGID           6
   #define CAP_SETUID           7
   #define CAP_SETPCAP          8
   #define CAP_LINUX_IMMUTABLE  9
   #define CAP_NET_BIND_SERVICE 10
   #define CAP_NET_BROADCAST    11
   #define CAP_NET_ADMIN        12
   #define CAP_NET_RAW          13
   #define CAP_IPC_LOCK         14
   #define CAP_IPC_OWNER        15
   #define CAP_SYS_MODULE       16
   #define CAP_SYS_RAWIO        17
   #define CAP_SYS_CHROOT       18
   #define CAP_SYS_PTRACE       19
   #define CAP_SYS_PACCT        20
   #define CAP_SYS_ADMIN        21
   #define CAP_SYS_BOOT         22
   #define CAP_SYS_NICE         23
   #define CAP_SYS_RESOURCE     24
   #define CAP_SYS_TIME         25
   #define CAP_SYS_TTY_CONFIG   26
   #define CAP_MKNOD            27
   #define CAP_LEASE            28
   #define CAP_AUDIT_WRITE      29
   #define CAP_AUDIT_CONTROL    30
   #define CAP_SETFCAP	     31
   #define CAP_MAC_OVERRIDE     32
   #define CAP_MAC_ADMIN        33

Змінювати  /proc/sys/kernel/cap-bound потрібно з великою обережністю, так як установка невірного значення може привести до непрацездатності системи.Встановлений прапор вже не може бути змінений, тобто зловмисник не може записати 0xFFFFFFFF і скасувати установку маски 0xFFFEFFFF.

Для блокування завантаження модулів в новіших ядрах слід використовувати файл  /proc/sys/kernel/modules_disabled (для заборони завантаження модулів у нього достатньо записати 1).

Як захистити Linux від деяких DoS-атак


/ Sbin / SysctlW net.ipv4.conf.all.send_redirects = 0
/ Sbin / SysctlW net.ipv4.conf.all.accept_redirects = 0
/ Sbin / SysctlW net.ipv4.conf.all.accept_source_route = 0
/ Sbin / SysctlW net.ipv4.conf.all.mc_forwarding = 0
/ Sbin / SysctlW net.ipv4.icmp_echo_ignore_broadcasts = 1
/ Sbin / SysctlW net.ipv4.icmp_ignore_bogus_error_responses = 1
/ Sbin / SysctlW net.ipv4.conf.all.log_martians = 1
/ Sbin / SysctlW net.ipv4.conf.all.rp_filter = 1

Зміна атрибутів ext2fs і ext3fs використовуючи chattr


chattr + — тільки додавання даних (тільки додавання), видалення та перейменування заборонено;
chattr + я — заборонено видалення, зміну або перейменування (незмінних);
chattr + A — заборонити зберігання даних про кожне звернення до файлу (без atime)
chattr + S — синхронне зміна всіх даних на диск, без кешування;
chattr + с — файл буде зберігається на диску в стислому вигляді (потрібен окремий патч для ядра);
chattr + S — після видалення файлу, місце на диску забивається нулями (зовнішній патч);
chattr + і — резервування даних файлу після видалення (зовнішній патч);

приклад:
chattr-R + я / бен / sbin / USR / BIN / USR / sbin забороняємо зміна бінарників
chattr + / VAR / Журнал / безпечний — запобігаємо модифікацію логу зловмисником

Для перегляду розширених атрибутів використовується утиліта lsattr.

Для FreeBSD див. man chflags і man security.