debian 7.8debian 服务器版 下载远程怎么用root登陆

全球最新的免费资源发布区
Linux VPS主机安全-禁止Root登录,SSH密钥授权,Fail2ban,DDoS deflate
& 日 18:14 &
使用VPS主机虽然比使用虚拟主机有着非常多的好处,但是有一个最大的问题就是站长自己需要了解一定的VPS主机使用知识,尤其是在数据备份和网络方面需要给予高度的重视,否则一旦VPS主机出现崩溃或者被入侵,造成的损失将是不可估量的。
前几天部落的主机被官方给停止了,原因就是VPS主机在持续不断地向外发送数据包,被怀疑为攻击源。登录到VPS管理后台仔细分析后,确认是VPS主机被入侵了,不得已赶紧查找解决的办法。初步分析就是某VPS主机面板的漏洞或者是Linux漏洞导致的。
为了防范于未然,我们还是要提前做好Linux VPS的安全防范措施,本篇文章就来分享一下强化Linux主机安全的多种方法:为VPS增加新的用户,禁止Root用户登录;不使用密码登录,改用SSH密钥授权登录;安装Fail2ban和DDoS deflate,阻止暴力破解VPS登录密码和流量攻击。
更多的有关VPS主机优化和使用技巧有:
1、VPS加速:
2、体测入侵:
3、反向绑定:
Linux VPS主机安全-禁止Root登录,SSH密钥授权,Fail2ban,DDoS deflate
一、Linux VPS主机安全:如何及时察觉VPS有异常?
1、最直接的办法自然是查看你的VPS主机控制面板的流量统计,一定的时间内流量超出平常的几倍,肯定是有问题了。
2、有些小规模的攻击可能无法直接从流量异常中得知,这时我们可以使用命令:netstat -ant ,查看当前VPS的网络连接情况,单个IP地址连接数量过多肯定是有问题的。
3、使用命令:more /var/log/secure 可以查看到最近有多少次VPS登录失败的记录。
4、命令:who /var/log/wtmp 可以看到每个用户的登录次数和持续时间等信息。
5、使用以下命令检测短时间内大量IP发起请求:
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
netstat -alnt | awk '{print $5}' |awk -F ":" '{print $1}’ | sort | uniq -c |sort -n
二、Linux VPS主机安全:新增用户,禁止Root登录
1、为什么要禁止Root用户登录?Root用户拥有服务器的最大控制权,一旦Root用户被攻破,入侵者基本上完全掌控了整台VPS,删除数据等将是轻而易举的事情。
2、而换用非Root用户,我们可以赋予Root部分权限给它,这样在保证了VPS正常运行的前提下,又可以在一定的程度上防范因Root用户的泄露而对主机产生的致命危害。
3、新增用户方法(把freeehao123换成你自己的用户名):
#Debian/Ubuntu
adduser freehao123
usermod -a -G sudo freehao123
apt-get install sudo #没有sudo 可直接安装
#CentOS/Fedora
adduser freehao123
passwd freehao123
freehao123
4、visudo执行后,输入“i"编辑,找到root那一行,给你的用户赋予权限。然后输入::wq 退出。
5、使用上面的操作后,你就可以使用你的新的用户登录VPS了,使用sudo可以临时获取到Root权限,部分程序安装时需要使用root权限。
6、接下来就是禁止Root登录了,执行:sudo nano /etc/ssh/sshd_config,然后找到PermitRootLogin这一行,把Yes改成no,保存。
7、最后重启SSH服务就成功了:
sudo service ssh restart #Debian/Ubuntu
sudo systemctl restart sshd #Fedora/CentOS
三、Linux VPS主机安全:使用SSH密钥授权登录,禁用密码登录
1、SSH登录方式有账号+密码和密钥两种形式,为了阻止暴力破解VPS的账号和密码,我们可以放弃密码验证的方式,改用密钥文件验证。这样除非入侵者得到你的Key,否则无法使用密码登录的方式进入你的VPS.
2、有关Linux使用密钥登录的详细操作方法,部落在已经分享过,有兴趣的朋友可以参考一下。
3、有了密钥登录VPS,我们就可以禁止用密码登录这种验证方式了,还是编辑配置:vim /etc/ssh/sshd_config,添加一行:PasswordAuthentication no,如果有了这一行,请把yes改成no,保存,重启SSH服务,生效。
四、Linux VPS主机安全:合理配置防火墙
1、合理配置Linux VPS的防火墙规则,可以在一定的程度上阻止基本攻击。首先是被动式防御—允许指定的端口被访问:22,80,21,443等。
#配置,禁止进,允许出,允许回环网卡
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
#允许ftp被动接口范围,在ftp配置文件里可以设置
iptables -A INPUT -p tcp --dport
iptables -A INPUT -p tcp -m tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 53 -j ACCEPT
#允许http和https
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
2、主动式防御—拒绝超过一定连接数的IP,请根据自己的访问量来决定,该方法有可能会导致正常的IP也被封掉。
iptables -A INPUT -p tcp --dport 80 --syn -m recent --name webpool --rcheck --seconds 60 --hitcount 10 -j LOG --log-prefix 'DDOS:' --log-ip-options
#60秒10个新连接,超过记录日志。
iptables -A INPUT -p tcp --dport 80 --syn -m recent --name webpool --rcheck --seconds 60 --hitcount 10 -j DROP
#60秒10个新连接,超过丢弃数据包。
iptables -A INPUT -p tcp --dport 80 --syn -m recent --name webpool --set -j ACCEPT
#范围内允许通过。
iptables -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
# 记录攻击IP
iptables -A INPUT -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p all -m state --state INVALID,NEW -j DROP
#允许状态检测
iptables -A INPUT -j DROP
iptables -A FORWARD -j DROP
# 除非允许的IP和端口,否则全部拒绝
iptables -A INPUT -p icmp -j ACCEPT
#允许ping,不允许删了就行
3、执行命令:iptables-save & /etc/iptables 或者 service iptables save 用来保存刚刚设置的iptables规则。
4、让VPS重启后iptables依然生效,使用以下命令保存:
#Debian/Ubuntu
sudo nano /etc/network/if-pre-up.d/firewall
#将以下文件保存在/etc/network/if-pre-up.d/firewall中
/sbin/iptables-restore & /etc/iptables.firewall.rules
#按下Control-X 再输入 Y 保存以上脚本,接着给脚本赋予执行权限
sudo chmod +x /etc/network/if-pre-up.d/firewall
#CentOS/Fedora
/sbin/service iptables save #适用CentOS 6.2 或 6.5
#如果是CentOS 7 或者 Fedora 20,需要先安装再保存
yum install -y iptables-services
systemctl enable iptables
systemctl start iptables
/usr/libexec/iptables/iptables.init save
五、Fail2ban:阻止SSH、SMTP、FTP密码扫描
1、Fail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是调用防火墙屏蔽)。
2、当有人在试探你的SSH、SMTP、FTP密码,只要达到你预设的次数,fail2ban就会调用防火墙屏蔽这个IP,而且可以发送e-mail通知系统管理员
3、安装Fail2ban方法:
#Debian/Ubuntu
sudo apt-get install fail2ban
sudo yum install fail2ban
sudo yum install epel-release
sudo yum install fail2ban
/etc/fail2ban/action.d
#动作文件夹,内含默认文件。iptables以及mail等动作配置
/etc/fail2ban/fail2ban.conf
#定义了fai2ban日志级别、日志位置及sock文件位置
/etc/fail2ban/filter.d
#条件文件夹,内含默认文件。过滤日志关键内容设置
/etc/fail2ban/jail.conf
#主要配置文件,模块化。主要设置启用ban动作的服务及动作阀值
/etc/rc.d/init.d/fail2ban
#启动脚本文件
4、/etc/fail2ban/jail.conf 是Fail2ban的配置文件,在这里你可以修改IP白名单、屏蔽时间、最大尝试次数、是否发邮件提醒等等,说明如下图:(点击放大)
5、Fail2ban可以监视SSH、SMTP、FTP、pop、http等服务,这些你都可以在配置中开启它。
六、DDoS deflate:阻止小规模的DDoS攻击
1、的原理是通过netstat命令找出 发出过量连接的单个IP,并使用iptables防火墙将这些IP进行拒绝。DDoS deflate也可以设置采用APF(高级防火墙)进行IP阻止。
2、DDoS deflate安装和卸载方法:
wget /scripts/ddos/install.sh
chmod +x install.sh
./install.sh
wget /scripts/ddos/uninstall.ddos
chmod +x uninstall.ddos
./uninstall.ddos
3、DDoS deflate的配置文件在/usr/local/ddos/ddos.conf,详细说明如下:(点击放大)
4、/usr/local/ddos/ignore.ip.list是白名单,如果安装了APF防火墙,则可以在配置中开启它。
七、Linux VPS主机安全小结
1、影响Linux VPS主机安全主要有两个因素:一是Linux系统本身的漏洞,另一个是VPS上的控制面板。后者出现的问题可能性更大,所以为保证VPS的安全请不要安装没有技术支持的Linux VPS主机面板。
2、和DDoS deflate也只能是在一定的程度上可以阻止攻击,本身也是一种消耗自身资源的防御行为,大家在使用防火墙规则封锁IP时一定要注意辨别正常的IP地址,尤其是百度Spider的IP,最好将其加入白名单。
文章出自:
版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。
真的,我猜你也会喜欢的:
您或许对下面这些文章有兴趣:&&&&&&&&&&&&&&&&&&&&本月吐槽辛苦排行榜
免费资源部落博客、论坛、问答和优惠网的创建者
经常混迹于各种免费资源中,尝鲜后乐于分享给他人。用WP搭建了部落博客,没事儿就折腾Wordpress,喜欢找免费空间,但只求精,稳定,耐用。有时也会介绍一点关于建站的知识和主机、服务器的使用心得与体会。PS:此人为男。
TA的专栏:&&|&&
关于本文的作者
所属分类:
链接地址:
浏览前页:
浏览后页:
部落快速搜索栏
热门点击排行榜
网站导航栏
免费资源重点推荐
最新文章推荐
部落最新评论列表
不得不看的秘密
部落本月最受关注的热点
(热度145℃) (热度135℃) (热度133℃) (热度132℃) (热度116℃) (热度114℃) (热度87℃) (热度86℃) (热度86℃) (热度85℃) (热度67℃) (热度67℃) (热度60℃) (热度54℃) (热度47℃) (热度45℃) (热度38℃)
部落本月踩得最多的宝贝
(踩17,102次) (踩9,357次) (踩6,246次) (踩6,124次) (踩4,704次) (踩4,261次) (踩3,916次) (踩2,932次) (踩2,056次) (踩1,903次)
免费资源部落,是一个致力发布和推广来自世界各地的免费资源,包括多样实用的免费空间、各种优秀的免费软件、各样可用的免费网盘等个人博客网站。站长qi是一位很普通不过的人,长期关注网络空间、互联网、软件应用、程序开发与设计、网络应用等。免费资源部落成立的目的就是希望与更多人分享网络快乐与精彩!本站持续修改完善中,如遇不便还请谅解^_^设置Debian系统的root登陆的方法
Debian桌面环境默认不允许root登录,所以需要修改配置。
一、让Debian可以使用root登录
1)首先修改gdm3的设定文件(/etc/gdm3/daemon.conf),在[security]字段后面追加如下一行:
代码如下:[security] AllowRoot = true
2)最后修改gdm3的登录pam文件:
代码如下:vi /etc/pam.d/gdm-password
将auth&& required&&&&&&& pam_succeed_if.so user != root quiet_success注释掉 //本行前加#
二、让Debian以root自动登录
1)首先修改gdm3的设定文件(/etc/gdm3/daemon.conf),在[daemon]字段后面追加如下两行:
代码如下:AutomaticLoginEnable =true
//改为true #AutomaticLogin =root
//以root自动登录
如果想等几秒再登录,可以在[daemon]字段后面追加如下内容:
代码如下:TimedLoginEnable = true TimedLogin = root TimedLoginDelay = 5 //延迟5秒登录,可修改
2)最后修改gdm3的自动登录pam文件:
代码如下:vi /etc/pam.d/gdm-autologin
将[/ode]auth&&& required&&&&&&& pam_succeed_if.so user != root quiet_success[/code]注释掉。 //在本行前加#,取消Debian不让root登录的限制。
重启系统即可!
顶一下(0) 踩一下(0)
热门标签:技术交流QQ群:& && && &
现在的位置:
Debian 7.0.0安装图解教程
一、说明:
Debian7.0.0的安装镜像文件有3个DVD,安装基本系统只用到第一个镜像文件,即DVD1
其它镜像文件是附带的软件包。
附Debian 7.0.0系统镜像下载地址:
二、安装系统:用启动盘成功引导之后,出现下面的界面
界面说明:
Install 安装系统
graphical install 图形安装
advanced options 高级选项
Install with speech synthesis 语音合成安装
这里选择第一项,安装系统,回车。
温馨提醒:qihang01原创内容(C)版权所有,转载请注明出处及原文链接
选择语言为:中文(简体)
地区选择为:中国
键盘模式:汉语
设置主机名字,默认
设置主机域名,填写自己的域名
如果没有域名可填写localhost
设置root密码
再次确认密码
新用户全名(注意不是登录账号,相当于描述):
账号用户名(登录系统的账号名):osyunwei
温馨提醒:qihang01原创内容(C)版权所有,转载请注明出处及原文链接
设置普通用户密码
再次输入密码
选择:手动
选择空闲空间
创建新分区
输入分区大小:1GB
注意:交换空间的大小一般为物理内存的2倍
分区类型:主分区
用于:交换空间
分区设定结束
继续创建分区
点空闲空间
创建新分区
分区挂载点:/boot
分区设定结束
继续创建新分区
选择空闲空间
创建新分区
新分区大小:7.4GB
分区设定结束
分区设定结束并将修改写入磁盘
注意:分区之前,自己先要规划好怎么分区
我这里的分区如下:
硬盘总共8.6G
/boot 200MB
1GB(内存小于2G时,设置为内存的2倍;内存大于或等于2G时,设置为2G)
特别说明:用于正式生产的服务器,切记必须把数据盘单独分区,防止系统出问题时,保证数据的完整性。
比如可以再划分一个/data专门用来存放数据。
选择“是”
选择“否”
选择“否”
选择“否”
不选择任何软件包(服务器根据自己的需要再定制安装软件),点继续。
继续,系统自动重启
输入账号:osyunwei 再输入密码,回车,登录系统。
#切换到root用户
至此,Debian 7.0.0系统安装完成
&&&&&>> 本文链接:>> 订阅本站:>> 转载请注明来源: >>
&&系统运维技术交流QQ群:①& ②& ③&
【上篇】【下篇】
您可能还会对这些文章感兴趣!
您必须才能发表留言!
本分类最新文章
日志总数:313篇
评论总数:1030条
分类总数:70个
标签总数:460个
友情链接:34个
网站运行:1754天
最后更新:日
欢迎PR值≥3的IT类技术博客与本站友情链接(申请前请先做好本站链接)
Copyright&
系统运维 All rights reserved
版权声明:本站所有文章均为作者原创内容,如需转载,请注明出处及原文链接Ubuntu下VNC远程桌面的客户端和服务器端使用方法
作者:佚名
字体:[ ] 来源:互联网 时间:11-03 10:12:51
这篇文章主要介绍了Ubuntu下VNC远程桌面的客户端和服务器端使用方法,注意要配合图形化桌面使用,需要的朋友可以参考下
首先安装VNC代码如下:# apt-get install vnc4server 为VNC设置密码代码如下:root@node1:~/.vnc# vncpasswd& Password: 输入密码,然后再确认一遍,就OK了。
启动VNC代码如下:root@node1:~# vncserver :1 &New 'node1:1 (root)' desktop is node1:1 &Starting applications specified in /root/.vnc/xstartup Log file is /root/.vnc/node1:1.log &代码如下:root@node1:~# ps -ef | grep vnc root&&&&& 1768&&&& 1& 0 06:10 pts/0&&& 00:00:00 Xvnc4 :1 -desktop node1:1 (root) -auth /root/.Xauthority -geometry
-depth 16 -rfbwait 30000 -rfbaut h /root/.vnc/passwd -rfbport 5901 -pn -fp /usr/X11R6/lib/X11/fonts/Type1/,/usr/X11R6/lib/X11/fonts/Speedo/,/usr/X11R6/lib/X11/fonts/misc/,/usr/X11R6/lib/X11/fonts/75dpi/,/usr/X11R6/lib/X11/fonts/100dpi/,/usr/share/fonts/X11/misc/,/usr/share/fonts/X11/Type1/,/usr/share/fonts/X11/75dpi/,/usr/share/fonts/X11/100dpi/ -co /etc/X11/rgb 启动成功
启动VNCServer 代码如下:vncserver -geometry
-alwaysshared :1 这个命令包含了3个参数,第一个参数geometry表示分辨率,你可以指定适合自己桌面的分辨率;第二个参数alwaysshared表示运行多个人同时连接到同一个桌面;第三个参数:1表示开启一个1号远程桌面,此时你可以使用ip:1来连接这个远程桌面。(注意:上面之间的连接符为英文字母x(xyz的x),而不是中英文的乘号!)
然后会在当前用户的根目录下生成.vnc的文件夹,进入.vnc的文件之后,修改xstartup文件: 代码如下:vim .vnc/xstartup(假设你此时在用户根目录下) 注释掉 twm & (即在这一行的最开头加上一个#) ,在文件最后添加一行gnome-session &,保存退出。
使用VNCViewer连接这个远程桌面在VNCViewer中,输入ip加桌面号,即 X.X.X.X:1 即可连接刚才的远程桌面,密码为之前设定的密码。
这样,当你再次重启服务器之后,就不必跑到服务器前登录系统,而可以首先使用ssh登录Ubuntu,执行以上第4步命令,就可以开启一个远程桌面,然后就可以使用VNCViewer连接这个远程桌面了。
我也曾经尝试能否在Ubuntu下自动启动VNCServer,自动启动一个远程桌面,不过很遗憾,在网上查到的方法多是针对其他的Linux的方 法,在Ubuntu下目录结构完全不同,一些极少数在Ubuntu下自动启动VNCServer的文章也不适合Ubuntu 9.04 Server版,因此最终我没有在Ubuntu 9.04 Server上实现自动启动VNCServer的方法。就是每次重启机器之后,得先多一步ssh启动VNCServer的步骤。先这么用着吧。
备注:另外,如果想要关闭一个远程桌面,可以使用如下命令: 代码如下:vncserver -kill :1其中,&:1&表示的创建远程桌面时的桌面号。
修改分辨率:代码如下:vncserver -geometry
客户端连接
客户端安装vncview,然后连接。输入IP的时候,输入 IP:NO,即ip地址加会话号,刚才开户的是1,比如这里就输入
1.1.1.1:1
然后输入完密码,就可以连接了因为没有桌面环境,所以,我们需要安装一个,这里使用Xface
大家感兴趣的内容
12345678910
最近更新的内容打造Debian系列《Debian服务器设置入门》系列教程作者:kanaka [冷罡华]
版本:0.2.1版权:GPL最后修改:日
总目录更新记录
◆ 日,0.2.1版。
  修改了第一章和第五章的一些错误,感谢afta兄和ckf兄,他们在论坛上给我提出修改意见。
◆ 日,0.2版。
  修改了一些错误;去掉了每章的信息,统一全文版本;加上了总目录和各章的目录,方便阅读。
◆ 日,0.1版全文写作完毕。
在Debian上++4
在Debian上用Wu-ftpd配置FTP服务器
第三章 在Debian上用Exim配置邮件服务器
在Debian上配置Samba服务器
在Debian上用Bind配置DNS服务器
《Debian服务器设置入门》系列教程之前言
1 准备工作
1.1 你需要先安装Debian 3.0(Woody)基本系统,我建议你仅仅安装基本系统就可以了,保持一个清洁的Debian。然后你运行一下apt-get
,以便系统生成可以安装的的列表。  建议你保留你的名字为Debian,域名为。我就是这么做的,所以我的文章里面也会这么写,所以,如果你的计算机也做同样设置,看起文章来会省点劲儿。
1.2 最起码,你需要掌握这几条命令的用法:apt-get
install / apt-get remove / apt-cache search 。
2 一些废话
  我出生在农村,家里穷,头一次接触计算机是1996年,那是大二的下学期,我们专业上开了Basi的课程。1998年我毕业了,这年冬天,我第一次接触了GNU/Linux。那时接触的是TurboLinux。第一次接触Debian,是在2002年10月。相见恨晚呐!这是我见过的最优秀的发行版!完全的可定制!给你充分的自由!  由于Debian的特性,使得安装和配置软件极为简单。然而,上的众多教程,很少有基于Debian作介绍的,对于初学者来说,他们需要基于Debian写的教程;更重要的原因是,我遇到了一个叫做的论坛,我由衷的说,这是我在国内见过的最优秀的论坛!大家努力营造了一个非常好的学习气氛,它能连续不断得给我感动。当我看到众多Debian的初学者心急如焚时,我就决定,写一些教程,遵循GPL,以我微薄之力,回馈给我的帮助,并一同感谢全世界为了Debian默默耕耘的,于是我就开始写了。  由于接触Debian时间太短了,难免疏漏,请高手们不要客气,给我指出来,以便我成长,呵呵。2.2 本文的组织方法
  我将力求用最简洁的语言,说明我想说的东西。我很反感那些晦涩的文章。但是为了照顾初学者,我会写得尽量详细。2.2.1 控制台命令   在Linux控制台上输入的命令,用黑色背景、红色文字表示;系统回显的内容用灰色,这样最接近Linux控制台的颜色。在MySQL控制台里面,输入的命令用紫色,MySQL回显的内容用灰色,以示区别。像这样:
cp: missing file arguments
Try `cp --help'
more inmation
mysql& select * from test.table1
ERROR 1146: Table 'test.table1' doesn't exist
  另外,初学者注意:  用$符号开头的,是以普通用户身份执行的命令;  用#符号开头的,是以身份执行的命令。  当然,在默认情况下,凡是普通用户可以执行的命令,root都可以执行。2.2.2
  配置文件的内容,将用浅黄色背景,以免混淆。像这样:
ftp://202.118.66.14/debian sid main non-free contrib
deb-src ftp://202.118.66.14/debian sid main non-free contrib
deb http://security.debian.org/& stable/updates main contrib non-free
  上面列出了我所使用的sources.list,这个站点是debian在中国的某所大学的镜像,非常快。另外大家注意我用的是sid,如果你用stable,可能我们下载得到的软件的版本就会不同。3 系列文章
  本文是一个系列,将包括下面的部分:  第一章 Web服务器+服务器&
  第二章 FTP服务器&
  第三章 邮件服务器&
  第四章 Samba服务器
  第五章 域名服务器
  有任何问题,请与作者联系,,或者。《Debian服务器设置入门》系列教程之第一章:Web服务器+数据库服务器第一章 在Debian上配置Apache+MySQL+PHP4
选择Apache+MySQL+PHP4
1 选择Apache+MySQL+PHP4
  你可能会问我:为什么不选择别的软件,而非得选择Apache+MySQL+PHP4的组合?呵呵,我要告诉你,著名的Free
Lamp组合,说的就是Linux/Apache/MySQL/PHP/Perl/,你可以到上面去看看。PHP在上的应用,正成燎原之势。如果作Web,在我看来,别无选择,就是PHP。详细情况可以到www..net上面去了解。MySQL非常轻便,性能卓越。Apache就不必多说了,互联网上没有几个Web站点不用它。2 安装
  在Debian上安装软件,真的是非常简单。不需要configure,不用make,不用make
install,遍布全球的Debian的工作人员已经为你做好了一切。  你可以一口气把这些软件全部装上:
php4 php4-gd php4-mysql mysql-server mysql-client
  其中,php-gd是一个非常棒的图形库,如果你不需要使用php生成,就不用装。  这时,系统会自动列出一些相关的软件,然后问你是不是要继续(说Debian棒,这是其中一点:自动查找软件关联,自动补充安装)——Debian给你一次反悔的机会,如果你现在不想装了,那么按n,就退出来了。  当然我们在这里要按回车,继续安装。现在Debian会到你的sources.list里面指定的站点去下载这些软件。下载完后,会自动进行配置,配置过程中会征求你的意见,问你几个问题。  比如现在他就问你:你要在计算机启动时就运行MySQL吗?当然选Yes了,否则每次要用的时候才启动,怪麻烦的。  又问你:你想运行apacheconfig吗?默认是N,不过我们输入Y让它替我们配置一下。配置完后,问你是否保存配置,当然是了,呵呵。然后,他会问你是否要启动Apache,好,启动它。  接着,系统会自动配置PHP。由于你选择了php-gd和php-mysql,他会问你是否把gd.so和mysql.so的支持写入php.ini,回答是。你看,Debian聪明吧。3 配置
3.1 配置Apache
3.1.1 提供php支持
  Apache刚装上的时候不提供php支持。当你点击有.php脚本的连接,会下载这个脚本:-(  修改/etc/apache/httpd.conf,以便提供php支持。运行:
nano /etc/apache/httpd.conf
  顺便提一下,我非常喜欢这个叫做nano的,它很容易上手。  使用nano的ctrl+w功能找到下面这一行:
LoadModule php4_module /usr/lib/apache/1.3/libphp4.so
  把这一行前面的井号去掉,以便apache加载这个libphp4.so模块。  然后,配置默认页,找到:
DirectoryIndex
index.html index.htm index.shtml index.cgi
  改成:
DirectoryIndex
index.php index.php3 index.html index.htm index.shtml index.cgi
  然后再加上.php3扩展名的支持和php支持,找到:
# And for PHP 4.x, use:
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
  把后面两行修改成:
# And for PHP 4.x, use:
AddType application/x-httpd-php .php .php3
AddType application/x-httpd-php-source .phps
修改默认字符集  让Apache把简体中文作为默认的字符集。找到这一行:
AddDefaultCharset
>  修改成:
AddDefaultCharset
  好,Apache就配置完了,按ctrl+o保存后,再按ctrl+x退出nano。  为了使我们的修改生效,需要重新启动Apache,运行:
apachectl restart
  apache 1.3 提供了这个apachectl工具,但是2.0就没了。  另外,注意一个:Debian提供的服务器,几乎都会提供一个脚本用于启动/终止/重新启动这个服务。脚本全部放在/etc/init.d/下面。  比如Apache,可以通过下面的命令控制:  
/etc/init.d/apache restart
  其它的服务也可以如此操作。3.2
MySQL配置3.2.1 修改MySQL的口令
  由于MySQL默认没有口令,为了起见,一定要修改你的口令!  先来看看你的mysql是不是真的没有口令:
mysqladmin
  如果你能够看到mysql的版本信息,证明目前MySQL没有口令。  好,运行mysqladmin password xxxxxx 修改口令:
mysqladmin password xxxxxx
  这里xxxxxx是你的新口令。  现在你需要运行 mysqladmin version --user=root --pass,然后输入口令,才能查看版本号等信息。
  注意,上面命令中的--user=root --pass这一部分,可以简写为-u
root -p。我们来测试一下,看口令是否生效:
mysqladmin version -u root -p
打开3306端口监听  这项工作要慎重。处于安全考虑,默认情况下,Debian把3306端口关闭了。因为,不少黑客通过它来攻击你的系统。如果你不通过其他机器来存取数据库,那么不要打开这个端口。  修改/etc/f,找到:
  把它注释掉:
skip-networking
修改默认字符集    让MySQL把简体中文作为默认的字符集。编辑/etc/init.d/mysql,找到这一行:
/usr//safe_mysqld
& /dev/null 2&&1 &
&  改成:
/usr/bin/safe_mysqld
& --default-character-set=gb2312 & /dev/null 2&&1 &
  好,重新启动MySQL:
/etc/init.d/mysql restart
3.3 PHP配置
  主要是要修改php的默认字符集,把它改成简体中文。编辑/etc/php4/apache/php.ini:
nano /etc/php4/apache/php.ini
  找到 ;default_charset = &iso-8859-1&这一行:
default_charset
= &iso-8859-1&
  把前面的分号去掉,并改成:
default_charset = &gb2312&
default_charset
= &gb2312&
4 综合测试
  好了,安装完了,我们来测试一下。  这一部分,高手完全可以略过。我主要考虑到初学者,才写了这些。4.1 建立一个数据库
  下面我们来创建一个简单的数据库,这个库里面只有一张表,叫做user,用来存放用户名/明文密码/出生日期/激活状态。
mysql -u root -p
Enter password:
Query OK, 1 row affacted (0.00 sec)
Database changed
CREATE TABLE user (
username varchar(16) NOT NULL default '',
password varchar(16) binary NOT NULL default '',
??-& birthday date NOT NULL
default '',
??-& actived int(1) NOT NULL default
UNIQUE KEY username (username)
Query OK, 0 row affected (0.00 sec)
mysql& INSERT INTO user VALUES
('kanaka','kanakapswd','',0);
Query OK, 1 row affected (0.01 sec)
INSERT INTO user VALUES
('atfa','atfapswd','',1);
Query OK, 1 row affected (0.00 sec)
  注意,默认情况下,所有的数据库放在/var/lib/mysql/下面。每个数据库占一个目录,目录名就是数据库名。你创建数据库的时候,系统自动就把它放在这个目录下面了。4.2 编写一个php脚本
  下面我们来编写一个简单的php脚本,来调用上面数据库里面的内容。文件名比如叫做mytest.php。
$dbname='mytest';
$tablename='user';
$rowperpage=20;
mysql_connect("", "root", "您的密码");
//下面这个viewData函数,是自己编的,用来显示数据
//从某种程度上讲,本起关键作用的就这么一句:
viewData($dbname,$tablename,$page,$rowperpage);
////////////////////////////////////////////////
往下仅仅是定义了两个函数而已,你可以不去看他&
////////////////////////////////////////////////
//定义一个函数,用来返回查询状态
function echoQueryResult() {
global $queryStr, $errM
if( $errMsg == "" ) $errMsg = "成功";
if( $queryStr != "" ) {
echo "&table cellpadding=5>\n";
echo "&tr>&td>查询:&/td>&td>$queryStr&/td>&/tr>\n";
echo "&tr>&td>结果:&/td>&td>$errMsg&/td>&/tr>\n";
echo "&/table>&p>\n";
//定义一个函数,用来显示数据
function viewData($dbname,$tablename,$page,$rowperpage) {
global $mysqlHandle, $PHP_SELF, $errMsg,
echo "&h2>下面是您所查的数据:&/h2>\n";
$queryStr = stripslashes( $queryStr );
if( $queryStr == "" ) {
$queryStr = "SELECT * FROM $tablename";
if( $orderby != "" )
$queryStr .= " ORDER BY $orderby";
$pResult = mysql_db_query( $dbname, $queryStr );
$errMsg = mysql_error();
$GLOBALS[queryStr] = $queryS
if( $pResult == false ) {
echoQueryResult();
} if( $pResult == 1 ) {
$errMsg = "成功";
echoQueryResult();
echo "&hr>\n";
$row = mysql_num_rows( $pResult );
$col = mysql_num_fields( $pResult );
if( $row == 0 ) {
echo "没有数据!表格是空的。";
if( $rowperpage == "" ) $rowperpage = 20;
if( $page == "" ) $page = 0;
else $page--;
mysql_data_seek( $pResult, $page * $rowperpage );
echo "&table cellspacing=1 cellpadding=2>\n";
echo "&tr>\n";
echo '&th bgcolor="#FFCC66">';
echo "用户名\n";
echo "&/th>\n";
echo '&th bgcolor="#FFCC66">';
echo "口令\n";
echo "&/th>\n";
echo '&th bgcolor="#FFCC66">';
echo "出生日期\n";
echo "&/th>\n";
echo '&th bgcolor="#FFCC66">';
echo "是否激活\n";
echo "&/th>\n";
echo "&/tr>\n";
for( $i = 0; $i & $ $i++ ) {
$rowArray = mysql_fetch_row( $pResult );
if( $rowArray == false )
echo "&tr>\n";
$key = "";
for( $j = 0; $j & $ $j++ ) {
$data = /html/newbie//$rowArray[$j];
$field = mysql_fetch_field( $pResult, $j );
if( $field->primary_key == 1 )
$key .= "&" . $field->name . "=" . $
if( strlen( $data ) > 30 )
$data = /html/newbie//substr( $data, 0, 30 ) ."...";
$data = /html/newbie//htmlspecialchars( $data );
echo '&td bgcolor="#99CCCC">';
echo "$data\n";
echo "&/td>\n";
echo "&/tr>\n";
} echo "&/table>\n";
echo "&hr>";
//$PHP_SELF
echo "&font size=2>";
echo "&form action='$PHP_SELF?action=viewData&dbname=$dbname&tablename=$tablename&page=$page&rowperpage=$rowperpage'
method=post>";
echo "&font color=green>";
echo "第".($page+1)."页/共".(int)($row/$rowperpage+1)."页";
echo "&/font>\n";
echo " | ";
if( $page > 0 ) {
echo "&a href='/html/newbie//$PHP_SELF?action=viewData&dbname=$dbname&tablename=$tablename&page=".($page).'&rowperpage='.$
if( $orderby != "" )
echo "&orderby=$orderby";
echo "'>上一页&/a>\n";
echo "上一页";
echo " | ";
if( $page & ($row/$rowperpage)-1 ) {
echo "&a href='/html/newbie//$PHP_SELF?action=viewData&dbname=$dbname&tablename=$tablename&page=".($page+2).'&rowperpage='.$
if( $orderby != "" )
echo "&orderby=$orderby";
echo "'>下一页&/a>\n";
echo "下一页";
echo " | ";
if( $row > $rowperpage ) {
echo "&input type=submit value='/html/newbie//跳到第'>\n";
echo "&input type=text size=4 name=page>页";
} echo "&/form>";
echo "&form action='$PHP_SELF?action=viewData&dbname=$dbname&tablename=$tablename&page=$page&rowperpage=$rowperpage'
method=post>";
echo " 目前每页显示记录数为".$rowperpage."条,您可以";
echo "&input type=submit value='/html/newbie//改为'>";
echo "&input type=text size=4 name=rowperpage>条/页";
echo "&/form>\n";
echo "&/font>\n";
  我好长时间没写程序了,连php的语法都快忘了,呵呵。我去年给公司的生产线编写了一个应用,上面就是摘抄下来的,我本来想写一个最简单的程序在这里,但是我还是把两个函数保留在里面了,为的是让初学者有个借鉴,呵呵。4.3 测试
  把这个mytest.php复制到/var/www下面,在你的浏览器里面,访问这个mytest.php,就会看到数据库的内容。  之所以把mytest.php放到/var/www下面,是因为,默认情况下,Apache的httpd.conf里面定义了把/var/www作为文档。  初学者注意,在linux控制台下面有好几款浏览器,w3c,lynx,links等等。三个各有优劣,都不完美。个人感觉links比较适合初学者,因为按下esc键之后有菜单出现。 5 结束语
  本文是《Debian服务器设置入门》系列教程之第一章,建议您按照顺序阅读,有问题可以和作者kanaka联系。 《Debian服务器设置入门》系列教程之第二章:FTP服务器第二章
在Debian上用Wu-ftpd配置FTP服务器本章目录1&开场白
选择wu-ftpd
  在五年之前,我还觉得Ftp这个东西很神秘。那时候,我身边的大部分人,甚至以为http就是互联网的全部。我们从下载文件,用的大多也是http连接。但是,事实上,ftp(File Transfer Protocol,文件传输协议)这个服务已经存在很长时间了,如果要提供文件下载,除了使用http的方式连接外,我们完全可以提供ftp服务,这样可以节省一些服务器资源,比如连接数什么的。ftp是专门设计用来在两台之间传输数据的,可以避免太多的远端执行。尤其是,当传输的文件比较大时,ftp会比http节省资源。另外,ftp可非常方便地上传文件,而http则没有那么方便快捷。2 选择wu-ftpd
  用apt-cache search
命令看一下,都有什么ftp服务器可以选择:
# apt-cache search ftpd
  你会发现,Debian为我们制作了很多个ftpd服务器软件包,包括atftpd、bsd-ftpd、ftpd、oftpd、muddleftpd、proftpd、twoftpd、vsftpd、wu-ftpd等等。其中应用最广泛的,应该是wu-ftpd了,这是目前最流行的一种免费FTP服务器软件,目前绝大多数的FTP站点都是由wu-ftpd来架设的,它是当初由华盛顿大学wuarchive.wustl.edu开发出来的,是一个以效率以及为考量的程序。wu-ftp如此流行,一个重要的原因是因为它强大的功能,例如:&  ◆ 可控制不同网域的机器对 FTP服务器的存取权限和访问时段。&
  ◆ 使用者在下载文件时,可自动对文件进行压缩或解压缩工作。&
  ◆ 可以记录文件上传或下载的过程。&
  ◆ 可以限制最高访问人数,以维持系统的最佳运行效率。&
  ◆ 可显示相关的信息,以便用户了解当前的接收状态。&
  ◆ 可暂时关闭FTP服务器,以便系统维护。
  目前Debian提供的wu-ftpd版本是2.6.2。好,我们就选择这个wu-ftpd了!3 安装
  安装很简单,用下面的命令安装:
# apt-get install wu-ftpd
  它会问你,你想设置一个匿名ftp账号吗?输入y,回车。  接着让你输入ftp根目录,默认是/home/ftp,我们就用默认的吧。  然后它问你,你想创建一个目录,用来让用户上传文件吗?输入y,创建一个。  安装程序会创建一个新的用户ftp,并把这个用户加入到一个新创建的组ftp中去。  然后它会说:
Anonymous FTP users will
>  (它说由于无法判断所需的版本,libnss_files.so没有安装,要安装的话,到/home/ftp/lib去找。这块我还没捣鼓明白,还请高手赐教)。这里需要对初学者说明一下,系统从/etc/passwd这个文件里面读取资料,得到UID和GID,来决定用户对文件的存取权限。一会儿我们会讲到,在ftpaccess这个配置文件里,可以为某些UID的用户或者某些GID的组设置权限。4 配置
  其实,在安装完之后,不需要做任何配置,我们的ftp服务器已经可以使用了。如果你跟我一样是个急性子,在进行配置之前你就可以尝试登录了。这时,Debian上的普通用户,还有匿名用户都可以访问它,也可以向incoming目录上传文件,只不过看不到已经上传的文件。但是我们仍然需要做一些配置,因为我们需要定制自己的。  为了确保提供FTP服务不会给我们的系统带来安全隐患,我们首先要采取以下措施:
chmod 555 /home/ftp
chmod 111 /home/ftp/bin/*
# chmod 555 /home/ftp/lib/*
chmid 444 /home/ftp/etc/*
4.1 配置文件介绍   wu-ftpd的配置文件放在/etc/wu-ftpd下面,主要有:  ftpaccess —— 这个是wu-ftpd的主配置文件,控制存取权限
  ftpconvertions —— 这个文件定义了文件压缩/解压缩转换方案
  ftpservers —— 用来设置多个和域名,以对应到不同的虚拟主机
  ftpusers —— 凡是写入这个文件里面的用户,都不能连接ftp服务器
  msg.denu —— 拒绝访问时,显示给用户的信息
  msg.nodns —— 当DNS查询失败时,显示给用户的信息
  msg.toomany —— 当连接数过多时,显示给用户的信息
  pathmsg ——
当用户使用了非法路径/文件名时,显示给用户的信息  welcome.msg ——
当用户建立连接时,显示给用户的欢迎信息  在/usr/share/doc/wu-ftpd/examples下面,有一些配置文件的样本,大家可以参照一下。4.2 修改/etc/wu-ftpd/ftpaccess配置  这个文件是wu-ftpd的主配置文件,许多重要的选项都包含在这里面,比如,要想让Debian上的用户可以访问,就必须在这个文件里面的Class段落里面做出定义。  下面我们按照ftpaccess文件的顺序,一段一段地介绍。平常不大用的,或者我不懂的,就不介绍了:-),要不然篇幅会非常大。4.2.1 的email地址
# 这个不多说了
email ftpadmin@misconfigured.host
4.2.2 UID/GID设置
# 设置哪些UID/GID可以、不可以使用FTP服务。这里的%-99我没搞明白,请高手指教!
#deny-uid %-99
#deny-gid %-99
#allow-uid ftp ftpadmin
#allow-gid ftp ftpadmin
4.2.3 登录失败数
下面设置登录5次失败后,断开连接
loginfails 5
4.2.4 目录限制
除了用户自己的根目录,让用户看不到别的东西。这个很关键!
你可以在修改这项之前先登录ftp服务器看看,然后去掉了这个#之后再登录看看,大不一样哦
restricted-uid kanaka&
4.2.5 不可执行SITE GROUP/SITE GPASS
# private决定了用户是否可以执行SITE
GROUP/SITE GPASS命令
# 用这两个指令切换到/etc/ftpgroup的群组。一般而言我们不会用到这个功能,以避免安全漏洞。
#private no
4.2.6 定义用户类别——class   由class定义的用户和IP地址才能够登录进来。FTP服务器上有三种类型的使用者,分别是“real”——表示在该FTP服务器上有合法帐号的用户;“guest”——表示另行定义的某些使用组的使用者;“anonymous”——权限最低的匿名用户。有了这三种使用者以后,在ftpaccess文件中就可以根据不同的使用者设置不同的存取权限。但是,只有三种定义一般是不够的,我们可以根据class的语法定义更多的控制命令。  语法是:
class &class 名称& &种类& &用户地址& [&用户地址&……]
  其中:&class 名称&则可自行设定,&种类&就是上面说的三种,&用户地址&是指ftp上来的用户会用到的IP地址。
  以下是一些例子:
下面这一行时系统默认的,它定义了一个名为all的class,包含三种人,允许所有IP地址的连接
class all real,guest,anonymous *
# 下面这个叫做local的class说,只有real的用户可以从本机机器连上来
class local real localhost loopback
# 下面这个叫remote的class,包含了从任何地方上来的guest和anonymous用户,但是real用户不算
class remote guest,anonymous *
# 下面这个叫rmtuser的class包含了从外面来的(除了)真实用户
class rmtuser real !*.
为各个类别的用户设置最大连接数
可以为每一个类别定义最大连接数,并显示不同的错误信息。下面允许30个连接。
/etc/wu-ftpd/msg.toomany
4.2.8 设置readme文件
# readme命令:指定用户登录或进行其它操作(如更换目录)时FTP服务器提示用户阅读的文件。
4.2.9 是否使用压缩
# 下面定义的允许从local和remote登录的机器在传输文件时,
# 可以执行compress压缩文件或使用tar命令将多个文件打包成一个文件。
local remote all
local remote all
4.2.10 记录日志
如果去掉前边的注释符号,它就会记录相应的信息。
anonymous,guest,real
#log security
#log syslog
log transfers anonymous,guest,real inbound,outbound
4.2.11 超时设置
下面设置:如果超过30秒没有动作,就断开anonymous的连接
limit-time anonymous 30
4.2.12 一些命令的权限
no anonymous
no anonymous
# delete 权限?
overwrite no anonymous
# overwrite 权限?
no anonymous
# chmod 权限?
no anonymous
# umask 权限?
4.2.13 匿名用户上传权限
全给他们加上井号,不让匿名用户上传文件
#upload /home/ftp *
#upload /home/ftp /pub/incoming yes ftp daemon 0666 nodirs
  由于ftpd是被inetd调用的,所以,我们修改了配置文件后,不需要重新启动wu-ftpd。  对于普通ftp应用,修改一下上面这个文件就足够了。如果你还有更高的要求,就继续往下看。4.3 修改/etc/wu-ftpd/ftpusers
  我们已经说过了,只要写进这个文件里面的用户,是不能登录我们的ftp服务器的。  限制这些用户使用FTP服务器主要是基于系统安全的考虑,避免权利过大的用户(如root、ftpadm)登录FTP服务器和避免使用系统命令作为帐号(如shutdown、sync),以避免系统管理上的困惑。我们可以根据自己使用的需要,向该文件中增加或删除用户。  注意这个文件是/etc/ftpusers的快捷方式。下面是默认的ftpusers的内容:
# /etc/ftpusers: list of users disallowed FTP access. See ftpusers(5).
修改/etc/wu-ftpd/ftpconversions文件  ftpconversions文件主要定义用户从FTP服务器中下载文件时对文件进行格式转换的规则。例如压缩、解压缩、打包和开包等操作,这样用户就不必为.tar.gz、.tgz、.Z、.z之类的文件伤脑筋了。ftpconversions文件的格式初看上去很复杂,不过不用担心,我们基本上不用动它,debian为我们准备的这个配置,已经能够满足我们的使用需要了。下面让我们来看看ftpconversions文件的内容:
:.Z: : :/usr/bin/compress -d -c %s :T_REG|T_ASCII:O_UNCOMPRESS:uncompress
: :.Z:/usr/bin/compress -c %s:T_REG:O_COMPRESS:compress
:.gz: : :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:gunzip
: :.gz:/bin/gzip -c9 %s:T_REG:O_COMPRESS:gzip
:.bz2: : :/usr/bin/bzip2 -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:bunzip2
: :.bz2:/usr/bin/bzip2 -c9 %s:T_REG:O_COMPRESS:bzip2
:.zip: : :/usr/bin/zip -q -r -9 - %s:T_REG|T_DIR:O_TAR|O_COMPRESS:zip
: :.zip:/usr/bin/unzip -q -c - %s:T_REG|T_DIR:O_TAR|O_UNCOMPRESS:unzip
: :.tar:/bin/tar -chf - %s:T_REG|T_DIR:O_TAR:tar
: :.tar.Z:/bin/tar -chZf - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:tar+compress
: :.tar.gz:/bin/tar -chzf - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:tar+gzip
: :.tgz:/bin/tar -chzf - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:tar+gzip
: :.tar.bz2:/bin/tar -chIf - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:tar+bzip2
: :.ltar:/bin/tar -cf - %s:T_REG|T_DIR:O_TAR:tar
: :.ltar.Z:/bin/tar -cZf - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:tar+compress
: :.ltar.gz:/bin/tar -czf - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:tar+gzip&
  你可能想我一样看花了眼,不过好在我们不用深究,反正这个文件基本上把常用的压缩,打包命令都包括在内了,只要它存在,FTP服务程序就会根据用户的需要执行压缩或打包的命令。  例如,用户想下载目录Howto中所有的文件,那么他不必使用mget命令,而只要使用get
Howto.tar.gz,这时wu-ftpd就会将该目录打包压缩并发送到用户的机器上了。所以使用该文件可以完成压缩传递的数据量,减少传输时间等作用。  这里有一点需要注意,这个文件中定义的可的位置/bin指的都是/home/ftp/bin而不是Linux的/目录下的bin,所以请检查/home/ftp/bin目录中有无上述命令,如果没有还需要将这些程序复制到该目录中。我看了一下,由于我仅仅安装了Debian的基本系统,所以bzip2这个命令是没有的,我们可以用at-get
install bzip2命令来下载和安装它,然后把bzip2命令复制到/home/ftp/bin就可以了。
    到这里,匿名FTP服务器的配置工作基本上就完成了,我们可以用ftp命令连接自己的服务器,检查合法用户和匿名用户的连接情况以及各个目录的权限是否正确。之后就可以准备FTP服务的开张了。6 TODO
  在下一个版本里面,我将描述如何用ftpmirror建立ftp服务器镜像。7 结束语
  本文是《Debian服务器设置入门》系列教程之第二章》,建议您按照顺序阅读,有问题可以和作者kanaka联系。
8 参考文献
  本章参考了下面的文章:  《用wu-ftpd架设FTP服务器》一文,地址是/linux/docs/linux-3300.htm   《架设FTP服务器》一文,地址是/bbs/showthread.php?s=&threadid=8455&highlight=wuftpd  很抱歉我没找到这两篇文章作者的名字,但是我们仍然应该心存感激。《Debian服务器设置入门》系列教程之第三章:邮件服务器第三章 在Debian上用Exim配置邮件服务器 本章目录0
5 修改 From: 的地址
配置Fetchmail
修改exim的投递限制
  本文是在《通过exim建立家庭网络的邮件系统》一文的基础上修改的,作者:Jan
W. Stumpel, Oegstgeest, The Netherlands。
  这篇章的地址是:http://211.167.66.225/~yzhao/lg-zh/lg-zh-issue8/stumpel.html1 简介
  我想现在一个再普通的单位,也会需要用到电子邮件。我所在的企业,已经到了无法离开email的地步——每当邮件服务器出现问题,我的都会被打爆。在M$平台上,邮件服务器市场基本上被两个软件占领:M$的Exchange和Lotus的Domino/Notes。这些软件所花费的费用,实在不小。而Unix平台上,我们有很多选择,而且都是免费的。  在Debian里面,我们不用Sendmail,也不用Qmail和Postfix,而是用Exim,这是Debian的缺省邮件服务器,连基本系统都附带了这个软件。理由我就不说了,反正,Debian推荐的,不会错。1.1 我们将实现的功能
中的用户可以实现本地邮件的发送和转发。  ◆ 发往局域网以外的邮件有正确From:&邮件地址&,以使外部的邮件能够正确的回复。
电子邮件账号是所有本地子网用户所共享,但是要实现每个用户仅仅能够收到自己的邮件。  ◆ exim作为邮件的收发代理(它比sendmail好配置的多)。
  ◆ mail作为linux端的邮件客户程序。
Outlook Express 作为Win2000端的邮件客户程序(同样你也可以使用其它的类似工具,比如Foxmail)。
  ◆ qpopper 作为POP3服务器, 用来把邮件从Linux系统中转移到Win2000机器上。
  ◆ fetchmail 用来从互联网上收取邮件。
  我在两台机器上(分别安装Linux和Win2000系统)做的测试,当然,win9x/NT/XP都可以,而且两台机器都是Linux的话也当然可以。这个方案,应付一个中小型的应该绰绰有余。1.2 网络和命名
  在这篇文章中我假定以下的名字(您实际应用时应该做写修改,以适应您的实际情况):  ◆ 拥有者和系统管理员的名称 kanaka Leng。
  ◆ Linux机器名为 Debian。
  ◆ Win2000 机器名为 Notepad。 通常使用者为 ganghua Leng。
  ◆ kanaka 在 Debian 机器上的注册用户名为 kanaka。
  ◆ ganghua 在 Debian 机器上的注册用户名为 ganghua。
  ◆ ganghua 在 Notepad 机器上的注册用户名也为 ganghua。
她的在linux下的Debian机器和 Win2000上的口令也相同。
我们公司的局域网通过宽带连接互联网,当然你通过普通拨号也可以。  ◆ kanaka 和 ganghua 都使用电子邮件地址:。
  ◆ kanaka到POP3收信的口令为kanakapswd。
  ◆ ISP的发送邮件的邮件服务器为smtp.yeah.net。
  ◆ ISP的接受邮件的邮件服务器为pop3.yeah.net。
  机器Debian和Notepad都属于一个域,域名为。
这个域名是我们内部搞测试用的,我们并没有注册这个域名,
因而对于外部网络来说, 并不能直接识别这个域名。
  此外,我还假设内部网络已经正常工作,
并且已经拥有使用daild实现的非永久拨号连接,或者宽带网连接。
在Debian机器上也没有安装DNS服务。/etc/resolv.conf中只是加入了ISP提供的两个DNS服务器的地址。同样的设置也要加在Notepad机器上的TCP/IP设置中。1.3 邮件地址
在&To:&和&From:&中指定邮件地址是一封邮件的基本组成部分,
此外还有更多的内容。 举例来说:
To: ganghua Leng &&'ganghua Leng'是一个&real-name part&(真实姓名部分)。
这是通过撰写电子邮件的程序加上的。
这个部分就是将邮件发送给ganghua本人的依据。 注意:如果在real-name
part中有句点存在, 邮件地址必须用&符号包围起来(例如:&kanaka
C.Leng&)。 您可以用man mailaddr参考一下相关的帮助页。
  由于我们已经安装了Debian基本系统,而Debian基本系统里面含有exim和mail这两个软件,所以我们只需要安装这两个:fetchmail、fetchmailconf和qpopper。
apt-get install fetchmail fetchmailconf qpopper
  其中,fetchmailconf是用来配置fetchmail的工具。  系统会有一些问题提问你。当问你是否以root身份运行-wide
fetchmail时,答Yes。其他的都选默认值。3 配置
3.1 配置Debian的hosts
  Debian机器上的/etc/hosts文件内容如下:
127.0.0.1 localhost
192.168.1.2
3.2 配置exim
  在Debian下,这一切都是由eximconfig程序来完成的。
eximconfig
  程序将问到一些问题,你可以参考下面的回答:  ◆ 你的系统是一个主机(选择1,虽然你在局域网。这样你可以发邮件到互联网)。
  ◆ “显示的邮件域名”为。
  ◆ 系统有其他的名称吗?你可以回答 Debian:localhost。
  ◆ 你不想转发任何非本地域的邮件。保持none,按回车。
  ◆ 你想转发的本地域地址为192.168.1.0/16。
  ◆ 处理向外转发的邮件的smarthost 地址为 smtp.yeah.net。
  ◆ 系统管理员的邮件为kanaka(非root)。
3.3 配置Win20003.3.1 hosts  在Notepad机器上的c:\winnt\system32\drivers\etc\hosts文件中的内容跟Debian机器中的/etc/hosts文件的内容一样。
127.0.0.1 localhost
192.168.1.1
192.168.1.2
3.3.2 邮件  在Microsoft Outlook Express(或者你在Win2000使用的其他此类的邮件客户程序)。
必须都将Debian输入作为SMTP 邮件服务器和POP3服务器。 在“POP3账号名”和“POP3口令”输入框,
输入用户名ganghua和她在linux下的口令。 输入姓名为ganghua Leng;
电子邮件地址为 。
注意电子邮件地址必须以本地域做后面的地址。4 小测试
  通过上述的设置,本地的用户之间应该已经可以实现相互的发送和回复信件了。在Outlook
Express里面的测试我就不说了,我来说一下在Debian上面用mail来做测试。&
mail kanaka
This is my First test-mail!
Hi,kanaka,
This is the first time that I send a mail by exim.
  上面我们给本地的kanaka发了一封邮件,并抄送给了互联网上的。注意,要结束一封信的内容,在新的一行输入“.”就可以了。我在Win2000上用Outlook
Express就可以收到发给kanaka的信;而发给的信,我到freemail.yeah.net站点上去,也收到了。  现在已经真正成为了一个具有邮件转发功能的本地域,而且可以发送邮件到互联网上的。但是,一个格式为From:的地址显然是无法被外部用户回复的,
因为对于外部网络来说, 是一个不存在的(因而不合法)的域名。因此,我们还需要修改From:的地址。
5 修改 From: 的地址
  在往互联网上发送邮件的时候,为了他们可以正确的回复,我们必须把本地的From:地址格式改变成为一个合法的电子邮件地址。
借助于exim的&传送过滤器&, 我们可以实现这一功能。
往外部转发的邮件经过这个传送过滤器以后, From:
中的地址就会被改变, 而对于本地邮件则没有什么影响。
  下面的过滤器将实现这个恶作剧式的技巧,
首先我们确定我们要改变的地址永远包含在&&&&符号之内。
虽然不能完全保证, 但是通常的邮件程序:mail甚至Microsoft
Outlook Express都是生成这种格式的电子邮件地址。
5.1 创建outfit文件  我们来创建一个文件,/usr/bin/outfit,内容如下:
#!/usr/bin/perlwhile (&STDIN&) { if (/^From: /) { s/&.*&/&''&/; print &$_&; } print &$_&; }while (&STDIN&) { print &$_&; }
  把这个文件放到/usr/bin目录中,命名为outfit,不要忘记把上面的电子邮件地址换成你自己的电子邮件地址!&  然后,通过下面的命令chmod +x /usr/bin/outfit加上可执行的权限。
chmod +x /usr/bin/outfit
5.2 修改exim.conf
  打开/etc/exim/exim.conf,找到下面一行:
driver = smtp
<font size

我要回帖

更多关于 debian8 root无法登陆 的文章

 

随机推荐