테스트 터널 - tcpdump?

테스트 터널 - tcpdump?

서버에 다음과 같은 stunnel 구성이 있습니다.

chroot = /var/run/stunnel
setuid = nobody
setgid = nobody

pid = /stunnel.pid

cert = /etc/stunnel/stunnel.pem
key = /etc/stunnel/stunnel.pem
client = no

[https]
accept = 443
connect = 10051

고객:

chroot = /var/run/stunnel
setuid = nobody
setgid = nobody

pid = /stunnel.pid

cert = /etc/stunnel/stunnel.pem
key = /etc/stunnel/stunnel.pem
client = yes

[https]
accept = 127.0.0.1:10051
connect = 10.0.10.116:443

각 머신에서 "sudo stunnel"을 실행하면 오류가 발생하지 않습니다. 터널을 테스트하기 위해 클라이언트에서 다음 명령을 실행하면 아무것도 얻지 못합니까?

tcpdump port 10051 -n -vvvv

다음은:

echo "blah" > nc localhost 10051

"tcpdump"를 오용하고 있습니까? 이것을 테스트할 수 있는 다른 방법이 있나요? 센토스7을 사용하고 있습니다. 서버 IP 주소는 10.0.10.116이고 클라이언트 IP 주소는 10.0.10.27입니다. 이는 자체 서명된 인증서를 사용한 테스트 랩 설정입니다.

sudo를 사용하여 위의 tcpdump 명령을 실행하는 경우 다음을 추가해야 합니다.

sudo tcpdump port 10051 -n -vvvv

다음 메시지가 표시되고 아무 것도 표시되지 않습니다.

tcpdump: NFLOG link-layer type filtering not implemented

이것이 나에게 무엇을 말하는지 잘 모르시겠습니까?

답변1

좋아, 몇 주 동안 작업을 완료했습니다. tcpdump를 사용하는 대신 ssh를 사용하기로 결정했습니다. 그래서 서버의 연결을 다음과 같이 변경했습니다.

...
[https]
accept =  443
connect = 22
...

그런 다음 입력합니다.

ssh localhost -p 10051

돌아왔다

chuck@scorch:~$ ssh chuck@localhost -p 10051
The authenticity of host '[localhost]:10051 ([127.0.0.1]:10051)' can't be 
established.
ECDSA key fingerprint is SHA256:DcEUrtP7I5KJqaZIfsTK+2lNB8AF00Je97z9obNneac.
Are you sure you want to continue connecting (yes/no)? y
Please type 'yes' or 'no': yes
Warning: Permanently added '[localhost]:10051' (ECDSA) to the list of known 
hosts.
chuck@localhost's password:
Welcome to Ubuntu 17.04 (GNU/Linux 4.10.0-19-generic x86_64)
 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
 * What are your preferred Linux desktop apps?  Help us set the default
desktop apps in Ubuntu 18.04 LTS:
- https://ubu.one/apps1804

11 packages can be updated.
8 updates are security updates.


Last login: Tue Oct  3 15:36:24 2017 from 10.0.10.60
chuck@ion:~$

이제 로그인에 "ion"이 표시됩니다. 이를 https로 SSH를 통해 서버로 포팅했습니다. 로그 표시

2017.10.03 15:38:00 LOG7[0]: Service [https] started
2017.10.03 15:38:00 LOG7[0]: Option TCP_NODELAY set on local socket
2017.10.03 15:38:00 LOG5[0]: Service [https] accepted connection from   
10.0.10.27:36976
2017.10.03 15:38:00 LOG6[0]: Peer certificate not required
2017.10.03 15:38:00 LOG7[0]: TLS state (accept): before/accept 
initialization
2017.10.03 15:38:00 LOG7[0]: Get session callback
2017.10.03 15:38:00 LOG7[0]: SNI: no virtual services defined
2017.10.03 15:38:00 LOG7[0]: New session callback
2017.10.03 15:38:00 LOG7[0]:      1 server accept(s) requested
2017.10.03 15:38:00 LOG7[0]:      1 server accept(s) succeeded
2017.10.03 15:38:00 LOG7[0]:      0 server renegotiation(s) requested
2017.10.03 15:38:00 LOG7[0]:      0 session reuse(s)
2017.10.03 15:38:00 LOG7[0]:      0 internal session cache item(s)
2017.10.03 15:38:00 LOG7[0]:      0 internal session cache fill-up(s)
2017.10.03 15:38:00 LOG7[0]:      1 internal session cache miss(es)
2017.10.03 15:38:00 LOG7[0]:      0 external session cache hit(s)
2017.10.03 15:38:00 LOG7[0]:      0 expired session(s) retrieved
2017.10.03 15:38:00 LOG6[0]: TLS accepted: new session negotiated
2017.10.03 15:38:00 LOG6[0]: No peer certificate received
2017.10.03 15:38:00 LOG6[0]: Negotiated TLSv1.2 ciphersuite ECDHE-RSA-
AES256-GCM-SHA384 (256-bit encryption)
2017.10.03 15:38:00 LOG7[0]: Compression: null, expansion: null
2017.10.03 15:38:00 LOG6[0]: failover: round-robin, starting at entry #1
2017.10.03 15:38:00 LOG6[0]: s_connect: connecting 127.0.0.1:22
2017.10.03 15:38:00 LOG7[0]: s_connect: s_poll_wait 127.0.0.1:22: waiting 10 
seconds
2017.10.03 15:38:00 LOG5[0]: s_connect: connected 127.0.0.1:22
2017.10.03 15:38:00 LOG6[0]: persistence: 127.0.0.1:22 cached
2017.10.03 15:38:00 LOG5[0]: Service [https] connected remote server from 
127.0.0.1:54818
2017.10.03 15:38:00 LOG7[0]: Option TCP_NODELAY set on remote socket
2017.10.03 15:38:00 LOG7[0]: Remote descriptor (FD=9) initialized

그래서 나는 그것이 우분투에서 작동한다는 것을 압니다. stunnel을 설치하는 동안 "stunnel4" 사용자, 그룹 및 서비스가 자동으로 생성되는 것을 확인했습니다. 그래서 Centos에서 시험해보고 무슨 일이 일어나는지 봐야 할 것 같아요.

드디어 Centos에서 실행하게 되었습니다. 알고 보니 방화벽이 꺼져 있다고 생각했는데 그렇지 않았습니다. 방화벽에 적절한 포트를 추가하면 문제가 해결되었습니다. 하지만 여전히 tcpdump를 작동시킬 수 없습니다...

답변2

'-i lo'와 함께 tcpdump를 사용하여 루프백 인터페이스에서 스니핑을 시도하면 어떻게 되나요?

tcpdump -i lo -n -v port 10051

관련 정보