第十一周作业

LAMP的环境原理

LAMP:是由Linux、Apache(httpd)、MySQL/MariaDB和PHP/Perl/Python这些开源软件所搭建起来的web应用平台。平台主机可以是独立的也可以在一台主机上。

image

客户端访问web服务,web服务器遵循二八法则直接将大部分静态访问资源反馈给客户,如果是动态资源则通过FastCGI协议调用php程序获取数据库的数据处理成为静态资源在返回给客户。

web服务器 脚本 数据库
Httpd/Nginx php-fpm Mysql
  jsp,tomcat  
  Python,Django  
  Ruby,ror  

使用一台主机搭建 wordpress博客

wordpress博客是一个动态资源站点,当客户端访问时需要通过脚本服务器的php-fpm脚本来进行数据处理实现用户与站点的交互。

服务器环境要求:
  • PHP 5.2.4或更新版本
  • MySQL 5.0或更新版本
  • Apache mod_rewrite模块(可选,用于支持“固定链接”和“站点网络”功能)
  • 关闭selinux,
  • 跳过域名解析,修改/etc/my.cnf.d/server.cnf添加 skip-name-resolve=ON
1、安装httpd启动web服务启用监听80端口,安装脚本php和msyql数据库

2、检查语法错误,并启用服务, ,172.16.1.% ;

3、创建数据库并授权admin用户有权限访问数据库,创建格式:GRANT ALL ON wordpress.* 'user'@'IP' IDENTIFIED BY 'password' , IP域限制例如172.16.%.%

4、登录测试是否能够正常启动

5、配置安装 wordpress

6、浏览器打开进行安装配置即可
  • 登录主页地址:192.168.1.2/blog
  • 管理主页后台地址:192.168.1.2/blog/wp-login.php

MDL 数据操纵语言

Data Manipulation Language,数据库操作语言包括:INSERT、SELECT、UPDATE、DELETE分别是插入、查询、更新、删除。

语法结构:

WHERE指令用来过滤查询的结果数据范围,如果不加WHERE指令则表示访问全部的数据。

INSERT INTO:

INSERT是将数据插入到数据库对象中的指令,可以插入数据的数据库对象有数据表以及可更新查看表两种。

示例:插入

SELECT

SELECT 是sql数据操纵语言DML中用于查询表格内字段数据的指令,可搭配条件限制的子句(例如:WHERE)或排序顺序的字句(如:ORDER)来获取查询结果。

    (1) SELECT * FROM tbl_name,tbl_name_2;       
  1.   返回指定表的所有数据:慎用;

    (2) SELECT col1,col2,…FROM tbl_name;
  1.   显示时,字段可以显示为别名;

    (3) SELECT col1,…FROM tbl_name WHERE clause;
 
  1.         WHERE clause:用于指明挑选条件;
  2.         col_name z操作符 value:
  3.          age > 30;
操作符(1): mysql operators
  • >:大于
  • <:小于
  • >=:大于等于
  • <=:小于等于
  • ==:等于
  • !=:不等于
组合条件:
  • and:与
  • or:  或
  • not:非
 操作符(2):

 

  •             BETWEEN … AND …
  •             LIKE 'PATTERN'
通配符:
  •                     %:任意长度的任意字符:
  •                     _:任意单位字符;
  •             RLIKE 'PATTENRN'
正则表达式对字符串做模式匹配;
  •             IS NULL
  •             IS NOT NULL
SELECT col1,… FROM tbl_name [WHERE clause] ORDER BY col_name,col_name2,… [ASC | DESC];
  •             ASC:升序;
  •             DESC:降序;
 分组:
  •         GROUP BY, 为了聚合:
  •             count(),sum(),avg(),max(),min()
  •         HAVING:对聚合的结做条件过滤;
示例:1、显示表中所有数据, 

示例:2、以别名的形式显示

示例:3、操作符 LIKE 'PATTERN' 数值条件。

UPDATE

UPDATE 根据指定的条件位置,将匹配到的数据表中的数据进行更新

示例: 更新第3条年龄数据

DELETE

DELETE 删除数据库中指定数据对象的指令

示例:删除第三行数据

示例:删除整张表

ftp

ftp是一种文件传输协议,是基于C/S架构模型来实现服务器端与客户端文件共享访问,客户端与服务器双方确认连接后会建立一个开启一个临时端口专门用于传输命令的通道,用来发送上传、下载、删除等命令,被称为命令连接,数据连接则是用来传输数据的有时会有多个,连接有两种模式:

  1. 主动连接模式:客户端开启一个大于1024的端口【A】向服务器21号端口发出请求,然后临时开放一个端口【A+1】处于监听状态并向服务器发送通知服务器客户端处于监听的端口号【A+1】,服务器接收到后会通过20号端口(通常未被占用的情况)连接客户端端口【A+1】进行数据的传输,
  2. 被动连接模式:客户端开启一个大于1024的端口【A】向服务器21号端口发送请求,然后开放一个端口【A+1】并向服务器端发送PASV命令,通知服务器自己处于被动模式,服务器接收到后会开发一个大于1024的端口【B】处于临时监听状态,并将端口号【B】信息发送给客户端,客户端接受进行后会通过【A+1】连接服务器的端口【B】进行数据传输。

ftp的安全认证机制:PAM

插入式认证模块,通过给每个用户设定独立的访问权限,来达到vsftpd的安全访问。

vsftpd 的用户类型:

  • 匿名用户:anonymous –> ftp./var/fpt
  • 系统用户:至少禁止系统用户访问ftp服务,/etc/vsftpd/ftpusers, PAM(/etc/pam.d/vsftpd)
  • 虚拟用户:非系统用户账号为登录操作系统的用户账号。

注意:用户通过vsftpd服务访问到默认路径,是可以访问自己的home目录,禁止修改home目录的权限,禁锢用户在家目录

配置文件:

/etc/vsftpd/vsftpd.conf

格式:指令+数据,directive必须位于行首

用户的配置指令信息:

匿名用户:
  • anonymous_enable=YES 开启匿名用户
  • anon_upload_enable=YES 匿名用户是否具有上传权限
  • anon_mkdir_write_enable=YES 匿名用户是否可以新建
  • anon_other_write_enable=YES 匿名用户是否可具有删除权限
  • anon_umask=077 匿名用户是否具有上传下在权限
系统用户:
  • local_enable=YES 是否允许本地用户访问ftp
  • write_enable=YES 是否允许本地用户具有(读、写、删)权限。
  • local_umask=022  定义默认问价掩码或遮罩码
  • chroot_local_user=YES 禁锢用户在家目录
  • chroot_list_enable=YES 是否启用名单现限制
  • chroot_list_file=/etc/vsftpd/chroot_list 禁锢所有列表内本地用户位于家目录==(必须去掉对home目录的写权限)
传输日志:
  • xferlog_enable=YES 是否开启传输日志
  • xferlog_file=/var/log/xferlog
  • xferlog_std_format=YES
守护进程的类型:
  • standalona:独立守护进程,有服务进程自行监听套接字,并接收用户访问请求;
  • transient:瞬间守护进程,由受托管方代为监听套接字,服务进程没有访问请求时自动不启动,当托管方收到访问请求时,才启动服务进程。
  1. CentOS 6 :xinetd独立守护进程/etc/xinetd.d/;
  2. CentOS 7: 由systemd代为监听;

控制可登录vsftpd服务的用列表:

  • userlist_enable=YES 是否使用名单来控制用户。/etc/vsftpd/user_list文件来控制可登录用户
  • userlist_deny= YES,[黑名单,禁止访问用户列表],NO,[白名单,允许访问用户列表]
上传下载数率:
  • max_clients=2000
  • max_per_ip=50
虚拟用户:

可存储在MySQL。Redis等关系型数据库中…

vsftpd:认证功能托管给pam模块:

基于和中存储服务来储用户信息,以及存储服务的驱动要靠pam实现。

需要的组件:
  • mariadb-devel
  • pam-devel
示例:

1、过程中需要对pam-mysql进行编译安装所以要提前安装好编译环境。

2、首先安装需要的协议组件

3、创建目录pam-mysql,

4、下载pam-mysql的编译安装包,解压并且进行编译安装

5、查看文件夹下是否有pam_mysql.so 存在这表示编译安装成功

6、编辑pam做mysql认证并启动服务

7、创建mysql数据库用户vsftpd并且允许通过所有网络访问数据库,并且新建一个名为vsftpd的数据库,建立表格用来存储vsftpd的管理登录管理账户。

8、创建系统映射用户

9、登录测试

tom 

jerry

 

简述NFS服务原理及配置

NFS:

网络文件系统:是FreeBSD支持的文件系统之一,允许计算机通过TCP网络共享资源,也可讲共享资源作为挂载使用。默认监听端口是:2049,实际生成环境中尽量修改为其他端口。

辅助类的服务:rpc,portmapper

  • rpc.mountd:认证;半随机端口,CentSO6有固定端口,先找rpc.server获取端口, 再通过rpc.mountd,获取令牌再去访问nfs。
  • rpc.lockd:加锁;保证文件在同一时刻只有一方进行写数据,保证数据的完整性,端口是随机的。
  • rpc.statd:状态;保存当前状态,以恢复或撤销为完成状态,端口是随机的。

rpc 全称 [remote procedure call]远程过程调用,这是一种通过网络从远程计算机程序上请求服务而不需要了解底层网络技术的协议

nfs-utils:

为NFS内核服务提供了高性能安全的守护进程。

配置目录:
  • /etc/exprots 主配置目录
  • /etc/exports.d/* 自定义配置目录
 书写格式:

/PATH/TO/SOME_DIR clients1(export_options,…) clents2(export_options,…)注意括号前没有空格

客户端:
  • single host:ipv4、ipv6,FQDN;
  • network:address/netmask, 支持长短格式的掩码;
  • wildcards:主机明通配,例如:*.mageud.com;
  • netgroups:NIS域内的主机组;@group_name;
  • anonymous;使用*同配置所有主机;
一般选项:
  • ro:只读;
  • rw;读写;
  • sync:同步;
  • async:异步;
  • secure:客户端端口小于1024,否者就要使用insecure选项
用户映射ID:
  • root_squash:压缩root用户,一般指将其映射为nfsnobody;
  • no_root_squash:不压缩root用户
  • all_squash:压缩所有用户
  • anonuid and anongid:将压缩用户映射为此处的用户;
NFS客户端:

mount -t nfs servername:/PATH/TO/SHARE /PATH/TO/MOUNT_POINT[-rvVwfnsh ] [-o options ];

showmount

命令显示NFS服务器的安排信息

  1. -e NFS_SERVER_IP:查看指定的nfs server上导出的所有文件系统;
  2. -a:在nfs server上查看nfs服务器的所有客户端列表
exprotfs:

-r:重新导出;

-a:所有文件系统;

-v:详细信息

-u:取消导出文件系统

示例:
环境配置:

nfs主机:192.168.124.3

测试机器:192.168.124.5

系统版本:CentOS 7

1、服务器安装nfs-utils

6、账户同步所拥有的权限也不同

7、用户映射:

8、管理员用户

简述samba服务,并实现samba配置

samba 协议是Linux和Unix系统实现Windows SMB/CIFS 文件服务器文件和但因资源的共享,SMB全称(Server Message Block)是一个协议名,他能被用于web连接,客户端与服务器之间的信息沟通。

samba功能:
  • 文件共享
  • 打印服务共享
  • NetBIOS协议
联机的两种模式:
  1. peer/peer(对等模式 workgrou model) 
  2. domain model (主控模式)
程序环境:
  • samba
  • samba-common
  • samba-libs

主配置文件:/etc/smaba/smb.conf

子配置文件:/etc/samba/*.smb.conf

主程序及端口:
  1. nmbd_NetBIOS name server NetBIOS 名称解析服务器 UDP 137、138;
  2. smbd:SMB/CIFS service 实现主机间共享:TCP 139、445;
系统服务:
  1. smb.service
  2. nmb.service

主配置文件的配置段:

  • global:全局配置

     

     

    • workgroup=SAMBA用户组
    • security=user 使用samba服务自我账号和密码认证
  • homes:定义samba用户定义能否访问自己的家目录
  • printers:定义打印服务
  • print$:其他
常用配置信息:
  • comment:注释信息
  • path:映射的共享目录路径;
  • write list:可访问的用户的列表

     

     

    • 用户名/组
    • @用户名/组
    • +用户名/组
  • force group:
  • valid users:访问白名单;
  • invalid users:访问黑名单
  • browswable:是否可以查看
  • inherit acls:
  • guest ok:是否允许来宾账号访问;
  • public:是否公开所有用户;
  • writable:是否可写
  • read only:是否可读
samba用户管理:

smbpasswd [options} USERNAME

  1. -a:添加
  2. -x:删除
  3. -d:禁用
  4. -e:启用

options

  1. -L:列出samba服务中的所有用户
  2. –a,create:添加用户为samba用户
  3. -u:要管理的用户
  4. -x:删除用户
  5. -t:从标准输出接收字符串作为用户密码,使用空提示符号,然后输入两遍密码;
示例:

环境配置:关闭防火墙关系selinux

系统版本:CentOS 7

1、创建一个共享目录/data/up,用CentOS、gentoo为一个用户组user,拥有读、写权限、其他用户不可见

 

子授权文件

  1. include 只能访问子配置设置的共享文件,不能访问samba主配置文件的文件。
  2. config file 既能访问子配置文件也能访问samba的主配置文件。
重启服务客户端测试

 [root@localhost data]# systemctl restart nmb.service smb.service

原创文章,作者:N28_刚好遇到小熊猫,如若转载,请注明出处:http://www.178linux.com/124657

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

联系我们

400-080-6560

在线咨询

工作时间:周一至周五,9:30-18:30,节假日同时也值班

QR code