stunnel を設定しているので、SSLに対応していないアプリがGmail/GoogleAppsアカウントにアクセスできます。これが私が使用している設定です:
CLIENT=YES
[pop3s]
accept = 110
connect = pop.gmail.com:995
[imaps]
accept = 143
connect = imap.gmail.com:993
[ssmtp]
accept = 25
connect = smtp.gmail.com:465
.pemファイルを生成しました。ただし、失敗し、次のエラーがログに記録されます。
Clients allowed=125
stunnel 4.50 on x86_64-Apple-darwin11.2.0 platform
Compiled/running with OpenSSL 0.9.8r 8 Feb 2011
Threading:PTHREAD SSL:ENGINE Auth:none Sockets:SELECT,IPv6
Reading configuration from file ./tools/stunnel.conf
Snagged 64 random bytes from /Users/synergist/.rnd
Wrote 1024 new random bytes to /Users/synergist/.rnd
PRNG seeded successfully
Initializing SSL context for service pop3s
Insecure file permissions on stunnel.pem
Certificate: stunnel.pem
Certificate loaded
Key file: stunnel.pem
Private key loaded
SSL options set: 0x01000004
SSL context initialized
Initializing SSL context for service imaps
Insecure file permissions on stunnel.pem
Certificate: stunnel.pem
Certificate loaded
Key file: stunnel.pem
Private key loaded
SSL options set: 0x01000004
SSL context initialized
Initializing SSL context for service ssmtp
Insecure file permissions on stunnel.pem
Certificate: stunnel.pem
Certificate loaded
Key file: stunnel.pem
Private key loaded
SSL options set: 0x01000004
SSL context initialized
Configuration successful
Option SO_REUSEADDR set on accept socket
Error binding pop3s to 0.0.0.0:110
bind: Permission denied (13)
Service pop3s closed FD=5
str_stats: 168 block(s), 8340 data byte(s), 8400 control byte(s)
Stunnelが110にバインドできないのはなぜですか?すでに110にバインドされているものはありますか?もしそうなら、どうすればこれが何であるかを知ることができますか?
更新:Sudoを使用してstunnelを実行していますが、Sudoを使用せずに実行する方法はありますか?
更新ですでに述べたように、次の出力からわかります。
Error binding pop3s to 0.0.0.0:110
bind: Permission denied (13)
サービスをポートにバインドするには、昇格された特権が必要です。私の頭の中から、root以外のユーザーは1024を超えるポートにのみサービスをバインドでき、0〜1024はroot用に予約されていると思います。
ポートでリッスンしているサービスを見つけるための質問に関する限り、canlsof
でlsof -i tcp:110
を使用して確認してください。サーバーにlsofがインストールされていない場合は、netstatも使用できますが、効率が少し低下します(たとえば、すべての「リスニング」プロセスを表示するにはnetstat -an|grep -i listen
、さらにgrep ':110'
を追加します)その上でもフィルタリングします。
ルート権限なしで1024未満のポートにバインドすることはできません。これはセキュリティ上の問題です。ポートを1024以上に設定すると、問題ないはずです。