大家好,今天小编来为大家解答以下的问题,关于mta服务器,Linux系统下安装配置postfix邮件服务器教程这个很多人还不知道,现在让我们一起来看看吧!
一、linux系统下邮件服务器sendmail的配置
安装所需软件
sendmail.8.12.10.tar.gz
cyrus-sasl-2.1.18.tar.gz
安装步骤
1、 先安装cyrus-sasl-2.1.18.tar.gz,sendmail安装时要用到sasl(简单认证和安全层协议)的库文档的头文档。
解压缩:
# tar-zxvf cyrus-sasl-2.1.18.tar.gz
编译:
进入刚解压的源码目录,运行以下命令完成安装。
#./configure--prefix=/usr/local/sasl2--enable-login
一定要加--enable-login,因为SASL2默认不支持login这种验证方式,而OUTLOOK是通过
login来进行SMTP验证的。
#make #编译
#make install #安装
完成以上linux程式安装三步曲之后,就能够开始配置和测试了。
2、配置SASL
为了把SASL应用于sendmail认证,还需进行一些配置工作。sendmail会到/usr/lib目录下去
找SASL2库,而我们是把程式安装在/usr/local/sasl2中,为什么不把软件安装在/usr/lib目录
呢?这主要是为了好管理自已安装的软件啦。所以我们要在/usr/lib目录下做一个:
# cd/usr/lib
# ln-s/usr/local/sasl2/lib/*.
ok,接着要在/var/目录下建一个目录给saslauthd进程存在临时数据。
# cd/var
# mkdir state
# cd state
# mkdir saslauthd
注:假如没有这些目录,运行saslauthd时,会提示出错。
ok,接着为确保CYRUS-SASL2函数库知道怎样验证所收来的SASL认证请求,必须创建一
个SASL的配置文档来把MTA程式定义成一个SASL应用。配置文档名为Sendmail.conf(注
意是大写的S),位于/usr/lib/sasl2目录中,也就是/usr/local/sasl2/lib/sasl2这个目录,记得上
面新建的了吗?在该文档中您定义您希望使用的认证数据库方法,以下这个例子使用
saslauthd来验证认证请求。
# cd/usr/lib/sasl2
# echo'pwcheck_method: saslauthd'; Sendmail.conf
3、测试
ok,现在能够运行saslauthd了,并进行测试。
# cd/usr/local/sasl2/sbin
#./saslauthd-a shadow
用shadow的用户和密码进行验证
#./testsaslauthd-u userid-p password
0: OK"Suess."
假如出现以上信息,就说明saslauthd正常运行了。testsaslauthd程式默认是没有编译的,您
需要在源码目录树的saslauthd子目录中运行 # make testsaslauthd命令生成。
4、sasl2安装完成后,就要开始安装sendmail了。
先解压sendmail源码。
# tar-zxvf sendmail.8.12.10.tar.gz
假如要sendmail支持SASL,需要修改源码的位置配置文档site.config.m4。site.config.m4位
于源码目录树的devtools/Site。文档中应包含以下行:
PREPENDDEF(`confMAPDEF', `-DMAP_REGEX')
APPENDDEF(`confENVDEF', `-DTCPWRAPPERS-DSASL=2')
APPENDDEF(`conf_sendmail_LIBS', `-lwrap-lsasl2')
APPENDDEF(`confLIBDIRS', `-L/usr/local/sasl2/lib')
APPENDDEF(`confINCDIRS', `-I/usr/local/sasl2/include')
第一行配置正则表达式相关内容
第二、三行配置表示在sendmail程式中支持sasl2和tcp_wrer(可通过hosts.allow和
hosts.deny控制访问)
第四、五行配置指出sasl2的库文档和头文档的位置。
ok,接着在编译前要建立一些用户和目录,并确保有正确的权限。
sendmail必须有一个set-group-id(默认是smmsp组)的程式来在一个组可写的目录中查询
排队邮件。所以我们要建立一个smmsp用户和组。并建立如下目录并配置相应的权限,具
体配置需要可查询源码目录树下sendmail/SECURITY文档。
# groupadd smmsp
# useradd smmsp-d/var/spool/clientmqueue-s/dev/null
# mkdir/var/spool/clientmqueue
# chown-R smmsp:smmsp/var/spool/clientmqueue
# chmod-R 770/var/spool/clientmqueue
# mkdir/etc/mail
# mkdir/var/spool/mqueue
# chmod go-w//etc/etc/mail/usr/var/var/spool/var/spool/mqueue
# chown root//etc/etc/mail/usr/var/var/spool/var/spool/mqueue
ok,接下来就能够进入源码目录树开始编译了。
#./Build-c
-c选项能删除上次编译产生的文档。
#./Build install
编译完成后就能够进行安装。
5、sendmail配置
要sendmail正常运行,还需配置几个文档,首先最重要的就是sendmail.cf文档了。他在源
码目录树下的cf/cf目录下有很多例子可参考。您能够拷贝使用。由于sendmail.cf中的语法
很复杂,所以不建议手工修改。我们能够以sendmail.mc文档配合sendmail-cf目录下的宏通
过m4预处理器自动生成。m4预处理器用来从一组宏文档中创建sendmail配置文档。宏文
件作为输入被读进来。宏被展开,然后写到一个输出文档。sendmail-cf目录一般放在/usr/share
目录下。其实sendmail-cf目录的内容和源码目录树下的cf目录的内容是相同的,所以,为
了确保sendmail-cf目录的内容和安装版本同步,要把源码目录树下的cf目录的内容拷贝到
/usr/share/sendmail-cf目录。
sendmail.mc配置文档内容如下:
divert(-1)
include(`/usr/share/sendmail-cf/m4/cf.m4')
VERSIONID(`linux setup for Red Hat Linux')dnl
OSTYPE(`linux')
dnl Unment and edit the following line if your mail needs to be sent out
dnl through an external mail server:
dnl define(`SMART_HOST',`smtp.your.provider')
define(`confDEF_USER_ID',``8:12'')dnl
undefine(`UUCP_RELAY')dnl
undefine(`BITNET_RELAY')dnl
dnl define(`confAUTO_REBUILD')dnl
define(`confTO_CONNECT', `1m')dnl
define(`confTRY_NULL_MX_LIST',true)dnl
define(`confDONT_PROBE_INTERFACES',true)dnl
define(`PROCMAIL_MAILER_PATH',`/usr/bin/procmail')dnl
define(`ALIAS_FILE', `/etc/mail/aliases')dnl
define(`STATUS_FILE', `/etc/mail/statistics')dnl
define(`UUCP_MAILER_MAX', `2000000')dnl
define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl
define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl
define(`confAUTH_OPTIONS', `A')dnl
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5
LOGIN PLAIN')dnl
dnl define(`confCACERT_PATH',`/usr/share/ssl/certs')
dnl define(`confCACERT',`/usr/share/ssl/certs/ca-bundle.crt')
dnl define(`confSERVER_CERT',`/usr/share/ssl/certs/sendmail.pem')
dnl define(`confSERVER_KEY',`/usr/share/ssl/certs/sendmail.pem')
dnl define(`confTO_QUEUEWARN', `4h')dnl
dnl define(`confTO_QUEUERETURN', `5d')dnl
dnl define(`confQUEUE_LA', `12')dnl
dnl define(`confREFUSE_LA', `18')dnl
define(`confTO_IDENT', `0')dnl
dnl FEATURE(delay_checks)dnl
FEATURE(`no_default_msa',`dnl')dnl
FEATURE(`smrsh',`/usr/sbin/smrsh')dnl
FEATURE(`mailertable',`hash-o/etc/mail/mailertable.db')dnl
FEATURE(`virtusertable',`hash-o/etc/mail/virtusertable.db')dnl
FEATURE(redirect)dnl
FEATURE(always_add_domain)dnl
FEATURE(use_cw_file)dnl
FEATURE(use_ct_file)dnl
dnl The'-t' option will retry delivery if e.g. the user runs over his quota.
FEATURE(local_procmail,`',`procmail-t-Y-a$h-d$u')dnl
FEATURE(`aess_db',`hash-T;-o/etc/mail/aess.db')dnl
FEATURE(`blacklist_recipients')dnl
EXPOSED_USER(`root')dnl
dnl This changes sendmail to only listen on the loopback device 127.0.0.1
dnl and not on any other work devices. Comment this out if you want
dnl to aept email over the work.
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')
dnl NOTE: binding both IPv4 and IPv6 daemon to the same port requires
dnl a kernel patch
dnl DAEMON_OPTIONS(`port=smtp,Addr=::1, Name=MTA-v6, Family=i6')
dnl We strongly remend to ment this one out if you want to protect
dnl yourself from spam. However, the laptop and users on puters that do
dnl not h*e 24x7 DNS do need this.
FEATURE(`aept_unresolvable_domains')dnl
dnl FEATURE(`relay_based_on_MX')dnl
MAILER(smtp)dnl
MAILER(procmail)dnl
记得要使以下两个条语句有效,他的意思是假如aess.db访问控制没有配置,则启用以下
验证方式进行smtp验证。
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5
LOGIN PLAIN')dnl
sendmail宏定义说明
divert(n) 为m4定义一个缓冲动作,当n=-1时缓冲被删除,n=0时开始一个新缓冲
OSTYPE定义宏所使用的操作系统,该宏允许m4程式增加同相关操作系统相关的
文档
Domain定义MTA将使用哪些域来传输邮件
Feature定义配置文档中使用的一个特定的功能集
Define定义配置文档中的一个特定的选项值
MASQUERADE_AS 定义sendmail来应答邮件的其他主机名
MAILER定义sendmail使用的邮件传输方法
dnl注释
完成sendmail.mc文档的编写后就能够用m4程式生成正式的sendmail.cf配置文档。语法如
下:
# m4 sendmail.mc; sendmail.cf
也能够用源码目录树下的cf/cf/Build命令生成。前提是您要在该目录下有一个sendmail.mc
文档。语法如下:
#./Build sendmail.cf
ok,接着就能够把sendmail.cf and submit.cf文档安装到/etc/mail目录中的,语法如下:
#./Build install-cf
其实也能够自已用cp命令拷贝的啦。记得把sendmail.mc文档也拷贝一份到/etc/mail目录,
以便以后修改配置时可重新生成sendmail.cf文档。
ok,接着到/etc/mail目录下配置一些文档。
# cd/etc/mail
# echo'examply.';; local-host-names 接收邮件的主机名
# echo'localhost RELAY' ;; aess 用来拒绝或允许来自某个域的邮件,本例允许
本地转发。
# makemap hash aess生成aess.db数据库
# touch domaintable 用来把旧域名映射互新域名
# makemap hash domaintable来覆盖向指定域的路由
# makemap hash mailertable用来把用户和域名映射到其他
# makemap hash virtusertable别名数据库,文本形式。可参照源码目录树下
sendmail/aliases文档。
# newaliases 从文本文档中创建一个新的别名数据库文档。
# sendmail-v-bi 调试启动。
/etc/mail/aliases: 42 aliases, longest 10 bytes, 432 bytes total
假如出现以上提示信息,则启动成功。可用以下命令正式启动:
# sendmail-bd-q30m
该命令以后台进程方式(-bd)运行,并使其每隔30分钟(-q30m)轮询一次未发送邮件队
列,检查是否有新邮件。
服务器启动后,能够用tel连接服务器。
# tel localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is'^]'.
220 test.tigerhead ESMTP Sendmail 8.12.10/8.12.10; Tue, 30 Mar 2004 14:50:14+0800
ehlo test 您输入的命令,按回车结束。
250-test.tigerhead Hello LOCALHOST.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
250-DELIVERBY
250 HELP
以250-开头的为服务器的响应信息。注意倒数第三行,这就是成功配置smtp验证的显示。
输入quit离开。
安装完成后为确保系统安全,还需调整一些目录的权限。可参考sendmail源码目录下
sendmail/SECURITY文档。
# chmod 0640/etc/mail/aliases/etc/mail/aliases.{db,pag,dir}
# chmod 0640/etc/mail/*.{db,pag,dir}
# chmod 0640/etc/mail/statistics/var/log/sendmail.st
# chmod 0600/var/run/sendmail.pid/etc/mail/sendmail.pid
-r-xr-sr-x root smmsp .../PATH/TO/sendmail
drwxrwx--- smmsp smmsp .../var/spool/clientmqueue
drwx------ root wheel .../var/spool/mqueue
-r--r--r-- root wheel .../etc/mail/sendmail.cf
-r--r--r-- root wheel .../etc/mail/submit.cf
6、sendmail功能介绍
aliases别名数据库配置
test: test1,test2,test3 配置test群组别名,test不是个实际的用户,只是个别名。发给
test的信,test1,2,3都可收到。
test: test,testbak 在testbak邮箱中备份test的邮件。
test: test, 远程邮件备份,原理同上。
test: :include:/etc/mail/userlist 使用用户列表配置群组。
userlist格式如下:
test1,/
test2,/
test3,/
test4
关于系统预设aliases,由于sendmail预设用mailer-daemon and postmaster作为资料传送者,
或邮件退回的帐号,但系统实际没有这两个帐号,所以要如下配置别名。
mailer-daemon: postmaster
postmaster: root
配置完成后不要忘了用newaliases命令生成数据库。
~/.forward文档配置
其实该文档的作用和aliases数据库的作差不多啦,都是配置别名,做邮件转发的。因为alises
只能由管理员控制,个人用户不能修改,所以就能够在个人的目录下建立一个转寄文档。以
配置个人的邮件转寄列表。文档格式如下:
test
test1
test2
test3
and os on
但由于个人用户安全意识差,假如配置不当会有安全漏洞,不建议使用。
aess访问控制列表配置
92.168 RELAY
test.NET OK
test.COM REJECT
test.COM 550 SORRY,WE DON'T ALLOW SPAMMERS HERE
test.ORG DISCARD
Ok--远程主机能够向您的邮件服务器发送邮件;
RELAY--允许中转;
REJECT--不能向您的邮件服务器发邮件和不能中转;
DISCARD--发来的邮件将被丢弃,同时并不向发送者返回错误信息。
nnn text--发来的邮件将被丢弃,但sendmail将会向发送者返回nnn确定的smtp代码和text
变量确定的文本描述。
配置完成后要用makemap hash aess.db命令生成数据库。
mailq邮件队列查询命令。
Q-ID邮件id号。
Size邮件容量。
Q-Time邮件进入队列(也就是/var/spool/mqueue目录)的时间和不能邮寄的原因。
Sender/Recipient 发信和收信人的邮箱。
mailstats邮寄状态查询命令,可查询sendmail运行作至今邮件收发总计资料。
M :
msgsfr:发送的邮件数量。
bytes_from:邮件容量
megsto:收到邮件的数量。
bytes_to:同上
msgsrej:邮件deny的次数。
msgsdis:邮件discard的次数。
Mailer:esmtp对外邮件,local本地邮件。
mail邮件命令
mail 查看/var/spool/mail/目录下自已邮箱内容。以q退出把看过的邮件保存在
~/mbox中。
mail 发邮件给人。
mail-s'title text' 把文档中内容邮寄出去。
mail-f~/mbox查看home目录下邮箱内容。
用mail发附件也是可行,要用到uuencode and uudecode命令进行编码。
编码:uuencode [file] name example:uuencode hello hello;hello.uue default input
is stdin;default output is stdout.
解码:uudecode [-o outfile] name example:uudecode hello.uue能够用-o选项输出另外一个
文档名。
# uuencode~/.bashrc bashrc| mail-s'test uuencode'
五、其他配置。
要想更好的使用sendmail,常用到的一些配置:
1、限制最大邮件。
vi/etc/sendmail.cf
# maximum message size
O MaxMessageSize=5000000 (注:5M)
2、最大的群发数目。
vi/etc/sendmail.cf
# maximum number of recipients per SMTP envelope
O MaxRecipientsPerMessage=20 (注:20个)
3、域名文档----local-host-name
能够用他来实现虚拟域名或多域名支持。
/etc/mail/local-host-name
v1mail.
v2mail.
.......
4、mail别名文档--aliases。
vi/etc/aliases
系统内部别名:peng:zpeng,hero,mmmn,yt peng是我的用户名,其他的是别名,用逗号隔开。
转发到其他的邮箱:peng:,yt.sohu.
#newaliases --写到库中
5、邮件控制文档--aess
relay、ok、reject和discard。relay能够实现转发。ok是用来允许用户的任意访问,他会覆盖任何其他已建立的检查(实际配置中,最好别设这项,除非您对该用户是绝对信任的);reject能够实现对来访的拒绝,他根本就不容许该和您的邮件服务器进行连接通信;discard的作用是在接收到传输的邮件消息后,偷偷地把他丢弃掉(在发送者看来,他的邮件的确是接收了,但他并不知道,发送的目的根本不可能接收到他的邮件,服务器巧妙地*了他。
vi/etc/mail/aess.
localhost.localdomain RELAY ---允许
localhostRELAY
127.0.0.1 RELAY
ok
@sexgirl. reject
211.77.22.45 discard
#makemap hash aess.db写入库中
6、虚拟用户文档---virtusertable.
这个文档能够mail重名问题。
例如:您有两个域名,virt1. and virt2.,但是都有peng这个用户:
and ,这是两个用户。但对于系统用户来说,他只认系统用户peng,只能通过一下改:
vi/etc/mail/virtusertable
r010
这样就能够了。在新开一个用户r010,但是在客户端的pop3 and smtp server的用户名和口令要用r010的。
#makemap hask virtusertable.db
#/usr/sbin/sendmail-d0.1-bv root|grep SASL
NAMED_BIND NETINET NETINET6 NETUNIX NEWDB NIS QUEUE SASL SCANF
我的问题已找到了是/usr/lib/sasl/Sendmail.conf的文档名中的S没有大写,问题已解决
二、TCP协议需要使用到哪些端口哪些网络服务
端口:1
服务:tcpmux
说明:这显示有人在寻找sgi irix机器。irix是实现tcpmux的主要提供者,默认情况下tcpmux在这种系统中被打开。irix机器在发布是含有几个默认的无密码的帐户,如:ip、guest uucp、nuucp、demos、tutor、diag、outofbox等。许多管理员在安装后忘记删除这些帐户。因此hacker在inter上搜索tcpmux并利用这些帐户。
端口:7
服务:echo
说明:能看到许多人搜索fraggle放大器时,发送到x.x.x.0和x.x.x.255的信息。
端口:19
服务:character generator
说明:这是一种仅仅发送字符的服务。udp版本将会在收到udp包后回应含有**字符的包。tcp连接时会发送含有**字符的数据流直到连接关闭。hacker利用ip*可以发动dos攻击。伪造两个chargen服务器之间的udp包。同样fraggle dos攻击向目标的这个端口广播一个带有伪造受害者ip的数据包,受害者为了回应这些数据而过载。
端口:21
服务:ftp
说明:ftp服务器所开放的端口,用于上传、。最常见的攻击者用于寻找打开anonymous的ftp服务器的方法。这些服务器带有可读写的目录。*doly trojan、fore、invisible ftp、webex、wincrash和blade runner所开放的端口。
端口:22
服务:ssh
说明:pcanywhere建立的tcp和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点,如果配置成特定的模式,许多使用rsaref库的版本就会有不少的漏洞存在。
端口:23
服务:tel
说明:远程登录,*者在搜索远程登录unix的服务。大多数情况下扫描这一端口是为了找到机器运行的操作系统。还有使用其他技术,*者也会找到密码。*tiny tel server就开放这个端口。
端口:25
服务:smtp
说明:smtp服务器所开放的端口,用于发送邮件。*者寻找smtp服务器是为了传递他们的spam。*者的帐户被关闭,他们需要连接到高带宽的e-mail服务器上,将简单的信息传递到不同的。*antigen、email password sender、haebu coceda、shtrilitz stealth、winpc、winspy都开放这个端口。
端口:31
服务:msg authentication
说明:*master paradise、hackers paradise开放此端口。
端口:42
服务:wins replication
说明:wins复制
端口:53
服务:domain name server(dns)
说明:dns服务器所开放的端口,*者可能是试图进行区域传递(tcp),*dns(udp)或隐藏其他的通信。因此防火墙常常过滤或记录此端口。
端口:67
服务:bootstrap protocol server
说明:通过dsl和cable modem的防火墙常会看见大量发送到广播255.255.255.255的数据。这些机器在向dhcp服务器请求一个。hacker常进入它们,分配一个把自己作为局部路由器而发起大量中间人(man-in-middle)攻击。客户端向68端口广播请求配置,服务器向67端口广播回应请求。这种回应使用广播是因为客户端还不知道可以发送的ip。
端口:69
服务:trival file transfer
说明:许多服务器与bootp一起提供这项服务,便于从系统启动代码。但是它们常常由于错误配置而使*者能从系统中窃取任何文件。它们也可用于系统写入文件。
端口:79
服务:finger server
说明:*者用于获得用户信息,查询操作系统,探测已知的缓冲区溢出错误,回应从自己机器到其他机器finger扫描。
端口:80
服务:
说明:用于网页浏览。*executor开放此端口。
端口:99
服务:metagram relay
说明:后门程序ncx99开放此端口。
端口:102
服务:message transfer agent(mta)-x. over tcp/ip
说明:消息传输代理。
端口:109
服务:post office protocol-version3
说明:pop3服务器开放此端口,用于接收邮件,客户端访问服务器端的邮件服务。pop3服务有许多公认的弱点。关于用户名和密码*缓冲区溢出的弱点至少有20个,这意味着*者可以在真正登陆前进入系统。成功登陆后还有其他缓冲区溢出错误。
端口:110
服务:sun公司的rpc服务所有端口
说明:常见rpc服务有rpc.mountd、nfs、rpc.statd、rpc.csmd、rpc.ttybd、amd等
端口:113
服务:authentication service
说明:这是一个许多计算机上运行的协议,用于鉴别tcp连接的用户。使用标准的这种服务可以获得许多计算机的信息。但是它可作为许多服务的记录器,尤其是ftp、pop、imap、smtp和irc等服务。通常如果有许多客户通过防火墙访问这些服务,将会看到许多这个端口的连接请求。记住,如果阻断这个端口客户端会感觉到在防火墙另一边与e-mail服务器的缓慢连接。许多防火墙支持tcp连接的阻断过程中发回rst。这将会停止缓慢的连接。
端口:119
服务:work news transfer protocol
说明:news新闻组传输协议,承载use通信。这个端口的连接通常是人们在寻找use服务器。多数isp限制,只有他们的客户才能访问他们的新闻组服务器。打开新闻组服务器将允许发/读任何人的帖子,访问被限制的新闻组服务器,匿名发帖或发送spam。
端口:135
服务:本地 service
说明:microsoft在这个端口运行dce rpc end-point mer为它的d服务。这与unix 111端口的功能很相似。使用d和rpc的服务利用计算机上的end-point mer注册它们的位置。远端客户连接到计算机时,它们查找end-point mer找到服务的位置。hacker扫描计算机的这个端口是为了找到这个计算机上运行exchange server吗?什么版本?还有些dos攻击针对这个端口。
端口:137、138、139
服务:bios name service
说明:其中137、138是udp端口,当通过网上邻居传输文件时用这个端口。而139端口:通过这个端口进入的连接试图获得bios/smb服务。这个协议被用于windows文件和打印机共享和samba。还有wins regisrtation也用它。
端口:143
服务:interim mail aess protocol v2
说明:和pop3的安全问题一样,许多imap服务器存在有缓冲区溢出漏洞。记住:一种linux蠕虫(admv0rm)会通过这个端口繁殖,因此许多这个端口的扫描来自不知情的已经被感染的用户。当redhat在他们的linux发布版本中默认允许imap后,这些漏洞变的很流行。这一端口还被用于imap2,但并不流行。
端口:161
服务:snmp
说明:snmp允许远程管理设备。所有配置和运行信息的储存在数据库中,通过snmp可获得这些信息。许多管理员的错误配置将被暴露在inter。cackers将试图使用默认的密码public、private访问系统。他们可能会试验所有可能的组合。snmp包可能会被错误的指向用户的网络。
端口:177
服务:x display manager control protocol
说明:许多*者通过它访问x-windows操作台,它同时需要打开6000端口。
端口:389
服务:ldap、ils
说明:轻型目录访问协议和meeting inter locator server共用这一端口。
端口:443
服务:s
说明:网页浏览端口,能提供加密和通过安全端口传输的另一种。
端口:456
服务:【null】
说明:*hackers paradise开放此端口。
端口:513
服务:login,remote login
说明:是从使用cable modem或dsl登陆到子网中的unix计算机发出的广播。这些人为*者进入他们的系统提供了信息。
端口:544
服务:【null】
说明:kerberos kshell
端口:548
服务:macintosh,file services(afp/ip)
说明:macintosh,文件服务。
端口:553
服务:corba iiop(udp)
说明:使用cable modem、dsl或vlan将会看到这个端口的广播。corba是一种面向对象的rpc系统。*者可以利用这些信息进入系统。
端口:555
服务:dsf
说明:*phase1.0、stealth spy、inikiller开放此端口。
端口:568
服务:membership dpa
说明:成员资格 dpa。
端口:569
服务:membership msn
说明:成员资格 msn。
端口:635
服务:mountd
说明:linux的mountd bug。这是扫描的一个流行bug。大多数对这个端口的扫描是基于udp的,但是基于tcp的mountd有所增加(mountd同时运行于两个端口)。记住mountd可运行于任何端口(到底是哪个端口,需要在端口111做portmap查询),只是linux默认端口是635,就像nfs通常运行于2049端口。
端口:636
服务:ldap
说明:ssl(secure sockets layer)
端口:666
服务:doom id software
说明:*attack ftp、satanz backdoor开放此端口
端口:993
服务:imap
说明:ssl(secure sockets layer)
端口:1001、1011
服务:【null】
说明:*silencer、webex开放1001端口。*doly trojan开放1011端口。
端口:1024
服务:reserved
说明:它是动态端口的开始,许多程序并不在乎用哪个端口连接网络,它们请求系统为它们分配下一个闲置端口。基于这一点分配从端口1024开始。这就是说第一个向系统发出请求的会分配到1024端口。你可以重启机器,打开tel,再打开一个窗口运行natstat-a将会看到tel被分配1024端口。还有sql session也用此端口和5000端口。
端口:1025、1033
服务:1025:work blackjack 1033:【null】
说明:*spy开放这2个端口。
端口:1080
服务:socks
说明:这一协议以通道方式穿过防火墙,允许防火墙后面的人通过一个ip访问inter。理论上它应该只允许内部的通信向外到达inter。但是由于错误的配置,它会允许位于防火墙外部的攻击穿过防火墙。wingate常会发生这种错误,在加入irc聊天室时常会看到这种情况。
端口:1170
服务:【null】
说明:*streaming audio trojan、psyber stream server、voice开放此端口。
端口:1234、1243、6711、6776
服务:【null】
说明:*subseven2.0、ultors trojan开放1234、6776端口。*subseven1.0/1.9开放1243、6711、6776端口。
端口:1245
服务:【null】
说明:*vodoo开放此端口。
端口:1433
服务:sql
说明:microsoft的sql服务开放的端口。
端口:1492
服务:stone-design-1
说明:*ftp99cmp开放此端口。
端口:1500
服务:rpc client fixed port session queries
说明:rpc客户固定端口会话查询
端口:1503
服务:meeting t.120
说明:meeting t.120
端口:1524
服务:ingress
说明:许多攻击脚本将安装一个后门shell于这个端口,尤其是针对sun系统中sendmail和rpc服务漏洞的脚本。如果刚安装了防火墙就看到在这个端口上的连接企图,很可能是上述原因。可以试试tel到用户的计算机上的这个端口,看看它是否会给你一个shell。连接到600/pcserver也存在这个问题。
端口:1600
服务:issd
说明:*shivka-burka开放此端口。
端口:1720
服务:meeting
说明:meeting h.233 call setup。
端口:1731
服务:meeting audio call control
说明:meeting音频调用控制。
端口:1807
服务:【null】
说明:*spysender开放此端口。
端口:1981
服务:【null】
说明:*shockr*e开放此端口。
端口:1999
服务:cisco identification port
说明:*backdoor开放此端口。
端口:2000
服务:【null】
说明:*girlfriend 1.3、millenium 1.0开放此端口。
端口:2001
服务:【null】
说明:*millenium 1.0、trojan cow开放此端口。
端口:2023
服务:xinuexpansion 4
说明:*pass ripper开放此端口。
端口:2049
服务:nfs
说明:nfs程序常运行于这个端口。通常需要访问portmer查询这个服务运行于哪个端口。
端口:2115
服务:【null】
说明:*bugs开放此端口。
端口:2140、3150
服务:【null】
说明:*deep throat 1.0/3.0开放此端口。
端口:2500
服务:rpc client using a fixed port session replication
说明:应用固定端口会话复制的rpc客户
端口:2583
服务:【null】
说明:*wincrash 2.0开放此端口。
端口:2801
服务:【null】
说明:*phineas phucker开放此端口。
端口:3024、4092
服务:【null】
说明:*wincrash开放此端口。
端口:3128
服务:squid
说明:这是squid 代理服务器的默认端口。攻击者扫描这个端口是为了搜寻一个代理服务器而匿名访问inter。也会看到搜索其他代理服务器的端口8000、8001、8080、8888。扫描这个端口的另一个原因是用户正在进入聊天室。其他用户也会检验这个端口以确定用户的机器是否支持代理。
端口:3129
服务:【null】
说明:*master paradise开放此端口。
端口:3150
服务:【null】
说明:*the invasor开放此端口。
端口:3210、4321
服务:【null】
说明:*schoolbus开放此端口
端口:3333
服务:dec-notes
说明:*prosiak开放此端口
端口:3389
服务:超级终端
说明:windows 2000终端开放此端口。
端口:3700
服务:【null】
说明:*portal of doom开放此端口
端口:3996、4060
服务:【null】
说明:*remoteanything开放此端口
端口:0
服务:qq客户端
说明:腾讯qq客户端开放此端口。
端口:8000
服务:oicq
说明:腾讯qq服务器端开放此端口。
端口:8010
服务:wingate
说明:wingate代理开放此端口。
端口:8080
服务:代理端口
说明:代理开放此端口。
端口:13223
服务:powwow
说明:powwow是tribal voice的聊天程序。它允许用户在此端口打开私人聊天的连接。这一程序对于建立连接非常具有攻击*。它会驻扎在这个tcp端口等回应。造成类似心跳间隔的连接请求。如果一个拨号用户从另一个聊天者手中继承了ip就会发生好象有很多不同的人在测试这个端口的情况。这一协议使用opng作为其连接请求的前4个字节。
端口:17027
服务:conducent
说明:这是一个外向连接。这是由于公司内部有人安装了带有conducent"adbot"的共享软件。conducent"adbot"是为共享软件显示广告服务的。使用这种服务的一种流行的软件是pkware。
51cto学院APP手机软件
端口:137
说明:sql named pipes encryption over other protocols name lookup(其他协议名称查找上的sql命名管道加密技术)和sql rpc encryption over other protocols name lookup(其他协议名称查找上的sql rpc加密技术)和wins bt name service(wins bt名称服务)和wins proxy都用这个端口。
端口:161
说明:simple work management protocol(smtp)(简单网络管理协议)。
端口:162
说明:snmp trap(snmp陷阱)
端口:445
说明:mon inter file system(cifs)(公共inter文件系统)
端口:464
说明:kerberos kpasswd(v5)。另外tcp的464端口也是这个用途。
端口:500
说明:inter key exchange(ike)(inter密钥*)
端口:1645、1812
说明:remot authentication dial-in user service(radius)authentication(routing and remote aess)(远程认证拨号用户服务)
端口:1646、1813
说明:radius aounting(routing and remote aess)(radius记帐(路由和远程访问))
端口:1701
说明:layer two tunneling protocol(l2tp)(第2层隧道协议)
端口:1801、3527
说明:microsoft message queue server(microsoft消息队列服务器)。还有tcp的135、1801、2101、2103、2105也是同样的用途。
端口:2504
说明:work load balancing(网络平衡负荷)
msconfig
三、Linux系统下安装配置postfix邮件服务器教程
一,安装postfix,cyrus-sasl,cyrus-imapd
如果yum提示找不到软件包,请换一下源,请参考centos 6推荐使用epel源
代码如下:
[root@localhost~]# yum install postfix
[root@localhost~]# yum install cyrus*
二,删除了sendmail
代码如下:
[root@localhost~]# rpm-e sendmail
或者
代码如下:
[root@localhost~]# yum remove sendmail
三,更改默认邮件传输代理(MTA)
代码如下:
[root@localhost sasl2]# alternatives--config mta
共有 1个程序提供“mta”。
选择命令
-----------------------------------------------
*+ 1/usr/sbin/sendmail.postfix
按 Enter来保存当前选择[+],或键入选择号码:1
上面的只有一个postfix,sendmail已经被我删了。可以通过下面命令来查看。
代码如下:
[root@localhost~]# alternatives--display mta
四,postfix,cyrus-sasl,cyrus-imapd相关配置
1,postfix主配置文件main.cf
代码如下:
[root@localhost postfix]# vim/etc/postfix/main.cf
myhostname= localhost//76行,将等号后面的部分改写为本机主机名
mydomain= 51yip.//82行,设置域名
myorigin=$mydomain//97行,把$myhostname改为$mydomain
i_interfaces= all//112行,把后面的localhost改成all
mydestination=$myhostname, localhost.$mydomain, localhost,$mydomain//163行,把前面的注释拿掉,并加一下$mydomain
myworks= 192.168.0.0/24, 127.0.0.0/8//263行,设置内网和本地IP
local_recipient_maps=//209行,把前面的注释拿掉。
smtpd_banner=$myhostname ESMTP unknow//568行,把前面的注释拿掉,然后把$mail_name($mail_version)改成unknow
p//在main.cf文件的底部加上以下内容
smtpd_sasl_auth_enable= yes//使用SMTP认证
broken_sasl_auth_clients= yes//让不支持RFC2554的smtpclient也可以跟postfix做交互。
smtpd_sasl_local_domain=$myhostname//指定SMTP认证的本地域名
smtpd_sasl_security_options= noanonymous//取消匿名登陆方式
smtpd_recipient_restrictions= permit_myworks, permit_sasl_authenticated, reject_unauth_destination//设定邮件中有关收件人部分的限制
smtpd_sasl_security_restrictions= permit_myworks, permit_sasl_authenticated, reject_unauth_destination//设置允许范围
message_size_limit= 15728640//邮件大小
mailbox_transport=lmtp:unix:/var/lib/imap/socket/lmtp//设置连接cyrus-imapd的路径
如果不加local_recipient_maps这个配置,收邮件收不到,下面是qq的退信。
收件人邮件()不存在,邮件无法送达。host mail.51yip.[122.225.***.***] said: 550 5.1.1: Recipient address rejected: User unknown in local recipient table(in reply to RCPT TO mand)
2,cyrus-sasl配置
代码如下:
[root@localhost postfix]# vim/etc/sasl2/smtpd.conf//在文件尾部加上以下内容
log_level: 3//记录log的模式
saslauthd_path:/var/run/saslauthd/mux//设置一下smtp寻找cyrus-sasl的路径,在这里要提一下的32位的机器和64位的机器smtpd.conf的路径是不一样的。
p//这是centos 5.5 32位机器上smtpd的配置文件
[root@linux sasl2]# ls|grep conf
Sendmail.conf
smtpd.conf
[root@linux sasl2]# pwd
/usr/lib/sasl2
//这是centos 6.0 64位机器上smtpd的配置文件,其他地方没有smtpd的配置文件
[root@localhost postfix]# ls/etc/sasl2/|grep smtpd
smtpd.conf
网上有不少关于postfix安装文章,配置的时候并没有明确提出是32位机器,还是64位机器。所以在这里标明一下。
3,配置cyrus-imapd
cyrus-imapd的主要配置文件有下面三个
代码如下:
/etc/sysconfig/cyrus-imapd
p/etc/cyrus.conf
p/etc/imapd.conf
这里是默认的配置,也就是说上面三个文件我是没有动过的。在这里提醒一下imapd.conf在这个文件里面,你可以设置管理账号
,设置邮件存放目录,设置密码连接方式等。
五,启动postfix,cyrus-sasl,cyrus-imapd
启动cyrus-imapd服务,就可以同时提供pop和imap服务,如果你已安装了dovecot服务就可以删除掉,cyrus-imapd和dovecot二者选其一就行了,二都可以提供pop和imap服务,不过cyrus-imapd可以为每个用户创建一个信息,而且信箱具有层次结构,比较好管理。建议用cyrus-imapd。
代码如下:
[root@linux sasl2]#/etc/init.d/postfix start
[root@linux sasl2]#/etc/init.d/saslauthd start
[root@linux sasl2]#/etc/init.d/cyrus-imapd start
查看一下进程,
代码如下:
//smtp监听是25端口
[root@linux u]# stat-tpnl|grep smtpd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 6319/smtpd
代码如下:
//110(POP3)和143(IMAP)端口,下面都已经有了
[root@linux u]# stat-tpnl|grep cyrus
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 23593/cyrus-master
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 23593/cyrus-master
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 23593/cyrus-master
tcp 0 0 0.0.0.0:2000 0.0.0.0:* LISTEN 23593/cyrus-master
tcp 0 0:::993:::* LISTEN 23593/cyrus-master
tcp 0 0:::995:::* LISTEN 23593/cyrus-master
tcp 0 0:::110:::* LISTEN 23593/cyrus-master
tcp 0 0:::143:::* LISTEN 23593/cyrus-master
tcp 0 0:::2000:::* LISTEN 23593/cyrus-master
启动是没有问题的。
六,测试cyrus-sasl
代码如下:
[root@linux t]# passwd cyrus//设置cyrus的密码
[root@linux sasl2]# testsaslauthd-u cyrus-p'******'//系统用户和密码
0: OK"Suess."
如果显示是上面的内容说是smtp是没有什么问题
七,cyrus-imapd生产邮件管理员账号,并添加测试账号
安装完cyrus-imapd后会产生一个管理账号是cyrus,所属用户组是mail
代码如下:
[root@linux sasl2]# id cyrus//imapd.conf里面默认的管理员账号就是cyrus
uid=76(cyrus) gid=12(mail) groups=12(mail),76(saslauth)
在认证admin账号时,我发现32位系统和64位系统有一点不同,二种系统我都配置过,配置都是一样的,
但是出现的结果不一样,看下图
32位机器cyrus管理员用户认证
64位机器cyrus管理员用户认证
从上图可以看出,32位的系统是不用加上--auth plain,64位的要,如果不加的话,根本进不去。
进去后,我们来添加一下测试账号
代码如下:
[root@linux sasl2]# cyradm-u cyrus localhost
IMAP Password:
localhost cm tank
localhost lm
tank(HasNoChildren)
localhost quit
这样我们可以在/var/spool/imap中看到,生成的目录,32位机器和64位机器生成的目录是不一样的
代码如下:
//这是64位系统生成的目录
[root@localhost u]# ls
user^tank
[root@localhost u]# pwd
/var/spool/imap/u
//这是32位系统生成的目录
[root@linux t]# ls
tank
[root@linux t]# pwd
/var/spool/imap/t
八,测试收发邮件
测试前添加一下DNS,
1,mail.51yip. A默认 122.225.***.***
2,mail.51yip. A联通 60.12.***.***
3,@ MX默认 mail.51yip.
第1和第2,是添加二条A记录,第三行,设置了一下MX记录,这个千万不要忘了,不然你的域名是不通的。
方法有很多,我们可以利用tel来测试,不过用tel来测试收发邮件比较麻烦,用linux自带的
mail命令就方便多了
代码如下:
[root@localhost u]# mail-s'看一下' /etc/imapd.conf