快速架设apache/vsftpd/samba/sendmail服务器
daweicheng [email protected]
1 序言 2 参考文档 3 动态域名实现 4 apache 5 vsftpd 6 samba 7 sendmail 8 附录 a) httpd.conf的详细设定 b) vsftpd.conf的详细设定 c) smb.conf的详细设定 d) sendmail.mc的详细设定 e) tcp端口对照表(0~1457)
1 序言
现在宽带网络越来越普及,这为个人架设服务器提供了良好的基础. 本文讲述了如何实现动态域名,并快速设置好apache/vsftpd/samba/sendmail服务器.本文参阅了不少优秀文档,并接合了自己的一些心得.在这里,感谢这些无私的作者和为linux做出贡献的人们.
环境:redhat linux 9
2 参考文档
Red Hat Linux 9.0服务器架设全程实录 http://www.douzhe.com/linuxtips/1701.html
简易www伺服器设定 http://linux.vbird.org/linux_server/0360apache.php
简易vsftpd伺服器设定 http://linux.vbird.org/linux_server/0410vsftpd.php
简易samba伺服器设定 http://linux.vbird.org/linux_server/0370samba.php
简易Mail Server架设 -- Sendmail设定 http://linux.vbird.org/linux_server/0380sendmail.php
RHCE_Linux_Study_Guide 此文档在许多linux站点都可以找到
3 动态域名实现
考虑虚拟拨号的用户ip地址是动态分配的,这里我们申请动态域名.假设我们拥有公网ip. 在http://www.comexe.cn/ddns/ddns_trying.php上申请一个二级域名,然后下载linux的动态域名客户端linux_i.tar.gz,放在/tmp下
cd /tmp tar zxvf linux_i.tar.gz
解压后的文件pipclient我们放在/usr/local/comexe/下
mkdir /usr/local/comexe/ mv pipclient /usr/local/comexe/ cd /usr/local/comexe/
下面配置客户端,在以下网址有说明: http://www.comexe.cn/ddns/ddns_assistant_use.php#a4
./pipclient 依此输入在科迈注册的用户名,密码,域名 在Input Offline URL or Offline IP(Enter for none):此处我们直接回车(离线域名对我们注册的二级域名无效) Has another domain?(Y/N):多个域名按"Y" 配置完按Ctrl+C结束. 修改配置用-c参数: ./pipclient -c
运行: pipclient要在系统启动时以后台进程运行。请修改系统启动脚本(/etc/rc.d/rc.local),加入如下命令: nohup /usr/local/comexe/pipclient -w /usr/local/comexe & 其中“-w”参数指定工作目录
因为我个人更喜欢用ntsysv(setup->system service),所以没有在rc.local中加命令 于是自己写了个简陋的脚本,用chkconfig加入系统服务,以后可以用service comexe start和service comexe stop启用和停止动态域名: cd /etc/init.d/ vi comexe 然后写入下面的内容: #! /bin/sh #chkconfig:2345 90 90 #description:comexe
. /etc/rc.d/init.d/functions
case "$1" in
start) echo -n "start ddns: " /usr/local/comexe/pipclient -w /usr/local/comexe > /dev/null & echo ;;
stop) echo -n "stop ddns: " killproc pipclient echo ;;
*) exit 1 ;; esac
exit 0 好了,wq保存退出 chmod 755 comexe chkconfig --add comexe chkconfig --level 35 comexe on 这样,把comexe这个脚本加到了启动服务中,以后每次开机后自动加载(运行级3,5) service comexe start和service comexe stop可手动加载和停止该服务.
4 apache
apache是被广泛应用的web服务器软件,有多个平台的版本.关于apache名称的由来,大家有兴趣可以看看参考文档中的解释:) 首先是安装工作. 我们需要安装如下的软件包(可以在redhat linux 9 光盘中找到) httpd httpd-devel redhat-config-httpd httpd-manual autoconf automake libtool mod_perl mod_ssl mod_python 用rpm -Uvh将这些软件包装好,然后: /sbin/chkconfig --level 35 httpd on 将httpd服务在运行级3,5自动加载 /sbin/service httpd start 启动httpd服务 在web浏览器中输入http://localhost,如果安装无误,你会看见apache的测试页面
在apache 2中主配置文件是/etc/httpd/conf/httpd.conf 该文件的修改可以手动编辑或用redhat-config-httpd这样的图形化程式来完成 下面简单介绍一下该配置文件的主要配置参数:
KeepAlive On 是否允许持续性连线,即一个连线有多个请求
MaxKeepAliveRequests 100 在持续性连线中,最大允许的连接数目,设定为0,表示没有限制
MinSpareServers与MaxSpareServers是设定httpd进程数量的范围 StartServers可以设定在这两者之间(用ps -guax|grep httpd可以看到httpd进程数)
MaxClients 150 同一时间的连接数目.如果设得太大会很耗资源,设得太小则无法让很多人连上来
MaxRequestsPerChild 一个服务进程允许的最大请求数,设为0表示无限制
Listen 80 设定监听端口,默认80,表示监听所有ip的80端口,可以根据情况设成其他端口 也可以设为监听某一ip的端口,如xxx.xxx.xxx.xxx:80 这要在系统启动时激活网络(仅限固定ip),否则httpd服务启动失败
DocumentRoot "/var/www/html" DocumentRoot设定apache的根目录
Options FollowSymLinks AllowOverride None
设定apache根目录的属性,Options后面的值表示: ExecCGI 使该目录下CGI可执行 FollowSymLinks 允许链接至其他目录 Includes 允许使用SSI Indexes 如果该目录下找不到index.html,则显示该目录下文件名称 MultiViews 根据特定条件自动选择并返回一个合适的文件(很少用到) All 使用上面所有参数,除了MultiViews
AddDefaultCharset ISO-8859-1 apache缺省的显示语言编码,将ISO-8859-1改为GB2312,以显示简体中文
NameVirtualHost * 虚拟主机设定.所谓虚拟机指一个主机有多个域名对应, 该设定可以让不同的域名对应不同的页面,就好像存在多个主机一样 apache有两种方式的虚拟机:基于ip的虚拟机和基于名字的机 基于IP的虚拟主机要求使用不同的IP地址来区别不同的虚拟主机 基于名字的虚拟主机使用相同的IP地址来配置不同的虚拟主机 *可以用ip地址或internet上的主机名称来替代
ServerName www.myvirtualhost.com DocumentRoot /var/www/html/myvirtualhost ServerAdmin [email protected] ErrorLog logs/www.myvirtualhost.com-error_log CustomLog logs/www.myvirtualhost.com-access_log common
上面是一个虚拟机的例子,即www.myvirtualhost.com ServerAdmin 管理员电邮地址 ErrorLog 错误日志 CustomLog 访问日志 设定一个虚拟机至少需要ServerName和DocumentRoot两项,即服务器名和虚拟机网页的根目录. 可根据情况设定多个虚拟主机
设置无误后,用httpd -t测试有无语法错误 service httpd reload装载修改过的设定
现在可以用浏览器测试一下
最后,开放iptables中的80端口(取决于httpd.conf中的端口设定) vi /etc/sysconfig/iptables 由于iptables是至上而下读取配置文件规则的,所以在 -A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 0:1023 --syn -j REJECT 这一行之上加入允许的规则就可以了.加入: #httpd(apache) -A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 80 --syn -j ACCEPT 然后service iptables restart 重启iptables服务 这样,可以从internet上访问这台主机的www服务了.
5 vsftpd
vsftpd是linux上常用的几种ftp服务器软件之一,vsftpd是very secure FTP daemon的缩写.
首先,将redhat linux 9 cd #3上的vsftpd-1.1.3-8.i386.rpm装好
chkconfig --level 35 vsftpd on 运行级3,5下,vsftpd服务开机自动加载
service vsftpd start 启动vsftpd服务 参数restart,stop可重启/停止服务
配置文件: /etc/vsftpd/vsftpd.conf 是vsftpd的主要设定文件
/etc/vsftpd.ftpusers 不能访问ftp服务器的用户列表,默认root不可访问vsftpd服务器
/etc/vsftpd.user_list 这个文件中也是一些用户的列表 在/etc/vsftpd/vsftpd.conf中: 1)当userlist_enable=YES(默认)时,启用配置文件/etc/vsftpd.user_list a)此时若没有userlist_deny=NO,则/etc/vsftpd.user_list中的用户也不可访问vsftpd服务器 b)此时若存在userlist_deny=NO,则仅接受/etc/vsftpd.user_list中存在的用户的登录请求(同时这些用户不存在于/etc/vsftpd.ftpusers中)
共8页: 上一页 1 [2] [3] [4] [5] [6] [7] [8] 下一页 |