Я настраиваю станнель поэтому приложение без поддержки SSL может получить доступ к учетной записи Gmail / Google Apps. Вот конфигурация, которую я использую:
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, если да, то как я могу узнать, что это?
Обновление: у меня работает stunnel с помощью sudo, есть ли способ заставить его работать без?
Вы не можете привязаться к портам <= 1024 без прав суперпользователя, это вопрос безопасности. Если вы установите порты> 1024, все будет в порядке.
Как вы уже заявили в своем обновлении, и следующий вывод сообщает вам:
Error binding pop3s to 0.0.0.0:110
bind: Permission denied (13)
Вам потребуются повышенные привилегии, чтобы привязать службу к порту. Я считаю, что пользователи без полномочий root могут связывать службы только с портами выше 1024, а 0-1024 зарезервированы для root.
Что касается вашего вопроса о том, какая служба прослушивает порт, вы жестяная банка проверьте это с lsof
с помощью: lsof -i tcp:110
. Если у вас не установлен lsof на вашем сервере, netstat также может быть полезен, но он немного менее эффективен (например, netstat -an|grep -i listen
чтобы показать все "слушающие" процессы, дополнительно добавьте еще grep ':110'
чтобы отфильтровать и это.