#ioChen's Blog
Explore tagged Tumblr posts
Text
基于CentOS 7,使用Postfix & Dovecot搭建邮件服务器 -Part 2
本文将详细讲解 如何在CentOS 7下,使用Postfix & Dovecot 搭建自己的邮件服务器。 这是第二部分: Dovecot 与 其它优化。
前言
在我自己搭建的时候,看了许多网络教程,但博主自己在实现过程中遇到了许多坑,比如教程本身有问题,讲解不明等,所以在此自己写一篇。
关于Postfix及前面内容(Part 1), 链接在此 -> 基于CentOS 7,使用Postfix & Dovecot搭建邮件服务器 -Part 1
实践
变量设定
重要!!! 假如你的IP为8.8.8.8, 域名为example.com, 你想要创建的邮箱为[email protected] 证书, 密钥请点此 -> 证书路径
Dovecot
安装
1
$ sudo yum -y install dovecot
配置
编辑/etc/dovecot/dovecot.conf
1 2 3 4
# 第24行 : 取消注释并修改 protocols = imap pop3 lmtp # 第30行: 取消注释并修改 listen = *, ::
编辑/etc/dovecot/conf.d/10-auth.conf
1 2 3 4
# 第10行: 取消注释并修改 disable_plaintext_auth = yes # 第100行: 修改 auth_mechanisms = plain login
编辑/etc/dovecot/conf.d/10-mail.conf
1 2
# 第30行: 取消注释并修改 mail_location = maildir:~/Mailbox
编辑/etc/dovecot/conf.d/10-master.conf
1 2 3 4 5 6 7 8 9 10 11 12 13
# 第89~93行: 全部注释!!! # unix_listener auth-userdb { #mode = 0666 #user = #group = # } # 第96~98行: 取消注释并修改 unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix }
编辑/etc/dovecot/conf.d/10-ssl.conf
1 2 3 4 5 6
# 第8行: 修改 ssl = required # 第14~15行: 取消注释并修改,注意替换路径!!! 路径见本文前面 变量设定 部分 ssl_cert = </etc/letsencrypt/live/mail.example.com/cert.pem ssl_key = </etc/letsencrypt/live/mail.example.com/privkey.pem
重启Dovecot
1
$ sudo systemctl restart dovecot && sudo systemctl enable dovecot
firewall相应配置
1
$ sudo firewall-cmd --add-port={110/tcp,143/tcp,995/tcp,993/tcp} --permanent && sudo firewall-cmd --reload
110/tcp为POP3端口, 143/tcp为IMAP端口, 995/tcp为POP3S端口, 993/tcp为IMAPS端口
检验
假设你的Linux服务器中, 你的用户名为user, 则可按下��配置操作:
参考
CentOS 7.2 部署邮件服务器(Postfix)注:作者未注明许可协议 邮件服务器添加SPF、DKIM、DMARC、PTR提高送达率 注:作者未注明许可协议 注:此链接未使用HTTPS
本文章来自于主站: https://iochen.com/2018/07/27/install-email-service-on-CentOS-7-part-2-dovecot/ ,点我跳转!
0 notes
Text
nginx配置HTTPS并取得A+
主要是我自己的nginx配置, 并且HTTPS取得A+.
由于协议的安全性在不断更新,在写此文时测试结果为A (但我懒得更新了)
直接上配置!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
server { listen 80; listen [::]:80; server_name domain.ltd; # 你的域名 return 301 https://domain.ltd$request_uri; # 你的域名 error_page 497 =301 https://domain.ltd$request_uri; # 你的域名 } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name domain.ltd; # 你的域名 add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"; ssl on; ssl_certificate /etc/certificate_path/file.pem ; # 你的证书路径 ssl_certificate_key /etc/certificate_key_path/file.pem ; # 你的证书key路径 ssl_protocols TLSv1.3 TLSv1.2; ssl_stapling on; ssl_ciphers "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA"; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_dhparam /etc/myssl/dhparam.pem; # 你的DH证书路径,下面会说 charset utf-8; access_log /var/log/nginx/access.log; # 可自行修改 error_log /var/log/nginx/error.log; # 可自行修改 location / { root /usr/share/nginx/path; # 你的网站根目录 try_files $uri $uri/ /index.php?$uri; index index.php index.html; } # ERROR pages error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/path; # 你的网站根目录 } # GZIP gzip on; gzip_min_length 1k; gzip_comp_level 2; gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png image/jpg; gzip_vary on; gzip_disable "MSIE [1-6]\."; # PHP location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/path/$fastcgi_script_name; # 你的网站根目录 include fastcgi_params; } }
必要修改&&说明
必要替换:
1 2 3 4 5
domain.ltd => 你的域名 /etc/certificate_path/file.pem => 你的证书路径 /etc/certificate_key_path/file.pem => 你的证书key路径 /etc/myssl/dhparam.pem => 你的DH证书路径,下面会说 /usr/share/nginx/path => 你的网站文件根目录
个别说明
DH证书: 请先安装openssl
1
openssl dhparam -dsaparam -out dhparam.pem 4096
建议使用nohup,生成会花费一定时间. nohup ?
附
nohup
nohup使用:
1
$ nohup 应该的命令 &
会将屏幕输出内容存放在本地目录下nohup.out文件内
本文章来自于主站: https://iochen.com/2018/07/11/get-A-plus-on-https-by-using-nginx/ ,点我跳转!
0 notes
Text
我自己的nginx配置
记录自己的nginx配置, 供大家参考.此配置是包含SSL,HSTS,GZIP,PHP的配置
代码
不废话, 直接上代码(详解在这里)!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
server { listen 80; listen [::]:80; server_name 你的域名; return 301 https://你的域名$request_uri; error_page 497 =301 https://你的域名$request_uri; } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name 你的域名; add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"; ssl on; ssl_certificate 你的网站证书路径; ssl_certificate_key 你的网站证书密钥路径; charset utf-8; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { root 你的网页代码路径; try_files $uri $uri/ /index.php?/$uri; index index.php index.html; } error_page 404 /404.png; error_page 500 502 503 504 /50x.html; location = /50x.html { root 你的网页代码路径; } gzip on; gzip_min_length 1k; gzip_comp_level 2; gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png image/jpg; gzip_vary on; gzip_disable "MSIE [1-6]\."; location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/image/$fastcgi_script_name; include fastcgi_params; } }
详解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
server { #服务器针对HTTP连接的措施 listen 80; listen [::]:80; #IPv6 server_name 你的域名; return 301 https://你的域名$request_uri; #301跳转到HTTPS页面 error_page 497 =301 https://你的域名$request_uri; #497错误跳转到HTTPS页面 } server { listen 443 ssl http2; listen [::]:443 ssl http2; #IPv6 server_name 你的域名; add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"; #HSTS,不想用的请删除这一行 ssl on; #开启SSL ssl_certificate 你的网站证书路径; ssl_certificate_key 你的网站证书密钥路径; charset utf-8; #网页编码设置为UTF-8 access_log /var/log/nginx/access.log; #访问日志 error_log /var/log/nginx/error.log; #错误日志 location / { root 你的网页代码路径; try_files $uri $uri/ /index.php?/$uri; #这个我知道是什么,但不太会解释😭 index index.php index.html; #首页代码文件 } error_page 404 /404.png; #404错误代码文件 gzip on; #GZIP开启状态 gzip_min_length 1k; #GZIP最小压缩文件大小 gzip_comp_level 2; #GZIP压缩等级 gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png image/jpg; #GZIP压缩类型 gzip_vary on; #是否缓存GZIP过后的页面/文件 gzip_disable "MSIE [1-6]\."; #由于IE6及以下不支持GZIP,故有此行(即IE6及以下不使用GZIP) location ~ \.php$ { #PHP的内容,我也不太清楚😅 root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/image/$fastcgi_script_name; include fastcgi_params; } }
本文章来自于主站: https://iochen.com/2018/06/02/my-nginx-config/ ,点我跳转!
0 notes
Text
使用IPFS来去中心化地分发数据
本篇文章主要会讲使用IPFS来去中心化分发资源的方法.
灵感
不久前看到的GFW Blog的一篇文章,今天正巧在V2EX上看到了关于IPFS的一个主题,便开始折腾起来。 用了那一篇文章的方法,我也搭建了用IPFS作为存储的hexo博客(和主站是一样的),可以在这里访问测试。 在搭建这个测试站的时候,突然发现,虽然ipfs.io被墙了,但是利用Cloudflare的反代,可以实现免费在墙内分发IPFS内容。
效果展示
我用这个方法传了个视频上去:
your browser can NOT watch the video :(
Why IPFS
使用IPFS分发文件,意味着这个文件是去中心化的,也就是说,政府很难删除这个文件;并且,只要HASH还在,文件是不会丢失的,不会因为某个服务器出了问题,而整个数据就全没了。 并且,这不会耗费你的服务器的流量。
如何实现
用IPFS上传文件
要想分发,���肯定要先上传文件,这里简略地说一下,具体可以参考这个教程。 到官网下载后解压。(需要翻墙!!!)解压后,Shell/cmd切换到目录下,运行ipfs.exe daemon。我这里以windows为例,其他系统请自行将ipfs.exe换为其他文件名。之后,打开http://localhost:5001/webui,打开左边的Files,再点右边的Upload,选择文件,进行上传。 上传好后,右键上传好的文档,点击Copy hash,获得文件的HASH,接着,你就可以测试了,到https://ipfs.io/ipfs/HASH,将HASH换为你之前复制的HASH,就可以看到你上传的文件啦!什么?打不开https://ipfs.io?这就对了!接下来,教你如何免费反代资源!
绑定域名|反代资源
前提:请将域名使用Cloudflare DNS 添加一条CNAME记录,名称随便你,指向gateway.ipfs.io,将后面的小云点亮(默认是点亮的) ,之后,访问你刚刚设的域名(xxx.yourdomain.ltd),后面加上/ipfs/HASH(将HASH换为你之前复制的HASH),即可访问,比如:https://mirror-ipfs.iochen.com/ipfs/QmUHraPc2sQbvnRqt2b7m2tzwLKyzCt5u19GVsR9C6urJh。
其它
参考
GFW Blog
本文章来自于主站: https://iochen.com/2018/04/29/a-new-way-to-hand-out-the-data/ ,点我跳转!
0 notes
Text
关于我的PGP邮箱
这是一篇关于我的PGP邮箱的无聊的信息 我的PGP邮箱: [email protected] 如果将敏感话题发入其它邮箱, 一般我都会让你发入PGP邮箱,用PGP加密的
我的Public Key:
请注意: 本页面传输过程全部使用HTTPS, 主证书颁发给snixxxxxx.cloudflaressl.com ; 注:xxxxxx为数字
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
-----BEGIN PGP PUBLIC KEY BLOCK----- mQENBFrapo8BCADu5mSuEfO49fXvaJTG7aVNk1P/jsBdzbnl/5s8kbOYIjazlAdR wZxdRIcCHTPLsI+VgSDV6wuo7DQsntgcfprs8vLNGVanaNKsEMnT4EvZxOVlGxSr 8tfauiDdokyH6EmbZVYKJRaJnJ6c9gpo6Ey9fPgQfPyM8J7v73qaBGwezekXCbWQ Xno2IE7pvqJ/sbMXUc9vXQIFEf82zoC188+FId0DgGJ6VkBTryarWNow3QxMDh+l 2pMgBHfbmZjqnjsulOXOfpaZIAI4eDrDIXkWRRSDhFoKYkcX3ym5qZ6oHChlsp6g rgVPinoMLljkQ9jmzuIlsTbCPMTbwUt07VfHABEBAAG0IVJpY2hhcmQgQ2hlbi1Q R1AgPHBncEBpb2NoZW4uY29tPokBVAQTAQgAPhYhBCvTPYvTrpBMl+LYu07QC4OQ U7hUBQJa2qaSAhsDBQkB4TOABQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEE7Q C4OQU7hUTu4H/2b1O1MVbYxh4MEsGssiTiEBMpSvdJEeBueFYJJ6jC356vFpNKvU dw9yaF8+KxepBvQucBKrUieVTBkOTrJ6vX64IL7442E42rztuWtnlf59QjPIIpRB cZYSU9L+1KU3BPZ1Ov5ric53UPz5IUXXTaupFauhV0tQWO0+7NjgcsGv9wSLUqvL EuS3q+QwQXsUQR3cRKEgNzTrEKujzFYyLjCtEWDf3N0BvcrV6IXSTVynUCmlCYLK +MW92jfijTbLywpwKvkQIaSRNyNCHTFzxPXWgWsU/7LBWM5mYrsrzgS4RO/EVcrs 4R3hB2lrhhKAyi6sP4LDvTAt4OGYL2kqoUC5AQ0EWtqmkAEIAKM3if593yYn+l0E 7FJuXwc1D20WYBNVk8/Fjjx5YHV9sD9QJRQdWdkjjVnTPD+cxirwXQwAGMh8fq23 bMHnx376lbA/BfUSfAOLRrhGoVE/JJEnnhU0I/NBm4z1nXSgWy+Ewi7soHLa7/jU Vhwz94q43MQeN5CfxPYea9NmckGdORaLXSO4A/AH2Uck6YWRH4P7u/XtIQTB8frK lImlkQbKtJjesHSOj5gBuOe5uPwvGOdHHF01TR4LMKN6HteXYleYQ07iUIi1j4/q n3fvABBVgMyA0BIJ2OQSxu83Ucw4sFV5dZXB2rhMjLyfs87Oa/JAdVwtdSrqV38D XpU8YKcAEQEAAYkBPAQYAQgAJhYhBCvTPYvTrpBMl+LYu07QC4OQU7hUBQJa2qaQ AhsMBQkB4TOAAAoJEE7QC4OQU7hUK3cH/031fSk2ZAlvU+clKLMg6L/0LhBrWHP7 KtcmtXpm3F/ewYkKn7eAPLTyAMHnhhWUq0ksL1o97ch/BPL6vd4BDenHQdCBLO5F DnafSQkEq5KekKNBVCf88FTDvJT/o91lhkkJln7E2zKzwqouxgkjxHtl+kUMsJIH qzeIq4oyuVLkvd5G3MPJv0lHeBuAUQwtfXRs+gmdLN5Qf3EtgP+WvvHfFO9lon7b 6xx3Un9TNpYXCl7q9ilyPlRQP7wvPxCpp4eriJTtEVUEKHMmTXgeUMIb86kM8PRx SgA6RNI2T7aLrcHA090bPNwEAL4HUQo+9El7MCdCzBvgPC9Mjj9Xp4Q= =q6/D -----END PGP PUBLIC KEY BLOCK-----
此密钥失效于2019/04/21(YYYY/MM/DD)
公钥也已上传至hkps.pool.sks-keyservers.net , keys.mailvelope.com , pgp.mit.edu
本文章来自于主站: https://iochen.com/2018/04/21/something-about-my-PGP/ ,点我跳转!
0 notes