Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
ТЕРНОПІЛЬСЬКИЙ НАЦІОНАЛЬНИЙТЕХНІЧНИЙ УНІВЕРСИТЕТ
ІМЕНІ ІВАНА ПУЛЮЯ
Кафедра компютерних наук
ЛАБОРАТОРНА РОБОТА № 2
Тема роботи:
Налаштування та адміністрування операційної системи Linux Debian.
Виконала: студентка групи
СНз- 61 Зозуля Наталя
Перевірив:
Шимчук Г.В.
Тернопіль 2013
Тема роботи. Налаштування та адміністрування операційної системи Linux Debian.
Мета роботи. Навчитись адмініструвати операційну систему Linux Debian.
Хід роботи
1. Налаштування мережі в Debian`і
Підтримка мереж в Debian`і є дуже схожою з класичними дистрибутивами Linux. Однак, якщо ви новачок у Дебіені, деякі речі можуть бути вам невідомі. Короткий вступ до налаштування мережі у Debian GNU/Linux покаже вам, як усе це працює у даному дистрибутиві.
Є лише чотири речі, про налаштування яких ви піклуватиметеся:
Налаштування імені машини (hostname)
Налаштування імені вузла в Debian`і є дуже простим процесом. Ви можете встановити його за допомогою команди hostname або внісши зміни до конфігураційного файлу /etc/hostname.
Для того, щоб дізнатися поточне імя машини, введіть команду:
sashko@debian3r:~$ hostname
debian3r
Змінити його за допомогою команди hostname можна ввівши під root`ом:
# hostname newname
Де newname нове імя. Також ви можете просто змінити його у файлі /etc/hostname, який містить лише один рядок з цим іменем.
Для того, щоб нові налаштування вступили у дію, необхідно перезавантажити систему або просто запустити сценарій /etc/init.d/hostname.sh, який автоматично запускається при кожному старті системи.
Налаштування DNS
У плані налаштування DNS Дебіен також не відрізняється від більшості, у першу чергу, класичних дистрибутивів. Ви можете додати імена вузлів та ІР адреси DNS серверів до файлу /etc/hosts для статичного перетворення.
Щоб змусити вашу систему консультуватися зі спеціальними серверами для пошуку імен, ви просто додаєте їх адреси до /etc/resolv.conf.
Наприклад, машина, яка повинна запитувати імена за ІР-адресами та навпаки на сервері 192.168.1.1, матиме /etc/resolv.conf наступний вигляд:
search my.flat
nameserver 192.168.1.1
(Тут my.flat змушує додавати у кінець імені my.flat.Результат пошуку машини з іменем debian3r виглядатиме як lappy.my.flat)
Налаштування ІР-адреси
ІР-адреси повязані з мережевими картками читаються з файлу /etc/network/interfaces.
Приклад для машини зі статичною адресою:
# Мережевийінтерфейс loopback
auto lo
iface lo inet loopback
# Основниймережевийінтерфейс
auto eth0
iface eth0 inet static
address 192.168.1.90
gateway 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
Встановлена ІР-адреса (192.168.1.90), шлюз за замовчуванням (192.168.1.1) та маска мережі.
Для машини, котра використовує DHCP, налаштування значно простіші:
# Мережевийінтерфейс loopback
auto lo
iface lo inet loopback
# Основний мережевий інтерфейс використовуємо DHCP для отримання адреси
auto eth0
iface eth0 inet dhcp
(Якщо використовувати мережеве налаштування на основі DHCP, то повинен бути встановлений DHCP клієнт, зазвичай це pump or dhcp-client).
Після внесення змін до цього файлу потрібно ввести наступну команду для того, щоб вони вступили у дію:
/etc/init.d/networking restart
Налаштування шлюзу за замовчуванням
Якщо ви уважно читали попередню секцію, то зауважили, що маршрут за замовчуванням до хосту зі статичною ІР-адресою може бути вказаний у файлу /etc/network/interfaces.
Щоб дізнатись поточний маршрут за замовчуванням/шлюз, потрібно ввести команду:
lappy:~# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
В якості альтернативи можете скористатися командою route:
lappy:~# /sbin/route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 0 0 0 eth0
default router 0.0.0.0 UG 0 0 0 eth0
(Тутмибачимомаршрутзамість IP-адреси 192.168.1.1, щодозволяєуникнутинеобхідностізапускати “/sbin/route -n”).
Для зміни маршруту за замовчуванням потрібно спершу видалити поточний:
/sbin/route del default gw 192.168.1.1
Після цього не буде можливості бачити інші “машини”.
Щоб мережа функціонувала знову, потрібно додати новий маршрут за допомогою:
/sbin/route add default gw 192.168.1.100
2 Роботаз MAC-адресами
MAC-адреса (англ.Media Access Control управліннядоступомдоносія) цеунікальнийідентифікаторувиглядішістнадцятковогосерійногономера, якийспівставляєтьсязрізнимитипамиустаткуваннядлякомпютернихмереж.
Існуєчималоситуацій, вякихадміністраторуможезнадобитисязмінитицейунікальнийідентифікатор: тестуваннямережі, різнівидихакерськихатактощо.
Длятого, щобдізнатися MAC-адресумережевоїкартки, достатньоскористатисякомандою ifconfig зоднимпараметром ідентифікатороммережевогоінтерфейсу, котрийвідповідаєпотрібніймережевійкартці.
# ifconfig eth1
eth1 Link encap:Ethernet HWaddr 00:0F:87:3C:E2:8D
…
Відповідно МАС-адреса мережевої карточки буде: 00:0F:87:3C:E2:8D. Для того, щоб не шукати серед виданої ifconfig`ом інформації, можна скористатися наступною комбінацією команд:
ifconfig eth0 | grep HWaddr | awk {print $5}
Зміна МАС-адреси
Є два способи змінити МАС-адресу мережевого адаптера:
1. Прописати його у файлі /etc/network/interfaces, де він ховається під змінною hwaddress ether:
auto eth0 static
iface eth0 inet static
address 1.2.3.4
gateway ...
broadcast ...
hwaddress ether 02:01:02:03:04:08
2. Задати його динамічно за допомогою утиліти macchanger. За допомогою цієї утиліти можна:
Встановлення конкретної МАС-адреси:
# macchanger mac=01:23:45:67:89:AB eth1
Current MAC: 00:40:96:43:87:65 [wireless]
(Cisco/Aironet 4800/340)
Faked MAC: 01:23:45:67:89:ab (unknown)
ВстановленнявипадковоїМАС-адреситогожвиробникамережевихадаптерів:
# macchanger endding eth1
Current MAC: 00:09:a5:eb:23:f8 (Hansung Eletronic Industries Development Co., Ltd)
Faked MAC: 00:09:a5:6f:31:23 (Hansung Eletronic Industries Development Co., Ltd)
Встановлення випадкової МАС-адреси іншого виробника:
# macchanger another eth1
Current MAC: 00:09:a5:6f:31:23 (Hansung Eletronic Industries Development Co., Ltd)
Faked MAC: 00:11:18:5b:3a:1f (Blx Ic Design Corp., Ltd.)
Виведенняперелікувиробників:
# ./macchanger list=Cray
Misc MACs:
Num MAC Vendor
065 00:00:7d Cray Research Superservers,Inc
068 00:00:80 Cray Communications (formerly Dowty Network Services)
317 00:40:a6 Cray Research Inc.
3 Зміна MTU мережевогоінтерфейсу
MTU (Maximum Transmission Unit) максимальний розмір фізичного пакета, котрий може передаватися по мережі, вказується у байтах. Усі повідомлення, розмір яких перевищує MTU, перед відправленням поділяються на частини.
Default MTU Size for Different Network Topology
Network MTU(Bytes)
------------------------------------------
16 Mbit/Sec Token Ring 17914
4 Mbits/Sec Token Ring 4464
FDDI 4352
Ethernet 1500
IEEE 802.3/802.2 1492
X.25 576
Длязміни MTU мережевогоінтерфейсувлінуксінеобхіднодати ifconfig відповіднувказівку.
Наприклад: # ifconfig eth0 mtu 1492
Длятого, щобзробитицезначенняпостійним, йогонеобхіднозаписатиуфайлі /etc/network/interfaces, дезнаходитьсябільшістьпараметрів. Наприклад:
iface eth0 inet static
address 192.168.0.1
network 192.168.0.0
gateway 192.168.0.254
netmask 255.255.255.0
mtu 1492
Однакєоднеобмеження.
Warning: the following is mostly obsolete in Sid and Etch
Це означає, що dhcp клієнт не налаштований таким чином, щоб робити те ж для динамічних конфігурацій. Тому нам потрібно його налаштувати. Для цього ми використаємо pre-up можливість /etc/network/interfaces:
iface eth0 inet dhcp
hostname "mymachine"
name LAN Interface
pre-up /sbin/ifconfig $IFACE mtu 1492
4 Налаштування мережевих інтерфейсів за допомогою ifconfig
Ви можете налаштовувати мережні інтерфейси з командного рядка використовуючи класичні лінуксові мережні утиліти. Найчастіше для цього використовуються команди ifconfig та route; netstat виводить інформацію про мережні зєднання.
5 Відновлення видаленого /etc/passwd та /etc/shadow
Інколи (восновному початківці) випадково видаляють файл /etc/passwd. У принципі, це не проблема, оскільки Debian регулярно робить резервні копії важливих системних файлів до /var/backups/, тому панікувати не слід.
Ясна річ, спершу нам потрібно скопіювати цей файл до /etc, де йому і місце:
# cp /var/backups/passwd.bak /etc/passwd
Після цього нам залишається тільки змінити на нього права доступу:
# chmod 644 /etc/passwd
Відновлення інших системних файлів
Власне, у цій же теці містяться резервні копії й інших системних файлів: infodir, group, shadow, gshadow…
6 sshfs
SSHFS клієнт для роботи з файловою системою через протокол SSH File Transfer Protocol. Він дозволяє змонтувати віддалену файлову систему до вашої й користуватися нею так, ніби вона є локальною папкою. Крім того, даний протокол є безпечним і дуже простим у встановленні та налаштуванні. Для роботи sshfs необхідно лише дві речі:
Підготовка
Перш за все ми повинні встановити SSHFS на локальній системі:
# apt-get install sshfs
Архів міститься у дистрибутивах Дебіена та Убунту.
Після встановлення sshfs, потрібно завантажити модуль ядра fuse, якщо він ще не завантажений. Під root`ом введіть
# modprobe fuse
Після того, як модуль завантажено, sshfs може робити з ним чимало різних операцій з такими файловими системами, як BitTorrent file system, Bluetooth file system, User-level versioning file system, CryptoFS, Compressed read-only file system та багатьма іншими.
Згідно з другою умовою, OpenSSH сервер має бути запущений на віддаленій системі.
Використання
sshfs дуже простий у використанні. Використаємо наступну команду:
# sshfs user@host: mountpoint
За допомогою цієї команди змонтуємо локальну папку облікового запису user@host до локальної теки mountpoint. Ясна річ, припускається, що папка mountpoint вже існує з відповідними правами доступу.
Якщо ви бажаєте змонтувати іншу папку, можете вказати її після двокрапки. Очевидно, отримана команда буде схожою на
# sshfs [user@]host:[dir] mountpoint [options]
Альтернативи
Класичними альтернативами для доступу до віддалених файлових систем є NFS та SMBFS, однак вони не є на стільки простими у встановленні та використанні, до того ж серйозно поступаються sshfs у питаннях безпеки.
Якщо ви робите свої файли загальними (зашарюєте) між користувачами Microsoft Windows, можливо SMBFS буде для вас найкращим вибором. Якщо ж ви не піклуєтесь про безпеку і вам необхідна швидка альтернатива, NFS для вас.
7 Налаштування NTP-сервера і клієнта в Debian`і
Network Time Protocol (NTP) протокол для синхронізації годинників компютерних систем. NTP використовує UDP`шний порт 123.
Використання NTP є добрим способом підтримування коректності налаштувань системного годинника. Він дозволяє працювати з великою кількістю серверів, розташованих по всьому світу, і “підганяти” час під вказаний вами часовий пояс.
Встановлення NTP-сервера і клієнта в Debian`і:
# apt-get install ntp ntpdate ntp-server
Ця команда встановить усі необхідні для роботи з NTP архіви.
Налаштування NTP-сервера
За замовчуванням головним конфігураційним файлом є /etc/ntp.conf. Виглядає він приблизно наступним чином:
driftfile /var/lib/ntp/ntp.drift
statsdir /var/log/ntpstats/
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
# Можна використовати кілька NTP-серверів:
#server ntp.your-provider.example
# pool.ntp.org є попою для понад 300 NTP-серверів.
server 0.debian.pool.ntp.org iburst
server 1.debian.pool.ntp.org iburst
server 2.debian.pool.ntp.org iburst
server 3.debian.pool.ntp.org iburst
# За замовчуванням змінити системний час може будь-хто.
# Дивіться /usr/share/doc/ntp-doc/html/accopt.html для більш детальної конфігурації.
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery
# Якщо локальні користувачі забажають звертатися до локального сервера.
restrict 127.0.0.1
restrict ::1
# Клієнт з цієї (це лише приклад!) підмережі має безлімітний доступ,
# але тільки за умови створення шифрованого з'єднання
#restrict 192.168.123.0 mask 255.255.255.0 notrust
# Якщо бажаєте дозволити синхронізувати час лише клієнтам з вашої підмережі, використовуйте наступний рядок:
#broadcast 192.168.123.255
Перевіримо, чи синхронізується NTP належним чином.
Використовуйте команду ntpq для того, щоб дізнатися перелік серверів, з якими ви синхронізовані. Вона також виведе таку важливу інформацію, як час доступу ntp-клієнта до сервера (jitter), який для підвищення точності часу не повинен бути високим.
# ntpq -p
Зірочка (*) перед адресою одного із серверів означає, що системний годинник синхронізується з годинником NTP-сервера. Якщо її немає, це означає, що сервер не доступний або має надто тривалий час синхронізації.
Налаштування міжмережевого екрана для NTP.
NTP-сервери спілкуються між собою через UDP і порт 123. Для цього доведеться дозволити трафік за протоколом UDP через порт 123 (отримувач і відправник).
Налаштування NTP-клієнта
Для того, щоб вказатати власні ІР-адреси серверів, потрібно відредагувати конфігураційний файл /etc/ntp.conf.
server 192.168.1.1
Обмежте спосіб доступу до серверів. У даному прикладі серверам не дозволяється динамічно змінювати конфігурацію або поставити під сумнів ваш Linux NTP-сервер.
restrict default notrust nomodify nopeer
Налаштування на локальний сервер
restrict 192.168.1.1
У даному випадку маска була розширена до увімкнення усіх 255 можливих ІР-адрес локальної мережі.
Нам також необхідно переконатися, що localhost (універсальне доменне імя, котре застосовується в Linux для привязки до самої себе) має повний доступ без будь-яких обмежуючих ключових слів:
restrict 127.0.0.1
Збережіть зміни у файлі і закрийте його.
Тепер знову запустіть команду ntpdate вказавши їй в якості параметра ІР-адресу свого сервера:
# ntpdate 192.168.1.1
Для того, щоб перезапустити ntp-сервіс, скористайтеся наступною командою:
# /etc/init.d/ntp restart
Якщо для зміни часу використовуєте команду date, варто змінити час на системному годиннику. Інакше зміни не збережуться після перезавантаження системи. Після того, як годинник операційної системи синхронізувався з NTP-сервером високоточного атомного годинника, синхронізуйте його з апаратним годинником наступним чином:
# hwclock systohc
Використовуйте команду ntpq для перегляду серверів, з якими ви синхронізуєте час:
# ntpq
# ntpdc p
8 Перевантаження системи Debian/Ubuntu при її «зависанні»
Інколи виникають ситуації на кшталт: впав GNOME, а чарівна комбінація CTRL-ALT-BKSPC не дає ніяких результатів. ALT-CTRL-F1 не відправляє вас до термінала, де ви можете спокійно перезапустити gdm.
На щастя, є ще два способи, про які не знає дуже велика кількість користувачів.
Перший полягає у тому, щоб примусово завершити усі процеси в системі, що є значно кращим варіантом, аніж її гаряча зупинка. Для того, щоб це зробити, скористайтеся наступною комбінацією:
ALT + SysReq + k
SysReq означає, що вам необхідно знайти на клавіатурі клавішу PrtSc (Print Screen). Клавіша “k” означає “Kill” вбити.
А тепер комбінації клавіш, які можуть допомогти вам зробити деякі правильні дії перед заваршенням роботи системи:
ALT + SysReq + r
Переводить у режим Raw keyboard:
ALT + SysReq + s
Синхронізація диску:
ALT + SysReq + e
Ця комбінація клавіш вбиває усі процеси:
ALT + SysReq + i
Вбиваємо усі усі процеси, які не захотіли завершитися:
ALT + SysReq + u
Перемонтувати усі файлові системи лише для читання:
ALT + SysReq + b
9 Керування init-сценаріями в Debian
Init-скрипти це маленькі сценарії командного процесора (shell), які контролюють сервіси, також відомі як демони. Також вони можуть контролювати стан деякого програмного забезпечення, на кшталт, hdparm, iptables (завантаження правил міжмережевого екрана в ядро) та setserial (налаштування COM-порта). Усі вони містяться в папці /etc/init.d, і запускаються/зупиняються init`ом при завантаженні системи та переході на інший рівень виконання.
Init-сцерарії виконують важливу роль при запусканні та зупинці системи (у *nix-системах просто змінюється рівень виконання (runlevel). Якщо подивитися на перелік запущених на системі процесів (команда # ps auwx), то, імовірно, процес з найменшим PID буде мати назву “init”. Це батько усіх процесів, перша програма, яку ядро запускає при завантаженні. Іnit, котрий можна знайти в /sbin/init, відповідає за завантаження системи й керування усіма процесами під час її роботи.
Найпростіші (і, мабуть, найкращі) утиліти для керування init-сценаріями:
rcconf;
update-rc.d;
file-rc.
Тепер розглянемо кожну з них, використовуючи реальні приклади.
Rcconf
Rcconf дозволяє вказати демони, які запускатимуться при завантаженні системи. Інтерфейс виконаний у вигляді звичайного меню, в якому є перелік усіх демонів, які можуть бути запущені разом із системою. Якщо потрібно, щоб якийсь демон запускався, встановіть навпроти нього галочку, якщо ж вам цього не потрібно, зніміть її.
Ця утиліта налаштовує системні сервіси, повязані з рівнем виконання системи. Вона вмикає/вимикає сервіси, використовуючи сценарії у папці /etc/init.d/. Rcconf працює з System-V стилем init. Це псевдографічна надбудова для іншої утиліти update-rc.d.
Rcconf отримує перелік сервісів з /etc/init.d і дивиться у папки /etc/rc?.d, щоб дізнатися, який демон працює, а який ні.
Якщо номер (NN /etc/rc?.d/NN імя) не 20 (за замовчуванням), rcconf зберігає імя сервісу і номер у /var/lib/rcconf/services, щоб пізніше можна було “відкатати” зміни.
Встановлюємо rcconf:
# apt-get install rcconf
Після цього потрібно запустити rcconf:
# rcconf
Ось яке вікно ви побачите перед собою:
Важливіфайли:
/var/lib/rcconf/services - The service number data file.
/var/lib/rcconf/lock Lock файл.
/var/lib/rcconf/guide.default Guide File update-rcconf-guide generates.
/var/lib/rcconf/guide Guide File user (Administrator) can define.
Встановлення і видалення init-сценаріїв стилю System-V style. update-rc.d автоматично оновлює посилання на init-сценарії стилю у /etc/rcRUNLEVEL.d/NNname до /etc/init.d/name. Вони запускаються init`ом під час зміни рівня виконання і, зазвичай, використовуються для запуску і зупинки демонів. Підтримуються наступні рівні виконання: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, S та NN.
Синтаксис update-rc.d:
update-rc.d [-n] [-f] імя remove
update-rc.d [-n] імя defaults [NN | NN-start NN-stop]
update-rc.d [-n] імя start|stop NN рівень виконання
runlevel start|stop NN рівень виконаннярівень виконання
Якщозапуститиїїзізвичайнимипараметрамидлястартуабозупинкидемона, update-rc.d робитьпосилання /etc/rcrunlevel.d/[SK]NNімянасценарійв /etc/init.d/name. Якщобудь-якіфайли /etc/rcrunlevel.d/[SK]??імявженаявні, то update-rc.d неробитьнічого.
Додаткові опції:
-n Нічого не робити, просто вивести переліктого, що ми маємо.
-f Видалення лінків, навіть якщо вони й досі присутні у /etc/init.d/name.
Приклиди використання update-rc.d:
Встановити симлінк з defaults:
# update-rc.d samba defaults
Еквівалентна команда, яка використовує явний набір аргументів:
# update-rc.d samba start 20 2 3 4 5 | stop 20 0 1 6
Для того, щоб вилучити сценарій з автозавантаження, потрібно скористатися наступною командою:
# update-rc.d -f samba remove
file-rc
Є альтернативний механізм завантаження, в якому використовується єдиний конфігураційний файл. Цей архів призначений для керування альтернативним механізмом завантаження системи, завершенням її роботи і зміни рівня виконання. Посилання у /etc/rc?.d/* конвертуються в єдиний конфігураційний файл /etc/runlevel.conf, який дозволяє значно простіше і гнучкіше керувати демонами. Архів автоматично конвертує наявні симлінки в один файл і повертає усе при його видаленні з системи. Обидва механізми сумісні через /etc/init.d/rc, /etc/ init.d/rcS, /usr/sbin/update-rc.d та /usr/sbin/invoke-rc.d сценарії.
Приклади:
#
05 - 0 /etc/init.d/halt
05 - 1 /etc/init.d/single
05 - 6 /etc/init.d/reboot
10 0,1,6 2,3,4,5 /etc/init.d/sysklogd
12 0,1,6 2,3,4,5 /etc/init.d/kerneld
[…]
89 0,1,6 2,3,4,5 /etc/init.d/cron
99 - 2,3,4,5 /etc/init.d/rmnologin
99 0,1,6 2,3,4,5 /etc/init.d/xdm
10 Створення системної дискети
Встановлювач Debian`а дозволяє ще у процесі завантаження створити дуже корисну і часто просто необхідну для адміністратора системну дискетку.
Однак можна створити її у будь-який момент вже у встановленій і робочій системі Debian GNU/Linux. Для цього потрібно вставити чисту дискету до приводо, увійти як root і ввести наступні команди:
# mkboot
# kernel
Замість kernel необхідно вказати імя файлу ядра, котре необхідно використати для створення дискети, зазвичай це vmlinuz.