# 네트워크 · TLS — what to reach for first ## HTTP ```bash curl -I # 한 번 볼 때 curl -v # 헤더 · TLS 협상까지 curl -s -o /dev/null -w '%{http_code}\n' # 여러 번 재서 비교할 때만 ``` `-w` 형태는 측정용이다. 눈으로 한 번 볼 때는 `-I` 나 `-v` 로 충분하다. ## 이름 해석 ```bash dig +short getent hosts # /etc/hosts 와 NSS 순서까지 반영된 결과 ``` ## TLS ```bash echo | openssl s_client -connect :443 -servername 2>/dev/null \ | openssl x509 -noout -subject -issuer -dates -ext subjectAltName echo | openssl s_client -connect :443 -servername 2>/dev/null \ | grep -E '^ *[0-9]+ s:|^ *i:|Verify return code' ``` 체인 단계가 1개면 `cert.pem` 을 쓴 것이다. `fullchain.pem` 이어야 한다. 발급 시각의 외부 기준이 필요하면 SCT 를 본다. ```bash … | openssl x509 -noout -ext ct_precert_scts ``` ## 연결 추적 ```bash sudo conntrack -L | grep sudo conntrack -C cat /proc/sys/net/netfilter/nf_conntrack_tcp_timeout_established # 보통 86400 ``` `ESTABLISHED` 는 대부분의 방화벽 규칙 평가를 건너뛴다. 규칙을 넣었는데 아무 일도 없으면 여기를 먼저 본다. ## 방화벽 규칙 ```bash sudo iptables -S FORWARD # 순서가 중요하다 — 내 규칙이 몇 번째인가 sudo iptables -L FORWARD -v -n # 카운터가 0 이면 도달하지 않았다 sudo iptables -t raw -S PREROUTING # conntrack 보다 먼저 잡는 자리 ``` ## 패킷 ```bash sudo tcpdump -i -n port

-c 20 ``` 오버레이 네트워크(flannel VXLAN 등)에서는 물리 인터페이스에 안쪽 IP 가 안 보인다. `flannel.1` 같은 터널 인터페이스에서 잡는다. ## 시계 ```bash timedatectl show -p NTP -p NTPSynchronized A=$(date -u +%s.%N); B=$(ssh 'date -u +%s.%N'); C=$(date -u +%s.%N) curl -sI https://www.google.com | grep -i '^date:' # 어느 쪽이 맞는지 외부 기준 ``` 두 기계의 로그를 나란히 놓기 전에 확인한다.