Глава 6. Практические занятия по сетям в UNIX

Содержание

Методические указания по командам управления сетью в UNIX
Команды по конфигурированию сети
Команды по диагностике сети
Команды удалённого терминала
Команды по управлению сетевым экраном
Программы сетевого обмена
Резюме
Дополнительные материалы
Практическое занятие. Управление сетью
Сценарий: Настройка сетевого интерфейса
Сценарий: Настройка таблицы маршрутизации
Сценарий: Изучение службы доменных имён
Сценарий: Простая диагностика работы сети
Сценарий: Работа с удалённым терминалом
Задания для самоподготовки
Сценарии практического занятия на тему: Управление сетью
Практическое занятие. Расширенная диагностика и настройка сети
Сценарий: Сканирование локальной сети
Сценарий: Сканирование удалённых хостов
Сценарий: Настройка сетевого экрана
Задания для самоподготовки
Сценарии практического занятия на тему: Расширенная диагностика и настройка сети

Методические указания по командам управления сетью в UNIX

Команды по конфигурированию сети

ifconfig

Команда используется для настройки сетевых интерфейсов.

Команда ifconfig имеет следующий синтаксис:

ifconfig [-L] [-m] interface [create] [address_family] [address [dest_address]] [parameters]
ifconfig interface destroy
ifconfig -a [-L] [-d] [-m] [-u] [address_family]
ifconfig -l [-d] [-u] [address_family]
ifconfig [-L] [-d] [-m] [-u] [-C]

Команда ifconfig используется для настройки сетевых интерфейсов. Команда должна использоваться при загрузке системы для настройки адресов каждого сетевого интерфейса, а также может использоваться после загрузки для изменения параметров сетевых интерфейсов. Если команда введена без параметров, ifconfig выдает информацию о состоянии активных интерфейсов. Если в качестве параметра указан какой-либо интерфейс, то выдается информация только о состоянии этого интерфейса; если используется ключ -a, выдается информация о состоянии всех интерфесов, даже отключенных. Пример:

[user@localhost ~]$ /sbin/ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:11:22:33:44:55
          inet addr:192.168.0.22  Bcast:0.0.0.0  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8832853 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6012769 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3171759614 (2.9 GiB)  TX bytes:3759607308 (3.5 GiB)
          Interrupt:16 Base address:0x8f00

При указании иных параметров команда конфигурирует указанный интерфейс. Изменить настройки какого-либо интерфейса может только суперпользователь.

Параметры:

интерфейс  — имя интерфейса (например, rl0 в BSD или eth0 в Linux).
up  — вызывает активизацию интерфейса. Задается неявно при присвоении адреса интерфейсу.
down  — вызывает остановку работы драйвера для интерфейса.
[-]arp  — включает или отключает использование протокола ARP для интерфейса.
[-]promisc  — включает или отключает неразборчивый режим (promiscuous mode) работы интерфейса. В этом режиме интерфейсом будут приниматься все проходящие по сети пакеты.
[-]allmulti  — включает или отключает режим all-multicast. В этом режиме интерфейсом будут приниматься все многоадресные (multicast) пакеты в сети.
metric N  — устанавливает метрику интерфейса.
mtu N  — устанавливает максимальный размер пакета (Maximum Transfer Unit - MTU) для интерфейса.
адрес  — IP-адрес, присваиваемый интерфейсу.
netmask адрес  — устанавливает маску сети IP для этого интерфейса. По умолчанию используется обычная маска сети класса A, B или C (что определяется по IP-адресу интерфейса), но можно усановить любое значение.
add адрес/длина_префикса  — добавляет адрес IPv6 для интерфейса.
del адрес/длина_префикса  — удаляет адрес IPv6 для интерфейса.
irq адрес  — устанавливает аппаратное прерывание, используемое устройством. Не для всех устройств можно динамически менять значение IRQ.
media тип  — устанавливает физический порт или тип носителя, используемый устройством. Не для всех устройств можно менять этот параметр, и для разных устройств могут поддерживаться различные значения. Типичные значения типа - 10base2 (коаксиальный кабель Ethernet), 10baseT (витая пара Ethernet 10 Мбит/сек), AUI (внешний передатчик) и т. д. Специальный тип носителя auto можно использовать, чтобы потребовать от драйвера автоматически обпределять тип носителя. Не все драйверы могут это делать.
[-]broadcast [адрес]  — если указан параметр адрес, задает соответствующий протоколу широковещательный адрес для интерфейса. В противном случае устанавливает (или сбрасывает) для интерфейса флаг IFF_BROADCAST.

Пример. Изменение IP-адреса интерфейса eth0:

[root@localhost ~]# /sbin/ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:11:22:33:44:55
          inet addr:192.168.0.22  Bcast:0.0.0.0  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8832853 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6012769 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3171759614 (2.9 GiB)  TX bytes:3759607308 (3.5 GiB)
          Interrupt:16 Base address:0x8f00
[root@localhost ~]# /sbin/ifconfig eth0 192.168.0.1
[root@localhost ~]# /sbin/ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:11:22:33:44:55
          inet addr:192.168.0.1  Bcast:0.0.0.0  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8832853 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6012769 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:3171759614 (2.9 GiB)  TX bytes:3759607308 (3.5 GiB)
          Interrupt:16 Base address:0x8f00

arp

Команда arp отображает ARP-таблицу данного хоста. С помощью ключа -i можно получить информацию об интересующем сетевом интерфейсе.

[root@localhost ~]# arp -i eth0
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.0.2              ether   00:50:BF:12:8A:9E   C                     eth0

Таблица с информацией о канальном уровне содержит связь IP- и MAC-адресов. При использовании ключа -n IP-адреса не будут заменяться символьными именами хостов.

route

Эта команда используется для просмотра и изменения таблицы маршрутизации хоста. Она также принимает ключ -n, при использовании которого IP-адреса не будут заменяться символьными именами хостов.

Пример обычной таблицы маршрутизации для отдельного компьютера в сети:

[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.5.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         192.168.5.254   0.0.0.0         UG    0      0        0 eth1

Особый интерес представляет адрес 0.0.0.0, который соответствует хосту назначения по умолчанию.

Для добавление нового маршрута к определённому хосту используется параметр add с ключом -host:

[root@localhost ~]# route add -host 192.168.0.1 eth0

Эта команда создаёт новую строку в таблице маршрутизации, согласно которой все пакеты к узлу 192.168.0.1 должны отправляться в сетевой интерфейс eth0.

Также можно добавлять шлюз для отправки пакетов в определённую сеть или к хосту:

[root@localhost ~]# route add -net 192.168.1.0 gw 192.168.0.5

Таким образом, все пакеты для сети 192.168.1.0 будут направляться на узел 192.168.0.5.

Аналогично, маршруты удаляются параметром del с указанием всей информации о маршруте:

[root@localhost ~]# route del default gw 192.168.0.1

Эта команда удаляет маршрут по умолчанию через хост 192.168.0.1.

Команды по диагностике сети

ping

Команда используется для посылки пакетов ICMP ECHO_REQUEST сетевым хостам.

Команда ping имеет следующий синтаксис:

ping [-AaDdfnoQqRrv] [-c число_пакетов] [-i секунд] [-l preload] [-M mask | time]
		[-m ttl] [-P policy] [-p pattern] [-S src_addr] [-s packetsize]
		[-t timeout] [-z tos] host
ping [-AaDdfLnoQqRrv] [-c число_пакетов] [-I iface] [-i секунд] [-l preload]
		[-M mask | time] [-m ttl] [-P policy] [-p pattern] [-S src_addr]
		[-s packetsize] [-T ttl] [-t timeout] [-z tos] mcast-group

Команда ping использует датаграмму ECHO_REQUEST протокола ICMP, чтобы вызвать ответ ICMP ECHO_RESPONSE указанного хоста или сетевого шлюза. Если хост отвечает, ping выдает сообщение, что хост включен (is alive), в стандартный выходной поток.

Для проверки наличия хоста в сети достаточно ввести команду ping с именем или адресом хоста в качестве параметра:

[user@localhost ~]$ ping yandex.ru
64 bytes from 213.180.204.11: icmp_seq=0 ttl=48 time=5.659 ms
64 bytes from 213.180.204.11: icmp_seq=1 ttl=48 time=5.404 ms
64 bytes from 213.180.204.11: icmp_seq=2 ttl=48 time=4.889 ms
^C
--- yandex.ru ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 4.889/5.317/5.659/0.320 ms

Для отправки определенного числа пакетов необходимо использовать параметр -c число_пакетов. Для установки интервала между отправкой пакетов используется параметр-i секунд.

traceroute

Команда traceroute служит для отладки сетевых соединений посредством построения маршрута следования пакетов к хосту назначения. Эта команда также принимает ключ -n, при использовании которого IP-адреса не будут заменяться символьными именами хостов.

Пример следования пакетов до хоста ya.ru:

[root@localhost ~]# traceroute ya.ru
traceroute to ya.ru (213.180.204.8), 64 hops max, 40 byte packets
 1  195.91.230.65 (195.91.230.65)  0.890 ms  1.907 ms  0.809 ms
 2  cs7206.rinet.ru (195.54.192.28)  0.895 ms  0.769 ms  0.605 ms
 3  ix2-m9.yandex.net (193.232.244.93)  1.855 ms  1.519 ms  2.95 ms
 4  c3-vlan4.yandex.net (213.180.210.146)  3.412 ms  2.698 ms  2.654 ms
 5  ya.ru (213.180.204.8)  2.336 ms  2.612 ms  3.482 ms

netstat

Команда используется для показа состояния сети.

Команда netstat имеет следующий синтаксис:

netstat [-AaLnSW] [-f protocol_family | -p protocol] [-M core] [-N system]

Команда netstat показывает содержимое различных структур данных, связанных с сетью, в различных форматах в зависимости от указанных параметров. Первая форма команды показывает список активных сокетов (sockets) для каждого протокола. Вторая форма выбирает одну из нескольких других сетевых структур данных. Третья форма показывает динамическую статистику пересылки пакетов по сконфигурированным сетевым интерфейсам; параметр интервал задает, сколько секунд собирается информация между последовательными показами.

Команда netstat принимает следующие ключи:

-a  — показывать состояние всех сокетов; обычно сокеты, используемые серверными процессами, не показываются.
-A  — показывать адреса любых управляющих блоков протокола, связанных с сокетами; используется для отладки.
-i  — показывать состояние автоматически сконфигурированных (auto-configured) интерфейсов. Интерфейсы, статически сконфигурированные в системе, но не найденные во время загрузки, не показываются.
-n  — показывать сетевые адреса как числа. netstat обычно показывает адреса как символы. Этот ключ можно использовать с любым форматом показа.
-r  — показать таблицы маршрутизации. При использовании с ключом -s, показывает статистику маршрутизации.
-s  — показать статистическую информацию по протоколам. При использовании с ключом -r, показывает статистику маршрутизации.
-f семейство_адресов  — ограничить показ статистики или адресов управляющих блоков только указанным семейством_адресов, в качестве которого можно указывать:
inet Для семейства адресов AF_INET
unix Для семейства адресов AF_UNIX
-I интерфейс  — выделить информацию об указанном интерфейсе в отдельный столбец; по умолчанию (для третьей формы команды) используется интерфейс с наибольшим объемом переданной информации с момента последней перезагрузки системы. В качестве интерфейса можно указать любой из интерфейсов, перечисленных в файле конфигурации системы, например, emd1 или lo0.
-p имя_протокола  — ограничить показ статистики или адресов управляющих блоков только протоколом с указанным именем_протокола, например, tcp.

Пример показа таблицы маршрутизации:

[root@localhost ~]# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     *               255.255.255.0   U         0 0          0 eth0
default         192.168.1.1     0.0.0.0         UG        0 0          0 eth0

host

Команда host служит для получения доменной информации о хосте: IP-адрес, MX-записи и другой информации, связанной с данным символьным именем. Имя хоста указывается в качестве параметра команды.

Пример работы команды:

[user@localhost ~]$ host yandex.ru
yandex.ru has address 213.180.204.11
yandex.ru mail is handled by 10 mx2.yandex.ru.
yandex.ru mail is handled by 0 mx1.yandex.ru.

Вторым параметром можно указать DNS-сервер, который будет использоваться при получении этой информации:

[user@localhost ~]$ host yandex.ru ns1.aiya.ru
Using domain server:
Name: ns1.aiya.ru
Address: 85.142.20.152#53
Aliases:

yandex.ru has address 213.180.204.11
Using domain server:
Name: ns1.aiya.ru
Address: 85.142.20.152#53
Aliases:

Using domain server:
Name: ns1.aiya.ru
Address: 85.142.20.152#53
Aliases:

yandex.ru mail is handled by 0 mx1.yandex.ru.
yandex.ru mail is handled by 10 mx2.yandex.ru.

tcpdump

Команда tcpdump используется для мониторинга сети на канальном и более высоких уровнях. Программа «слушает» на одним или нескольких сетевых интерфейсах и выводит дамп пакетов, проходящих через этот интерфейс.

Ключ -i задаёт имя сетевого интерфейса, на котором запускается прослушивание. При просмотре захватываемых данных удобно использовать ключ -l, который буферизует вывод построчно. Эта команда также работает с ключом -n, при использовании которого IP-адреса не заменяются символьными именами хостов. Пример работы команды:

[root@localhost ~]# tcpdump -i eth0 -l -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
12:51:07.486755 arp who-has 0.0.0.0 (00:30:48:2b:6d:6a) tell 0.0.0.0
12:51:12.486606 arp who-has 0.0.0.0 (00:30:48:2b:6d:6a) tell 0.0.0.0
12:51:14.457608 IP 192.168.5.23.56385 > 194.91.250.11.443: P 3645922938:3645923156(218) ack 2092518729 win 10086
12:51:14.491343 IP 194.91.250.11.443 > 192.168.5.23.56385: . ack 218 win 10720

Для вывода расширенной информации о пакетах исплюзуются ключи -v или -vv.

[root@localhost ~]# tcpdump -i eth1 -l -n -vv
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
12:57:53.043797 IP (tos 0x0, ttl  51, id 46031, offset 0, flags [DF], proto: TCP (6),
  length: 286) 194.91.250.11.5190 > 192.168.5.23.38993: P 2517343058:2517343292(234)
  ack 2346573376 win 2202 <nop,nop,timestamp 2713588760 497668>
12:57:53.043865 IP (tos 0x0, ttl  64, id 52382, offset 0, flags [DF], proto: TCP (6),
  length: 52) 192.168.5.23.38993 > 194.91.250.11.5190: ., cksum 0x1fd7 (correct),
  1:1(0) ack 234 win 11945 <nop,nop,timestamp 506366 2713588760>
12:57:53.401516 IP (tos 0x0, ttl  48, id 45237, offset 0, flags [DF], proto: TCP (6),
  length: 210) 194.91.250.11.443 > 192.168.5.23.56385: P 2092522043:2092522213(170)
  ack 3645927446 win 10720
...

Команда tcpdump обладает очень богатым интерфейсом, включающим условные выражения, по которым должны выделяться интересующие пакеты. Например, можно использовать условия удалённого порта (равно 80):

[root@localhost ~]# tcpdump -i eth1 -l -n -vv dst port 80
tcpdump: listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
13:55:36.563959 IP (tos 0x0, ttl  64, id 3936, offset 0, flags [DF], proto: TCP (6),
  length: 60) 192.168.5.23.52348 > 213.180.204.11.80: S, cksum 0x2766 (correct),
  3855548287:3855548287(0) win 5840 <mss 1460,sackOK,timestamp 1372191 0,nop,wscale 2>
13:55:36.592654 IP (tos 0x0, ttl  64, id 3937, offset 0, flags [DF], proto: TCP (6),
  length: 40) 192.168.5.23.52348 > 213.180.204.11.80: ., cksum 0xebc5 (correct),
  3855548288:3855548288(0) ack 3869420799 win 5840
13:55:36.592731 IP (tos 0x0, ttl  64, id 3938, offset 0, flags [DF], proto: TCP (6),
  length: 627) 192.168.5.23.52348 > 213.180.204.11.80: P 0:587(587) ack 1 win 5840
...

nmap

Команда nmap — сетевой сканер, с помощью которого можно определить уязвимость удалённых хостов. Основное назначение этой программы — определение состояния портов удалённого хоста (закрыты они, открыты или заблокированны). Также программа на основании собственной информационной базы может определить по поведению удалённого хоста, какая операционная система на нем запущена.

Команды удалённого терминала

telnet

telnet — программа сетевого терминала.

ssh

SSH (Secure SHell) — сетевой протокол, позволяющий производить удалённое управление компьютером и передачу файлов посредством шифрованного соединения. Одновременно это и программа для доступа к другим компьютерам, доступным по сети, для выполнения команд и передачи файлов с одного компьютера на другой. Рекомендуется вместо «традиционных» команд, к примеру telnet и rlogin использовать ssh — что значительно повысит безопасность системы.

Клиенты и серверы, поддерживающие этот протокол, доступны для различных платформ и входят в стандартную поставку подавляющего большинства UNIX-подобных операционных систем. Существует множество реализаций серверов и клиентов ssh, однако в рамках курса рассматриватется его свободная реализация — OpenSSH (http://www.openssh.org).

Подключение к удаленной машине ssh

Для подключения к удаленному хосту следует использовать команду

ssh user@remote_host

где remote_host может быть или IP-адрес или имя удаленного компьютера, user — имя пользователя на удаленном хосте. В случае, если имя пользователя на локальной и удаленной системе совпадает, параметр user можно опустить.

При первом подключении к удаленной системе ssh-клиент потребует сгенерировать ключ:

[test@life]$ ssh mashckoff@linux.kiev.ua
The authenticity of host 'linux.kiev.ua (212.40.43.58)' can't be established.
RSA key fingerprint is 0a:0a:e3:45:8c:74:22:f0:2b:53:77:25:5c:53:54:05.
Are you sure you want to continue connecting (yes/no)?

Если вы уверены, что это отпечаток нужного вам сервера, то следует ответить «yes». В ответ на запрос

mashckoff@ftp.linux.kiev.ua's password:

следует ввести пароль.

Выполнение команд на удаленной машине

Существует возможность с помощью ssh исполнять на удаленном компьютере команды:

ssh user@remote_host имя команды [параметры запуска]

Собственно говоря, единственное отличие такого использования ssh — присутствие в строке имени выполняемой команды и её параметров. Вывод команды будет отображен на локальном терминале.

В следующем примере определим объем свободного ПО на сайте ftp.linux.kiev.ua:

[test@life]$ ssh mashckoff@ftp.linux.kiev.ua du -sh /var/ftp/pub/Linux
421G    /var/ftp/pub/Linux

Использование аутентификации по ключу

Использование ssh позволяет безопасно заходить на удаленные хосты и выполнять на них команды. Однако требование каждый раз вводить пароль не позволяет автоматизировать большинство задач администрирования.

ssh позволяет решить эту проблему — вместо использования аутентификации по паролю можно использовать аутентификацию по ключу.

Для этого прежде всего необходимо сгенерировать пару ключей: публичный и частный. Для этого можно использовать утилиту ssh-keygen.

ssh-keygen -b длина ключа -t тип шифрования

К примеру, команда ssh-keygen -b 2048 -t rsa сгенерирует ключи длиной 2048 бита, тип ключа — RSA протокола 2.

[test@life ~]$ ssh-keygen -b 2048 -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/test/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/test/.ssh/id_rsa.
Your public key has been saved in /home/test/.ssh/id_rsa.pub.
The key fingerprint is:
2e:c5:50:2f:75:14:c1:75:da:e8:3a:1a:56:45:3e:cb test@life.nospam.kiev.ua

Для создания беспарольных ключей на приглашение

Enter passphrase (empty for no passphrase):

следует ответить нажатием Enter. Внимание! Никогда никому не пересылайте секретный ключ, тем более не защищённый паролем!

Настоятельно рекомендуется использование протокола SSH в версии 2. Однако если есть старые серверы, поддерживающие только протокол версии 1, при создании пары ключей следует указать тип -t rsa1. Указав -1 или -2, Вы можете выбрать использование протокола версии 1 или 2 соответственно. При выборе длины ключа следует помнить, что длинный ключ считается более безопасным, однако на старых компьютерах может не хватать вычислительных мощностей для его использования.

Сгенерированные ключи будут расположены в $HOME/.ssh/. Публичный ключ (содержимое файла $HOME/.ssh/id_rsa.pub) следует установить на удаленный хост. Для этого содержимое файла публичного ключа должно быть скопировано или добавлено в файл $HOME/.ssh/authorized_keys2 (для протокола SSH версии 2).

[user@remote ~]$ cat ./id_rsa.pub >>~/.ssh/authorized_keys2
[user@remote ~]$ chmod 600 ~/.ssh/authorized_keys2

Не следует смешивать ключи для различных версий протокола. Для протокола версии 1 используется файл authorized_keys, а для протокола версии 2 — authorized_keys2.

Если публичный ключ установлен правильно, то при подключении будет запрошен Ваш пароль (passphrase); в случае пустого пароля пользователь сможет регистрироваться в системе и выполнять команды без ввода пароля.

Копирование файлов и каталогов с помощью scp

scp (Secure CoPy) применяется для надежного копирования файлов по сети. Для передачи данных используется протокол SSH версии 2, гарантирующий надежную аутентификацию и защищенную передачу данных.

Чтобы скопировать один файл из локального каталога на удаленный компьютер можно воспользоваться командой:

scp /path/to/the/file/file1 user@remote_host:/remotedir/

В этом примере файл file1 копируется из локального каталога на удаленный компьютер remote_host в каталог /remotedir. На удаленной машине будет произведена аутентификация под именем user после чего будет начат процесс копирования. Естественно, возможна и обратная операция — можно скопировать файл с удаленного компьютера в локальный каталог: scp user@remote_host:/remotedir/file /path/to/local/folder/.

Для рекурсивного копирования следует использовать команду с ключом -r. Так, к примеру, команда

[test@life]$ scp -r mashckoff@old.linux.kiev.ua:/home/adiel .

скопирует содержимое домашнего каталога на сайте old.linux.kiev.ua в текущий каталог. Для ограничения скорости закачки следует указать ее после ключа -l (в Кбит/сек).

sftp — безопасный FTP

Программа sftp использует протокол SSH версии 2, что позволяет защитить от прослушивания передаваемые пароли и файлы. Использование sftp не отличается от использования традиционных FTP-клиентов. Так, для соединения с хостом remote_host под именем user следует использовать команду

sftp user@remote_host

Когда sftp установит соедиение и будет готов к выполнению команд, высветится приглашение «sftp>». В справочном руководстве (sftp(1))доступен полный перечень возможных команд, некоторые из них приведем здесь:

quit
Выход из приложения.
cd каталог
Сменить текущий удаленний каталог.
lcd каталог
Сменить текущий локальный каталог.
ls [ -R ] [ -l ] [имя файла ... ]
Показать перечень файлов на удаленном сервере, для каталогов — их содержание. Когда используется ключ -R, дерево каталогов просматривается рекурсивно (по умолчанию подкаталоги запрошенного каталога не видны). С ключом -l отображается дополнительная информация о файлах и каталогах: права, владельцы, размер и дата модификации. В настоящее время ключи -R и -l несовместимы.
lls [ -R ] [ -l ] [имя файла ... ]
Аналог команды ls для локальных файлов.
get имя файла ...
Передает указанные файлы с удаленной точки на локальную. Каталоги рекурсивно копируются с их содержимым.
put имя файла ...
Передает указанные файлы с локальной точки на удаленную. Каталоги рекурсивно копируются с их содержимым.
mkdir имя каталога
Создает каталог (при наличии прав у пользователя).
rmdir имя каталога
Удаляет каталог (при наличии прав у пользователя).

sftp поддерживает шаблоны (wildcards) в командах ls, lls, get, и put.

Команды по управлению сетевым экраном

iptables

Команда iptables является интерфейсом к межсетевому экрану ядра Linux. Эта команда имеет очень большое число параметров, поэтому мы не будем рассматривать их подробно в рамках этих занятий. Подробную информацию можно узнать из руководства по адресу: http://www.opennet.ru/docs/RUS/iptables/.

Программы сетевого обмена

sendmail

Программа sendmail является частью одноимённого SMTP-сервера и позволяет отправлять письма электронной почты. Однако многие другие распространённые почтовые серверы или программы (например, Postfix или ssmtp) предоставляют совместимый с sendmail интерфейс.

По умолчанию sendmail принимает на стандартный ввод тело письма вплоть до получения EOF. Таким образом, при работе в командной строке для завершения ввода текста необходимо нажать Ctrl+D.

Для простейшего использования программы достаточно ключа -t. При этом программа sendmail проанализирует заголовок письма и выберет из него имена и адреса отправителя и получателя письма.

Пример отправления простого письма:

Пример 6.1. Отправление письма с помощью sendmail

user@desktop ~ $ sendmail -t
From: Vasily Poopkin <vas@pupkin.ru>
To: Aleksey Fedoseev <aleksey@fedoseev.net>
Subject: Idea

Hi there!

I'm Vasily, and you're Aleksey.
Super-puper email body.
^D
user@desktop ~ $


Заголовки отделаются от тела письма пустой строкой в соответствии с RFC протокола SMTP.

Параметры команды

Наиболее распространены следующие параметры sendmail:

-F строка
задать полное имя отправителя; этот параметр игнорируется, если в письме был указан заголовок From:;
-f адрес или -r адрес
использовать параметр в качестве адреса отправителя, используемого в обмене с SMTP-сервером (иногда его называют «envelope from»);

После этих ключей можно указать список адресов получателей, на которые будет отправлено данное письмо, например, следующая команда отправит письмо сразу нескольким получателям:

user@desktop ~ $ sendmail -f user@desktop.localnet alice@mails.org bob@mails.org test@fedoseev.net
From: User <user@desktop.localnet>
		    
hello!

This is broadcats message.
^D

Команду sendmail можно с успехом использовать для автоматической генерации почтовых сообщений администратору, если на стандартный ввод команды sendmail подать вывод команды cat или echo:

user@desktop ~ $ cat warning.txt | sendmail admin@localhost

wget

wget — универсальная программа закачки файлов по протоколам HTTP, HTTPS и FTP. При работе с HTML/XML-файлами программа может находить ссылки и переходить по ним, получая полноценную локальную версию сайта.

Команда имеет простой формат:

wget [опции] URL

Например, для загрузки файла достаточно выполнить команду:

user@desktop ~ $ wget ftp://mirror.aiya.ru/pub/ALTLinux/ISO/MD5SUM
--12:27:19--  ftp://mirror.aiya.ru/pub/ALTLinux/ISO/MD5SUM
           => `MD5SUM'
Распознаётся mirror.aiya.ru... 85.142.20.147
Устанавливается соединение с mirror.aiya.ru|85.142.20.147|:21... соединение установлено.
Выполняется вход под именем anonymous ... Выполнен вход в систему!
==> SYST ... готово.  ==> PWD ... готово.
==> TYPE I ... готово.   ==> CWD /pub/ALTLinux/ISO ... готово.
==> PASV ... готово.  ==> RETR MD5SUM ... готово.
Длина: 393 (не достоверно)

100%[=======================================================================>] 393 --.--K/s

12:27:29 (429.29 KB/s) - `MD5SUM' сохранён [393]

Загруженный файл сохраняется в локальном каталоге.

Параметры команды

Команда wget может использоваться со следующими ключами:

-b
запустить программу на заднем плане, вывод при этом перенаправляется в журнал wget;
-q
не выводить информацию на стандартный вывод, удобно для применения в сценариях;
-t число
число попыток загрузки файла;
-c
продолжить закачку для файлов, загруженных частично;
-r
загружать рекурсивно — удобно применять к каталогам или сайтам, которые необходимо загрузить целиком.

Команда обладает множеством параметров, связанных как с процессом закачки, так и со спецификой протоколов. Все они подробно описаны в руководстве wget(1).

Настройка

Команда wget имеет немало настроек, касающихся параметров доступа к хостам, использования прокси-серверов и т. п. Все они хранятся в файле /etc/wget/wgetrc или в файле .wgetrc в домашнем каталоге пользователя.

Резюме

В этом разделе описываются основные команды по управлению и диагностике сети в UNIX.

Ключевые термины: «Вопросы», «Вопросы», «Вопросы», «Вопросы», «Вопросы», «Вопросы», «Вопросы», «Вопросы», «Вопросы», «Вопросы», «Вопросы», «Вопросы», «Вопросы», «Вопросы»

Дополнительные материалы

  1. Курячий Г.В. Операционная система UNIX. — М.:Интуит.Ру, 2004. — 292 с.: ил.
  2. Рейчардс К., Фостер-Джонсон Э. UNIX: справочник. — СПб.: Питер Ком, 1999. — 384 с.: ил.
  3. Автоматизация системного администрирования с помощью ssh и scp — http://www.linuxfocus.org/Russian/January2003/article278.shtml
  4. Руководство по iptables — http://www.opennet.ru/docs/RUS/iptables/.