การทำงานของ stunnel จะทำการเปิด port ขึ้นมาเพื่อรองรับการติดต่อจาก client โดยการสื่อสารทั้งหมดจะถูกเข้ารหัส และ stunnel จะทำการ forward ข้อมูลที่เหล่านั้นไปยังบริการจริงที่ทำงานอยู่
เริ่มจากการติดตั้ง stunnel ก่อนเลย
cd /usr/ports/security/stunnel
make install clean
จากนั้นก็สร้าง Directory เพื่อรองรับการทำงานของ stunnel ขึ้นมา
cd /var/run
mkdir -p stunnel
chown stunnel:stunnel stunnel
chmod 0622 stunnel
ทำการแก้ไขไฟล์ /usr/local/etc/stunnel/stunnel.conf ตามข้างล่างนี้
cert = /usr/local/etc/stunnel/mail.pem
chroot = /var/run/stunnel
setuid = stunnel
setgid = stunnel
pid = /var/run/stunnel/stunnel.pid
# แก้ปัญหา bug ของ eudora
options = DONT_INSERT_EMPTY_FRAGMENTS
output = /var/log/stunnel.log
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
# บริการต่างๆ
[pop3s]
accept = 192.168.1.3:995
connect = 110
[imaps]
accept = 192.168.1.3:993
connect = 143
[smtps]
accept = 192.168.1.3:587
connect = 25
การตั้งค่าของ stunnel ก็ง่ายครับ
cert เป็นตำแหน่งของ private key file
ส่วนบริการต่างๆ ก็เพียงระบุ port ที่ต้องการเปิดรอรับการติดต่อในส่วนของ accept และระบุค่า port ที่บริการนั้นๆ ทำงานอยู่จริง
ทดสอบด้วยการสั่งให้ทำงาน
/usr/local/etc/rc.d/stunnel start
จากนั้นถ้าต้องการให้ทำงานอัตโนมัติเมื่อ boot เครื่องให้แก้ไขไฟล์ /etc/rc.conf โดยเพิ่ม
stunnel_enable="YES"
stunnel_pid_file="/var/run/stunnel/stunnel.pid"
เท่านี้บริการต่างๆ ของเราก็สามารถรองรับการทำงานผ่าน SSL ได้แล้วครับ