首页 > 代码库 > 邮件,apache

邮件,apache

###远程登陆邮件的限制
1.限制登陆主机
[root@mailwestos ~]# cd /etc/postfix/
[root@mailwestos postfix]# ls
access     generic        main.cf    relocated  virtual
canonical  header_checks  master.cf  transport
[root@mailwestos postfix]# vim access
技术分享

[root@mailwestos postfix]# postmap access
[root@mailwestos postfix]# ls
access     canonical  header_checks  master.cf  transport
access.db  generic    main.cf        relocated  virtual
[root@mailwestos postfix]# postconf -e "smtpd_client_restrictions = check_client_access hash:/etc/postfix/access"
[root@mailwestos postfix]# vim main.cf
技术分享

[root@mailwestos postfix]# systemctl restart postfix.service
[root@linux ~]# telnet 172.25.254.16 25
Trying 172.25.254.16...
Connected to 172.25.254.16.
Escape character is ‘^]‘.
220 maillinux.westos.com ESMTP Postfix
mail from:root@westos.com
250 2.1.0 Ok
rcpt to:root@linux.com
554 5.7.1 <unknown[172.25.254.116]>: Client host rejected: Access denied
quit
221 2.0.0 Bye
Connection closed by foreign host.
2.限制发送
[root@mailwestos postfix]# vim sender
技术分享

[root@mailwestos postfix]# postmap sender
[root@mailwestos postfix]# ls
access     canonical  header_checks  master.cf  sender     transport
access.db  generic    main.cf        relocated  sender.db  virtual
[root@mailwestos postfix]# postconf -e "smtpd_sender_restrictions = check_sender_access hash:/etc/postfix/sender"
[root@mailwestos postfix]# vim main.cf
技术分享

[root@mailwestos postfix]# systemctl restart postfix.service
[root@foundation50 Desktop]# telnet 172.25.254.16 25
Trying 172.25.254.16...
Connected to 172.25.254.16.
Escape character is ‘^]‘.
220 maillinux.westos.com ESMTP Postfix
mail from:student@westos.com
250 2.1.0 Ok
rcpt to:root@westos.com
554 5.7.1 <student@westos.com>: Sender address rejected: Access denied
quit
221 2.0.0 Bye
Connection closed by foreign host.
3.限制接收者
[root@mailwestos postfix]# vim recip
 stusdent@linux.com REJECT
root@mailwestos postfix]# postmap recip
[root@mailwestos postfix]# ls
access     canonical  header_checks  master.cf  recip.db   sender     transport
access.db  generic    main.cf        recip      relocated  sender.db  virtual
[root@mailwestos postfix]# postconf -e "smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/recip"
[root@mailwestos postfix]# systemctl restart postfix.service
root@maillinux ~]# telnet 172.25.254.16 25
Trying 172.25.254.16...
Connected to 172.25.254.16.
Escape character is ‘^]‘.
220 maillinux.westos.com ESMTP Postfix
mail from:root@westos.com
250 2.1.0 Ok
rcpt to:student@linux.com
554 5.7.1 <student@linux.com>: Recipient address rejected: Access denied
quit
221 2.0.0 Bye
Connection closed by foreign host.
[root@mailwestos postfix]# vim main.cf
  删除限制设定
[root@mailwestos postfix]# systemctl restart postfix.service
#####邮件的接收
[root@mailwestos ~]# yum install dovecot -y    ##安装邮件接收软件
[root@mailwestos ~]# cd /etc/dovecot
[root@mailwestos dovecot]# vim dovecot.conf

技术分享

技术分享

[root@mailwestos dovecot]# cd conf.d/
[root@mailwestos conf.d]# ls
10-auth.conf       20-imap.conf                 auth-dict.conf.ext
10-director.conf   20-lmtp.conf                 auth-ldap.conf.ext
10-logging.conf    20-pop3.conf                 auth-master.conf.ext
10-mail.conf       90-acl.conf                  auth-passwdfile.conf.ext
10-master.conf     90-plugin.conf               auth-sql.conf.ext
10-ssl.conf        90-quota.conf                auth-static.conf.ext
15-lda.conf        auth-checkpassword.conf.ext  auth-system.conf.ext
15-mailboxes.conf  auth-deny.conf.ext           auth-vpopmail.conf.ext
[root@mailwestos conf.d]# vim 10-mail.conf
技术分享

[root@mailwestos conf.d]# systemctl start dovecot
[root@mailwestos conf.d]# systemctl enable dovecot
[root@foundation50 Desktop]# yum install mutt -y     ###安装邮件管理软件
root@foundation50 Desktop]# mutt -f pop://root@172.25.254.16
技术分享

[root@mailwestos conf.d]# cd /etc/skel/
[root@mailwestos skel]# mkdir mail/.imap/ -p
[root@mailwestos skel]# touch mail/.imap/INBOX        ##用户创建会自动生成该文件
 (下载雷鸟软件
[root@maillinux mnt]# tar -jxf thunderbird-45.5.1.tar.bz2
[root@maillinux mnt]# ls
thunderbird  thunderbird-45.5.1.tar.bz2
[root@maillinux mnt]# ./thunderbird
 (邮件帐号设定管理

技术分享

技术分享

技术分享


####虚拟用户邮件服务
[root@mailwestos ~]# yum install mariadb-server httpd php php-mysql -y
 (版本低于5.5,使用非图形方式创建邮件数据库信息,如下
[root@mailwestos conf.d]# mysql -upostfix -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.41-MariaDB MariaDB Server

Copyright (c) 2000, 2014, Oracle, MariaDB Corporation Ab and others.

Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.

MariaDB [(none)]> SELECT * FROM email.vuser;
+------------------+----------+------------+-------------------+
| username         | password | domain     | maildir           |
+------------------+----------+------------+-------------------+
| admin@westos.org | 123      | westos.org | westos.org/admin/ |
| lee@westos.org   | 123      | westos.org | westos.org/lee/   |
+------------------+----------+------------+-------------------+
2 rows in set (0.00 sec)
MariaDB [(none)]>
测试110端口
[root@mailwestos ~]# telnet 172.25.254.16 110
Trying 172.25.254.16...
Connected to 172.25.254.16.
Escape character is ‘^]‘.
-ERR Disconnected: Auth process broken          
Connection closed by foreign host.              ###登陆失败
[root@mailwestos ~]# cat /var/log/maillog         ###查看报错日志
Dec  8 21:00:44 mailwestos dovecot: auth: Fatal: sql /etc/dovecot/dovecot-sql.conf.ext: Can‘t open configuration file /etc/dovecot/dovecot-sql.conf.ext: No such file or directory             ###没有安装dovecot-mysql软件
Dec  8 21:00:44 mailwestos dovecot: master: Error: service(auth): command startup failed, throttling for 4 secs
Dec  8 21:00:44 mailwestos dovecot: pop3-login: Disconnected: Auth process broken (disconnected before auth was ready, waited 0 secs): user=<>, rip=172.25.254.16, lip=172.25.254.16, secured, session=<lpEuHzBD0ACsGf4Q>
[root@mailwestos dovecot]# yum install dovecot-mysql -y    ##安装dovecot-mysql软件
 配置postfix
[root@mailwestos myadmin]# cd /etc/postfix/
[root@mailwestos postfix]# vim mysql-users.cf
技术分享root@mailwestos postfix]# cp mysql-users.cf mysql-domain.cf
[root@mailwestos postfix]# cp mysql-users.cf mysql-maildir.cf
[root@mailwestos postfix]# vim mysql-domain.cf
技术分享

[root@mailwestos postfix]# vim mysql-maildir.cf
技术分享

[root@mailwestos postfix]# postmap -q "admin@westos.org" mysql:/etc/postfix/mysql-users.cf
[root@mailwestos postfix]# postmap -q "westos.org" mysql:/etc/postfix/mysql-domain.cf
[root@mailwestos postfix]# postmap -q "admin@westos.org" mysql:/etc/postfix/mysql-maildir.cf
 (全部查询成功
[root@mailwestos postfix]# postconf -e "virtual_gid_maps = static:666"
[root@mailwestos postfix]# postconf -e "virtual_uid_maps = static:666"
[root@mailwestos postfix]# postconf -e "virtual_mailbox_base = /home/vmail"
[root@mailwestos postfix]# postconf -e "virtual_alias_maps = mysql:/etc/postfix/mysql-users.cf"
[root@mailwestos postfix]# postconf -e "virtual_mailbox_domains = mysql:/etc/postfix/mysql-domain.cf"
[root@mailwestos postfix]# postconf -e "virtual_mailbox_maps = mysql:/etc/postfix/mysql-maildir.cf"
[root@mailwestos postfix]# systemctl restart postfix.service
[root@mailwestos home]# mail admin@westos.org   ##测试虚拟用户
Subject: test
alsdkfj
.
EOT
[root@mailwestos home]# cd vmail/
[root@mailwestos vmail]# ls
westos.org
[root@mailwestos admin]# ls
cur  new  tmp
[root@mailwestos conf.d]# vim 10-mail.conf
 (30 mail_location = maildir:/home/vmail/%d/%n

 168 first_valid_uid = 666

 175 first_valid_gid = 666
 :wq
[root@mailwestos conf.d]# vim 10-auth.conf
 (123 !include auth-sql.conf.ext
 :wq
[root@mailwestos conf.d]# vim auth-sql.conf.ext
  8   # Path for SQL configuration file, see example-config/dovecot-sql.conf.ext
 :q
[root@mailwestos conf.d]# cd /usr/share/doc/dovecot-2.2.10/example-config/
[root@mailwestos example-config]# cp -p dovecot-sql.conf.ext /etc/dovecot/
[root@mailwestos example-config]# cd /etc/dovecot/
[root@mailwestos dovecot]# ls
conf.d  dovecot.conf  dovecot-sql.conf.ext
[root@mailwestos dovecot]# vim dovecot-sql.conf.ext
 (32 driver = mysql

 71 connect = host=localhost dbname=email user=postfix password=postfix

 78 default_pass_scheme = PLAIN            ##明文

 107 password_query = \
 108   SELECT username, domain, password \
 109   FROM vuser WHERE username = ‘%u‘ AND domain = ‘%d‘

 125 user_query = SELECT maildir, 666 AS uid, 666 AS gid FROM vuser WHERE username = ‘%u‘
 :wq
[root@mailwestos dovecot]# systemctl restart dovecot.service
[root@mailwestos dovecot]# telnet 172.25.254.16 110
Trying 172.25.254.16...
Connected to 172.25.254.16.
Escape character is ‘^]‘.
+OK [XCLIENT] Dovecot ready.
user admin@westos.org
+OK
pass 123
+OK Logged in.
quit
+OK Logging out.
Connection closed by foreign host.             #######测试成功
[root@mailwestos thunderbird]# ./thunderbird   ###使用雷鸟测试成功

技术分享

技术分享

技术分享

####空壳邮件
[root@maillinux ~]# vim /etc/named.rfc1912.zones   ##添加westos.org域名解析配置
 37 zone "westos.org" IN {
 38         type master;
 39         file "westos.org.zone";
 40         allow-update { none; };
 41 };
 42
:wq
[root@maillinux ~]# cd /var/named
[root@maillinux named]# cp -p westos.com.zone westos.org.zone
[root@maillinux named]# vim westos.org.zone          ##编辑模板,添加westos.org解析信息
  1 $TTL 1D
  2 @       IN SOA  dns.westos.org. root.westos.org. (
  3                                         0       ; serial
  4                                         1D      ; refresh
  5                                         1H      ; retry
  6                                         1W      ; expire
  7                                         3H )    ; minimum
  8                 NS      dns.westos.org.
  9 dns             A       172.25.50.116
 10 westos.org.     MX 1    172.25.50.116.
:wq
[root@maillinux named]# dig -t mx westos.org
;westos.org.            IN    MX
westos.org.        86400    IN    MX    1 172.25.50.116.
[root@maillinux named]# rm -fr /etc/postfix/main.cf
[root@maillinux named]# yum reinstall postfix -y
[root@maillinux named]# systemctl restart postfix.service
[root@maillinux named]# vim /etc/postfix/main.cf
 75 myhostname = maillinux.linux.com

 83 mydomain = linux.com

 98 myorigin = westos.org

113 inet_interfaces = all

116 #inet_interfaces = localhost

140 local_transport = error:local delivery disabled    ##不允许本地投递

164 mydestination =                    ##不接收任何邮件

313 relayhost = 172.25.50.16                ##指定真实的邮件服务器IP地址(此机为空壳
:wq
[root@maillinux named]# systemctl restart postfix.service
[root@mailwestos ~]# vim /etc/postfix/main.cf
264 mynetworks = 172.25.50.0/24
:wq
[root@mailwestos ~]# systemctl restart postfix.service
[root@mailwestos ~]# cd /home/vmail/
[root@mailwestos vmail]# ls
westos.org
[root@mailwestos vmail]# rm -fr *
[root@mailwestos vmail]# ls
[root@maillinux ~]# mail admin@westos.org
Subject: alsdgkhl;as
alsdgk
.
EOT
[root@maillinux named]# mailq
Mail queue is empty
[root@mailwestos vmail]# ls
westos.org
[root@mailwestos vmail]# cd westos.org/
[root@mailwestos westos.org]# ls
[root@mailwestos westos.org]# cd admin/
[root@mailwestos admin]# ls
cur  new  tmp    
 (邮件文件内容与邮件服务器分离
##############################  Apache
[root@web ~]# yum search httpd
Loaded plugins: langpacks
============================== N/S matched: httpd ==============================
httpd.x86_64 : Apache HTTP Server
httpd-devel.x86_64 : Development interfaces for the Apache HTTP server
httpd-manual.noarch : Documentation for the Apache HTTP server
httpd-tools.x86_64 : Tools for use with the Apache HTTP Server
libmicrohttpd.i686 : Lightweight library for embedding a webserver in
                   : applications
libmicrohttpd.x86_64 : Lightweight library for embedding a webserver in
                     : applications
mod_auth_mellon.x86_64 : A SAML 2.0 authentication module for the Apache Httpd
                       : Server
mod_dav_svn.x86_64 : Apache httpd module for Subversion server

  Name and summary matches only, use "search all" for everything.
[root@web ~]# yum install httpd -y
[root@web ~]# cd /var/www/html/
[root@web html]# ls
myadmin
[root@web html]# mv myadmin /mnt
[root@web html]# echo TEXT FOR VIEW > index.html
[root@web html]# echo THIS FILE is file1 > file1.html
[root@web html]# firefox
http://172.25.254.16
TEXT FOR VIEW                  #####默认发布目录/var/www/html/ 显示index.html 内容
[root@web1 html]# vim /etc/httpd/conf/httpd.conf
164     DirectoryIndex file1.html index.html      ###http.conf配置文件中默认限制内容文件的顺序
[root@web1 html]# systemctl reload httpd
[root@web html]# firefox
http://172.25.254.16
THIS FILE is file1
[root@web conf]# yum install httpd-manual -y             ##安装手册
[root@web conf]# cd /var/www/html/
[root@web html]# ls
file1.html  index.html
[root@web html]# ls -Zd .
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 .
[root@web html]# mkdir /www/westos -p
[root@web html]# semanage fcontext -a -t httpd_sys_content_t ‘/www/westos(/.*)?‘ #添加安全标签
restorecon reset /www context unconfined_u:object_r:default_t:s0->system_u:object_r:default_t:s0
restorecon reset /www/westos context unconfined_u:object_r:default_t:s0->system_u:object_r:httpd_sys_content_t:s0
[root@web westos]# echo This page is used to show viewed chaged dir > index.html
[root@web westos]# ls -Z
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0 index.html
[root@web westos]# vim /etc/httpd/conf/httpd.conf
 (119 #DocumentRoot "/var/www/html"
 120 DocumentRoot "/www/westos"
 121 <Directory "/www/westos">
 122         require all granted
 123 </Directory>
[root@web westos]# systemctl restart httpd.service
[root@web westos]# firefox
http://172.25.254.16
This page is used to show viewed chaged dir
[root@web westos]# vim /etc/httpd/conf/httpd.conf
在122行可编辑黑白名单,Allow,Deny先后顺序
21 <Directory "/www/westos">
122     Require all granted
123     Order Allow,Deny
124     Allow from all
125     Deny from 172.25.254.116
126 </Directory>
限制116登陆,改变Allow,Deny顺序,只允许116登陆
 #设定密码访问
[root@web westos]# cd /etc/httpd/
[root@web httpd]# ls
conf  conf.d  conf.modules.d  logs  modules  run
[root@web httpd]# htpasswd -cm htpasswdfile admin
New password:
Re-type new password:
Adding password for user admin
[root@web httpd]# htpasswd -m htpasswdfile westos
New password:
Re-type new password:
Adding password for user westos
[root@web httpd]# cat htpasswdfile
admin:$apr1$WbKugIGj$2HGUWRwGSXS41wsCTbvod/
westos:$apr1$cgzYLUVZ$zSkX6bfpFZkDQxrONSofc/

[root@web httpd]# vim /etc/httpd/conf/httpd.conf
121 <Directory "/www/westos">
122         #Require all granted
123         Authuserfile /etc/httpd/htpasswdfile
124         Authname "Please input username and password"
125         Authtype basic
126         Require user admin
127 </Directory>
[root@web httpd]# systemctl reload httpd
http://172.25.254.115

music.westos.com; news.westos.com
[root@web httpd]# vim /etc/httpd/conf/httpd.conf
119 DocumentRoot "/var/www/html"
120 #DocumentRoot "/www/westos"
[root@web httpd]# systemctl reload httpd

[root@web httpd]# cd /var/www/html/
[root@web html]# ls
[root@web html]# vim index.html
  1 www.westos.com
[root@web html]# vim /etc/hosts
   172.25.254.16 www.westos.com westos.com music.westos.com news.westos.com

[root@web html]# mkdir /var/www/virtual/music.westos.com/html -p
[root@web html]# mkdir /var/www/virtual/news.westos.com/html -p
[root@web ~]# cd /var/www/virtual/music.westos.com/html
[root@web html]# vim index.html
  1 music.westos.com
[root@web html]# cd /var/www/virtual/news.westos.com/html
[root@web html]# vim index.html
  1 news.westos.com
[root@web html]# cd /etc/httpd/conf.d/
[root@web conf.d]# ls
autoindex.conf  manual.conf  README  userdir.conf  welcome.conf
[root@web conf.d]# vim default.conf
  1 <Virtualhost _default_:80>
  2         Documentroot /var/www/html
  3         Customlog "logs/default.log" combined    ##combined表示日志级别是全部
  4 </Virtualhost>
  5 <Directory "/var/www/html">
  6         Require all granted
  7 </Directory>
[root@web conf.d]# cp default.conf music.conf
[root@web conf.d]# vim music.conf
  1 <Virtualhost *:80>
  2         Servername music.westos.com
  3         Documentroot /var/www/virtual/music.westos.com/html
  4         Customlog "logs/music.log" combined
  5 </Virtualhost>
  6 <Directory "/var/www/virtual/music.westos.com/html">
  7         Require all granted
  8 </Directory>
[root@web conf.d]# cp music.conf news.conf
[root@web conf.d]# vim news.conf
  1 <Virtualhost *:80>
  2         Servername news.westos.com
  3         Documentroot /var/www/virtual/news.westos.com/html
  4         Customlog "logs/news.log" combined
  5 </Virtualhost>
  6 <Directory "/var/www/virtual/news.westos.com/html">
  7         Require all granted
  8 </Directory>
[root@web conf.d]# systemctl restart httpd
[root@web conf.d]# firefox

www.westos.com
news.westos.com
music.westos.com
显示成功

 ####证书
[root@web1 conf.d]# yum install mod_ssl -y
[root@foundation15 conf.d]# yum install crypto-utils -y
[root@web1 conf.d]# genkey www.westos.com     ###给网址加密
/usr/bin/keyutil -c makecert -g 1024 -s "CN=www.westos.com, OU=linux, O=westos, L=xi‘an, ST=shannxi, C=CN" -v 1 -a -z /etc/pki/tls/.rand.8103 -o /etc/pki/tls/certs/www.westos.com.crt -k /etc/pki/tls/private/www.westos.com.key
cmdstr: makecert

cmd_CreateNewCert
command:  makecert
keysize = 1024 bits
subject = CN=www.westos.com, OU=linux, O=westos, L=xi‘an, ST=shannxi, C=CN
valid for 1 months
random seed from /etc/pki/tls/.rand.8103
output will be written to /etc/pki/tls/certs/www.westos.com.crt
output key written to /etc/pki/tls/private/www.westos.com.key


Generating key. This may take a few moments...

Made a key
Opened tmprequest for writing
/usr/bin/keyutil Copying the cert pointer
Created a certificate
Wrote 882 bytes of encoded data to /etc/pki/tls/private/www.westos.com.key
Wrote the key to:
/etc/pki/tls/private/www.westos.com.key
[root@web1 ~]# ls /etc/pki/tls/certs
ca-bundle.crt        localhost.crt    Makefile          www.westos.com.crt
ca-bundle.trust.crt  make-dummy-cert  renew-dummy-cert
[root@web1 conf.d]# vim ssl.conf
100 SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
107 SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
https://172.25.254.16


左上角安装查看证书,ctrl+shift+delete可删除缓存,performence-Advanced-SecurityDevices-server可删除证书


邮件,apache