服务(Service)是运行在操作系统后台的一个活多个程序,为用户或系统提供某项特定的服务
本地服务、网络服务
用户、计算机通过访问固定的IP地址及端口号访问服务器的某项网络服务
System V(第五个版本)服务管理体系
System V运行级别概念
-0 关机
-3 多用户模式
-5 XII图形化模式
-6 重新启动
每个服务的启动、结束、重启等操作有System V脚本控制
service 服务名 动作(start|stop|restart|status)
如 service network start
实际运行脚本在 /etc/rc.d/init.d
以S开头是开机自启动,k是不启动的,之后数字是启动顺序
控制服务开机自启动
chkconfig 服务名 动作(on|off)
如:chkconfig cupson
chkconfig --list 列出所有服务
xinetd控制不常驻的、简单的服务
xinetd自身作为一个服务常驻运行在后台,而xinetd所控制的服务在没连接是不运行的
xinetd本身是一个系统服务,使用System V进行管理
安装xinetd:yum install xitnetd
xinetd服务控制也用chkconfig命令
/etc/xinetd.conf
域名:主机名.域名.类型
DNS(Domain Name System)
域名的解析基于:
文件(/etc/hosts、/etc/networks)
DNS
NIS
配置hosts文件可将域名映射到IP
通过配置文件/etc/nesswitch.conf控制查询顺序
hosts:files dns(默认先查询文件再查询dns)
DNS查询:host、dig
如: host www.baidu.com 、dig www.baidu.com(更详细)
域名的查询从右到左
DNS是一个树状结构:root、Top Level、 authorltative、Resource Record
dig +trace www.baidu.com 追踪dns流程
DNS查询类型:Itertive Query(递归查询)、Recursive Query(循环查询)
实际是:客户与本地DNS服务器用循环查询,本地DNS服务与其他DNS服务器用递归查询
资源记录,DNS服务器上DNS信息通过资源记录的格式进行保存
常用属性:NAME、CLASS、TYPE、RDATA
如:www IN A 192.168.1.1
资源记录类型
A IPv4地址、AAAA IPv6地址、MX 邮件记录、CNAME 别名、PTR 指针(逆向解析)、SRV 服务资源
DNS服务器类型
Primary DNS Server(Master)一个域的主服务器保存该域的zone配置文件,该域所有的配置、更改都在该服务器上进行
Seconday DNS Server(Slave)从服务器一般作为冗余负载使用,一个域的从服务器从该域的主服务器上抓取zone配置文件,从服务器不进行信息修改,所有的修改与主服务器同步
Caching only Server 缓存服务器不存在zone文件,用于负载均衡及加速访问使用
DNS服务器中,一个域通过一个zone文件保存
BIND(Berkeley Internet Name Domain)DNS服务器软件
安装BIND:yum install -y bind-chroot bind-utils
BIND配置文件保存在
/etc/name.conf -BIND服务主配置文件
/var/named/ -zone文件
后如果安装bind-chroot,BIND会被封装到有一个伪根目录内。配置文件变为/var/named/chroot/etc/named.conf
配置一个域的主服务器
1.在bind的主配置文件中添加该域的定义(主配置文件:/var/named/chroot/ect/named.conf)
如添加:
zone "linuxcast.net"{
type master;
file "linuxcast.net.zone";
};
2.在/var/named/chroot/var/named/中创建该域的zone文件
使用默认的named.localhost配置文件作为模板--cp named.localhost linuxcast.net.zone(在/var/named/)
3.编辑zone文件,添加需要的信息
添加资源记录。如:www IN A 192.168.1.1
4.启动bind服务器或是bind刷新配置
service named start、service named reload
将本机的dns配指向本机:/ect/resolv.conf: nameserver 127.0.0.1
5.使用host或dig命令检测域的信息是否正确
错误排查
named-chechconf /var/named/chroot/etc/named.conf
named-chechzone linuxcast.net /var/named/chroot/var/named/linuxcast.net.zone
FTP(File Transfer Protocol)标准端口:20[数据接口]、21[指令接口]
连接模式:
主动模式(active mode):服务端主动向客户端发起数据连接
被动模式:客户端主动向服务端发起数据连接,通常用在存在服务端与客户端间存在防火墙的情况下
FTP服务程序vsftp(Very Secure )
sftpd相关配置文件:
/etc/vsftpd/vsftpd.conf ? ? vsftpd主配置文件
/etc/vsftpd/ftpusers ? ? ? ?黑名单
/etc/vsftpd/user_list ? ? ? 控制名单(由配置文件控制器是白名单还是黑名单)
/var/ftp ftp共享目录
/var/ftp/xferlog 日志
vsftpd使用用户作为管理单位
正常用户(系统用户)
匿名用户(anonymous)
虚拟用户(ftp-only)
命令lftp登陆ftp,-u 可以指定用户
如:lftp 127.0.0.1
get 下载
put 上传
上传下载文件都在登陆时的目录
修改配置文件开启匿名用户上传,在/etc/vsftpd/vsftpd.conf中修改
anonymous_enable=YES 开启匿名用户
anon_upload_enable=YES 打开匿名用户上传功能
anon_mkdir_write_enable=YES 打开匿名用户创建文件夹功能
赋予匿名用户上传使用的文件夹以写权限
chmod 777 /var/ftp/pub/文件夹
NFS(Network File System)linux系统之间使用的文件共享协议,通常适用于局域网内共享
主流版本:NFSv2、NFSv3、NFSv4
NFS服务默认需要使用RPC服务,所以使用NFS服务必须保证系统rpc服务打开:
service rpcbind start
chkconfig rpcbind on
启动NFS
service nfs start
chkconfig nfs on
NFS使用5个端口,其中4个是动态的及rpc服务的端口,动态端口无法通过防火墙,需要配置NFS使用指定的静态端口
配置文件/etc/sysconfig/nfs,添加静态端口设置:
MOUNT_PORT="4001" 挂载使用端口
STATD_PORT="4002" 状态使用端口
LOCKD_TCPPORT="4003" TCP使用端口
LOCKD_UDPPORT="4004" UDP使用端口
NFS协议2049,RPC为111端口,才能正常使用NFS
NFS服务的共享配置文件/etc/exports
每个共享占用一行,格式:共享目录 允许的各户主机(选项)
如:/linuxcast-nfs 192.168.1.1(ro,async)
配置好共享后,使用以下命令启动:
service nfs start 或 exports -r
查看共享详细信息
exports -v
客户端可以通过mount命令挂载NFS共享:
mount -t nfs 192.168.1.1(NFS服务器):/linuxcast-nfs(共享路径) /mnt
常用NFS共享参数:
ro(只读)
rw(读写共享)
sync(所用操作返回前必须已经写入磁盘)
async(操作可以延迟写入磁盘)
wdelay(延迟写操作,等待更多的写操作一起执行)
no_wdelay(关闭写延迟,需要与sync同时使用)
root_squash(防止远程root用户使用root权限对共享进行访问)
no_root_squash(关闭root_aquash)
挂载使用-o指定挂载选项
启动时自动挂载,修改配置文件/etc/fstab
如:192.168.1.1:/linuxcast-nfs /mnt nfs default 0 0
SMB(Sever Message Block)协议是windows种使用的文件共享协议,linux通过samba服务实现
主要功能:
通过SMB协议进行文件共享
通过SMB协议进行打印共享
加入一个windows 2000/2003/2008域环境
通过windows 域环境进行认证
SMB协议有称CIFS(Common Internet File System)
安装samba:yum install -y samba
samba拥有三个服务:
smbd 提供问价及打印共享功能,使用139、445端口
nmbd 提供NetBIOS支持,使用137端口
winbindd 提供针对windows2000/2003/2008的用户及组信息的解析功能
windows客户端在浏览器中连接:
\\192.168.1.100
linux图形界面连接:
smb://192.168.1.100
linuxCLI连接:
smbclient//192.168.1.100/linuxcast-smb -U linuxcast
挂载smb共享:
mount -t cifs //192.168.1.100/linuxcast-smb /mnt -o username=linuxcast,password="linuxcast"
samba主配置文件
/etc/samba/smb.conf
作为独立服务器时,samba使用linux用户作为用户,但密码需要单独创建
samba安全模式
User-Level 默认安全模式,使用用户名、密码进行认证
Share-Level 只需要密码即可访问共享
配置文件分为三部分:
-[global] 定义全局性配置
-[homes] 定义对用户家目录的共享配置
-[printers] 定义打印机共享配置
global配置:
配置工作信息:
workgroup=linuxcast
server string=this is linuxcast workgroup
配置安全信息:
security=user
支持的安全模式:
-user 默认
-share 创建匿名共享时
-domain
-ads
-server
为通过smb协议访问家目录的用户创建samba密码
smbpasswd -a linuxcast[用户]
启动samba服务
service smb start
通过向/etc/samba/smb.conf添加配置创建独立共享
[linuxcast-share]
comment = This is a LinuxCast.net samba share
path = /linuxcast-share 共享路径
valid users = linuxcast nash_su 可用用户
public = no 是否为开放共享
browsable = yes 是否可浏览
writable = yes 是否可写
create mask = 0765 默认创建文件权限
创建匿名共享
[global]
security=share
common=******
path=/linuxcast-pub
read only=yes
guest only=yes
检查samba配置文件语法是否正确
testparm
查看有哪些共享
smbclient -L 192.168.1.100
web服务
web服务程序:IIS、Apache、Nginx、Lighttpd
web服务端与客户端通过http协议传输,http使用TCP协议,端口号80
HTTP方式:
GET 从服务器上获取一个资源
POST 向服务器提交数据(可能创建一个新的资源)
PUT 向服务器提交数据
DELETE 删除指定数据
HEAD 只请求网页的头部信息
状态码:(标示返回信息)
200 正常,请求成功
301 永久移动,一般用于域名重定向
304 未修改,一般用于缓存
401 禁止访问,未授权
403 禁止访问,通常代表认证通过,但没有访问权限
404 未找到资源
500 服务器内部错误
HTML形式的页面为静态页面
动态页面:在用户访问的时候基于不同的条件生成不同的HTML代码返回给用户浏览器
web服务器架构分为:web服务器、应用服务器、数据库
web服务器只通过http协议向外提供html、css的网页资源
应用服务器运行动态语言
数据库保存数据
Apache特点
动态的、预创建的进程
动态模块加载
虚拟主机
SSL主机
安装apache:
yum install -y httpd
启动apache:
service httpd start
默认使用80端口(http)和443端口(https)
主配置文件
/etc/httpd/conf/httpd.conf
模块配置文件:
/etc/httpd/conf.d
日志:
/var/log/httpd
默认跟目录 /var/www/html
主配置文件常用配置如下:
KeepAlive off TCP保活配置
MaxKeepAliveRequests 100 一个TCP连接允许的最大请求数
KeepAliveTimeout 15 一个TCP连接最长空闲时间
Listen 80 默认监听端口
LoadModule auth_basic_module modules/mod_auth_basic.so 模块加载
User apache apache服务所使用用户
Group apache apache服务所使用组
ServerAdmin root@linuxcast.net 管理员邮箱
DocumentRoot “/var/www/html” 网站根目录
DirectoryIndex index.html index.html.var 默认首页
配置文件语法检查
service httpd configtest
apachectl configtest
httpd -t
虚拟主机
默认apache的配置只提供一个网站服务,可以配置apache服务器为多个网站提供服务,称为虚拟主机
虚拟主机分为两种:
基于IP的虚拟主机
基于域名的虚拟主机
SSL的虚拟主机必须使用基于IP的虚拟主机
apache虚拟主机配置如下:
NameVirtualHost *:80 ?
<VirtualHost *:80>
ServerName www1.linuxcast.net(服务器名称)
ServerAdmin root@linuxcast.net(管理员邮箱)
DocumentRoot /var/www/linuxcast-1(根目录位置)
</VirtualHost>
<VirtualHost *:80>
ServerName www2.linuxcast.net
ServerAdmin root@linuxcast.net
DocumentRoot /var/www/linuxcast-2
</VirtualHost>?
必须确保apache用户对目录有权限
chown apache filename
用户认证:
1. 创建认证使用的用户名密码数据库:
htpasswd -cm /etc/httpd/.htpasswd(密码保存文件) linuxcast(用户)
2. 对指定目录打开认证功能:
<Directory /var/www/linuxcast-1>
AuthName “LinuxCast Auth”?
AuthType basic
AuthUserFile /etc/httpd/.htpasswd(密码文件)
Require valid-user
</Directory>
电子邮件
组件:
MUA(Mail User Agent) ? ? ? 邮件用户代理,用户通过MUA接收邮件。接收邮件所使用的邮件客户端,使用IMAP或POP3协议与服务器通信
MTA(Mail Transfer Agent) 通过SMTP发送、转发邮件,对SMTP的实现
MDA(Mail Deliver Agent) ? 将MTA接收到的邮件保存到磁盘或指定地方,通常会进行垃圾邮件及病毒扫描
MRA(Mail Receive Agent) 负责实现IMAP与POP3协议,与MUA进行交互
协议:
SMTP(Simple Mail Transfer Protocol) ? 传输发送邮件所使用的标准协议
IMAP(Internet Message Access Protocol) 接收邮件使用的标准协议之一
POP3(Post Office Protocol 3)? 接收邮件使用的标准协议之一
常用的MUA有:outlook、thunderbird、Mac Mail、mutt
常用的MTA服务有:sendmail、postfix
常用的MDA有:procmail、dropmail
常用的MRA有:dovecot
linux邮件默认保存目录:/var/spool/mail/username
postfix邮件服务器
rpm -q postfix 检查是否安装postfix
配置文件:
/etc/postfix/
启动:
sercice postfix start
chrconfig postfix on
默认使用TCP的25号端口(SMTP)
chkconfig --list|grep postfix
发送邮件:
mail -vs “test mail from linuxcast(标题)” root@training.linuxcast.net(本机名)
接收邮件
mail
一般不直接修改postfix配置文件,而是通过postconf命令进行配置:
postconf -d ? ?显示缺省配置?
postconf -n ? ?显示当前配置
postconf -e ? 配置选项=配置参数 ? 修改一个配置
postconf -e "inet_interfaces=all" ? ? 配置postfix监听所有接口
postconf -e?"myhostname=training.linuxcast.net" ? ?配置本机主机名
postconf -e?"mydomain=linuxcast.net" ? ? 配置postfix所服务的域的域名
postconf -e?"mydestnation=$myhostname,$mydomain" ? 配置postfix允许接收的邮件的目标地址
postconf -e?"myorigin=$mydomain" ? ? 配置地址伪装(将发出邮件的发件人伪装为用户名@域名的形式)
postconf -e?"masquerade_exceptions=root" ? 配置哪些用户不进行地址伪装
postconf -e?"mynetworks=127.0.0.0/8" ? ? 配置那些网络地址可以不进行认证就可转发邮件
查看当前邮件发送队列:
postqueue -p
刷新当前邮件发送队列:
postqueue -f
邮件服务默认日志为:
/var/log/maillog