WWW.REFERATCENTRAL.ORG.UA - Я ТУТ НАВЧАЮСЬ

... відкритий, безкоштовний архів рефератів, курсових, дипломних робіт

ГоловнаІнформатика, Компютерні науки → Використання операційної системи Linux при створенні локальних мереж - Реферат

Використання операційної системи Linux при створенні локальних мереж - Реферат

можете захотіти автоматизувати вищезгаданий процес, щоб просто викликати просту програму яка послідовно виконає всі потрібні дії. Для цього і існує dip. На момент написання цього тексту біжуча версія - dip v3.3.7. Існує багато патчів до данної версії розроблених великою кількістю людей, всі ці напрями будуть об'єднані в майбутніх версіях.
dip включає в себе інтерпретатор простої мови скриптів що вміє працювати з модемом, конвертувати лінію в режим SLIP та конфігурувати інтерфейс. Все це досить примітивно та обмежено, але достатньо для більшості випадків. Нова реалізація dip може підтримувати більш універсальну мову.
Для того щоб мати можливість конфігурувати SLIP інтерфейс, dip повинен мати привілегії root. Але в цьому випадку всі користувачі які будуть використовувати dip для через SLIP будуть мати права root. Це досить небезпечно - вони зможуть конфігурувати інтерфейси та маршрутизацію, що може негативно вплинути на маршрутизацію у вашій мережі. Гірше того, це дасть можливість їм підключатись до будь-якого SLIP сервера і робити небезпечні атаки на вашу мережу. Таким чином, якщо ви хочете дозволити вашим користувачам fire up з'єднання через SLIP, напишіть невеличку програму-бар'єр для кожного SLIP-сервера що планується використовувати, і запускайте цю програму з dip при встановленні зв'язку. Тоді ця програма спокійно може запускатись з правами root.
8.3.1 Приклад скрипта
Приклад скрипта зображено в розділі 8.3.1. Він може бути використаний для з'єднання з cowslip використовуючи dip з ім'ям скрипта як аргументом :
# Sample dip script for dialing up cowslip
# Set local and remote name and address
get $local vlager
get $remote cowslip
port cua3 # choose a serial port
speed 38400 # set speed to max
modem HAYES # set modem type
reset # reset modem and tty
flush # flush out modem response
# Prepare for dialing.
send ATQ0V1E1X1r
wait OK 2
if $errlvl != 0 goto error
dial 41988
if $errlvl != 0 goto error
wait CONNECT 60
if $errlvl != 0 goto error
# Okay, we're connected now
sleep 3
send rnrn
wait ogin: 10
if $errlvl != 0 goto error
send Svlagern
wait ssword: 5
if $errlvl != 0 goto error
send hey-juden
wait running 30
if $errlvl != 0 goto error
# We have logged in, and the remote side is firing up SLIP.
print Connected to $remote with address $rmtip
default # Make this link our default route
mode SLIP # We go to SLIP mode, too
# fall through in case of error
error:
print SLIP to $remote failed.
Іллюстрація 14. Простий приклад скрипта для dip
# Dip cowslip.dip
DIP: Dialup IP Protocol Driver version 3.3.7 (12/13/93)
Written Fred N. van Kempen, MicroWalt Corporation.
connected o cowslip.moo.com with addr 193.174.7.129
#
Після з'єднання з cowslip і включення SLIP, dip від'єднується від терміналу і переходить в background режим. Тепер ви можете використовувати звичані мережеві сервіси. Для розірвання з'єднання запустіть dip з ключем -k. В цьому випадку буде послано hangup сигнал dip процесу використовуючі файл з індифікацйним номером /etc/dip.pid.
# dip -k
В мові скриптів dip-у, ключові слова з знаком доллару попереду описують змінні. dip має наперед означений список змінних що будуть перечислені нижче. Для прикладу : $remote та $local описують ім'я віддаленої та локальної машини для SLIP з'єднання.
Перші дві команди в скрипті наведеному вище це команди get, які встановлюють змінні для dip. Це є імена локальної та віддаленої машини - vlager та cowslip відповідно.
Наступні п'ять команд встановлюють лінію та модем. Команда reset посалає на модем ініціалізаційну стрічку; для Hayes-сумісних модемів це команда ATZ. Наступна стрічка очищує буфер відповідей модема так, щоб вхідний діалог в наступних кількох стрічках працював як слід. Цей діалог є послідовним: набір номера 41988 (телефонний номер cowslip), і реєстрація в системі як користувач Svlager з паролем hey-jude. Команда wait очікує від модема стрічку, даннуяк перший аргумент; другий аргумент описує час на протязі якого буде очікуватись стрічка. Команда if використовується для перевірки чи не було помилок під час виконання команд.
Завершальні команди виконуються після входу в віддалену систему : default - встановлює маршрут по замовчуванню на всі хости на це з'єднання та mode що встановлює режим SLIP на лінії та конфігурує інтерфейс та таблицю маршрутів.
8.3.2 Опис dip
Не дивлячись на широке застосування dip не є добре документованим. В цій секції ми дамо короткий опис більшості команд dip. Ви можете проглянути список всіх команд що підтримуються - запустіть dip в тестовому режимі та викличте допомогу командою help. Для того щоб зрозуміти синтаксис будь-якої команди введіть її без аргументів; відповідно команди що не потребують аргументів не видадуть короткої допомоги .
$ dip -t
DIP: Dialup IP Protocol Driver version 3.3.7 (12/13/93)
Written Fred N. van Kempen, MicroWalt Corporation.
DIP> help
DIP knows about following commands:
databits default dial echo flush
get goto help if init
mode modem parity print port
reset send sleep speed stopbits
term wait
DIP> echo
Usage: echo on|off
DIP>
Всі наступні приклади відображають DIP> як запрошення ввести команду в тестовому режимі, та реакцію програми. Приклади в яких немає цього запрошення є скриптами.
8.3.2.1 Команди управління модемом
Існує кілька команд що дозволяють конфігурувати вашу послідовну лінію та модем. Деякі з них - явні, типу port, який вибирає послідовний порт, а також speed, databits, stopbits та parity, які встановлюють параметри лінії.
Команда modem вибирає тип модема. На зараз підримується тільки HAYES (тільки великикими літерами). Ви повинні потурбуватись про сумісність dip з модемом, в іншому випадку можуть не виконуватись команди dial та reset. Команда reset посилає команду переініціалізації модема що залежить від типу модема. Для Hayes-сумісних модемів це ATZ.
Команда flush очищує потік відповідей (responses) модема. В іншому випадку сценарій з'єднання може мпрацювати неправильно, так як він прочитає відповіді модема OK що залишились від попередніх команд.
Команда init описує ініціалізаційну стрічку що буде послана в модем перед набиранням номера. По замовчуванню для Hayes модемів - ``ATE0Q0V1X1'', яка включає режим луни (echo), довгий результатний код та вибирає blind dialing (не перевіряти несучу).
Команда dial посилає ініціалізаційну стрічку для модему та дзвонить на віддалену систему. По замовчування команда dial для Hayes модемів - ATD.
8.3.2.2 echo і term
Команда echo вікористовується для відладки, вона виводить на консоль dip все що посилається на послідовний пристрій. Виключається викликом команди echo off.
dip також дозволяє вийти з режиму скрипта і тимчасово перейти в
Loading...

 
 

Цікаве