热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux系统下配置安全的sendmail

一:sendmail概述Sendmail是目前使用最为广泛的一种E-mail服务器。当前其最新的稳定版本为8.14.3。sendmail是最重要的邮件传输代理程序。因此理解电子邮件的工作模式是非常重要的。一般情况下,我们把电子邮件程序分解成传输代理,用户代理和投递代理三大部

一:sendmail概述

          Sendmail是目前使用最为广泛的一种E-mail服务器。当前其最新的稳定版本为8.14.3。 sendmail是最重要的邮件传输代理程序。因此理解电子邮件的工作模式是非常重要的。一般情况下,我们把电子邮件程序分解成传输代理,用户代理和投递代理三大部分。

1、电子邮件系统的专业术语

(1)邮件传输代理(Mail Transfer Agent):服务器执行的软件,用于在服务器之间传输邮件,一般每个系统只有一个MTA保持运行状态。

(2)邮件用户代理(Mail User Agent):客户端运行的软件,提供用户读、写、修改及处理邮件的功能,一个系统中可以有多个MUA在运行。

(3)邮件传递代理(Mail Delivery Agent):通常与MTA一同运行,将MTA接收的邮件按照目的位置作出相应处理,发往本机帐户下的邮箱或转发到另外的MTA。

(4)邮局协议(Post Office Protocol):是邮件系统接收电子邮件的通信协议,可以以“拉”的形式从服务器将邮件下载到本地进行阅读。

(5)Internet信息访问协议(Internet Message access Protocol):与POP一样是用来读取服务器上的邮件,但客户端必须登录服务器,属于在服务器上直接读取。

(6)简单邮件传输协议(Simple Mail Transfer Protocol):负责邮件传递的协议。

2、sendmail主要配置文件

(1)/etc/mail/sendmail.cf:sendmail的主要配置文件,管理所有参数。由于sendmail.cf中的语法很复杂,所以不要建议手工修改。由于我们可以以sendmail.mc文档配合sendmail-cf目录下的宏通过m4预处理器自动生成。

(2)/etc/mail/access.db:sendmail服务器的数据库,要转成这个数据库需要makemap命令和/etc/mail/access的配合

(3)/etc/mail/access:设置哪些地址的主机能够经过本地sendmail服务器进行收发邮件。

3、sendmail主要执行文件

(1)/usr/sbin/makemap:主要将access转成access.db的执行文件。

(2)/usr/sbin/mailstats:将/etc/mail/statistics配置文件读出来的执行文件,可以查看到目前为止sendmail共传送接受了多少邮件。

(3)/usr/bin/newaliases:使snedmail重新读取/etc/aliases的内容。

(4)/usr/bin/mailq:查看/var/spool/mqueue邮件暂存目录还有多少邮件没有发送。

4、邮件相关目录

(1)/var/spool/mail:每个使用者邮件存放目录,每个用户名为一个子目录。

(2)/var/spool/mqueue:没有发送出去的邮件暂存目录。

5:sendmail下载地址

sendmail.8.14.2.tar.gz http://www.sendmail.org/releases

二: sendmail的安全问题

随着Internet的爆炸性增长,像sendmail这样接受用户所提供的任意输入并把它投递给本地用户、文件或shell的应用常常会为黑客们提供一条实施攻击的坦途。sendmail和DNS甚至IP,正在尝试把身份验证和加密作为内建的解决方案以解决一些基本的安全性问题。

最近美国关于加密技术的出口法规开始松动,这使得sendmail在发布时可以内建对加密功能的挂接接口。版本8.11及其后继版本都支持用SSL(Secure Socket Layer,安全套接口协议层)进行SMTP身份验证和加密,SSL也称为TLS(Transport Layer Security,传输层加密)。sendmail在这里使用术语TLS,并且已经把它作为对SMTP协议的一种扩展?STARTTLS?实现了。TLS给它带来了6个用于鉴定文件和给文件上锁的新配置选项。对访问数据库进行匹配的新操作要求身份验证必须先取得成功。

三:各协议开放的端口

发送 Smtp :25 smtp+ssl(starttls) smtps: 465

接收 pop3 :110 pop3s: 995

Imap: 143 imap: 993

必要的实验环境:

1:操作系统:linux red hat enterprise server 内核版本 2.6.18-164.el5

2:本地的yum 服务器(在次不再演示如何搭建)

案例一:

需求分析:

某公司的总部位于北京,在其公司内部架设有一天dns服务器(192.168.10.100)负责bj.com的区域,而他的分公司上海也架设有一台dns服务器(192.168.10.101)负责sh.com,为了实现两个地方的邮件用户可以互发邮件,并且对所发的邮件进行加密。北京和上海也分别有自己的邮件服务器。

网络拓扑图:

步骤:

一:总部北京的配置

1:安装sendmail服务器的包

[root@mail ~]# rpm -qa|grep sendmail

sendmail-8.13.8-2.el5

sendmail-cf-8.13.8-2.el5

[root@mail ~]# rpm -qa|grep m4

m4-1.4.5-3.el5.1

2:编辑access文件

[root@mail ~]# cd /etc/mail

[root@mail mail]# vim access

Connect:localhost.localdomain RELAY

Connect:localhost RELAY

Connect:127.0.0.1 RELAY

Connect:192.168.10 RELAY  允许192.168.10.0 网段的主机通过本电子邮件服务器转发邮件

bj.com OK

sh.com RELAY

3:编辑local-host-names文件

[root@mail mail]# vim local-host-names

# local-host-names - include all aliases for your machine here.

bj.com  该sendmail服务器所管理的区域

4:配置北京的dns服务器

[root@mail Server]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm

[root@mail Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm

[root@mail Server]# rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm

5:编辑named.conf的配置文件

[root@mail Server]# cd /var/named/chroot/

[root@mail chroot]# ll

total 12

drwxr-x--- 2 root named 4096 Mar 4 22:21 dev

drwxr-x--- 2 root named 4096 Mar 4 22:26 etc

dr-xr-xr-x 135 root root 0 Mar 4 23:19 proc

drwxr-x--- 6 root named 4096 Mar 4 22:21 var

[root@mail chroot]# cd etc/

[root@mail etc]# cp -p named.caching-nameserver.conf named.conf

6:编辑区域声明文件

[root@mail etc]# vim named.rfc1912.zones

7:创建该区域的数据库文件bj.com.db

[root@mail etc]# cd ../var/named/

[root@mail named]# cp -p localhost.zone bj.com.db

[root@mail named]# ll

-rw-r----- 1 root named 355 Mar 4 22:38 bj.com.db

-rw-r----- 1 root named 198 Jul 30 2009 localdomain.zone

-rw-r----- 1 root named 195 Jul 30 2009 localhost.zone

8:编辑该文件

9:修改主机的dns指向

[root@mail named]# vim /etc/resolv.conf

search xyh.com

nameserver 192.168.10.100

10:修改主机的名字

[root@mail named]# vim /etc/sysconfig/network

NETWORKING=yes

NETWORKING_IPV6=no

HOSTNAME=mail.bj.com

[root@mail named]# vim /etc/hosts

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1 mail.bj.com

::1 localhost6.localdomain6 localhost6

11:将sendmail和named设置为自动启动

[root@mail named]# chkconfig sendmail on

[root@mail named]# chkconfig named on

12:在本机上建立两个用户

[root@mail named]# useradd user1

[root@mail named]# echo "123' |passwd --stdin user1

[root@mail named]# useradd user2

[root@mail named]# echo "123' |passwd --stdin user2

13:安装邮件接收服务器dovecat,并将其设置为自动服务

[root@mail ~]# yum install dovecot

[root@mail ~]# chkconfig dovecot on

[root@mail ~]# service dovecot restart

Stopping Dovecot Imap: [FAILED]

Starting Dovecot Imap: [ OK ]

[root@mail ~]#

14:重新启动机器

[root@mail named]# init 6

15:测试北京本地的两个用户是否可以互发邮件

这样的话我们就实现了本地的两个用户之间的互发邮件

二:上海分公司的配置

我们再次对以上的虚拟机进行克隆,并对相关的文件进行修改。

并在上海的邮件服务器创建user3,user4.

[root@mail named]# useradd user3

useradd: user user3 exists

[root@mail named]# echo "123"|passwd --stdin user3

Changing password for user user3.

passwd: all authentication tokens updated successfully.

[root@mail named]# useradd user4

useradd: user user4 exists

[root@mail named]# echo "123"|passwd --stdin user4

Changing password for user user4.

passwd: all authentication tokens updated successfully.

User3和user4之间发邮件

三:由于dns的工作原理,我们没有连接互联网,所以我们在这里开启dns的转发功能

1:北京的dns服务器

[root@mail ~]# vim /var/named/chroot/etc/named.conf

2:上海的dns服务器

[root@mail named]# vim /var/named/chroot/etc/named.conf

四:测试

使用上海的user3的账户给北京的user1用户发一份邮件

[root@mail ~]# dig -t mx bj.com

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5 <<>> -t mx bj.com

;; global options: printcmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36535

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; QUESTION SECTION:

;bj.com. IN MX

;; ANSWER SECTION:

bj.com. 86400 IN MX 10 mail.bj.com.

;; AUTHORITY SECTION:

bj.com. 86400 IN NS ns.bj.com.

;; ADDITIONAL SECTION:

mail.bj.com. 86400 IN A 192.168.10.100

ns.bj.com. 86400 IN A 192.168.10.100

;; Query time: 11 msec

;; SERVER: 192.168.10.100#53(192.168.10.100)

;; WHEN: Mon Mar 5 03:19:56 2012

;; MSG SIZE rcvd: 94

[root@mail ~]# dig -t mx sh.com

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5 <<>> -t mx sh.com

;; global options: printcmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1025

;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; QUESTION SECTION:

;sh.com. IN MX

;; ANSWER SECTION:

sh.com. 85138 IN MX 10 mail.sh.com.

;; AUTHORITY SECTION:

sh.com. 85138 IN NS ns.sh.com.

;; ADDITIONAL SECTION:

mail.sh.com. 85138 IN A 192.168.10.101

ns.sh.com. 85138 IN A 192.168.10.101

;; Query time: 2 msec

;; SERVER: 192.168.10.100#53(192.168.10.100)

;; WHEN: Mon Mar 5 03:20:06 2012

;; MSG SIZE rcvd: 94

在北京的user1上查看自己的邮件

这样的话我们的总公司和分公司之间就能够互相的发送和接收电子邮件啦。

       优化:在北京的dns上面配置dns反向解析,增加邮件的收发速度。

四:接下来我们就需要对服务器颁发证书,对数据进行加密

在北京那边搭建自己的CA服务器(我们使用openssl来进行搭建)

1:安装各个包,并修改配置文件

[root@mail Server]# cd /etc/pki/

[root@mail pki]# LL

-bash: LL: command not found

[root@mail pki]# ll

total 36

drwx------ 3 root root 4096 Feb 8 01:41 CA

drwxr-xr-x 4 root root 4096 Mar 4 22:48 dovecot

drwxr-xr-x 2 root root 4096 Feb 8 01:40 nssdb

drwxr-xr-x 2 root root 4096 Feb 8 01:41 rpm-gpg

drwxr-xr-x 5 root root 4096 Feb 8 01:41 tls

[root@mail pki]# vim tls/openssl.cnf

2:切换到CA 目录下面,建立相应的目录和文件

[root@mail pki]# cd CA/

[root@mail CA]# ll

total 8

drwx------ 2 root root 4096 Jun 30 2009 private

[root@mail CA]# mkdir certs newcerts crl 证书目录 ,证书的吊销列表目录

[root@mail CA]# touch index.txt index.txt文件

[root@mail CA]# echo "01" >serial serial文件

3:为ca服务器建立自己的钥匙和证书文件

[root@mail CA]# openssl genrsa 1024 >private/cakey.pem产生钥匙文件

Generating RSA private key, 1024 bit long modulus

.......++++++

............................++++++

e is 65537 (0x10001)

[root@mail CA]# chmod 600 private/cakey.pem 改变私钥的相应的权限,增加安全性

[root@mail CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650

##这里我们可以指明证书的格式为-x509,有效日期10年

Country Name (2 letter code) [GB]:CN

State or Province Name (full name) [Berkshire]:BEIJING

Locality Name (eg, city) [Newbury]:BEIJING

Organization Name (eg, company) [My Company Ltd]:TECCENTRE

Organizational Unit Name (eg, section) []:TEC

Common Name (eg, your name or your server's hostname) []:root.net.net

Email Address []:

[root@mail CA]# ll

-rw-r--r-- 1 root root 1147 Mar 5 03:41 cacert.pem

drwxr-xr-x 2 root root 4096 Mar 5 03:38 certs

drwxr-xr-x 2 root root 4096 Mar 5 03:38 crl

-rw-r--r-- 1 root root 0 Mar 5 03:38 index.txt

drwxr-xr-x 2 root root 4096 Mar 5 03:38 newcerts

drwx------ 2 root root 4096 Mar 5 03:39 private

-rw-r--r-- 1 root root 3 Mar 5 03:38 serial

五:在北京的服务器上请求自己的证书

1:请求证书

[root@mail mail]# cd /etc/mail

[root@mail mail]# mkdir certs

[root@mail mail]# cd certs/

[root@mail certs]# openssl genrsa 1024 > sendmail.key

Generating RSA private key, 1024 bit long modulus

....++++++

.............................................++++++

e is 65537 (0x10001)

[root@mail certs]# openssl req -new -key sendmail.key -out sendmail.csr

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [GB]:CN

State or Province Name (full name) [Berkshire]:BEIJING

Locality Name (eg, city) [Newbury]:BEIJING

Organization Name (eg, company) [My Company Ltd]:bjdx

Organizational Unit Name (eg, section) []:student

Common Name (eg, your name or your server's hostname) []:mail.bj.com

Email Address []:

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

[root@mail certs]# openssl ca -in sendmail.csr -out sendmail.cert

Using configuration from /etc/pki/tls/openssl.cnf

Check that the request matches the signature

Signature ok

Certificate Details:

Serial Number: 1 (0x1)

Validity

Not Before: Mar 4 19:50:34 2012 GMT

Not After : Mar 4 19:50:34 2013 GMT

Subject:

countryName = CN

stateOrProvinceName = BEIJING

organizatiOnName= bjdx

organizatiOnalUnitName= student

commOnName= mail.bj.com

X509v3 extensions:

X509v3 Basic Constraints:

CA:FALSE

Netscape Comment:

OpenSSL Generated Certificate

X509v3 Subject Key Identifier:

0F:9D:CE:88:E6:94:F2:C4:89:C9:E6:FA:C3:DA:A6:7F:AB:5B:8D:03

X509v3 Authority Key Identifier:

keyid:97:3E:00:0C:F4:BF:06:46:63:E5:87:BC:45:14:5C:1E:62:54:FA:39

Certificate is to be certified until Mar 4 19:50:34 2013 GMT (365 days)

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

Write out database with 1 new entries

Data Base Updated

2:修改钥匙和证书的权限

[root@mail certs]# chmod 600 *

[root@mail certs]# ll

total 12

-rw------- 1 root root 3082 Mar 5 03:50 sendmail.cert

-rw------- 1 root root 651 Mar 5 03:49 sendmail.csr

-rw------- 1 root root 887 Mar 5 03:47 sendmail.key

3:将证书和sendmail服务器捆绑

将服务器的证书考到sendmail的certs目录下

[root@mail certs]# cp /etc/pki/CA/cacert.pem .

[root@mail certs]# ll

total 16

-rw-r--r-- 1 root root 1147 Mar 5 03:54 cacert.pem

-rw------- 1 root root 3082 Mar 5 03:50 sendmail.cert

-rw------- 1 root root 651 Mar 5 03:49 sendmail.csr

-rw------- 1 root root 887 Mar 5 03:47 sendmail.key

[root@mail certs]# vim /etc/mail/sendmail.mc

4:开启tls的验证功能

5:重新启动sendmail的服务,验证starttls服务是否已经开启

[root@mail ~]# service sendmail restart

Shutting down sm-client: [ OK ]

Shutting down sendmail: [ OK ]

Starting sendmail: [ OK ]

Starting sm-client: [ OK ]

[root@mail ~]# telnet 127.0.0.1 25

Trying 127.0.0.1...

Connected to mail.bj.com (127.0.0.1).

Escape character is '^]'.

220 mail.bj.com ESMTP Sendmail 8.13.8/8.13.8; Mon, 5 Mar 2012 04:29:51 +0800

ehlo 127.0.0.1

250-mail.bj.com Hello mail.bj.com [127.0.0.1], pleased to meet you

250-ENHANCEDSTATUSCODES

250-PIPELINING

250-8BITMIME

250-SIZE

250-DSN

250-ETRN

250-STARTTLS 这里我们看到我们的smtp协议已经增加了ssl的功能

250-DELIVERBY

250 HELP

6:对接收服务器dovecot同样的颁发证书文件

[root@mail ~]# mkdir -p /etc/dovecot/certs

[root@mail ~]#

[root@mail ~]#

[root@mail ~]# cd /etc/dovecot/certs/

[root@mail certs]# mkdir certs newcerts crl

[root@mail certs]# touch index.txt

[root@mail certs]# echo "01" >serial

[root@mail certs]# ll

total 16

drwxr-xr-x 2 root root 4096 Mar 5 04:35 certs

drwxr-xr-x 2 root root 4096 Mar 5 04:35 crl

-rw-r--r-- 1 root root 0 Mar 5 04:35 index.txt

drwxr-xr-x 2 root root 4096 Mar 5 04:35 newcerts

-rw-r--r-- 1 root root 3 Mar 5 04:35 serial

[root@mail certs]# openssl genrsa 1024 >dovecot.key

Generating RSA private key, 1024 bit long modulus

.......++++++

.................................++++++

e is 65537 (0x10001)

[root@mail certs]# openssl req -new -key dovecot.key -out dovecot.csr

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [GB]:CN

State or Province Name (full name) [Berkshire]:BEIJING

Locality Name (eg, city) [Newbury]:BEIJING

Organization Name (eg, company) [My Company Ltd]:BJDX

Organizational Unit Name (eg, section) []:SEC

Common Name (eg, your name or your server's hostname) []:mail.bj.com

Email Address []:

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:

An optional company name []:

[root@mail certs]# openssl ca -in dovecot.csr -out dovecot.cert

Using configuration from /etc/pki/tls/openssl.cnf

Check that the request matches the signature

Signature ok

Certificate Details:

Serial Number: 2 (0x2)

Validity

Not Before: Mar 4 20:39:09 2012 GMT

Not After : Mar 4 20:39:09 2013 GMT

Subject:

countryName = CN

stateOrProvinceName = BEIJING

organizatiOnName= BJDX

organizatiOnalUnitName= SEC

commOnName= mail.bj.com

X509v3 extensions:

X509v3 Basic Constraints:

CA:FALSE

Netscape Comment:

OpenSSL Generated Certificate

X509v3 Subject Key Identifier:

75:37:BA:7A:1C:7D:FA:96:B6:0E:33:BF:C0:A9:85:21:FD:41:DC:BC

X509v3 Authority Key Identifier:

keyid:97:3E:00:0C:F4:BF:06:46:63:E5:87:BC:45:14:5C:1E:62:54:FA:39

Certificate is to be certified until Mar 4 20:39:09 2013 GMT (365 days)

Sign the certificate? [y/n]:y

1 out of 1 certificate requests certified, commit? [y/n]y

Write out database with 1 new entries

Data Base Updated

对证书进行绑定

[root@mail certs]# vim /etc/dovecot.conf

7:查看相应的加密的端口是否已经开放

Smtps 发送的加密

[root@mail certs]# netstat -tupln|grep sendmail

tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 3614/sendmail: acce

tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 3614/sendm

[root@mail certs]# grep 465 /etc/services

smtps 465/tcp # SMTP over SSL (TLS)

pop3s ,imaps接收的加密

root@mail certs]# netstat -tupln|grep dovecot

tcp 0 0 :::993 :::* LISTEN 2847/dovecot

tcp 0 0 :::995 :::* LISTEN 2847/dovecot

tcp 0 0 :::110 :::* LISTEN 2847/dovecot

tcp 0 0 :::143 :::* LISTEN 2847/dovec

[root@mail certs]# grep 995 /etc/services

pop3s 995/tcp # POP-3 over SSL

[root@mail certs]# grep 993 /etc/services

imaps 993/tcp # IMAP over SSL

8:安装wireshark的抓包工具,进行发送和接收的验证

[root@mail ~]# yum install wireshark*

验证明文的pop3协议

[root@mail ~]# tshark -ni eth0 -R "tcp.dstport eq 110"

3:smtps发送的加密验证

查看日志

在客户端软件上进行认证的设置

用tshark进行抓包,分析结果

[root@mail ~]# tshark -ni eth0 -R "tcp.dstport eq 993" imaps协议

Pop3s 协议

这样我们已经看到我们的电子邮件服务器已经启用了发送的和接收的加密功能。

六:在服务器上启用SASL功能 SASL (简单认证安全层)服务名为:saslauthd

默认已经进行了安装

1:[root@mail Server]# rpm -qa|grep sasl

cyrus-sasl-lib-2.1.22-5.el5

cyrus-sasl-2.1.22-5.el5

cyrus-sasl-devel-2.1.22-5.el5

cyrus-sasl-plain-2.1.22-5.el5:

2:[root@mail Server]# chkconfig saslauthd on 设置该服务为自动的启动

[root@mail Server]# chkconfig --list saslauthd

saslauthd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

[root@mail Server]# service saslauthd start

Starting saslauthd: [ OK ]

3:[root@mail Server]# vim /etc/mail/sendmail.mc 修改sendmail的主配置文档

39 define(`confAUTH_OPTIONS', `A y')dnl

52 TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

53define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl

116 DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA,M=Ea')dnl

[root@mail Server]# service sendmail restart

Shutting down sm-client: [ OK ]

Shutting down sendmail: [ OK ]

Starting sendmail: [ OK ]

Starting sm-client: [ OK ]

4:在北京的服务器上进行验证

mail from qq.@tengxun.com 非注册的用户

530 5.7.0 Authentication required

mail from user1@bj.com 注册的用户

530 5.7.0 Authentication required

5:接下来我们对注册的用户的账号和密码进行base64的验证

6:再次验证

7:在服务器上查看邮件是否已经发送

8:[root@mail ~]# tail -f /var/log/maillog 查看服务器上的日志文件

小结:邮件服务器我们已经搭建成功了,并且实现了一定的安全功能。


推荐阅读
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 本文介绍了数据库体系的基础知识,涵盖关系型数据库(如MySQL)和非关系型数据库(如MongoDB)的基本操作及高级功能。通过三个阶段的学习路径——基础、优化和部署,帮助读者全面掌握数据库的使用和管理。 ... [详细]
  • 嵌入式开发环境搭建与文件传输指南
    本文详细介绍了如何为嵌入式应用开发搭建必要的软硬件环境,并提供了通过串口和网线两种方式将文件传输到开发板的具体步骤。适合Linux开发初学者参考。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 请看|间隔时间_Postgresql 主从复制 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • 使用LVS与ldirectord实现高可用负载均衡
    本文介绍了如何通过LVS(Linux Virtual Server)结合ldirectord工具来实现服务器的健康检查及负载均衡功能。环境设置包括一个LVS节点和两个真实服务器节点,通过配置ldirectord进行健康状态监测,确保系统的高可用性。 ... [详细]
  • Linux网络安装指南
    本文详细介绍了如何通过网络安装Linux操作系统,包括必要的服务配置和常见问题解决方法,旨在帮助IT专业人士提高系统部署效率。 ... [详细]
  • 本文详细介绍了 Kubernetes 集群管理工具 kubectl 的基本使用方法,涵盖了一系列常用的命令及其应用场景,旨在帮助初学者快速掌握 kubectl 的基本操作。 ... [详细]
  • 利用SSH隧道实现外网对局域网机器的安全访问
    本文探讨了一种常见的网络配置问题及其解决方案,即如何在外网环境下安全地访问位于局域网内的计算机。特别介绍了使用SSH反向隧道技术来实现这一目标的具体步骤和注意事项。 ... [详细]
  • 近期,考虑到在Vim内部进行GDB调试、运行Python脚本和数据库连接等多样化需求,思考是否可以通过集成终端来简化这些操作,而非逐一编写Vim脚本来实现。通过研究发现,确实存在一种高效的方法——利用特定插件实现终端功能的整合。 ... [详细]
  • iTOP4412开发板QtE5.7源码编译指南
    本文详细介绍了如何在iTOP4412开发板上编译QtE5.7源码,包括所需文件的位置、编译器设置、触摸库编译以及QtE5.7的完整编译流程。 ... [详细]
  • VMware Horizon View 5.0桌面虚拟化部署实践与心得
    在近期的研究中,我花费了大约两天时间成功部署了桌面虚拟化环境,并在此过程中积累了一些宝贵的经验。本文将分享这些经验和部署细节,希望能对同样关注桌面虚拟化的同行有所帮助。 ... [详细]
author-avatar
PHPYeQ
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有