ddns

debian: gmail + postfix

การแก้ปัญหาการส่งเมล สำหรับโฮสต์ที่ใช้ dynamic ip โดยใช้ gmail และ postfix

ปัญหาคือเมลเซิร์ฟเวอร์สาธารณะไม่ยอมรับจดหมายจากเครื่องที่มีไอพีไม่คงที่
จะแก้โดยให้ gmail เป็นผู้ส่งจดหมายให้
สมมุติว่าเราได้ติดตั้ง postfix ไว้แล้ว

ขั้นตอนสำหรับ gmail

  1. สมัครสมาชิก gmail
  2. ไปที่ การตั้งค่า(settings) -> การส่งต่อและ POP/IMAP (Forwarding and POP/IMAP) ->
    การเข้าถึงแบบ IMAP: (IMAP Access:) เลือก ใช้งาน IMAP (Enable IMAP)

เสร็จแล้ว

ขั้นตอนของ postfix

  1. เปิดใช้ relay โดยใช้คำสั่งชุดนี้

สร้างสคริปต์ DDNS สำหรับเราเตอร์ ให้ zoneedit

กรณีเราเตอร์จะต่างจากกรณีโมเด็ม คือเราไม่สามารถทราบได้ว่าสายจะหลุดเมื่อใด ดังนั้นเราจึงต้องอาศัยการเช็คไอพีเป็นระยะ โดยอาศัยการทำงานของ crontab

สร้างสคริปต์ DDNS สำหรับโมเด็ม adsl ให้ everydns

สำหรับ everydns.net
แก้ไขไฟล์ ip-up.local ดังนี้
# vi /etc/ppp/ip-up.local

...
if [ $PPP_IFACE == "ppp0" ]; then
    # REFRESH DNS
    # REFRESH IPTABLES
    # REFRESH SQUID
    # RECONNECT DDNS
    /usr/sbin/d.updateeverydns
fi
...

สร้างสคริปต์อัปเดตชื่อ /usr/sbin/d.updateeverydns ดังนี้
# vi /usr/sbin/d.updatezeverydns

#!/bin/bash
# SCRIPT FOR PPP TO UPDATE DNS RECORD AT everydns.net

# PREREQUIST:
# 0.REGISTER USERNAME & PASSWORD AT www.everydns.net
#   - ADD DYNAMIC DNS example.com
#   - ADD DYNAMIC DNS www.example.com
# 1.DOWNLOAD FILE http://www.everydns.net/eDNS.pl 
#   PUT IN /usr/local/bin
# 2.INSTALL ncftp
#   # aptitude install ncftp
# 3.INSTALL PERL MIME::Base64
#   # perl -MCPAN -e 'install MIME::Base64'

# UPDATE FUNCTION
#usage: updateeverydns $USER $PASSWORD $IP_ADDR $DOMAIN $HOST

สร้างสคริปต์ DDNS สำหรับโมเด็ม adsl ให้ zoneedit

ต้องขอออกตัวก่อนครับ ว่าผมเป็นเพียงผู้ใช้งานเดเบียนคนนึง ไม่มีความรู้ลึกซึ้งกว้างขวางกับลินุกซ์เลย
ข้อเขียนต่อไปนี้จึงไม่ใช่สูตรสำเร็จแบบ How To แต่เขียนขึ้นเพื่อจุดประสงค์ในการแลกเปลี่ยนความรู้ จึงให้คิดว่าเป็นเพียงงานทดลองที่ใช้งานได้เท่านั้น

debian: ทำ Host ใช้เอง

เห็นมีการคุยกันที่ codenone เรื่องโฮสต์ไพธอนหายากมาก
จึงขออนุญาตบันทึกการทำโฮสต์ไว้ใช้เองไว้ที่นี่แทน เพราะว่าเราใช้เดเบียน ;D
เพื่อจะได้สามารถใช้งาน Python Ruby หรือแพกเกจที่ไม่ใช่แพกเกจท้องตลาดได้อย่างอิสระเสรี

ขั้นตอนคร่าว ๆ คือ

  1. คิดชื่อโดเมน และตรวจสอบว่าชื่อที่เราตั้งยังว่างอยู่หรือไม่
Syndicate content