liujia 发布的文章

在Debian 8 系统里为 postfix 配置外部smtp服务器发邮件

有不少网友在使用阿里云ECS实例时,发现无法发出邮件,因为新近创建的ECS实例默认禁止连接外网TCP 25端口,避免滥发邮件。

环境:Debian 8,postfix 2.11,使用免费的阿里云云邮账户发信

过程:

  1. apt-get update # 先更新软件库
  2. hostname swas.anqun.org # 设置主机名
  3. apt-get install libsasl2-modules postfix # 安装 postfix 及相关组件
  4. 在配置 postfix 里,选择 Internet Site 类型,填写完整主机名 swas.anqun.org
  5. 安装好 postfix 后,在配置文件 /etc/postfix/main.cf 里确认 myhostname 的值是否与主机名相符
  6. apt-get install stunnel # 安装stunnel,目的是让postfix支持连接 smtp.aliyun.com:465
  7. 创建 /etc/stunnel/stunnel.conf 配置文件,内容如下,监听本地11125端口,连接 smtp.aliyun.com:465

    [smtp-tls-wrapper]
    accept = 11125
    client = yes
    connect = smtp.aliyun.com:465
  8. 启动 stunnel 后,可查看到本地有 11125 端口使用情况
  9. 创建或修改 /etc/postfix/sasl/sasl_passwd 文件,写上相应的服务器地址、端口和登录名密码,如下例:

    [localhost]:11125 anqunhe@aliyun.com:password
  10. postmap /etc/postfix/sasl/sasl_passwd # 生成 hash 文件
  11. chmod 600 /etc/postfix/sasl/* # 为了保护smtp的登录信息,需要修改上边两个文件为root用户只读写
  12. 修改 /etc/postfix/main.cf 文件,修改 relayhost = [localhost]:11125 , 添加SMTP验证信息:

    # See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
    # information on enabling SSL in the smtp client.
    
    smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
    myhostname = swas.anqun.org
    alias_maps = hash:/etc/aliases
    alias_database = hash:/etc/aliases
    myorigin = /etc/mailname
    mydestination = swas.anqun.org, localhost, localhost.localdomain, localhost
    # relayhost =
    relayhost = [localhost]:11125
    mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
    mailbox_command = procmail -a "$EXTENSION"
    mailbox_size_limit = 0
    recipient_delimiter = +
    inet_interfaces = all
    
    #### SMTP
    # Enable SASL authentication
    smtp_sasl_auth_enable = yes
    # Disallow methods that allow anonymous authentication
    smtp_sasl_security_options = noanonymous
    # Location of sasl_passwd
    smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
    # Enable STARTTLS encryption
    # smtp_tls_security_level = encrypt
    # Location of CA certificates
    smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt
    
    smtp_generic_maps = hash:/etc/postfix/generic
    
  13. 因为多数免费邮箱限定发信人是登录名(如anqunhe@aliyun.com),所以在 /etc/postfix/generic 文件里填写可能发信的地址,如:www-data,wordpress

    www-data anqunhe@aliyun.com
    wordpress anqunhe@aliyun.com
  14. postmap /etc/postfix/generic # 生成或更新postfix查询表
  15. service postfix restart # 重启postfix后,从Shell和从wordpress程序测试,发信成功

参考:

在Debian 8里安装foxphp3.0.1

看到云友在安装foxphp遇到了小问题,所以实践一下。

环境:debian 8,nginx 1.6, php 5.6,foxphp3.0.1

过程:

  1. 先安装好php+mysql的环境,请参考这里:https://bbs.aliyun.com/read/288162.html
  2. apt-get install php5-curl php5-gd # 因foxphp要求curl和gd组件,所以补安装
  3. chown -R www-data:www-data /var/www/html # 将foxmphp文件所在的目录修改为web进程用户(www-data)所有
  4. 修改站点配置文件 /etc/nginx/sites-enabled/default ,修改静态化规则内容:

         location / {
                 # First attempt to serve request as file, then
                 # as directory, then fall back to displaying a 404.
                 # try_files $uri $uri/ =404;
                    if (!-e $request_filename) {
                    rewrite  ^(.*)$  /index.php?s=$1  last;
                    break;
                     }
         }
  5. 通过浏览器访问站点,开始安装foxphp,可顺利完成,网站前后台显示内容正常

参考:http://doc.thinkphp.cn/manual/hidden_index.html

在阿里云“专有网络”中配置Serv-U访问

有云友发帖,说配置的Serv-U不能访问。

环境:“专有网络”的轻量应用服务器,Serv-U 14.0.1.0,Windows 2008 R2

过程:

  1. 安装好Serv-U
  2. 在“域向导”,新建域时,勾选适合的协议和端口,如本例,勾选了SFTP,FTP
  3. 通过FTP客户端连接测试,失败。显示:“服务器发回了不可路由的地址”,和“读取目录列表失败”
  4. 因为Serv-U支持sftp协议,所以较简单和方便的方法是在FTP客户端里选择SFTP来连接
  5. 检查并确认ECS实例的安全组规则(防火墙)允许外网访问tcp 22端口,测试成功
  6. 如果需要FTP协议连接,请转到Serv-U的“服务器限制和设置”,在“设置”的“网络设置”里,设置PASV端口范围,本例是填写了50000-50009;在域的“详细信息”里,设置“监听器”中的FTP PASV IP地址为ECS实例的公网IP,如本例是 120.79.47.192
  7. 检查并确认ECS实例的安全组规则(防火墙)允许外网访问tcp 50000-50009端口,测试成功

参考:https://www.serv-u.com/kb/2100/How-to-Set-a-Passive-Port-Range-in-ServU-FTP-Server

在阿里云“轻量应用服务器”中安装PC版微信,成功发送图片

有不少云友在论坛里提反馈,说在ECS实例里安装PC版微信,无法发送图片。

手中有一台阿里云轻量应用服务器的测试机,所以实践一下。

环境:Windows 2008 R2,轻量应用服务器1核2GB内存配置

过程:

  1. http://dldir1.qq.com/weixin/Windows/WeChatSetup.exe # 下载安装PC版微信,2.6.0.56
  2. 手机微信登录后,通过扫一扫,远程服务器上的PC版微信也成功登录
  3. 互发文本信息,和图片,成功
  4. 检查,轻量应用服务器的防火墙也是默认的,无需特别的设置