Безпека Linux Видалені атаки

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

У цій статті переважає теорія про те, як щось влаштовано (хоча присутні і практичні поради). Вона більше орієнтована на адміністраторів (початківців).

Я не буду описувати те, що пароль може бути просто підібраний або побачений на листочку, який ви забули на роботі. Паролі слід робити легкими для запам'ятовування, проте найбільш складними для підбору (використовувати цифри, літери різних регістрів та спецсимволи; довжиною від 9 до 14 символів). Так само краще заборонити підключення за допомогою користувача root з віддаленого комп'ютера (файл etc / security)

Default

Не забувайте змінювати налаштування, які стоять за замовчуванням. Не слід залишати паролі 12345 на який-небудь сервіс. Непотрібні папки з веб-сервера (наприклад, документи по ньому), слід видалити.

Для отримання докладної інформації налаштувань "за замовчуванням" краще дивитися в мануал використовуваного Вами ОП.

DoS і DDoS

Скажу чесно, що коли я вперше почув ці абревіатури, то подумав, що малася на увазі операційна система. Ні, це атаки на відмову в обслуговуванні. Дійсно великої шкоди вони не принесуть, однак сервер може перестати відповідати користувачам, які звертаються до нього. Атаки такі діють методом "в лоб". Комп'ютер відсилає багато пакетів на віддалений сервер, поки той не відправить всі свої ресурси на "розгрібання" такої атаки. Зазвичай в адресі "from:" вказують той же сервер, що і для одержувача. Таким чином організовується цикл, що і призводить до відмови в обслуговуванні.

Сканування мною спеціально для цієї статті 100 порівняно великих сайтів показало, що 92 з них схильні до "легкому" (достатньо навіть невеликого кол-ва комп'ютерів, а іноді навіть одного) Dos.

Я також хочу згадати про те, що існує атака-smurf: комп'ютер відправляє запит (ping) на декілька великих серверів з підробленими адресою відправника (адресу жертви), після чого кожен комп'ютер відправляє відповідь жертві. Легко зрозуміти, що таким чином жертву дуже легко вивести з ладу. Програму для використання можу порадити nemesis.

Особисто я раджу відключати служби echo, chargen і парочку інших служб. Для цього закоментуйте несолько рядків у etc / inetd.conf

Бажано також поставити firewall і обмежити кількість можливих запитів з віддалених комп'ютерів.

Протистояти кільком сотням комп'ютерів, засилають сервер практично неможливо (навіть при недавньої атаці novarg на www.microsoft.com останній не відповідав на запити)

Sniffers

По мережі, як відомо, передаються пакети. Завдання сніфферов їх перехоплювати і аналізувати. При захопленні інформації легко отримати пароль або будь-яку іншу конфіденційну інформацію. У кожного пакета існує свій MAC-адресу. При отриманні пакету комп'ютером він перевіряє, чи належить даний пакет йому за даною адресою. І якщо належить, то аналізує, а якщо ні - відправляє далі. Усім цим займається мережевий адаптер. Він може бути переведений в режим "повного аналізу" (нерозбірливий режим). У даному режимі він аналізує всі дані, що передаються через нього.

На жаль (а для кого-то на щастя), багато служб передають інформацію в незашифрованому вигляді. Це відноситься до таких відомих і часто використовуваних речей, як telnet, http і ftp.

Єдиним порятунком може бути комутатор, (існує ще концентратор) тому комутатор дозволяє відправити потрібну інформацію прямо на необхідний комп'ютер.

Наводити приклади та опис сніфферов я тут приводити не буду, тому що таких статей дуже багато (www.dago.org, www.xakep.ru та ін.)

Buffer Overflow

Ну це загальновідома помилка некомпетентності програмістів.

Якщо звернутися до якоїсь змінної і запровадити для неї дуже велике (для неї) значення, то відбудеться помилка і адресу повернення в стеку буде заміщений вказаною адресою. (Для більш повного розуміння раджу вивчити пристрій ПК)

Єдиним порятунком, якщо ви не встигли встановити латочку, є постійний перегляд log файлів, які веде ваш сервер. Він запише туди, що були некоректні звернення до служби. У такому разі службу краще зупинити до кращих часів (поява патча).

etc / exports і etc / dfs / dfstab

Використовується цей файл для вказівки того, який комп'ютер має право змонтувати собі віддалену файлову систему.

У ранніх версіях використовувався файл etc / exports, в новіших - etc / dfs / dfstab.

Якщо адміністратор забув або полінувався змінити параметри цього файлу, то зловмисник може без проблем змонтувати собі жорсткий диск своєї жертви простою командою

root @ localhost: mount hostname: file system (nfs for example) directory_he_need

Прибрати можливість подібного злому можна заборонивши firewallом порт 2049. Слід так же відредагувати файл експорту так, щоб не всі комп'ютери мали право це зробити, а ті, що могли б, монтували б тільки необхідні їм дані (а не папку etc / passwd).

Кому довіряти?

Необхідно заборонити всіх хостам, крім зазначених підключатися до Вашої машині. Робиться це завдяки редагування файлів etc / hosts.allow і etc / hosts.deny

Якщо у вас невелика локальна мережа, то швидше за все у вас коштує дозвіл локальним комп'ютерів звертатися до сервера з досить великими повноваженнями. Однак якщо хакеру вдасться підмінити свій ip на ip комп'ютера, до якого встановлено "довірчі" повноваження, він зможе отримати важливу інформацію.

Зробити йому це іноді може бути просто (підмінити refer при зверненні).

Такий же обман може бути застосований до NFS та NIS.

Краще уникати використання telnet і ftp, а користуватися сучасним ssh. Даний протокол краще захищений криптографічно і його процес ідентифікації залишить зловмисникові набагато менше шансів обдурити вас. NFS краще замінити AFS, а NIS використовувати як можна менше.

Маршрутизатор, через який буде проходити весь трафік від інтернету повинен забороняти запити від імені тих комп'ютерів, які перебувають з сервером в одній локальній мережі (навіщо їм звертатися до сервера через інтернет?).

Бажано поставити firewall.

Тепер про те, як треба настроювати firewall.

а) По-перше, необхідно перевірити, чи включений tcpd (саме він працює з файлами hosts.allow і hosts.deny). Для цього розглянемо файл etc / inetd.conf. До кожної рядку, де вказується включення служби повинен стояти такий фрагмент:

/ Usr / sbin / tcpd

До речі, розповім докладніше про inetd. Даний демон запускає різноманітні мережні служби (telnet та ін) при запиті до них, він вказує до якого порту вони підключені і необхідний для роботи в мережі.

Файл hosts.allow краще налаштувати так:

All: 127.0.0.01

All: комп'ютери, яким ви довіряєте.

Файл hosts.deny налаштовується аналогічно.

У нову версію inet - xinet вже вбудований такий проверщік. Для роботи з ним краще почитайте документацію.

На жаль, не всі служби запускаються через демон inetd. Проте вони підтримують запуск з tcpd. Розглянемо приклад на ssh. Для того, щоб вона запускалася з включеним tcpd необхідно запустити її configure з ключем-with-tcp-wrappers Залишилося тільки в hosts.allow (. Deny) додати рядок:

sshd: имена_компьютеров_которым_можно_доверять

Що робити, якщо програмний продукт не підтримує tcpd? Ми ж під linux! А лінукс - синонім відкритого вихідного коду! Особисто я б не зміг написати необхідний код, якщо б не одна книга. Наводжу лістинг з неї:

/ / На початку заголовка програми необхідно розмістити:

# Ifdef USE LIBWRAP

# Include

int allow_severity = LOG_NOTICE;

int deny_severity = LOG_WARNING;

# Endif

/ / У функції, яка управляє з'єднанням, додамо наступну

/ / Рядок при оголошенні змінної:

# Indef USE_LIBWRAP

struct request_info request;

# Endif;

/ / Після встановлення з'єднання, але перед виконанням будь-яких дій з даними:

# Ifdef USE_LIBWRAP

request_init (& request, RQ_DAEMON, options.servername, RQ_file, local, 0);

fromhost (& request);

if (! hosts_access (& recuest)) {

log (LOG_WARNING, "Connection from% s:% d REFUSED by libwrap",

inet_ntoa (addr.sin_addr), ntohs (addr.sin_port));

log (log_debug, "See hosts_access (5) for detailes");

goto cleanup_local;

}

# Endif;

/ / Особисто я розібрався з цим кодом, проте це зайняло багато часу,

/ / Сподіваюся це допоможе і вам. (Кім. автора статті)

б) Згадаймо вищеописану можливість злому завдяки dns. Нам необхідно виконувати зворотне перетворення по ip: спочатку tcpd перевірить ім'я комп'ютера за адресою, а потім адресу на ім'я комп'ютера. Якщо ip-результат не співпаде з ip, який був зазначений спочатку - зловмисник не отримає доступу. Для такої перевірки необхідно скомпілювати tcpd з ключем-dparanoid (зазвичай він встановлений за замовчуванням, однак не можна сподіватися на default, треба бути точно впевненим).

в) Необхідно захистити Ваш демон від DoS. Для цього необхідно завантажити програму, що обмежує кількість запитів в даній службі.

г) Пригадаємо попередню статтю. Для заборони traceroute і ping можна використовувати вбудований набір правил ipchains.

Рядок / sbin / ipchains-A input 0 / 0 echo-request-d ip.ip.ip.ip-p icmp-j DENY (я не пояснюю тут, що робить кожен параметр цієї команди, так як набір правил ipchains досить великий, а прочитати його можна в мануали по linux).

д) Переходимо до безпосереднього опису налаштування firewall на основі ipchains.

-) / Sbin / ipchains-p input deny / / заборона всіх вхідних пакетів

-) / Sbin / ipchains-a input-s 0 / 0-d В. А. Ш. IP www-p tcp-j ACCEPT / / дозволяє проходження пакетів на порт 80.

Замість www може бути вказана інша / / служба (ftp, ssh);

-) / Sbin / ipchains-a input-j deny-l / / реєструємо те, що пакет був заблокований.

Все, здається, я закінчив. Звичайно, це все тільки загальні налаштування. У кожному випадку доводиться діяти не з теорії і придумувати свої рішення, але це вже залежить від вас, а не від мене. Особисто я раджу як можна частіше читати bugtraq і ставити латочки як тільки вони виходять. Саме завдяки помилкам в будь-якому коді відбуваються зломи, хоча і на частку вищеописаних способів доводиться не такий вже маленький відсоток злому.

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Реферат
18.8кб. | скачати


Схожі роботи:
Транзиторні ішемічні атаки
Атаки на стегосистеми Водяні знаки
OS Linux
Linux
LINUX 10
Безпека на вулиці Безпека на транспорті
Операційна система Linux
NetWare зустрічається з Linux
Linux FreeBSD та інші
© Усі права захищені
написати до нас