Size: 14084
Comment:
|
Size: 16938
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 5: | Line 5: |
У нас сейчас у нас есть две доступные машины. На одной, которая называется demo, имеется половинка сетевого интерфейса, у которой одна половинка есть, а другого нету. '''''C другой стороны стоит виртуалбокс, который генерирует пакеты как обычное сетевое приложение.''''' Второй интерфейс --- внутренний. А у Linux Lite (который второй) есть только внутренний интерфейс и всё. Вот для него-то мы и будем создавать доступ в интернет а также попытаемся ограничить этот самый доступ . Сформируем задачу: мы хотим сделать две вещи: 0. Чтобы отсюда работал какой-то интернет. Для начала настроим его руками. Для этого нужно связать две имеющиеся у нас машины, сделать demo фильтром пакетов и сделать там {{http://ru.wikipedia.org/wiki/NAT|NAT}}(network address translanion) 0. Поупражняться с фильтрацией, чтобы посмотреть, как iptables добавляет правила для фильтрации в разных местах. Для начала выберем какую-то сеть внутреннего диапазона. И возьмем себе аддрес из этого диапазона. Пусть это будет 172.16.0.2 с маской 255.255.255.0 (172.16.0.1 -- адрес для нашего "сервера". Конечно не обязательно делать так. Можно назначать любые адреса из диапазона, но принято делать именно так.). {{{ # ip addr add 172.16.0.2/24 dev eth0 }}} А на demo, если сказать ip a, увидим, что сработал конфигуратор по умолчанию (zeroconf). {{{ # ip a |
Покажем, как настроить iptables для решения простейших задач. Пусть у нас есть две доступные машины. На одной, которая называется demo, имеется два сетевых интерфейса, через один из которых она имеет доступ в Интернет. Второй интерфейс --- внутренний. А у второй машины под названием lite есть только внутренний интерфейс и всё. Для него мы будем создавать доступ в интернет, а также попытаемся ограничить этот доступ. ##''(Я опять не знаю что в этом случае делать. Мы рассказываем, что у нас стоит виртуальная машина, или нет? SergeyKorobkov)'' ##Решил не говорить про виртуалку. -- VladimirLysikov <<DateTime(2008-07-13T23:09:02Z)>> ##Добавил везде root@<имя машины>, потому что команды исполняются на разных машинах, их надо различать. -- VladimirLysikov <<DateTime(2008-07-13T23:09:02Z)>> Сформулируем задачу. Мы хотим сделать две вещи: * Вторая машина должна получить доступ в ИНтернет. Для этого нужно связать две имеющиеся у нас машины, сделать demo фильтром пакетов и сделать там NAT(network address translation) * Поупражняться с фильтрацией, чтобы посмотреть, как iptables добавляет правила для фильтрации в разных местах. Для начала выберем какую-то сеть внутреннего диапазона. И назначим второй машине адрес из этого диапазона. Пусть это будет 172.16.0.2 с маской 255.255.255.0 (172.16.0.1 -- адрес для нашего "сервера". Конечно, не обязательно так делать, можно назначить для маршрутизатора любой адрес, но принято присваивать ему первый адрес в диапазоне). {{{ root@lite# ip addr add 172.16.0.2/24 dev eth0 }}} А на demo, если дать команду ip a, мы увидим, что сработал конфигуратор по умолчанию (zeroconf). {{{ root@demo# ip a |
Line 32: | Line 38: |
# mkdir /etc/net/ifaces/eth1 # cd /etc/net/ifaces/eth1 # echo "172.16.0.1/24" > ipv4address # cat > options |
root@demo# mkdir /etc/net/ifaces/eth1 root@demo# cd /etc/net/ifaces/eth1 root@demo# echo "172.16.0.1/24" > ipv4address root@demo# cat > options |
Line 38: | Line 44: |
# service network restart }}} Прверим результат действий: {{{ # ip a |
root@demo# service network restart }}} Проверим результат этих действий: {{{ root@demo# ip a |
Line 53: | Line 59: |
# ip r | root@demo# ip r |
Line 59: | Line 65: |
Возвращаемся на localhost и проверяем: {{{ #ping 172.16.0.1 |
Итак, наша машине demo имеет адрес 10.0.2.15 во внешней сети и 172.16.0.1 во внутренней. Также на ней правильно настроен роутинг для этих сетей. Возвращаемся на lite и проверяем: {{{ root@lite# ping 172.16.0.1 |
Line 76: | Line 84: |
Добавляем маршрут по умолчанию (сейчас прописан только маршрут до компьютеров нашей внутренней подсети): {{{ ip route add default via 172.16.0.1 |
Добавляем на lite маршрут по умолчанию (сейчас прописан только маршрут до компьютеров нашей внутренней подсети): {{{ root@lite# ip route add default via 172.16.0.1 |
Line 83: | Line 91: |
# netcat 80.68.240.144 80 | root@lite# netcat 80.68.240.144 80 |
Line 88: | Line 96: |
# apt-get install tcpdump | root@demo# apt-get install tcpdump |
Line 92: | Line 100: |
Теперь запустим tcpdump на сервере, на другой машине netcat. Мы видим, что наш компьютер туда ломится через сервер, но сервер не пересылает эти приходящие к нему пакеты, и поэтому он не может достучатся до туда. Убедимся, что пакеты не проходят: tcpdump -i eth0 host 80.68.240.144 {{{ # tcpdump -i eth1 |
Теперь запустим tcpdump на сервере, на другой машине netcat. Мы видим, что c адреса 172.16.0.2 идут пакеты на указанный адрес, но сервер не пересылает эти приходящие к нему пакеты, и поэтому мы не можем получить доступ к сайту с машины lite. Убедимся, что пакеты не проходят: tcpdump -i eth0 host 80.68.240.144 {{{ root@demo# tcpdump -i eth1 |
Line 117: | Line 124: |
Пакеты не идут потому, что машина не работает в режиме маршрутизатора. Как включить режим маршрутизации: {{{ # cd /etc/net/ # grep forward sysctl.conf |
Пакеты не проходят потому, что машина demo не работает в режиме маршрутизатора. Для того, чтобы включить режим марщрутизации, нужно заменить значение параметра net.ipv4.ip_forward в файле /etc/net/sysctl.conf с 0 на 1. {{{ root@demo# cd /etc/net/ root@demo# grep forward sysctl.conf |
Line 123: | Line 131: |
# sed -i '/net.icv4.ip_forward = 0/s/0/1/' # grep forward sysctl.conf |
root@demo# sed -i '/net.icv4.ip_forward = 0/s/0/1/' root@demo# grep forward sysctl.conf |
Line 128: | Line 136: |
В пятой строчке этого кода использовалась команда ''sed'' которая используется преобразования текстовых фаилов. В этой команде используются регулярные выражения. В данной команде указано что нужно найти строчку содержащую ''net.icv4.ip_forward = 0'' и в ней заменить 0 на 1.При желании и должном терпении это конечно можно сделать вручную. После этого маршрутизация работает, но преобразования ip не происходит и поэтому ответов не приходит. Для того, чтобы это заработало, нужен NAT: {{{ # iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source=10.0.2.15 |
В пятой строчке этого кода использовалась команда ''sed'' которая используется для преобразования текстовых фаилов. В этой команде используются регулярные выражения. В данной команде указано, что нужно найти строчку содержащую ''net.icv4.ip_forward = 0'' и в ней заменить 0 на 1.При желании это, конечно, можно сделать вручную. После этого маршрутизация работает, но преобразования ip не происходит, поэтому ответы от 80.68.240.144 не приходят. Для того, чтобы мы могли получать ответы, нужен NAT: {{{ root@demo# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source=10.0.2.15 |
Line 135: | Line 143: |
Что в результате получилось? Эта утилита (iptables) предназначена для редактирования тех самых таблиц. -t --- таблица, -A --- команда (добавить), -o указывает, какой интерфейс используется при переадресации, -j --- действе, которое надо произвести. Скажем iptables-save, чтобы посмотреть что в действительности произошло с нашими таблицами. Можно также сказать iptables -t nat -L -nvx. {{{ # iptables-save |
Что в результате получилось? Утилита iptables предназначена для редактирования тех самых таблиц. Параметры этой утилиты: -t --- таблица, -A --- команда (добавить), -o указывает, какой интерфейс используется при переадресации, -j --- действие, которое надо произвести. Далее дадим команду iptables-save, чтобы посмотреть что в действительности произошло с нашими таблицами. Для этого также можно использовать команду iptables -t nat -L -nvx. {{{ root@demo# iptables-save |
Line 163: | Line 171: |
# iptables -t nat -L -nvx | root@demo# iptables -t nat -L -nvx |
Line 175: | Line 183: |
iptables-save выдаёт все цепочки отсортированные по принадлежности к тем или иным типам таблиц (?), iptables -L выдаёт правила цепочек в том порядке в котором они исполняются, но только для одного типа таблицы. В выводах обоих комманд видно что наше правило добавилось. После этого должно заработать. Теперь посмотрим, какая активность. Сначала на внешнем, потом на внутреннем. {{{ # tcpdump -i eth0 host 80.68.240.144 [root@demo net]# tcpdump -[1@-[1@n[1@ |
iptables-save выдаёт все цепочки отсортированные по принадлежности к типам таблиц, iptables -L выдаёт правила цепочек в том порядке в котором они исполняются, но только для одного типа таблицы. В выводах обоих комманд видно что наше правило добавилось. После этого должен работать NAT. Теперь посмотрим, работает ли это на самом деле. Запускаем tcpdump сначала на внешнем интерфейсе, потом на внутреннем: {{{ root@demo# tcpdump -i eth1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes 18:00:32.777207 IP 172.16.0.2.4471 > 192.168.200.117.webcache: S 2740685371:2740685371(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 2> 18:00:35.798593 IP 172.16.0.2.4471 > 192.168.200.117.webcache: S 2740685371:2740685371(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 2> 18:00:35.968782 IP demo.local.5353 > 224.0.0.251.5353: 0 PTR (QM)? 117.200.168.192.in-addr.arpa. (46) 18:00:37.822276 arp who-has demo.local tell 172.16.0.2 18:00:37.822365 arp reply demo.local is-at 08:00:27:7f:75:e2 (oui Unknown) 18:00:41.818490 IP 172.16.0.2.4471 > 192.168.200.117.webcache: S 2740685371:2740685371(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 2> 18:00:53.803214 IP 172.16.0.2.4471 > 192.168.200.117.webcache: S 2740685371:2740685371(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 2> 18:01:17.798826 IP 172.16.0.2.4471 > 192.168.200.117.webcache: S 2740685371:2740685371(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 2> 18:01:22.825093 arp who-has demo.local tell 172.16.0.2 18:01:22.825233 arp reply demo.local is-at 08:00:27:7f:75:e2 (oui Unknown) 18:02:05.822643 IP 172.16.0.2.4471 > 192.168.200.117.webcache: S 2740685371:2740685371(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 2> 18:02:10.810226 arp who-has demo.local tell 172.16.0.2 18:02:10.810354 arp reply demo.local is-at 08:00:27:7f:75:e2 (oui Unknown) 13 packets captured 13 packets received by filter 0 packets dropped by kernel }}} {{{ root@demo# tcpdump -i eth0 host 80.68.240.144 |
Line 201: | Line 230: |
Обратите внимание, что произошла подмена адресов. Если сделаем tcpdump -i eth1, то увидем тот же трафик, но с непоменяным адресом. | Обратите внимание, что произошла подмена адресов. Таким образом, мы настроили компьютер для работы в качестве простейшего маршрутизатора. |
Line 210: | Line 239: |
|| 10 || 1 || 1 || 1 || || 1 || SergeyKorobkov, VladimirLysikov || || || | || 20 || 1 || 1 || 1 || || 1 || SergeyKorobkov, VladimirLysikov || || || |
Практика использования iptables
Покажем, как настроить iptables для решения простейших задач.
Пусть у нас есть две доступные машины. На одной, которая называется demo, имеется два сетевых интерфейса, через один из которых она имеет доступ в Интернет. Второй интерфейс --- внутренний. А у второй машины под названием lite есть только внутренний интерфейс и всё. Для него мы будем создавать доступ в интернет, а также попытаемся ограничить этот доступ.
Сформулируем задачу. Мы хотим сделать две вещи:
- Вторая машина должна получить доступ в ИНтернет. Для этого нужно связать две имеющиеся у нас машины, сделать demo фильтром пакетов и сделать там NAT(network address translation)
- Поупражняться с фильтрацией, чтобы посмотреть, как iptables добавляет правила для фильтрации в разных местах.
Для начала выберем какую-то сеть внутреннего диапазона. И назначим второй машине адрес из этого диапазона. Пусть это будет 172.16.0.2 с маской 255.255.255.0 (172.16.0.1 -- адрес для нашего "сервера". Конечно, не обязательно так делать, можно назначить для маршрутизатора любой адрес, но принято присваивать ему первый адрес в диапазоне).
root@lite# ip addr add 172.16.0.2/24 dev eth0
А на demo, если дать команду ip a, мы увидим, что сработал конфигуратор по умолчанию (zeroconf).
root@demo# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 08:00:27:50:7a:b1 brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 08:00:27:7f:75:e2 brd ff:ff:ff:ff:ff:ff inet 169.254.8.10/16 brd 169.254.255.255 scope global eth1:avahi
Создадим в /etc/net конфигурацию для eth1 и перезапустим сеть:
root@demo# mkdir /etc/net/ifaces/eth1 root@demo# cd /etc/net/ifaces/eth1 root@demo# echo "172.16.0.1/24" > ipv4address root@demo# cat > options DISABLED=no BOOTPROTO=static root@demo# service network restart
Проверим результат этих действий:
root@demo# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 08:00:27:50:7a:b1 brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 08:00:27:7f:75:e2 brd ff:ff:ff:ff:ff:ff inet 172.16.0.1/24 brd 172.16.0.255 scope global eth1 root@demo# ip r 172.16.0.0/24 dev eth1 proto kernel scope link src 172.16.0.1 10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15 default via 10.0.2.2 dev eth0
Итак, наша машине demo имеет адрес 10.0.2.15 во внешней сети и 172.16.0.1 во внутренней. Также на ней правильно настроен роутинг для этих сетей.
Возвращаемся на lite и проверяем:
root@lite# ping 172.16.0.1 PING 172.16.0.1 (172.16.0.1) 56(84) bytes of data. 64 bytes from 172.16.0.1: icmp_seq=1 ttl=64 time=36.5 ms 64 bytes from 172.16.0.1: icmp_seq=2 ttl=64 time=19.6 ms 64 bytes from 172.16.0.1: icmp_seq=3 ttl=64 time=3.57 ms 64 bytes from 172.16.0.1: icmp_seq=4 ttl=64 time=16.9 ms 64 bytes from 172.16.0.1: icmp_seq=5 ttl=64 time=5.05 ms 64 bytes from 172.16.0.1: icmp_seq=6 ttl=64 time=3.86 ms 64 bytes from 172.16.0.1: icmp_seq=7 ttl=64 time=5.37 ms --- 172.16.0.1 ping statistics --- 7 packets transmitted, 7 received, 0% packet loss, time 6014ms rtt min/avg/max/mdev = 3.571/13.014/36.595/11.405 ms
Добавляем на lite маршрут по умолчанию (сейчас прописан только маршрут до компьютеров нашей внутренней подсети):
root@lite# ip route add default via 172.16.0.1
Но при этом маршрутизация не работает. Это можно увидеть попробовав зайти на какой-нибудь сайт при помощи команды netcat:
root@lite# netcat 80.68.240.144 80
Доустановим пакет tcpdump (для этого должен быть включён какой-нибудь репозиторий --- updates или branch)
root@demo# apt-get install tcpdump
Этот пакет необходим для просмотра пакетов проходящих через сетевые интерфейсы нашего компьютера.
Теперь запустим tcpdump на сервере, на другой машине netcat. Мы видим, что c адреса 172.16.0.2 идут пакеты на указанный адрес, но сервер не пересылает эти приходящие к нему пакеты, и поэтому мы не можем получить доступ к сайту с машины lite. Убедимся, что пакеты не проходят: tcpdump -i eth0 host 80.68.240.144
root@demo# tcpdump -i eth1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes 18:00:32.777207 IP 172.16.0.2.4471 > 192.168.200.117.webcache: S 2740685371:2740685371(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 2> 18:00:35.798593 IP 172.16.0.2.4471 > 192.168.200.117.webcache: S 2740685371:2740685371(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 2> 18:00:35.968782 IP demo.local.5353 > 224.0.0.251.5353: 0 PTR (QM)? 117.200.168.192.in-addr.arpa. (46) 18:00:37.822276 arp who-has demo.local tell 172.16.0.2 18:00:37.822365 arp reply demo.local is-at 08:00:27:7f:75:e2 (oui Unknown) 18:00:41.818490 IP 172.16.0.2.4471 > 192.168.200.117.webcache: S 2740685371:2740685371(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 2> 18:00:53.803214 IP 172.16.0.2.4471 > 192.168.200.117.webcache: S 2740685371:2740685371(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 2> 18:01:17.798826 IP 172.16.0.2.4471 > 192.168.200.117.webcache: S 2740685371:2740685371(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 2> 18:01:22.825093 arp who-has demo.local tell 172.16.0.2 18:01:22.825233 arp reply demo.local is-at 08:00:27:7f:75:e2 (oui Unknown) 18:02:05.822643 IP 172.16.0.2.4471 > 192.168.200.117.webcache: S 2740685371:2740685371(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 2> 18:02:10.810226 arp who-has demo.local tell 172.16.0.2 18:02:10.810354 arp reply demo.local is-at 08:00:27:7f:75:e2 (oui Unknown) 13 packets captured 13 packets received by filter 0 packets dropped by kernel
Пакеты не проходят потому, что машина demo не работает в режиме маршрутизатора. Для того, чтобы включить режим марщрутизации, нужно заменить значение параметра net.ipv4.ip_forward в файле /etc/net/sysctl.conf с 0 на 1.
root@demo# cd /etc/net/ root@demo# grep forward sysctl.conf # IPv4 packet forwarding. net.ipv4.ip_forward = 0 root@demo# sed -i '/net.icv4.ip_forward = 0/s/0/1/' root@demo# grep forward sysctl.conf # IPv4 packet forwarding. net.ipv4.ip_forward = 1
В пятой строчке этого кода использовалась команда sed которая используется для преобразования текстовых фаилов. В этой команде используются регулярные выражения. В данной команде указано, что нужно найти строчку содержащую net.icv4.ip_forward = 0 и в ней заменить 0 на 1.При желании это, конечно, можно сделать вручную.
После этого маршрутизация работает, но преобразования ip не происходит, поэтому ответы от 80.68.240.144 не приходят. Для того, чтобы мы могли получать ответы, нужен NAT:
root@demo# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to-source=10.0.2.15
Что в результате получилось? Утилита iptables предназначена для редактирования тех самых таблиц. Параметры этой утилиты: -t --- таблица, -A --- команда (добавить), -o указывает, какой интерфейс используется при переадресации, -j --- действие, которое надо произвести. Далее дадим команду iptables-save, чтобы посмотреть что в действительности произошло с нашими таблицами. Для этого также можно использовать команду iptables -t nat -L -nvx.
root@demo# iptables-save # Generated by iptables-save v1.3.7 on Tue Jul 8 18:17:08 2008 *mangle :PREROUTING ACCEPT [428:365625] :INPUT ACCEPT [394:361829] :FORWARD ACCEPT [7:296] :OUTPUT ACCEPT [278:27722] :POSTROUTING ACCEPT [361:43691] COMMIT # Completed on Tue Jul 8 18:17:08 2008 # Generated by iptables-save v1.3.7 on Tue Jul 8 18:17:08 2008 *nat :PREROUTING ACCEPT [36:4238] :POSTROUTING ACCEPT [30:2757] :OUTPUT ACCEPT [29:2705] -A POSTROUTING -o eth0 -j SNAT --to-source 10.0.2.15 COMMIT # Completed on Tue Jul 8 18:17:08 2008 # Generated by iptables-save v1.3.7 on Tue Jul 8 18:17:08 2008 *filter :INPUT ACCEPT [65:29557] :FORWARD ACCEPT [7:296] :OUTPUT ACCEPT [69:10645] :stdin - [0:0] COMMIT # Completed on Tue Jul 8 18:17:08 2008 root@demo# iptables -t nat -L -nvx Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination SNAT 0 -- anywhere anywhere to:10.0.2.15 Chain OUTPUT (policy ACCEPT) target prot opt source destination
iptables-save выдаёт все цепочки отсортированные по принадлежности к типам таблиц, iptables -L выдаёт правила цепочек в том порядке в котором они исполняются, но только для одного типа таблицы. В выводах обоих комманд видно что наше правило добавилось. После этого должен работать NAT.
Теперь посмотрим, работает ли это на самом деле. Запускаем tcpdump сначала на внешнем интерфейсе, потом на внутреннем:
root@demo# tcpdump -i eth1 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes 18:00:32.777207 IP 172.16.0.2.4471 > 192.168.200.117.webcache: S 2740685371:2740685371(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 2> 18:00:35.798593 IP 172.16.0.2.4471 > 192.168.200.117.webcache: S 2740685371:2740685371(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 2> 18:00:35.968782 IP demo.local.5353 > 224.0.0.251.5353: 0 PTR (QM)? 117.200.168.192.in-addr.arpa. (46) 18:00:37.822276 arp who-has demo.local tell 172.16.0.2 18:00:37.822365 arp reply demo.local is-at 08:00:27:7f:75:e2 (oui Unknown) 18:00:41.818490 IP 172.16.0.2.4471 > 192.168.200.117.webcache: S 2740685371:2740685371(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 2> 18:00:53.803214 IP 172.16.0.2.4471 > 192.168.200.117.webcache: S 2740685371:2740685371(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 2> 18:01:17.798826 IP 172.16.0.2.4471 > 192.168.200.117.webcache: S 2740685371:2740685371(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 2> 18:01:22.825093 arp who-has demo.local tell 172.16.0.2 18:01:22.825233 arp reply demo.local is-at 08:00:27:7f:75:e2 (oui Unknown) 18:02:05.822643 IP 172.16.0.2.4471 > 192.168.200.117.webcache: S 2740685371:2740685371(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 2> 18:02:10.810226 arp who-has demo.local tell 172.16.0.2 18:02:10.810354 arp reply demo.local is-at 08:00:27:7f:75:e2 (oui Unknown) 13 packets captured 13 packets received by filter 0 packets dropped by kernel
root@demo# tcpdump -i eth0 host 80.68.240.144 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 18:22:35.220616 IP 10.0.2.15.4802 > 80.68.240.144.http: S 4121055896:4121055896(0) win 5840 <mss 1460,nop,nop,sackOK,nop,wscale 2> 18:22:35.227257 IP 80.68.240.144.http > 10.0.2.15.4802: S 389504001:389504001(0) ack 4121055897 win 8192 <mss 1460> 18:22:35.232999 IP 10.0.2.15.4802 > 80.68.240.144.http: . ack 1 win 5840 18:22:36.160388 IP 10.0.2.15.4802 > 80.68.240.144.http: P 1:2(1) ack 1 win 5840 18:22:36.161985 IP 80.68.240.144.http > 10.0.2.15.4802: . ack 2 win 8760 18:22:43.145085 IP 10.0.2.15.4802 > 80.68.240.144.http: P 2:7(5) ack 1 win 5840 18:22:43.145817 IP 80.68.240.144.http > 10.0.2.15.4802: . ack 7 win 8760 18:22:43.153304 IP 80.68.240.144.http > 10.0.2.15.4802: P 1:217(216) ack 7 win 8760 18:22:43.153570 IP 80.68.240.144.http > 10.0.2.15.4802: F 217:217(0) ack 7 win 8760 18:22:43.156774 IP 10.0.2.15.4802 > 80.68.240.144.http: . ack 217 win 6432 18:22:43.160685 IP 10.0.2.15.4802 > 80.68.240.144.http: F 7:7(0) ack 218 win 6432 18:22:43.164320 IP 80.68.240.144.http > 10.0.2.15.4802: . ack 8 win 8760 12 packets captured 12 packets received by filter 0 packets dropped by kernel
Обратите внимание, что произошла подмена адресов. Таким образом, мы настроили компьютер для работы в качестве простейшего маршрутизатора.
Сведения о ресурсах
Готовность (%) |
Продолжительность (ак. ч.) |
Подготовка (календ. ч.) |
Полный текст (раб. д.) |
Предварительные знания |
Level |
Maintainer |
Start date |
End date |
20 |
1 |
1 |
1 |
|
1 |
|
|