サーバーには次の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
だから私はそれがUbuntuで動作することを知っています。 stunnelのインストール中に、「stunnel4」ユーザー、グループ、およびサービスが自動的に作成されることを確認しました。それで、Centosで試してみて、何が起こるのか見なければならないと思います。
いよいよCentosで実行するようになりました。わかりましたら、ファイアウォールがオフになっていると思いましたが、そうではありませんでした。ファイアウォールに適切なポートを追加することで問題を解決しました。しかし、まだtcpdumpを動作させることはできません...
答え2
'-i lo'でtcpdumpを使用してループバックインターフェイスでスニッフィングしようとするとどうなりますか?
tcpdump -i lo -n -v port 10051