CentOS 5.3 下快速安装配置 PPTP VPN 服务器

VPN的英文全称是“Virtual Private Network”,翻译过来就是“虚拟专用网络”。顾名思义,虚拟专用网络我们可以把它理解成是虚拟出来的企业内部专线。它可以通过特殊的加密的通讯协议 在连接在Internet上的位于不同地方的两个或多个企业内部网之间建立一条专有的通讯线路,就好比是架设了一条专线一样,但是它并不需要真正的去铺设 光缆之类的物理线路。这就好比去电信局申请专线,但是不用给铺设线路的费用,也不用购买路由器等硬件设备。VPN技术原是路由器具有的重要技术之一,目前 在交换机,防火墙设备或Windows等软件里也都支持VPN功能,一句话,VPN的核心就是在利用公共网络建立虚拟私有网。

虚拟专用网(VPN)被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。虚拟专用网 是对企业内部网的扩展。虚拟专用网可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。虚拟专用 网可用于不断增长的移动用户的全球因特网接入,以实现安全连接;可用于实现企业网站之间安全通信的虚拟专用线路,用于经济有效地连接到商业伙伴和用户的安 全外联网虚拟专用网。

PPTP 全称为 Point to Point Tunneling Protocol — 点到点隧道协议,是VPN协议中的一种。

一、CentOS 5.3 下 PPTP VPN 服务器安装

1、安装相关软件
32位版:

[root@localhost server]# yum install -y ppp iptables
[root@localhost server]# wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-1.rhel5.1.i386.rpm #或 wget http://www.offar.org/attachments/20100114/pptpd-1.3.4-1.rhel5.1.i386.rpm
[root@localhost server]# rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm

64位版:

[root@localhost server]# yum install -y ppp iptables
[root@localhost server]# wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-1.rhel5.1.x86_64.rpm #或wget ttp://www.offar.org/attachments/20100114/pptpd-1.3.4-1.rhel5.1.x86_64.rpm
[root@localhost server]# rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm

2、配置文件编写
①、配置文件/etc/ppp/options.pptpd

[root@localhost server]# mv /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak
[root@localhost server]# vi /etc/ppp/options.pptpd

输入以下内容:

name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
ms-dns 208.67.222.222
ms-dns 208.67.220.220

②、配置文件/etc/ppp/chap-secrets

[root@localhost server]# mv /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bak
[root@localhost server]# vi /etc/ppp/chap-secrets

输入以下内容

# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
myusername pptpd mypassword *

注:这里的myusername和mypassword即为PPTP VPN的登录用户名和密码


③、配置文件/etc/pptpd.conf

[root@localhost server]# mv /etc/pptpd.conf /etc/pptpd.conf.bak
[root@localhost server]# vi /etc/pptpd.conf

输入以下内容:

option /etc/ppp/options.pptpd
logwtmp
localip 192.168.9.1
remoteip 192.168.9.11-30

注:为拨入VPN的用户动态分配192.168.9.11~192.168.9.30之间的IP


④、配置文件/etc/sysctl.conf

[root@localhost server]# vi /etc/sysctl.conf

修改以下内容:

net.ipv4.ip_forward = 1

保存、退出后执行:

[root@localhost server]# /sbin/sysctl -p

3、启动PPTP VPN 服务器端:

[root@localhost server]# /sbin/service pptpd start

4、启动iptables:

[root@localhost server]# /sbin/service iptables start
[root@localhost server]# /sbin/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.9.0/24 -j MASQUERADE

Destination host unreachable 一般解决办法

起因:

安装VC++重新启动计算机后,电脑上不去网

症状:

本机IP 192.168.0.99
子网掩码:255.255.255.0
网关:192.168.0.1
DNS:192.168.0.1
解决:
首先,把网线拔了重新插了数次,以防接触不良导致的。
把网线插上的一瞬间能够看到网卡指示灯迅速的闪了几下,证明此时有数据通过,物理上应该是没有问题的,检查软件原因。

ping 192.168.0.1,返回的结果是

Destination host unreachable.

翻译做中文,这一行字的意思是“目标主机不可达”,一般情况下,是因为IP地址配置出错,没有到达目标IP的路由

说白了,就是没有配置默认网关,因此,输入命令 ipconfig /all 看了一下,发现一点问题也没有

ping 127.0.0.1192.168.0.99正常,表示TCP/IP协议没错
网卡卸载后重装,禁用启用网卡数次,故障依旧,使用LSP的软件进行修复,发现ping 192.168.0.1之后依然提示“Destination host unreachable.”,可是这个时候输入命令arp -a可以看到网关的MAC地址已经正常解析了!

分析:

既然arp -a能够解析出MAC地址,说明网络是连接是正常的,那么问题一定出在电脑里,阻止了ICMP或者别的数据的连接。

检查进程和服务,瑞星防火墙并没有启动,系统自带的防火墙也没有打开。

百度搜索关键字“Destination host unreachable.”,很多人都提到了一个问题,是IPSeC安全策略阻止了数据的通过,在网卡属性里选TCP/IP协议,进“高级”,“选项”,没看到起用IPSeC,也没有做端口过滤

疑惑了,没招的时候总会想到去查查系统的日志,看看有没有出错的信息或记录,结果看到两条日志:

事件类型:    错误
事件来源
:    
Service Control Manager
事件种类
:    

事件 ID
:    
7023
日期
:    2007-2-
2
事件
:    11:48:
49
用户
:    N/
A
计算机
:    
SAGI
描述
:
IPSEC Services 服务因下列错误而停止
:
指定的标记无效。

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

紧接着还有一条相关的

事件类型:    错误
事件来源
:    
IPSec
事件种类
:    

事件 ID
:    
4292
日期
:    2007-2-
2
事件
:    11:47:
21
用户
:    N/
A
计算机
:    
SAGI
描述
:
IPSec 驱动程序进入了阻止模式。IPSec 将丢弃所有未经启动时 IPSec 策略例外所允许的入站和出站 TCP/IP 网络通讯。 用户操作: 要恢复完全非安全的 TCP/
IP 连接,请禁用 IPSec 服务,然后重新启动计算机。 有关详细的疑难解答信息,请查阅在安全事件日志中的事件。

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
数据
:
0000: 00 00 00 00 01 00 54 00     ......T
.
0008: 00 00 00 00 c4 10 00 c0     ....Ä..&Agrave
;
0010: 01 00

看到这里,大家明白了吧?重点就在于:

IPSec 驱动程序进入了阻止模式。IPSec 将丢弃所有未经启动时 IPSec 策略例外所允许的入站和出站 TCP/IP 网络通讯。 用户操作: 要恢复完全非安全的 TCP/IP 连接,请禁用 IPSec 服务,然后重新启动计算机。

照着这个提示,输入命令services.msc,进入服务控制面板,找到IPSec服务,禁用,重启,问题解决。

Linux操作系统修改时区的方法

Local vs. UTC
首先重要的问题是你使用utc还是local time.
UTC(Universal Time Coordinated)=GMT(Greenwich Mean Time)
Local time 是你手表上的时间
传统的POSIX计算机(Solaris,bsd,unix)使用UTC格式
linux可以处理UTC时间和蹩脚的Windows所使用的local time
到底是使用UTC还是local time可以这样来确定:
如果机器上同时安装有Linux和Windows,建议使用local time
如果机器上只安装有Linux,建议使用utc
确定后编辑/etc/sysconfig/clock, UTC=0 是local time; UTC=1 是UTC(GMT)
确定timezone
运行tzselect,回答问题后会告诉你时区的名称,比如”Asia/Shanghai”,把他记下来(后面我用$timezone代替)
设定timezone
# cp /usr/share/zoneinfo/$timezone /etc/localtime
重新启动或者运行时钟设置脚本使之发生作用
版本差异
由于发行版的差异,以上文件位置可能不同。
一般设置时钟所使用的启动脚本为/etc/rc.d/init.d/setclock
redhat是在/etc/rc.d/rc.sysinit中设置时钟,所以一般要重新启动。

Nginx 500的一种情况

如果您安装 Nginx + PHP 用于程序调试,请将以下的<value name=”display_errors”>0</value>改为<value name=”display_errors”>1</value>,以便显示PHP错误信息,否则,Nginx 会报状态为500的空白错误页

国内巨快的Centos yum源

arbor找到的很快的国内yum 源:

CentOS USTC mirror

http://centos.ustc.edu.cn/centos/

安装后请按照以下步骤修改CenOS-Base.repo,以后就可以方便的用yum安装软件了.

cd /etc/yum.repos.d
mv CentOS-Base.repo  CentOS-Base.repo.save
wget http://centos.ustc.edu.cn/CentOS-Base.repo

修改以上文件后, 如需要安装gcc, 直接yum install gcc就可以了

还有一个:
http://www.shlug.org/

查看linux系统位数方法(32?64?)

1.直接看看有没有/lib64目目录的方法。64位的系统会有/lib64和/lib两个目录,32位只有/lib一个。

2.getconf LONG_BIT

(32位的系统中int类型和long类型一般都是4字节,64位的系统中int类型还是4字节的,但是long已变成了8字节inux系统中可 用”getconf WORD_BIT”和”getconf LONG_BIT”获得word和long的位数。64位系统中应该分别得到32和64。)

Destination host unreachable 一般解决办法

症状:

本机IP 192.168.0.99
子网掩码:255.255.255.0
网关:192.168.0.1
DNS:192.168.0.1

解决:
首先,把网线拔了重新插了数次,以防接触不良导致的。
把网线插上的一瞬间能够看到网卡指示灯迅速的闪了几下,证明此时有数据通过,物理上应该是没有问题的,检查软件原因。

先ping 192.168.0.1,返回的结果是
Destination host unreachable.

翻译做中文,这一行字的意思是“目标主机不可达”,一般情况下,是因为IP地址配置出错,没有到达目标IP的路由

说白了,就是没有配置默认网关,因此,输入命令 ipconfig /all 看了一下,发现一点问题也没有

ping 127.0.0.1和192.168.0.99正常,表示TCP/IP协议没错
网卡卸载后重装,禁用启用网卡数次,故障依旧,使用LSP的软件进行修复,发现ping 192.168.0.1之后依然提示“Destination host unreachable.”,可是这个时候输入命令arp -a可以看到网关的MAC地址已经正常解析了!

分析:

既然arp -a能够解析出MAC地址,说明网络是连接是正常的,那么问题一定出在电脑里,阻止了ICMP或者别的数据的连接。

检查进程和服务,瑞星防火墙并没有启动,系统自带的防火墙也没有打开。

百度搜索关键字“Destination host unreachable.”,很多人都提到了一个问题,是IPSeC安全策略阻止了数据的通过,在网卡属性里选TCP/IP协议,进“高级”,“选项”,没看到起用IPSeC,也没有做端口过滤

疑惑了,没招的时候总会想到去查查系统的日志,看看有没有出错的信息或记录,结果看到两条日志:

事件类型:    错误
事件来源:    Service Control Manager
事件种类:    无
事件 ID:    7023
日期:    2007-2-2
事件:    11:48:49
用户:    N/A
计算机:    SAGI
描述:
IPSEC Services 服务因下列错误而停止:
指定的标记无效。

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。

紧接着还有一条相关的

事件类型:    错误
事件来源:    IPSec
事件种类:    无
事件 ID:    4292
日期:    2007-2-2
事件:    11:47:21
用户:    N/A
计算机:    SAGI
描述:
IPSec 驱动程序进入了阻止模式。IPSec 将丢弃所有未经启动时 IPSec 策略例外所允许的入站和出站 TCP/IP 网络通讯。 用户操作: 要恢复完全非安全的 TCP/IP 连接,请禁用 IPSec 服务,然后重新启动计算机。 有关详细的疑难解答信息,请查阅在安全事件日志中的事件。

有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心。
数据:
0000: 00 00 00 00 01 00 54 00     ……T.
0008: 00 00 00 00 c4 10 00 c0     ….&Auml;..&Agrave;
0010: 01 00

看到这里,大家明白了吧?重点就在于:

IPSec 驱动程序进入了阻止模式。IPSec 将丢弃所有未经启动时 IPSec 策略例外所允许的入站和出站 TCP/IP 网络通讯。 用户操作: 要恢复完全非安全的 TCP/IP 连接,请禁用 IPSec 服务,然后重新启动计算机。

照着这个提示,输入命令services.msc,进入服务控制面板,找到IPSec服务,禁用,重启,问题解决。

Nginx虚拟主机多server_name的顺序问题

在一个Nginx虚拟主机中,可以绑定多个server_name,而server_name的先后顺序的不同,对PHP程序中使用$_SERVER[“SERVER_NAME”]或getenv(‘SERVER_NAME’)获取服务器域名是有影响的。

$_SERVER[“SERVER_NAME”]或getenv(‘SERVER_NAME’)获取的始终将是Nginx server_name配置中的第一个域名,这一点在程序开发中需要注意。这第一个域名就相当于Apache虚拟主机配置中的ServerName,后面 的域名就相当于Apache的ServerAlias。

CentOs 默认服务解释

为了性能与安全,需要将部分服务关闭,标记蓝色为开启,其他为关闭

NetworkManager
自动在多种网络连接中进行转换,如果你的电脑有Wireless WiFi 和 Ethernet多种网络连接类型的话,可以选择开启。

NetworkManagerDispatcher

acpid
acpid(Advanced Configuration and Power Interface)是为替代传统的APM电源管理标准而推出的新型电源管理标准。通常笔记本电脑需要启动电源进行管理。

anacron
自动化运行任务守护进程。Red Hat Linux 随带四个自动化任务的工具:cron、anacron、at和 batc。当你的Linux服务器并不是全天运行,这个anacron就可以帮你执行在”crontab”设定的时间内没有执行的工作。

apmd
高级电源管理

atd
自动化运行任务守护进程。

auditd
审核信息,将消息写入控制台以及 audit_warn 电子邮件别名。用于存放内核生成的系统审查记录,这些记录会被一些程序使用。特别是对于SELinux用户来说。

autofs
自动安装管理进程automount,与NFS 相关,依赖于NIS

avahi-daemon

zeroconf配置的具体现实,对于没有DNS情况下的本地网络服务很有用,有点类似于mDNS,一般可以disable

avahi-dnsconfd

bluetooth
蓝牙

conman

console management

cpuspeed
监测系统空闲百分比,降低或加快CPU时钟速度和电压从而在系统空闲时将能源消耗降为最小,而在系统繁忙时最大化加快系统执行速度。

crond
自动计划任务

cups
cups(Common UNIX Printing System)是通用UNIX打印守护进程,为Linux提供第三代打印功能

dhcdbd
DHCP

dund
蓝牙拨号网络

firstboot
安装完之后的用户配置向导,用于第一次设置系统

gpm
(General Purpose Mouse Daemon )守护进程为文本模式下的Linux程序如mc(Midnight Commander)提供了鼠标的支持。它也支持控制台下鼠标的拷贝,粘贴操作以及弹出式菜单。

haldaemon
硬件监控系统

hidd
蓝牙H.I.D.服务器

ibmasm

ip6tables
ipv6 tables防火墙守护进程。

ipmi

iptables
iptables防火墙守护进程。

irda
红外端口守护进程。

irqbalance
对多个系统处理器环境下的系统中断请求进行负载平衡的守护程序。如果你只安装了一个CPU,就不需要加载这个守护程序。

kdump
初始化kdump的脚本

kudzu
硬件自动检测程序,会自动检测硬件是否发生变动,并相应进行硬件的添加、删除工作。如果你不打算增加新硬件,那么就可以关闭这个启动服务,以加快系统启动时间。

lvm2-monitor

mcstrans
主要用于SELinux

mdmonitor
mdmpd
RAID相关设备的守护程序。

messagebus
事件监控服务,在必要时向所有用户发送广播信息,如服务器将要重启。

microcode-ctl
可编码以及发送新的微代码到内核以更新Intel IA32系列处理器守护进程。

multipathd

netconsole

netfs
Network Filesystem Mounter,该进程安装和卸载NFS、SAMBA和NCP网络文件系统。

netplugd
网卡精灵进程,此服务监控网络界面,根据信号关闭或启动它,主要用于不经常连接的手提电脑。

network
激活已配置网络接口的脚本程序

nfs
网络文件系统守护进程。

nfslock
NFS是一个流行的通过TCP/IP网络共享文件的协议,此守护进程提供了NFS文件锁定功能。

nscd
密码与群查找服务,此服务用于减慢N.I.S/Y.P.nist,ldap和hesiod之类的服务.专门为这些服务提供更长的中断时间。NIS, NIS+, LDAP, or hesiod服务密码控制

ntpd
网络时间同步

oddjobd

pand
蓝牙个人区域网络,用于基于网络的家庭区域蓝牙技术

pcscd
智能卡支持

portmap
该守护进程用来支持RPC连接,RPC被用于NFS以及NIS 等服务。

psacct
进程审计守护进程

rdisc

readahed_early
readahead_later
开机内存载入优化

restrorecond
SELinux用于监控文件

rpcgssd
NFS支持

rpcidmapd

rpcsvcgssd

saslauthd
使用SASL的认证守护进程。

sendmail
邮件服务器sendmail守护进程。

setroubleshoot
SELinux Troubleshooting

smartd
Self Monitor Analysis and Reporting Technology System,监控你的硬盘是否出现故障。

sshd
OpenSSH服务器守护进程。

syslog
系统日志

winbind
用于Samba服务器

wpa_supplicant
无线设备支持

xfs
X Window字型服务器守护进程,为本地和远程X服务器提供字型集。

ypbind
为NIS(网络信息系统)客户机激活ypbind服务进程 。

yum-updatesd
RPM操作系统自动升级和软件包管理守护进程。

CentOS Linux中Samba文件共享服务器的构

前  言

在我们使用 Windows 作为客户机的时候,通常有文件、打印共享的需求。作为Windows 网络功能之一,通常可以在 Windows 客户机之间通过 Windows Network 固有的功能实现这些要求。然而,通过 Samba 我们也可以让一台 CentOS 主机来兼容 Windows 网络,实现同样的功能,进而充分发挥 CentOS 主机的可用性。

本篇文档主要介绍怎样通过 Samba 服务器的构建实现 Windows 网络中的文件共享。

安装 Samba

首先,通过 yum 来在线安装 Samba 。

[root@sample ~]# yum -y install samba  ← 安装 Samba

Setting up Install Process
Setting up repositories
update 100% |=========================| 951 B 00:00
base 100% |=========================| 1.1 kB 00:00
addons 100% |=========================| 951 B 00:00
extras 100% |=========================| 1.1 kB 00:00
Reading repository metadata in from local files
primary.xml.gz 100% |=========================| 73 kB 00:00
update : ################################################## 212/212
Added 212 new packages, deleted 0 old in 4.94 seconds
primary.xml.gz 100% |=========================| 569 kB 00:00
base : ################################################## 1500/1500
Added 1500 new packages, deleted 0 old in 28.97 seconds
primary.xml.gz 100% |=========================| 157 B 00:00
Added 0 new packages, deleted 0 old in 0.03 seconds
primary.xml.gz 100% |=========================| 32 kB 00:00
extras : ################################################## 124/124
Added 124 new packages, deleted 0 old in 1.93 seconds
Parsing package install arguments
Resolving Dependencies
–> Populating transaction set with selected packages. Please wait.
—> Downloading header for samba to pack into transaction set.
samba-3.0.10-1.4E.9.i386. 100% |=========================| 101 kB 00:00
—> Package samba.i386 0:3.0.10-1.4E.9 set to be updated
–> Running transaction check
–> Processing Dependency: samba-common = 0:3.0.10 for package: samba
–> Restarting Dependency Resolution with new changes.
–> Populating transaction set with selected packages. Please wait.
—> Downloading header for samba-common to pack into transaction set.
samba-common-3.0.10-1.4E. 100% |=========================| 37 kB 00:00
—> Package samba-common.i386 0:3.0.10-1.4E.9 set to be updated
–> Running transaction check

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
samba i386 3.0.10-1.4E.9 base 13 M
Installing for dependencies:
samba-common i386 3.0.10-1.4E.9 base 5.0 M

Transaction Summary
=============================================================================
Install 2 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 18 M
Downloading Packages:
(1/2): samba-common-3.0.1 100% |=========================| 5.0 MB 00:04
(2/2): samba-3.0.10-1.4E. 100% |=========================| 13 MB 00:11
warning: rpmts_HdrFromFdno: V3 DSA signature: NOKEY, key ID 443e1821
Public key for samba-common-3.0.10-1.4E.9.i386.rpm is not installed
Retrieving GPG key from http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
Importing GPG key 0x443E1821 “CentOS-4 key <centos-4key@centos.org>”
Key imported successfully
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: samba-common ######################### [1/2]
Installing: samba ######################### [2/2]
Installed: samba.i386 0:3.0.10-1.4E.9
Dependency Installed: samba-common.i386 0:3.0.10-1.4E.9
Complete!

配置 Samba

然后,通过编辑 /etc/samba/smb.conf ,根据需求配置 Samba。在这里,本文的原则是只将文件共享应用于内网,并让将要被共享的目录拥有充分的读写权限属性。
[root@sample ~]# vi /etc/samba/smb.conf  ← 编辑 Samba 的配置文件

#======================= Global Settings =====================================
[global]   ← 找到这一行(全局设置标签),在此行下面添加如下行:

dos charset = GB2312  ← 将 Windows 客户端的文字编码设置为简体中文 GB2312
unix charset = GB2312  ← 指定 Samba 所在的 CentOS 服务端新建文件或目录时的编码为 GB2312
display charset = GB2312  ← 指定使用 SWAT(一种通过浏览器控制Samba的工具)时页面的默认文字编码
directory mask = 0777  ← 指定新建目录的属性(以下4行)
force directory mode = 0777
directory security mask = 0777
force directory security mode = 0777
create mask = 0777  ← 指定新建文件的属性(以下4行)
force create mode = 0777
security mask = 0777
force security mode = 0777

workgroup = MYGROUP  ← 找到此行,将工作组名称改为 Windows 网络所定义的工作组名

workgroup = WORKGROUP  ← 变为此状态,这里以 Windows XP 默认的“WORKGROUP”为例

; hosts allow = 192.168.1. 192.168.2. 127.  ← 找到此行,去掉行首的“;”,并制定访问限制

hosts allow = 192.168.0. 127.  ← 变为此状态,指定内网IP地址及本地,只允许这两种情况的访问

然后在配置文件的末尾填如下几行,定义公众共享目录:

[public]
comment = Public Stuff
path = /home/samba  ← 指定共享目录位置
public = yes
writable = yes  ← 赋予共享目录写入权限的属性

接下来,创建将要通过 Samba 共享给 Windows 网络的专用目录。
[root@sample ~]# mkdir /home/samba  ← 建立共享文件专用目录

[root@sample ~]# chown -R nobody. /home/samba  ← 设置专用目录归属为 nobody

[root@sample ~]# chmod 777 /home/samba  ← 将专用目录属性设置为 777

在进行到服务端的连接之前,需要预先对用于登录 Samba 的用户进行设置。这里我们以 CentOS 中 Samba 标准的 Samba 用户数据库管理工具“smbpasswd”为例,创建用于登录 Samba 的用户数据。这里需要注意的一点:用 smbpasswd 创建用户的前提是,系统用户中存在该用户 — 在基于系统用户之上,才可以创建该用户在 Samba 用户数据库中的信息。

[root@sample ~]# smbpasswd -a centospub  ← 将系统用户 centospub(例)加入到 Samba 用户数据库

New SMB password:  ← 输入该用户用于登录 Samba 的密码
Retype new SMB password:  ← 再次确认输入该密码
Added user centospub.

启动 Samba 服务

在启动 Samba 服务之前,首先将防火墙设置中 Samba 所用到的端口进行开放。
[root@sample ~]# vi /etc/sysconfig/iptables  ← 编辑 iptables 配置文件

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 25 -j ACCEPT  ← 找到此行,在下面添加如下行:
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 139 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 445 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp –dport 137 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp –dport 138 -j ACCEPT

[root@sample ~]# /etc/rc.d/init.d/iptables restart  ← 重新启动 iptables ,使新的规则生效
Flushing firewall rules:          [ OK ]
Setting chains to policy ACCEPT: filter   [ OK ]
Unloading iptables modules:       [ OK ]
Applying iptables firewall rules:      [ OK ]

最后,启动 Samba 服务。
[root@sample ~]# chkconfig smb on  ← 设置 Samba 自启动

[root@sample ~]# chkconfig –list smb  ← 确认 Samba 启动标签,确认 2-5 为 on 的状态
smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off

[root@sample ~]# /etc/rc.d/init.d/smb start  ← 启动 Samba 服务
Starting SMB services:       [ OK ]
Starting NMB services:       [ OK ]

从 Windows 客户端连接到 Samba 服务器

在服务端启动 Samba 服务后,我们就可以从 Windows 客户端通过 Windows 网络连接到 Samba。这里以 Windows XP 为例,说明如下连接过程:

1、从桌面打开“网上邻居”,并点击“查看工作组计算机”选项;

2、确认出现 Samba 服务端的连接,并双击该连接;(本站文档的主机名以 Sample 为例)

3、输入在服务端预先设置好的 Samba 用户的用户名及密码;(用户名同系统用户名,密码需要输入在通过 smbpasswd 为该系统用户设置的 Samba 专用的密码。)

4、然后确认能够连接到 Samba 服务器,并出现根目录及 Samba 专用共享目录。

最后,在相应目录进行新建、修改以及删除文件的操作,测试相应权限的可操作性。