/etc/passwd :cat /etc/passwdecho “
”
3) 改变test.sh的执行权限:
# chmod 555 test.sh
4) 重启httpd服务:
# service httpd restart
若有错,看日志。
5) 浏览:)
机器2能浏览吗?4.基本代理配置:
1) 机器1,检查squid 包装了没有,没有的话,则进行安装。
2) 机器1,启动squid 服务。
# service squid start
有问题? 看/var/log/messages.
3) 机器1,浏览器中设置代理端口为3128,举例:在mozilla: Edit | Preferences...|
Advanced | proxies 中,设定手动,端口为:3128,其他不动。
机器2,浏览器中类似设置为:手动,http代理:192.168.0.254 端口:3128。
4) 此时,机器1,能浏览server1.exmaple1.com.,若平时能上internet,此时也正常上
internet。
5) 机器2,不能浏览server1.example1.com 或internet。
查看/var/log/httpd/*的日志文件,原因是什么?
6) 编辑/etc/squid/squid.conf,在acl CONNECT method CONNECT行下,添加下列一行:
acl examample1 src 192.168.0.0/24
找到INSERT YOUR OWN RULE(S) HERE 增加下列一行:
http_access allow example1
7) 重启squid
# service squid restart
有错?看日志。
此时,机器2能够浏览server1.example1.com 或 internet网页.
9) 编辑/etc/squid/squid.conf ,在acl examample1 src 192.168.0.0/24行下添加
acl otherdeny dstdomain .sina.com.cn
在http_access allow example1下添加:
http_access deny otherdeny
10) 重启squid.
# service squid restart
有错? 看日志。
11) 机器2,仍能浏览 ,为什么12) 编辑/etc/squid/squid.conf
,把http_access deny otherdeny放到
http_access allow example1前面,重启squid,机器2还能看到
吗[实验总结]
Apache配置是否成功,与DNS有很大关系,所以,要求读者先花时间作好DNS工作。本文以最通俗的方式,教你简单的配置Apache,如果想深入掌握它,还得研究Apache2.0的文档。
前言:nfs是linux,unix系统之间高速共享的一种方式,本文用实验的方式快速配置nfs。
[实验目的]
实现nfs共享。
[实验要求]
1.两台RH9.0的机器。
2.机器1,IP:192.168.0.1
3.机器2, IP:192.168.0.2
[实验步骤]
1.关掉两台机的iptables
# service iptables stop
# chkconfig iptables off
2.机器1上,安装下列包
nfs-utils
portmap
缺什么,装什么。
3.两台机上,创建一个用户共享他的home目录。
# useradd -u 1500 nfsuser
# passwd nfsuser
设密码:nfsuser
注意:nfsuser的UID相同,当然不一定用1500
4.机器1,编辑/etc/exports
/home/nfsuser 192.168.0.2(rw)
注意:IP和()选项之间,不可以有空格。
5.机器1,启动服务.
# service portmap restart
# service nfs restart
# service nfslock restart
# rpcinfo -p
程序 版本 协议 端口
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 32768 status
100024 1 tcp 32768 status
391002 2 tcp 32769 sgi_fam
100011 1 udp 668 rquotad
100011 2 udp 668 rquotad
100011 1 tcp 671 rquotad
100011 2 tcp 671 rquotad
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100021 1 udp 32793 nlockmgr
100021 3 udp 32793 nlockmgr
100021 4 udp 32793 nlockmgr
100005 1 udp 32794 mountd
100005 1 tcp 32979 mountd
100005 2 udp 32794 mountd
100005 2 tcp 32979 mountd
100005 3 udp 32794 mountd
100005 3 tcp 32979 mountd
6.机器1,初试化共享目录
# exportfs -v
# exportfs -r
# showmount -e 192.168.0.1
7.如果显示出正确的共享列表的话,在机器2上挂载机器1的/home/nfsuser。
# mount -t nfs -o rw 192.168.0.1:/home/nfsuser /mnt/cdrom
8.在机器2上,分别用root,nfsuser帐户对/mnt/cdrom进行读写操作。出现什么情况?
你有什么结论?
[实验总结]
本文对于exportfs 中的选项只用了rw,比较简单。其他选项,可以参考man exports.它
还会提供更多的例子,及其分析。如果想深入了解,必须对它进行研究。
前言:mail配置比较复杂,本文用实验的方法尽量以最通俗的方式,让读者学习sendmail
配置。
[实验目的]
1.安装sendmail。
2.在sendmail中使用假名。
3.用m4改变中转行为。
4.安装和配置POP服务器和客户端。
[实验要求]
1.两台RH8.0机器互连。
2.机器1已配置好DNS,具体要求:机器1的IP:192.168.0.254,host:server1.example.com
机器2的IP:192.168.0.2,host:station2.example.com
[实验步骤]
1.安装sendmail。
1) 在机器1和机器2上检查下列包是否安装
sendmail
sendmail-cf
sendmail-doc
m4
procmail
缺什么,装什么。
2) 编辑机器1和机器2的/etc/mail/sendmail.mc
去掉下列行的dnl
dnl DAEMON_OPTIONS(Port=smtp,Addr=127.0.0.1,Name=MTA)
作用是:使得可以接受其他域的mail。
3) 机器1和机器2上,产生新的配置文件,最好先备份/etc/mail/sendmail.cf
cp /etc/mial/sendmail.cf /etc/mail/sendmail.cf.BAK
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
4) 机器1和机器2上,重新启动sendmail.
# service sendmail restart
# chkconfig sendmail on
2.检测sendmail是否正常,及模拟sendmail操作。
1) 检测sendmail是否可识别你的域名。
# sendmial -d0 < /dev/null
Version 8.12.5
Compiled with: DNSMAP HESIOD HES_GETMAILHOST LDAPMAP LOG MAP_REGEX
MATCHGECOS MILTER MIME7TO8 MIME8TO7 NAMED_BIND NETINET NETINET6
NETUNIX NEWDB NIS PIPELINING SASL SCANF STARTTLS TCPWRAPPERS
USERDB USE_LDAP_INIT
============SYSTEM IDENTITY (after readcf)============
(short domain name) $w=station2
(canonical domain name) $j=station2.example.com
(subdomain name) $m=example.com
(node name) $k=station2
========================================================
Recipient names must be specified
如果显示localhost的话,检查/etc/hosts 去掉除127.0.0.1以外的行。如果还有问题,
查看是否在/etc/sysconfig/network中设置了HOSTNAME
2) 模拟sendmail的操作。
# echo “hello server1” | mail -v -s hello
... Connecting to localhost.localdomain. via relay...
220 station2.example.com ESMTP Sendmail 8.12.5/8.12.5; Thu, 17 Jul 2003
05:18:42 +0800
>>> EHLO station2.example.com
250-station2.example.com Hello localhost.localdomain [127.0.0.1], pleased
to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-DELIVERBY
250 HELP
>>> MAIL From: SIZE=47
250 2.1.0 ... Sender ok
>>> RCPT T
>>> DATA
250 2.1.5 ... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
250 2.0.0 h6GLIgpx001304 Message accepted for delivery
... Sent (h6GLIgpx001304 Message accepted for delivery)
Closing connection to localhost.localdomain.
>>> QUIT
221 2.0.0 station2.example.com closing connection
sendmail的工作过程就如上所示。
你可以看日志,检查mail的工作过程,更有意义的观察方法:
在超级用户,另一终端:
# tail -f /var/log/maillog
会动态显示。
3.sendmail中使用假名:
1) 增加新用户。
# useradd student2
# passwd student2
2) 编辑/etc/aliases,增加下列三行。
me: student2
wizards:root,me
methere:
3) 更新假名数据库。
# newaliases
4) 测试:
# echo “hello there” | mail -s “hello” me
# echo “hello there” | mail -s “hello” wizards
# echo “hello there” | mail -s “hello” methere
5) student用户收到几封邮件?root受到几封邮件?
4.控制中转行为。
1) 在机器2上编辑/etc/mail/sendmail.mc 文件,增加下列一行:
FEATURE(promiscuous_relay)dnl
注意:如果你这台机连到internet上的话,不推荐你这么作,因为,internet上的用
户会用你的这台机作为跳板,伪装发邮件,使得邮件接收者无迹可寻。
2) 在机器2上用m4产生新的配置文件,这里最好再备份原/etc/mail/sendmail.cf
# cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.BAK2
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
3) 现在你在机器1上模拟,一个用心不良的用户,用你的机器2作为跳板,发送邮件。
这里假设你有一个邮件叫 ,具体可以变更。
# telnet station2.example.com 25
Trying 192.168.0.2...
Connected to station2.example.com.
Escape character is ^].
220 station2.example.com ESMTP Sendmail 8.12.5/8.12.5; Thu, 17 Jul 2003
05:45:05 +0800
helo mail.cracker.org
250 station2.example.com Hello IDENT:root@station2.example.com.
[192.168.0.2], pleased to meet you
mail from:
250 2.1.0 ... Sender ok
rcpt t
250 2.1.5 ... Recipient ok
data
354 Enter mail, end with "." on a line by itself
Subject: Relayed
This is faked and relayed!
ok?
.
250 2.0.0 h6GLj5MV001565 Message accepted for delivery
quit
221 2.0.0 station2.example.com closing connection
Connection closed by foreign host.
4) 观察机器2的/var/log/maillog
5) 收你的的邮件,看看里面的格式。
6) 机器2,关掉中转。
# cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.BAK2
# cp /etc/mail/sendmail.cf.BAK1 /etc/mail/sendmail.cf
# service sendmail restart
重作上面3)步,结果会怎么样呢?
7) 机器2 有选择的中转:
编辑/etc/mail/access,增加
example.com RELAY
重作上面3) 步,结果如何?
5.安装和配置POP服务器和客户端。
1) 机器2上,检查下列包是否装过
xinted
krb5-libs*
imap
缺什么,装什么
2) 机器2上,启动服务:
service xinetd start
chkconfig ipop3 on
3) 机器2上,确认服务。
# echo "mail to be popped" | mail -s "hello student2" student2
Trying 127.0.0.1...
Connected to localhost.
Escape character is ^].
+OK POP3 localhost.localdomain v2001.78rh server ready
user student2
+OK User name accepted, password please
pass student2
+OK Mailbox open, 1 messages
stat
+OK 1 641
TOP 1 700
+OK Top of message follows
Return-Path:
Received: from station2.example.com (localhost.localdomain [127.0.0.1])
by station2.example.com (8.12.5/8.12.5) with ESMTP id h6GMB9MV001575
for ; Thu, 17 Jul 2003 06:11:09 +0800
Received: (from )
by station2.example.com (8.12.5/8.12.5/Submit) id h6GMB9T0001573
for student2; Thu, 17 Jul 2003 06:11:09 +0800
Date: Thu, 17 Jul 2003 06:11:09 +0800
From: root
Message-Id: <>
T
Subject: hello student2
Status:
mail to be popped
.
dele 1
+OK Message deleted
quit
+OK Sayonara
Connection closed by foreign host.
以上就是pop3的对话过程。如果一切正常的话,你的pop3服务器已经建立。
4) 机器1上安装fetchmail 包。
5) 机器1上,root创建下列文件:
vi /root/.fetchmailrc
poll station2.example.com with protocol pop3:
user student2
password "student2"
6) 机器2上,运行:
# echo "mail to be popped" | mail -s "hello student2" student2
7) 机器1上作为POP3客户端,root收邮件:
# fetchmail -v
能收到邮件吗?
你有油箱吗?仿照上面5) 的格式,写一个pop3客户收邮件的fetchmailrc,试试能
收邮件吗?假设你有个邮箱:,密码:linuxsir
提示:poll mail.sina.com.cn with protocol pop3:
user linuxsir
password "linuxsir"
[实验总结]
配置sendmail非常复杂,如果你在都完本文后,仍觉的一头雾水的话,建议参考一些mail工作原理的资料。另外,/usr/share/doc/sendmail/也有不少资料可供参考。
用实验快速掌握DNS配置
由于配置DNS很重要,本文主要以做实验来快速掌握DNS配置.
[实验目的]
1.配置一个只可转发请求的DNS.
2.配置一个masterDNS.
3.配置一个slaveDNS.
[实验环境]
1.两台互连的计算机.
2.系统Redhat 8.0.
[实验步骤]
一.实验准备.
1.两台机关掉iptables
# service iptables stop
# chkconfig iptables off
2.两台机检查安装必要软件
# rpm -q bind
# rpm -q bind-utils
# rpm -q caching-nameserver
根据结果,安装没安装的软件,从安装盘里找出没安装的包,有选择的执行下列步骤:
# rpm -Uvh bind-9*
# rpm -Uvh bind-utils*
# rpm -Uvh caching-nameserver*
3.互连两台机.
①编辑两台机的相应文件.(编辑最好用vi,以下也是)
机器1:
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.0.254
NETMASK=255.255.255.0
/etc/hosts
127.0.0.1 localhost localhost.localdomain
/etc/resolv.conf
nameserver 192.168.0.254
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=server1
机器2:
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.0.1
NETMASK=255.255.255.0
/etc/hosts
127.0.0.1 localhost localhost.localdomain
/etc/resolv.conf
nameserver 192.168.0.1
/etc/sysconfig/network
NETWORKING=yes
HOSTNAME=station1
②分别在两台机上运行:
机器1:
# ifdown eth0
# ifup eth0
# ping 192.168.0.1
机器2:
# ifdown eth0
# ifup eth0
# ping 192.168.0.254
主意:两台机能互相ping通,继续下列实验,不通,再找找原因.
二.机器1上配置一个masterDNS.
机器1上:
1.编辑/etc/named.conf文件:
/etc/named.conf
options {
directory “/var/named/”;
};
zone “.” IN {
type hint;
file “named.ca”;
};
zone “localhost” IN {
type master;
file “localhost.zone”;
};
zone “0.0.127.in-addr.arpa” IN {
type master;
file “named.local”;
};
zone “example1.com” IN {
type master;
file “db.example1”;
};
zone “0.168.192.in-addr.arpa” IN {
type master;
file “db.192.168.0”;
};
----------------------------------------------------------------------
解释上述文件,如果你对上述文件比较熟悉,可以跳过此段.
上述文件有六部分ption ,5个zone.
其中option,”.”,”localhost”,”0.0.127.in-addr.arpa”原来就有.
“example1.com”,“0.168.192.in-addr.arpa”为现在子网的正向和反向搜索区的
定义,“db.example1”,”db.192.168.0”的名字是随便取的,它们必需在/var/named/下
存在.
主义{}前后及中间的空格,及分号.
-----------------------------------------------------------------------
2.用vi创建两个文件,/var/named/db.example1,/var/named/db.192.168.0
/var/named/db.example1
$TTL 86400
@ IN SOA server1.example1.com. Root.server1.example1.com. (
2003070401 1H 1M 1W 1D )
IN NS server1.example1.com.
IN A 192.168.0.254
server1 IN A 192.168.0.254
station1 IN A 192.168.0.1
www IN A 192.168.0.254
ftp IN A 192.168.0.254
pop IN A 192.168.0.254
www1 IN CNAME server1.example1.com.
ftp1 IN CNAME server1.example1.com.
@ IN MX 10 server1.example1.com.
server1.example1.com IN MX 10 server1.example1.com.
----------------------------------------------------------------------
解释上述文件,如果你对上述文件比较熟悉,可以跳过此段.
上述文件是一个正向搜索的数据库:
$TTL 86400 是文件开头,数字表示默认存活期,用秒计算的,做什么不用不要管它,
记着添上就行.
接着的格式就是:[domain] [class]
[domain]如: server1.example1.com ,www.
Www是简写,实际会默认添上定义这个文件的那个 zone “example1.com”里的
example1.com,即ww=这个段可以升略不写,默认跟前一行的
[domain]相同.@表示”example1.com”.
[class]一般为internet类,即:IN ,可以省去不写.
分别有SOA,NS,A,MX,CNAME,及反向数据库里的PTR.
SOA=start of authority 必要的
NS=nameserver 必要的
A=域名和ip地址的映射. 必要的
MX=mail exchange. 可选的
CNAME=域名的一个假名 可选的
PTR=用在反向:ip地址和域名的影射. 必要的
假名不可以放在NS MX 的字段.
SOA 括弧中的5个数字:
对应为( serial refresh retry expire Minimum )
serial 可以是任何数字,一般:年月日修改数.
refresh 是SOA信息的刷新时间.
Retry是与授权服务器联系的频率.
Expire slave服务器保存有关的区域信息,不更新它的时间间隔.
Minimum 区域中记录的存活时间.
H=hour D=day M=minute W=week
SOA 后的server1.example1.com.表示这个区域授权给哪台机.
root.server1.example1.com.表示管理人.用.代替@
完整域名后一定要加.号,否则会自动为你加”example1.com”.
以上如果你不懂,不用急,以后慢慢想清楚.
-----------------------------------------------------------------------
/var/named/db.192.168.0
$TTL 86400
@ IN SOA server1.example1.com. root.server1.example1.com. (
2003070401 1H 1M 1W 1D )
IN NS server1.example1.com.
254.0.168.192.in-addr.arpa IN PTR server1.example1.com.
1.0.168.192.in-addr.arpa IN PTR station1.example1.com.
----------------------------------------------------------------------
解释上述文件,如果你对上述文件比较熟悉,可以跳过此段.
此文件是反向搜索的数据库.
主意IP反着写.
其它的不用解释.
-----------------------------------------------------------------------
3.检验:
# cat >> /var/log/messages
******
******
[ctrl]+d
# service named restart
# host server1.example1.com
# host station1.example1.com
# host
# host www1.example1.com
# host 192.168.0.254
看看是否可以解析,如:server1.example1.com 对应的IP为192.168.0.254,
192.168.0.254对应域名为server1.example1.com.如果不能解析,说明,配置有问题,
可以到日志/var/log/messages里查看.具体位置在文件末尾的两行*******后,和调试
程序一样,甚至他会告诉你哪个文件,哪行错了.修改后,重新执行:
# cat >> /var/log/messages
******
******
[ctrl]+d
# service named restart
# host server1.example1.com
# host station1.example1.com
# host
# host www1.example1.com
# host 192.168.0.254
直到无错,且能够正确解析.
三.机器2上配置一个只负责转发请求域名解析的DNS
机器2上:
1.编辑/etc/named.conf
/etc/named.conf
options {
directory “/var/named/”;
forwarders { 192.168.0.254; };
};
........
------------------------------------------------------------
解释上述文件,如果你对上述文件比较熟悉,可以跳过此段.
forwarders { 192.168.0.254; }表示,如果此DNS不能解析出IP,则交给
192.168.0.254这个DNS,其实在配置masterDNS时,也可以在option里加一个forwarders
具体IP就是你平时上网用的DNS.如果有两个或多个也可以这样写:
{ 210.35.92.77.45; 210.35.77.46; } 或者 { 210.35.92/24; 192.168.0.254 ;}
.....表示其它的东西,不要动.
---------------------------------------------------------------------
2.检验:
# cat >> /var/log/messages
******
******
[ctrl]+d
# service named restart
# host server1.example1.com
# host station1.example1.com
# host
# host www1.example1.com
# host 192.168.0.254
看看是否可以解析,如:server1.example1.com 对应的IP为192.168.0.254,
192.168.0.254对应域名为server1.example1.com.
这个配置比较简单,一般不会有笔误,如果错误,排除bug的方法同检查masterDNS
一样,看日志.
三.机器2上配置一个slaveDNS
机器2上:
1.编辑/etc/named.conf
/etc/named.conf
options {
directory “/var/named/”;
};
zone “.” IN {
type hint;
file “named.ca”;
};
zone “localhost” IN {
type master;
file “localhost.zone”;
};
zone “0.0.127.in-addr.arpa” IN {
type master;
file “named.local”;
};
zone “example1.com” IN {
type slave;
masters { 192.168.0.254; };
file “db.example1-slave”;
};
zone “0.168.192.in-addr.arpa” IN {
type slave;
masters { 192.168.0.254; };
file “db.192.168.0-slave”;
};
------------------------------------------------------------
解释上述文件,如果你对上述文件比较熟悉,可以跳过此段.
与masterDNS,不同的是:type slave; masters { 192.168.0.254; };
slaveDNS的效果就是定期的向masterDNS复制一份数据库.
一个网络一般只能有一个masterDNS,多个slaveDNS,slaveDNS用来使DNS的
访问负载均衡.减轻masterDNS的负担.
此时,删掉上面配置forward 的那句:forwarders { 192.168.0.254; };
加着也没错,只不过,容易判断是否是slaveDNS在起作用。
------------------------------------------------------------
2.检验:
# cat >> /var/log/messages
******
******
[ctrl]+d
# service named restart
# host server1.example1.com
# host station1.example1.com
# host
# host www1.example1.com
# host 192.168.0.254
看看是否可以解析,如:# host server1.example1.com 显示:
has address 192.168.0.254
# host 192.168.0.254 显示:
254.0.168.192.in-addr.arpa domain name pointer server1.example1.com.
0.168.192.in-addr.arpa.
且查看在/var/named/下是否生成: db.example1-slave , db.192.168.0-slave
两个文件.
如果,没有生成这两个文件,说明配置有文体。具体检查日志/var/log/messages排除错误。直到无错,且自动生成两个文件,且能正确解析。另外,一定注意,机器1和机器2的iptables保持关掉。
注册有任何问题请添加 微信:MVIP619 拉你进入群
打开微信扫一扫
添加客服
进入交流群
发表评论