linux学习笔记(十二)

####mail####
电子邮件发送
服务器使用SMTP协议将电子邮件提交至TCP端口25,或由本地客户端通过/usr/bin/sendmail程序进行提交。如果该MTA是最终目标位置,邮件将传递至MDA。否则,将使用MX记录在DNS中查找下一个MTA,并使用SMTP进行转发。
MDA:“邮件发送代理”。MDA将邮件发送至收件人的本地邮件存储位置(默认情况下是/var/spool/mail/user)。Postfix提供自己的MDA,以发送至基于文件的本地默认邮件存储位置/usr/libexec/postfix/local.
转发:电子邮件服务器(MTA)将提交的邮件转发至另一个服务器,以进行发送
排队:失败的发送或转发尝试排队等待,并由MTA定义重试。(默认情况下,Postfix每小时执行此操作一次)
拒绝:在首次提交期间,电子邮件被电子邮件服务器拒绝
退回:远程服务器接受电子邮件以进行发送以后,又将该电子邮件退回给始发电子邮件服务器和/或用户
电子邮件以进行发送以后,又将该电子邮件退回给始发电子邮件服务器和/或用户

配置ip
修改主机名,修改yum源

##配置dns##
yum install bind -y
systemctl stop firewalld
vim /etc/named.conf
#########################
注释或删除:11 //      listen-on port 53 { 127.0.0.1; };
       12 //      listen-on-v6 port 53 { ::1; };
       17 //      allow-query     { localhost; };
修改:      32         dnssec-validation no;

#########################


cd /var/named/
vim /etc/named.rfc1912.zones
##################################
 25 zone "westos.com" IN {
 26         type master;
 27         file "westos.com.zone";
 28         allow-update { none; };
 29 };
 30
 31 zone "linux.com" IN {
 32         type master;
 33         file "linux.com.zone";
 34         allow-update { none; };
 35 };
 36

####################################


cp -p named.localhost westos.com.zone
vim westos.com.zone
####################################################
$TTL 1D
@       IN SOA  dns.westos.com. root.westos.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                NS      dns.westos.com.
dns             A       127.25.254.120
westos.com.     MX 1    172.25.254.120.

######################################################


cp -p westos.com.zone linux.com.zone
vim linux.com.zone
#######################################################
$TTL 1D
@       IN SOA  dns.linux.com. root.linux.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                NS      dns.linux.com.
dns             A       127.25.254.120
linux.com.      MX 1    172.25.254.220.

#########################################################


systemctl restart named
vim /etc/resolv.conf
##########################
nameserver 172.25.254.120

##########################


dig -t mx westos.com

dig -t mx linux.com




pop:协议
dove:提供协议的服务


##发送与接收##
Postfix由postfix RPM包提供,并通过postfix服务脚本控制。它是一个由多个协同操作程序构成的模块化程序,它的组件由master进程控制。
Postfix的主配置文件是/etc/postfix/main.cf,可以使用文本编辑器或postconf命令进行编辑。postconf命令还可用于确定Postfix的所有当前和默认配置设置或逐项确定这些设置。
默认情况下,Postfix仅侦听来自本地主机的传入电子邮件。若要重新配置postfix以接收从远程主机发送的本地邮件,必须在/etc/postfix/main.cf中设置inet_interfaces = all对电子邮件进行故障排除时,将在/var/log/maillog中保留所有与邮件相关的操作日志,其中包括关于被事件和成功事件的信息。mailq命令(或postqueue -p)显示已排队的所有传出邮件的列表。若要尝试再次立即发送所有已排队的邮件,可以运行postfix flush命令(或postqueue -f);否则,postfix将大约每小时尝试重新发送一次,直至邮件被接受或过期。

vim /etc/postfix/main.cf   
#################################################
76 myhostname = mailwestos.westos.com
83 mydomain = westos.com
99 myorigin = $mydomain   
##重写本地发布的电子邮件,使其显示为来自该域。这样有助于确保响应返回入站邮件服务器
113 inet_interfaces = all
注释: 116 #inet_interfaces = localhost
##控制Postfix侦听传入电子邮件的网络接口。如果设置为loopback-only,仅侦听127.0.0.1和::1,如果设置为all,则侦听所有网络接口。还可以指定特定地址。
164 mydestination = $myhostname, $mydomain, localhost
##收到地址为这些域的电子邮件将传递至MDA,以进行本地发送。
##################################################

若配置文件修改不正确,则提示25端口未开启



systemctl restart postfix.service
[root@mailwestos named]# mail root@linux.com
Subject: swf
wqer
wqf
.
EOT
[root@mailwestos named]# mailq     ##显示已排队的所有传出邮件
Mail queue is empty
[root@mailwestos named]# mail      ##查看邮件

postqueue -f          ##再次立即发送所有已排队的邮件
> /var/spool/mail/root    ##清空邮件箱
postsuper -d 邮件编码   ##删除邮件队列
mynetworks:允许哪一台主机把它要处理的文件发送给你



##空壳邮件##
linux下:
vim /etc/aliases

97 admin:          root


postalias /etc/aliases    ##给文件加密
systemctl restart postfix.service

westos下:
mail admin@linux.com   ##给admin用户发送邮件

linux下:
id admin  ##查看admin用户是否存在,会发现admin用户不存在u

mail      ##查看用户时,可以收到发送给admin的邮件



##群发邮件##
linux下:
vim /etc/aliases
#######################################
98 more:           :include:/etc/postfix/users

#######################################


postalias /etc/aliases
systemctl restart postfix.service
vim /etc/postfix/users
############
root
student

############



westos下:
mail more@linux.com

linux下:
mail

mail -u student




##企业邮件##
linux下:> /var/spool/mail/root
vim /etc/postfix/virtual
#####################################
admin@qq.com            root@westos.com
#####################################
postmap /etc/postfix/virtual
postconf -e "virtual_alias_maps = hash:/etc/postfix/virtual"

mail admin@qq.com



westos下:

mail:         ##查看邮件,发送至admin@qq.com的邮件实际发送至root@westos.com



##企业邮件回复##
vim /etc/named.rfc1912.zones
############################
zone "qq.com" IN {
        type master;
        file "qq.com.zone";
        allow-update { none; };
};
#################################
vim /etc/named.conf/qq.com.zone
###################################
$TTL 1D
@       IN SOA  dns.qq.com. root.qq.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
                NS      dns.qq.com.
dns             A       127.25.254.120
qq.com.         MX 1    172.25.254.220.
####################################
systemctl restart named

vim /etc/postfix/generic
###################################
root@linux.com  root@qq.com

####################################


postmap /etc/postfix/generic
postconf -e "smtp_generic_maps = hash:/etc/postfix/generic"
systemctl restart postfix.service

测试:mail发送邮件后,在另一方会显示为qq.com回复的邮件.





####telnet####远程邮件
yum install telnet -y
[root@maillinux ~]# telnet 172.25.254.160 25
Trying 172.25.254.160...
Connected to 172.25.254.160.
Escape character is '^]'.
220 mailwestos.westos.com ESMTP Postfix
ehlo hello
250-mailwestos.westos.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from:root@qq.com
250 2.1.0 Ok
rcpt to:root@westos.com
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
123
123
.
250 2.0.0 Ok: queued as 52B9517E860
quit
221 2.0.0 Bye

Connection closed by foreign host.




##接收邮件##
yum install dovecot -y
vim /etc/dovecot/dovecot.conf
######################################
24 protocols = imap pop3 lmtp
48 login_trusted_networks = 0.0.0.0/0     ##允许访问网络地址
49 disable_plaintext_auth =no             ##开启明文认证
######################################
vim /etc/dovecot/conf.d/10-mail.conf
#############################################
30   mail_location = maildir:/home/vmail/%d/%n
#############################################
mkdir /home/student/mail/.imap/
touch ./INBOX
yum insatll mutt -y       ##真机中安装 mutt 软件
然后 mutt -f pop://student@172.25.254.160
##直接查看邮件

能查看 root 的,必须得是在建立了目录和文件后才能查看

真机中:rpm -ivh thunderbird-31.2.0-1.el7.x86_64.rpm  ##安装雷鸟




##数据库##
cd /var/www/html/
tar jxf phpMyAdmin-3.4.0-all-languages.tar.bz2
mv phpMyAdmin-3.4.0-all-languages/ mysqladmin
rm -fr phpMyAdmin-3.4.0-all-languages.tar.bz2
cd mysqladmin/
cp config.sample.inc.php config.inc.php
vim config.inc.php
#######################################
17  $cfg['blowfish_secret'] = 'westos';
#######################################
yum install mariadb-server httpd php php-mysql -y
mysql_secure_installation        ##建立root密码
[root@maillinux mysqladmin]# mysql -uroot -p
MariaDB [(none)]> CREATE USER postfix@localhost identified by 'postfix';
MariaDB [(none)]> GRANT INSERT,SELECT on email.* to postfix@localhost;
systemctl stop firewalld.service
systemctl start httpd
systemctl start mariadb
测试:172.25.254.214/mysqladmin
先用 root 登陆然后创建数据库和创建表 然后添加数据

再用新创建出的postfix用户尝试登陆




cd /etc/postfix
vim mysql-user.cf
######################
host = localhost
user = postfix
password = postfix
dbname = email
table = email
select_field = username
where_field = username

######################


cp mysql-user.cf mysql-domain.cf
vim mysql-domain.cf
#####################
host = localhost
user = postfix
password = postfix
dbname = email
table = email
select_field = domain
where_field = domain

####################


cp mysql-user.cf mysql-mailbox.cf
vim mysql-mailbox.cf
#######################
host = localhost
user = postfix
password = postfix
dbname = email
table = email
select_field = maildir
where_field = username

#######################


测试: postmap -q "admin@redhat.com" mysql:/etc/postfix/mysql-user.cf
postmap -q "admin@redhat.com" mysql:/etc/postfix/mysql-mailbox.cf

postmap -q "redhat.com" mysql:/etc/postfix/mysql-domain.cf



[root@maillinux postfix]# postconf -e "virtual_mailbox_base = /home/vmail"
[root@maillinux postfix]# postconf -e "virtual_gid_maps = static:888"
[root@maillinux postfix]# postconf -e "virtual_uid_maps = static:888"
postconf -e "virtual_alias_maps = mysql:/etc/postfix/mysql-user.cf"
ls -l /etc/postfix/mysql-user.cf
postconf -e "virtual_mailbox_domains = mysql:/etc/postfix/mysql-domain.cf"
ls -ld /etc/postfix/mysql-domain.cf
postconf -e "virtual_mailbox_maps = mysql:/etc/postfix/mysql-domain.cf"

ls -ld /etc/postfix/mysql-mailbox.cf

vim /etc/postfix/main.cf
#########################################################
680 virtual_alias_maps = mysql:/etc/postfix/mysql-user.cf
681 virtual_gid_maps = static:888
682 virtual_uid_maps = static:888
683 virtual_mailbox_base = /home/vmail
684 virtual_mailbox_domains = mysql:/etc/postfix/mysql-domain.cf
685 virtual_mailbox_maps = mysql:/etc/postfix/mysql-domain.c

##########################################################


groupadd -g 888 vmail
useradd -u 888 -g 888 vmail
cd /etc/skel
mkdir mail/.imap
touch INBOX
mail admin@redhat.com

cd /home/vmail/mail/redhat.com/new    ##查看邮件




##收邮件##

yum install dovecot-mysql.x86_64 -y

vim /etc/dovecot/dovecot.conf

#########################

48  login_trusted_networks = 0.0.0.0/0
49  disable_plaintext_auth = no

#########################


vim /etc/dovecot/conf.d/10-auth.conf
###############################
123 !include auth-sql.conf.ext

###############################


cp /usr/share/doc/dovecot-2.2.10/example-config/dovecot-sql.conf.ext /etc/dovecot/dovecot-sql.conf.ext
vim /etc/dovecot/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 email WHERE username = '%u' AND domain = '%d'
125  user_query = SELECT maildir, 888 AS uid, 888 AS gid FROM email WHERE username = '%u'
############################################
vim /etc/dovecot/conf.d/10-mail.conf
#############################################
30   mail_location = maildir:/home/vmail/%d/%n
#############################################
setsebool -P mysql_connect_any on    ##打开 selinux 服务
[kiosk@foundation14 Desktop]$ telnet 172.25.254.120 110
Trying 172.25.254.120...Connected to 172.25.254.120.
Escape character is '^]'.
+OK [XCLIENT] Dovecot ready.
user admin@redhat.com
+OK
pass 123
+OK Logged in.
quit
+OK Logging out.

Connection closed by foreign host.




####网络配置####
nm-connetcion-editor    ##将虚拟机desktop的所有网卡删除
nmcli connection add con-name eth0 ifname westos type ethernet ip6 2017::20/48

vim /etc/sysconfig/network-scripts/ifcfg-westos


systemctl restart network

ping6 2017::20


netstat -antlpe6
–n    ##不作解析
–t    ##tcp 协议
–u    ##udp协议
–L    ##状态位listen的端口
–a    ##所有端口
–p    ##显示进程

ifconfig



####高级网络配置####
真机下:
cd /etc/sysconfig/network-scripts/
ls
mv ifcfg-br0 ifcfg-enp0s25 /mnt/
reboot
nm-connection-editor    ##将以太网与桥接删除
cd /etc/sysconfig/network-scripts/
ls
virt-manager
vim ifcfg-enp0s25
#################
DEVICE=enp0s25
ONBOOT=yes
BOOTPROTO=none
TYPE=Ethernet
BRIDGE=br0
#################
vim ifcfg-br0
################
DEVICE=br0
ONBOOT=yes
BOOTPROTO=none
TYPE=Bridge
IPADDR=172.25.254.20
PREFIX=24
DNS1=172.25.254.250
GATEWAY=172.25.254.250
#######################
systemctl stop NetworkManager.service
systemctl restart network

systemctl start NetworkManager

NAT与桥接都可以安装虚拟机,但是桥接的速度会明显快于NAT

NAT:

桥接:




##网卡桥接##
nm-connection-editor    ##删除网卡
brctl addbr br0        ##添加网卡
brctl show        ##显示网卡
brctl addif br0 eth0    ##将br0搭建在eth0上
brctl show
ifconfig br0 172.25.254.120 netmask 255.255.255.0    ##对网卡添加配置
ifconfig
ping 172.25.254.250
brctl delif br0 eth0    ##将br0从eth0上移除
ifconfig br0 down    ##将br0从ifconfig中移除
brctl delbr br0        ##删除br0

brctl show




##bonding##(网卡备用,可以防止因网卡毁坏导致工作停止)

监控命令:watch -n 1 cat /proc/net/bonding/bond0


nm-connetion-editor   ##删除已有的网卡

nmcli connection add con-name bond0 ifname bond0 type bond mode active-backup ip4 172.25.254.120/24        ##添加bond
ifconfig
ping 172.25.254.250
nmcli connection add con-name eth0 ifname eth0 type bond-slave master bond0

nmcli connection add con-name eth1 ifname eth1 type bond-slave master bond0


ifconfig eth0 down
##如果eth0毁坏,则eth1自动启动

ifconfig eth0 up

nmcli connection delete eth0
nmcli connection delete eth1
nmcli connection delete bond0

##停止所有服务



##team##(bond最多能够挂载两张网卡,team最多能够挂载八张网卡)
监控命令:watch -n 1 teamdctl team0 stat
nmcli connetcion add con-name team0 ifname team0 type team config '{"runner" :{"name":"activebackup"}}' ip4 172.25.254.114/24        ##添加team名为team0,分别将eth0和eth1添加到team0中
nmcli connetcion add con-name eth0 type team-slave ifname eth0 master team0

nmcli connetcion add con-name eth1 type team-slave ifname eth1 master team0




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值