
72. Ftp протоколы icmp.
FTP протоколы (File Transfer Protocol) – интернеттегі ең ескілерінің бірі. Бұл берік деректер жіберуге негізделген (TCP протоколына, 21, 20 порттары), OSI моделінің жетінші деңгейінің (қосымша деңгейінің) протоколы. FTP-ресурстарымен жұмыс істеу локалды файлдық жүйеде жұмыс істеуге ұқсас. FTP протоколымен жұмыс істеуге арналған көптеген мамандандырылған клиенттер бар. Бірақ
барлық қазіргі заманғы браузерларда FTP-ресурстарының ақпараттарын өңдеу мүмкіндіктері бар. Оларды біз бүгінгі сабақтың практикалық бөлігінде қолданамыз.FTP-серверлер клиенттерге қарағанда əлдеқайда аз, бірақ сонымен қатар оларды шатастырып алуға болатындай көп. Біз Сіздрмен ASPLinux жеткізілуіне кіретін vsftpd (Very Secure FTP Daemon) FTP-серверін баптаймыз.Оның баптамаларын қарастырудың алдында, мен FTP протоколының жұмысы жайлы кішкене айтып бергім келім тұр. Бұл протокол бастапқыдан қолданушының аты бойынша аутентификациясы бар протокол болып табылады. Бірақ FTP протоколы үшін анонимді деп аталатын режим бар. Оның қолданған кезде (браузерлер бұл режимді үнсіздік
бойынша қолданады) атының орнына anonymous енгізіледі, ал парольдың орнына – электронды поштаның адресі енгізіледі (браузер не адрестік кітапшадағы шынайысын, не кездейсоқ таңдалғанын қолданады). Протоколдың басқа ерекшелігі ол əртүрлі режимдерді – активті жəне пассивті режимдерді қолдану. Пассивті режимде клиент деректер жіберуге арналған байланысты ашады жəне потокты басқарады, ал сервер деректерді пассивті түрде беріп отырады. Активті режимде деректерді жіберуге арналған поток серверді ашады жəне басқарады. Бірақ, егер клиент адрестерді қайта түрлендіруі (маскарадинг) бар файрволдың артында орналасқан болса, онда ол сервермен бл режимде жұмыс істей алмайды.Біз талқылап жатқан ерекшеліктердің соңғысы, ол деректерді бинарлы немесе мəтіндік (ascii) түрде жіберу. Кейбір бинарлы деректер серверлердің/клиенттердің бірінш нұсқаларында FTP-ны жүзеге асыру ерекшеліктеріне байланысты желі бойынша тура түрде жіберіле алмайтын. Бұл мақсатта бірнеше режимдер ойлап табылған болатын – бинарлы, мұнда жіберілетін деректер желі бойынша жіберілу үшін ешқалай түрлендірілмейді, жəне ascii, мұнда деректер белгілі кодтаудың көмегімен ascii символдарының тізбегіне (0-ден 127-ге дейінгі кодтармен) түрлендіріледі. Ascii форматы файлдың өлшемін үлкейтіп отыратын, жəне сəйкесінше желіден жүгіну уақыты да үлкейетін, бірақ туындайтын проблемаларды жеңуге мүмкіндік беретін. Қазіргі заманғы FTP-серверлер/клиенттер өз бетінше жіберудің қажетті режимін таңдай алады, сондықтан қолданушы көптеген жағдайларда ол туралы ойланбайды.Vsftpd өздігінен программа-демон болып келеді. ASPLinux-та ол үшін алдын ала vsftpd атымен /etc/rc.d/init.d-да орналасқан жіберу скрипті жасалған. Орындалатын файлдың өзі /usr/sbin/vsftpd ретінде адрестеледі. Сервер баптамалары үшін бірнеше файлдар жауап береді: /etc/vsftpd.busy_banner – сервер сұранысқа жауап бере алмайтын кезде , клиентке берілетін хабарлама жазылатын файл. /etc/vsftpd.ftpusers – құрамында ftp бойынша рұқсаты жоқ қолданушылар тізімі болады.
Бұл файлдың құрамында жүйе үшін, root, bin, lpd жəне басқалары сияқты, өте маңызды қолданушылар тізімі бар.
/etc/vsftpd.user_list – конфигурацияның неізгі файлында userlist_deny параметрі қалай орнатылғанына тəуелді мағынасы өзгеріп отыратын қолданушылар тізімі. Егер Бұл
параметр NO-да орнатылған болса, онда FTP-ға тек осы файлда көрсетілген қолданушылар ғана кіре алады, егер YES-те болса, онда осы қолданушылардан басқаларының барлығы кіре алады. Егер қолданушы /etc/vsftpd.ftpusers файлында рұқсат етілмеген болса, онда осы файлда рұқсат етілген бола тұра оның мүмкіндігі болмайтынын
ескерген жөн /etc/vsftpd/vsftpd.conf – сервер конфигурациясының негізгі файлы. Оны толығырақ
қарастырайық: anonymous_enable=YES – анонимді FTP-катологына (/var/ftp/pub) мүмкіндікті рұқсат ететін немесе рұқсат етпейтін параметр-ауыстырушы local_enable=YES – егер бұл параметр NO-да орналасқан болса, онда сервер жіберілген жүйенің қолданушылары оған рұқсат ала алмайды.write_enable=YES – егер бұл параметр NO-да орнатылған болса, онда ешқандай қолданушының FTP-ресурсына файлдарды жүктеуге құқығы болмайды.
local_umask=022 – anonymous-тан басқа, барлық қолданушылар үшін файлдарғ рұқсат құқығын анықтайды.
anon_upload_enable=YES – егер параметр YES-те орнатылған болса, онда анонимді қолданушылар /var/ftp/pub каталогындағыларды өзгерте алады. anon_mkdir_write_enable=YES – анонимді қолданушыларға FTP-ресурстарына файлдарды жүктеуге жəне каталогтар жасауға мүмкіндік береді. dirmesage_enable=YES – егер параметр қосылған болса, онда FTP-сервер каталогқа
көшу кезінде файлдан хабарлама шығарып отырады. Бұл хабарлама каталогтың ішінде
файлда .message атымен орналасқан болуы мүмкін, бірақ файлдың аты қосымша message_file опциясының көмегімен көрсетілуі мүмкін. Xferlog_enable=YES – серверге жіберілген файлдардың аттары бар журналды жазуға
мүмкіндік береді. Үнсіздік бойынша, журнал /var/log/vsftpd.log-та жазылады, бірақ файлдың аты қосымша xferlog_file опциясымен көрсетілуі мүмкін. Файлдың форматы стандартты (YES) немесе стандартты емес xferlog_std_format опцияларымен көрсетілуі
мүмкін. connect_from_port_20=YES – деректерді жіберу үшін 20-шы портты қолдануға мүмкіндік береді.
chown_upload=YES – анонимді қолданушымен жүктелген файл иесін chown_username параметрінде көрсетілгенге өзгертеді. idle_session_timeout – ешқандай əрекет жасамай жатқан клиентпен байланыс үзілетін уақытты секундпен көрсетеді. data_connection_timeout – деректер жіберуде үзіліс болған жағдайда байланыс үзілетін уақыт секундпен көрсетіледі.Бұл сервердің конфигурациясы бойынша қосымша ақпаратты man жетекшілігінен алуға болады (vsftpd, vsftpd.conf беттерінен алуға болады).
2. HTTP протоколы – бүгінгі күнге TCP-ға (80 порт) негізделетін, ең кең таралған протокол интернет болып табылады. HTML-беттерді жариялауға, өңдеуге жəне көрсетуге байланысты аралас стандарттардың жиыны вэб-серверлерді қиындатып жібергені соншалықты, олардың конфигурациялары батаушы администратор үшін оңай емес
жұмыс болып табылады. Біз сіздермен серверді негізгі жұмысқа баптап жəне оның конфигурацияларының негізгі параметрлерін қарап көреміз. Құрал ретінде біз интернеттегі ең мықты жəне ең кең таралғандардың бірі 2.0.40
нұсқасындағы Apache серверін қолданамыз. Apache 2.x-еі конфигурациялау оның алдындағыны – линейка 1.3-ті конфигурациялаудан қатты өзгешеленеді. /etc/httpd/conf-та орналасқан RedHat-үйлесімді жүйелеріндегі (сонымен қатар
ASPLinux-тағы) httpd.conf конфигурацияның негізгі файлы болып табылады.
ServerTokens OS – бұл параметр қолданылатын модульдар жайлы ақпаратты жасыруға
мүмкіндік береді.
ServerRoot “/etc/httpd” – конфигурациялық файлдар, журналдар файлдары жəне сервермен жұмыс істеуге қажетті басқа да ақпараттар орналасқан каталогқа нұсқайды. Timeout 300 – белсенділік білдірмейтін клиентпен байланыс үзілетін уақытты секундтармен көрсетеді. KeepAlive Off – PING-PONG типті пакеті бар клиентпен байланысты қолдауа рұқсат береді немесе рұқсат бермейді.Listen 80 – вэб-сервер жұмыс істейтін портты (немесе ip-адресті жəне 192.168.2.2:80 форматындағы портты) көрсетеді.LoadModule – сервердің қосымша мүмкіндіктерін қолдауға арналған кеңейту модульін
жүктеуге жəне қолдануға мүмкіндік береді.User apache, Group apache – сервер атынан жұмыс істеуі керек қолданушыны жəне топты көрсететін параметрлер.
ServerAdmin root@localhost – қателер жайлы хабарламалары бар беттерде көрсетілетін сервер администраторының электронды поштасының адресін көрсетеді.ServerName hosters.volnet.ru – сервер жұмыс істейтін доменнің атын көрсетеді. Егер компьютер үшін доменнің аты атықталмаған болса, онда оның орнына IP-адрес жазылады.DocumentRoot “/var/www/html” – HTML құжаттары орналасқан каталогты көрсетеді.Directory бөлімі құжаттар орналасқан каталогты сипаттайды.<Directory “/var/www/html”> - сипаттаудың басы Options – пробел арқылы көрсетілетін документтері бар каталогтың опциялары.Опциялары ретінде келесілер қолданыла алады: Includes – қосылатын файлдар,
FollowSymLinks – символдық сілтемелер бойынша өту, SymLinksifOwnerMatch – символдық сілтемелер бойынша егер иесі сəйкес келсе өту, ExecCGI – CGI файлдарын
орындау жəне файлдарды шығаруды клиентке жіберу, жəне басқалары. AllowOverride – салынған директориялардың параметрлерін .htaccess көмегімен өзгертуге, толығымен (All) өзгертуге, (None) өзгертпеуге мүмкіндік береді жəне басқа да параметрлер.Order – қауіпсіздік конфигурациясы кезіндегі ммүкін мəндерді анықтайды. Deny,
Allow параметрлерін немесе екуінде үтір арқылы қосалады.
Deny/Allow from all/192.168.3.11 – каталогқа рұқсатты анықтайды. </Directory> - каталогты сипаттауды жабады.
73.LILO.
LILO (LInux LOader) — один из стандартных загрузчиков для Linux и BSD-систем.
LILO разработал Werner Almesberger, далее, разрабатывал John Coffman (версии 20—22), на текущий день разрабатывает Йохим Видорн.
LILO не зависит от файловой системы и поэтому может загружать операционную систему с жёсткого диска или с дискеты. В связи с этим LILO хранит пункты меню и положение загружаемых ядер непосредственно в теле загрузчика и требует обновления (при помощи запуска утилиты lilo) при каждом изменении конфигурации (изменении в файле lilo.conf или в расположении загружаемых ядер на диске).
LILO поддерживает до 16 пунктов меню при загрузке.
Два вида загрузки, поддерживаемые LILO — это загрузка Linux-ядра с опциональной поддержкой initrd и передача управления другому загрузчику (chainloading).
LILO может быть установлен в главном загрузочном секторе MBR или загрузочном секторе раздела.
LILO использует BIOS для доступа к жёстким дискам, с присущими этой схеме ограничениями.
Файл настроек lilo.conf автоматически создаётся утилитой liloconfig, входящей в состав пакета LILO, и располагается этот файл в папке /etc. Программа LILO считывает параметры в файле lilo.conf один раз во время своей установки, а не каждый раз в начале загрузки операционной системы. После ручного редактирования lilo.conf, необходимо переустановить LILO, выполнив команду от лица суперпользователя
ICMP протоколы (Internet Control Protocol, интернеттегі хабарламаларды бақылау протоколы) – бұл қателер туралы жəне IP-пакеттерді өңдеудің басқа да ақпараттары туралы хабарламалары бар пакеттер құратын, OSI моделіндегі үшінші (желілік) дəрежелік Internet-протокол.
ICMP протоколында келесідей пакеттер типтері сипатталған: эхо-сұраныс – алыстатылған түйінмен байланысты тексеру үшін жіберілетін пакет. эхо-жауап – эхо-сұраныс типіндегі пакетке жауап ретінде бастапқы көз алатын пакет. тағайындау қол жетімсіз – мұндай пакет алушы тағайындау желісінің/түйінінің/портының қол жетімсіз екендігінен хабардар болады. Редирект – пакет түйінді тағайындауға дейінгі бағдардың өзгергендігі туралы
хабардар етеді. Қазіргі заманғы ОЖ-лерде пакеттің мұндай түрлері еленбейді. Уақыт шықты – түйін-көз бұл пакет типін, егер TimeToLive жолының нольденуіне байланысты IP-пакет жойылған болса алады. ICMP пакеттерінің қалған типтерін (жəне ішкі типтерін) /usr/include/linux/icmp.h
тақырыптық файлында қарауға болады. ping утилиті алыстатылған түйінмен байланстың бар-жоғын, жəне де байланыстың сенімділігін жəне жылдамдығын тексеру үшін қызмет етеді. Кейде бұл утилита хосттың ip-адресін аты бойынша ашу үшін қолданылады. Оның синтаксисі келесідей: ping [параметрлер] хосттың_аты_немесе_ip-адресі
-с параметрінің көмегімен сіз ping орындайтын сұраныстар санын көрсетуге болады. Егер –с параметрі көрсетілмеген болса, онда ping белгі алғанша немесе қолданушы <ctrl-c> басқанша сұраныстар жібере береді. -f параметрінің көмегімен желінің жылдам істеуін тексеруге болады (тек root астынан жұмыс істейді). Бұл параметрді қолданған кезде ping секундына 1000 шақты пакет жібереді.
-s параметрімен пакет өлшемі байтпен көрсетілуі мүмкін (64-тен кем емес жəне 65000-нан көп емес), басқа жағдайда пакеттің өлшемі 64 байт болады. Қосымша ақпаратты man анықтамалық жетекшілігінен алуға болады.
traceroute командасы аралық сапар желіктегіштерді беру арқылы, сізге алыстатылған хостқа дейінгі жолды тексеруге көмектеседі. Бұл команда көмегімен жұмыс істемей тұрған жерлерді тауып, проблеманы үлкен желіге диагностика жасау қарапайым болады. Команданың интаксисі ping-тікі сияқты, бірақ командалық жолдың параметрлерінен басқа.
tcptraceroute командасы да тура алдыңғы сияқты, бірақ ол бастапқы протокол ретінде tcp протоколын қолданады. Бұл tcp қызметтеріне қол жетімділікті жəне соларға дейінгі жолды тексеруге мүмкіндік береді. Көптеген жағдайларда командалық жолдың параметрлерін қолдану қажет етпейді, бірақ сонда да оларды man анықтамалық жетекшілігінің көмегімен оқып шыққан жөн. Желіні басақару утилиттері желілік проблемаларды диагностика жасауға, сондай-ақ
əрбір нақты хосттың проблемаларын диагностика жасау үшін керек. Nmap хосттардың проблемаларын диагностика жасауға көмектесетін, қазіргі заманғы Linux операциялық жүйесінің барлық дистрибутивтеріне кіретін, əйгілі
утилиттердің бірі болып табылады. Nmap-тың көптеген мүмкіндіктері бар, бірақ бізді бірінші кезекте оның
алыстатылған хосттың, жəне де операциялық жүйенің белсенді сервистерін анықтау мүмкіндігі қызықтырады.
Nmap-ты толығымен тек суперқолданушы құқығы болған кезде ғана қолдануға болады. Төменде nmap-тың бізді қызықтыратын параметрлері келтірілген:
-sS – TCP-порттарды жасырын сканерлеу
-sT – TCP-порттарды ашық сканерлеу
-sU – UDP-порттарды ашық сканерлеу
-sP – ping-сканерлеу (желідегі белсенді хосттарды іздеу)
-sF, -sN, -sX – TCP-порттарды сканерлеудің əртүрлі жасырын түрлері.
-O – операциялық жүйенің типін анықтау (-sP-пен жұмыс істемейді)
-p – сканерлеу үшін порттардың диапазонын көрсету (12345, 12345-23333)
-v – толық шығару.
NetCat (nc) командасы – бұл одан да кеңірек қолданылатын команда. Оның тағайындауы, бірінші кезекте, нақты бір түйінде желінің жұмы істеу мүмкіндігін тексеру жəне жіберу кезіндегі қателерді табу болып табылады. Nc командасы портты аша алады жəне ондағы
ақпаратты экранға шығара алады (немесе файлға канал бойынша басқа қосымшаны). Бұл мүкіндікті TCP жұмысын тексеру үшін жиі қолданады. Портты ашу үшін –l кілті қызмет етеді, ал портты –p параметрімен көрсетуге болады:
1-ші консоль
[root@WebMedia linux]# nc -l -p 25 127.0.0.1
test
test double
punt!
2-ші консоль
[gserg@WebMedia gserg]$ telnet 127.0.0.1 25
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
test
test double
Connection closed by foreign host.
[gserg@WebMedia gserg]$
Алайда, nc көмегімен де ашық порттарды сканерлеп шығуға болады. Бірақ, nc-нің мүмкіндіктер жиыны nmap-тікіндей кең емес, жəне сканерлеуді баяуырақ жасайды. Ол
үшін –z параметрі қолданылады. –v параметрі қосымша ақпарат алуға мүмкіндік береді.
[root@WebMedia linux]# nc -z -v 127.0.0.1 600-700
localhost.localdomain [127.0.0.1] 631 (ipp) open
netstat командасы ағымдағы компьтердің ашық байланыстарын қарап шығуға мүмкіндік
береді. Параметрлерсіз енгізіліп ол unix-тің ашық сокеттерін қоса, барлық байланыстарды көрсетеді.
Команда қабылдайтын ең жиі қолданылатын параметрлер төменде келтірілген:
-n - /etc/services аттарының орнына порттардың сандық мəн номерлерін көрсетеді
жəне домендік аттардың орнына сандық ip-адрестер көрсетеді.
-p – байланыс қолданатын процесстің pid-ін көрсетеді,
-t – тек TCP-сокеттерді көрсетеді,
-u – тек UDP-сокеттерді көрсетеді,
-i – интерфейстер тізімін жəне олардағы трафик статистикасын көрсетеді,
-l – тек тыңдайтын порттар.
Осылайша, TCP-порттарды тыңдайтын барлық программаларды қарап шығу:
root@ADM:/var/mail# netstat -tpl
Интернетпен белсенді байланыс (only servers)
Барлық интерфейстерді қарап шығу:
root@ADM:/var/mail# netstat -i