Road to sysadmin: различия между версиями
Материал из lulzette's wiki
Losted (обсуждение | вклад) Нет описания правки |
Losted (обсуждение | вклад) |
||
Строка 4: | Строка 4: | ||
= TCP и сети = | = TCP и сети = | ||
[https://mikrotik.wiki/wiki/%D0%A2%D0%B5%D0%BE%D1%80%D0%B8%D1%8F:%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB%D1%8B:TCP Хорошо описано в вики микротика!] | |||
* New – Новое соединение. Пакет, открывающий новое соединение, никак не связанное с уже имеющимися сетевыми соединениями, обрабатываемыми в данный момент маршрутизатором. | * New – Новое соединение. Пакет, открывающий новое соединение, никак не связанное с уже имеющимися сетевыми соединениями, обрабатываемыми в данный момент маршрутизатором. | ||
Строка 10: | Строка 12: | ||
* Invalid – Маршрутизатор не может соотнести пакет ни с одним из вышеперечисленных состояний соединения. | * Invalid – Маршрутизатор не может соотнести пакет ни с одним из вышеперечисленных состояний соединения. | ||
== Табличка == | |||
{| class="wikitable" text-align: left" | |||
!colspan="2" | Состояния сеанса TCP | |||
|- | |||
|width="120px"|'''CLOSED''' | |||
|Начальное состояние узла. Фактически фиктивное | |||
|- | |||
|'''LISTEN''' | |||
|Сервер ожидает запросов установления соединения от клиента | |||
|- | |||
|'''SYN-SENT''' | |||
|Клиент отправил запрос серверу на установление соединения и ожидает ответа | |||
|- | |||
|'''SYN-RECEIVED''' | |||
|Сервер получил запрос на соединение, отправил ответный запрос и ожидает подтверждения | |||
|- | |||
|'''ESTABLISHED''' | |||
|Соединение установлено, идёт передача данных | |||
|- | |||
|'''FIN-WAIT-1''' | |||
|Одна из сторон (назовём её узел-1) завершает соединение, отправив сегмент с флагом FIN | |||
|- | |||
|'''CLOSE-WAIT''' | |||
|Другая сторона (узел-2) переходит в это состояние, отправив, в свою очередь сегмент ACK и продолжает одностороннюю передачу | |||
|- | |||
|'''FIN-WAIT-2''' | |||
|Узел-1 получает ACK, продолжает чтение и ждёт получения сегмента с флагом FIN | |||
|- | |||
|'''LAST-ACK''' | |||
|Узел-2 заканчивает передачу и отправляет сегмент с флагом FIN | |||
|- | |||
|'''TIME-WAIT''' | |||
|Узел-1 получил сегмент с флагом FIN, отправил сегмент с флагом ACK и ждёт 2*MSL секунд, перед окончательным закрытием соединения | |||
|- | |||
|'''CLOSING''' | |||
|Обе стороны инициировали закрытие соединения одновременно: после отправки сегмента с флагом FIN узел-1 также получает сегмент FIN, отправляет ACK и находится в ожидании сегмента ACK (подтверждения на свой запрос о разъединении) | |||
|- | |||
|} | |||
= tcpdump = | = tcpdump = |
Версия от 08:32, 3 января 2021
iptables
TCP и сети
Хорошо описано в вики микротика!
- New – Новое соединение. Пакет, открывающий новое соединение, никак не связанное с уже имеющимися сетевыми соединениями, обрабатываемыми в данный момент маршрутизатором.
- Established – Существующее соединение. Пакет относится у уже установленному соединению, обрабатываемому в данный момент маршрутизатором.
- Related – Связанное соединение. Пакет, который связан с существующим соединением, но не является его частью. Например, пакет, который начинает соединение передачи данных в FTP-сессии (он будет связан с управляющим соединением FTP), или пакет ICMP, содержащий ошибку, отправляемый в ответ на другое соединение.
- Invalid – Маршрутизатор не может соотнести пакет ни с одним из вышеперечисленных состояний соединения.
Табличка
Состояния сеанса TCP | |
---|---|
CLOSED | Начальное состояние узла. Фактически фиктивное |
LISTEN | Сервер ожидает запросов установления соединения от клиента |
SYN-SENT | Клиент отправил запрос серверу на установление соединения и ожидает ответа |
SYN-RECEIVED | Сервер получил запрос на соединение, отправил ответный запрос и ожидает подтверждения |
ESTABLISHED | Соединение установлено, идёт передача данных |
FIN-WAIT-1 | Одна из сторон (назовём её узел-1) завершает соединение, отправив сегмент с флагом FIN |
CLOSE-WAIT | Другая сторона (узел-2) переходит в это состояние, отправив, в свою очередь сегмент ACK и продолжает одностороннюю передачу |
FIN-WAIT-2 | Узел-1 получает ACK, продолжает чтение и ждёт получения сегмента с флагом FIN |
LAST-ACK | Узел-2 заканчивает передачу и отправляет сегмент с флагом FIN |
TIME-WAIT | Узел-1 получил сегмент с флагом FIN, отправил сегмент с флагом ACK и ждёт 2*MSL секунд, перед окончательным закрытием соединения |
CLOSING | Обе стороны инициировали закрытие соединения одновременно: после отправки сегмента с флагом FIN узел-1 также получает сегмент FIN, отправляет ACK и находится в ожидании сегмента ACK (подтверждения на свой запрос о разъединении) |
tcpdump
Простая штука с помощью которой можно анализировать трафик.
-n
- IP вместо DNS
- src/dst/host - хост
- [src/dst] port - порт
- ether broadcast - бродкасты
- icmp - icmp
cool stuff: https://hackertarget.com/tcpdump-examples/
strace
strace -e *syscall*
- вывести только вызовы определенного syscall