xml地图|网站地图|网站标签 [设为首页] [加入收藏]
自动化运维工具Ansible,FTP实验报告
分类:操作系统

nginx的安装

官方:

Fedora-EPEL:

FTP实验报告

制作人:全心全意

准备工作:

linux1:192.168.100.4

关闭防火墙、selinux机制

配置yum源

匿名访问

1.安装vsftpd服务和客户端

[root@localhost ~]# yum -y install vsftpd

2.创建FTP目录

[root@localhost ~]# mkdir /var/ftp/test{1..3}

[root@localhost ~]# ls /var/ftp/

pub  test1 test2  test3

3.FTP目录755权限,属主ftp

[root@localhost ~]# chown ftp /var/ftp/test1

[root@localhost ~]# chmod 755 /var/ftp/test1

4.配置匿名访问配置文件

[root@localhost ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak

[root@localhost ~]# cat /etc/vsftpd/vsftpd.conf.bak | grep -v "^#" > /etc/vsftpd/vsftpd.conf

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf

     1 #匿名用户

     2 anonymous_enable=YES

     3 anon_umask=022

     4 anon_root=/var/ftp

     5 anon_upload_enable=YES

     6 anon_mkdir_write_enable=YES

     7 anon_other_write_enable=YES

     8 anon_max_rate=0

     9 #本地用户

    10 local_enable=NO

    11 #全局配置

    12 listen=YES

    13 listen_address=192.168.100.4

    14 listen_port=21

    15 write_enable=YES

    16 download_enable=YES

    17 dirmessage_enable=YES

    18 xferlog_enable=YES

    19 xferlog_std_format=YES

    20 connect_from_port_20=YES

    21 pasv_enable=YES

    22 pasv_max_port=24600

    23 pasv_min_port=24500

    24 pam_service_name=vsftpd

    25 userlist_enable=YES

    26 userlist_deny=YES

    27 max_clients=0

    28 max_per_ip=0

    29 tcp_wrappers=YES

4.启动vsftpd服务

[root@localhost ~]#/etc/rc.d/init.d/vsftpd start

为vsftpd 启动vsftpd:                                    [确定]

5.测试匿名访问

[root@localhost ~]# ftp 192.168.100.4

Name (192.168.100.4:root):ftp

Password:

ftp> cd test1

ftp> mkdir 11

ftp> dir

drwxr-xr-x    2 14      50           4096 Aug 25 06:51 11

ftp> rename 11 22

ftp> dir

drwxr-xr-x    2 14      50           4096 Aug 25 06:51 22

ftp> rmdir 22

ftp> dir

ftp> exit

  

==============================================

本地用户访问

1.修改为本地用户访问配置文件

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf

     1 #匿名用户

     2 anonymous_enable=NO

     3 anon_umask=022

     4 anon_root=/var/ftp

     5 anon_upload_enable=YES

     6 anon_mkdir_write_enable=YES

     7 anon_other_write_enable=YES

     8 anon_max_rate=0

     9

    10 #本地用户

    11 local_enable=YES

    12 local_umask=077

    13 chroot_local_user=YES

    14

    15 #全局配置

    16listen=YES

    17 listen_address=192.168.100.4

    18 listen_port=21

    19 write_enable=YES

    20 download_enable=NO

    21 dirmessage_enable=YES

    22 xferlog_enable=YES

    23 xferlog_std_format=YES

    24 connect_from_port_20=YES

    25 pasv_enable=YES

    26 pasv_max_port=24600

    27 pasv_min_port=24500

    28 pam_service_name=vsftpd

    29 userlist_enable=YES

    30 userlist_deny=YES

    31 max_clients=0

    32 max_per_ip=0

    33 tcp_wrappers=YES

2.创建用户和密码

[root@localhost ~]# useradd kaixin -s /sbin/nologin

[root@localhost ~]# passwd kaixin

更改用户kaixin 的密码。

新的密码:

无效的密码:WAY 过短

无效的密码:过于简单

重新输入新的密码:

passwd:所有的身份验证令牌已经成功更新。

3.重启vsftpd服务

[root@localhost ~]# service vsftpd restart

关闭vsftpd:                                              [确定]

为vsftpd 启动vsftpd:                                    [确定]

4.测试

[root@localhost ~]# ftp 192.168.100.4

Name (192.168.100.4:root):kaixin

Password:

ftp> ls

ftp> mkdir 111

ftp> dir

drwx------    2 500     500          4096 Aug 25 09:45 111

ftp> put install.log.syslog

ftp> dir

drwx------    2 500     500          4096 Aug 25 09:45 111

-rw-------    1 500     500         10033 Aug 25 09:45install.log.syslog

ftp> exit

[root@localhost ~]# cd ~kaixin

[root@localhost kaixin]# ls

111  install.log.syslog

======================================

虚拟用户访问

1.安装db4-utils

[root@localhost ~]# yum -y install db4-utils

2.创建文本格式的用户名、密码列表

[root@localhost ~]# vi /etc/vsftpd/vusers.list

aaa

123

bbb

123

3.创建Berkeley DB格式的数据库文件

[root@localhost ~]# cd /etc/vsftpd/

[root@localhost vsftpd]#db_load -T -t hash -f vusers.list vusers.db

[root@localhost vsftpd]# file vusers.db

vusers.db: Berkeley DB (Hash,version 9, native byte-order)

[root@localhost vsftpd]# cd

(-f:指定数据源文件,-T:允许非Berkeley DB的应用程序使用从文本格式转换的DB数据文件,-t hash:指定读取数据文件的基本方法)


4.添加虚拟用户的映射账号、创建FTP根目录

[root@localhost ~]# useradd -d /var/ftproot -s /sbin/nologin virtual

[root@localhost ~]# chmod 755 /var/ftproot/

5.为虚拟用户建立PAM认证文件

[root@localhost ~]# vi /etc/pam.d/vsftpd.vu

#%PAM-1.0

auth    required        pam_userdb.so   db=/etc/vsftpd/vusers

account required        pam_userdb.so   db=/etc/vsftpd/vusers

6.修改vsftpd配置,添加虚拟用户支持,注释匿名访问权限

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf

     1 #匿名用户

     2 anonymous_enable=NO

     3 anon_umask=022

     4 anon_root=/var/ftp

     5 #anon_upload_enable=YES

     6 #anon_mkdir_write_enable=YES

     7 #anon_other_write_enable=YES

     8 #anon_max_rate=0

     9

    10 #本地用户

    11 local_enable=YES

    12 local_umask=077

    13 chroot_local_user=YES

    14

    15 #全局配置

    16 listen=YES

    17 listen_address=192.168.100.4

    18 listen_port=21

    19 write_enable=YES

    20 download_enable=YES

    21 dirmessage_enable=YES

    22 xferlog_enable=YES

    23 xferlog_std_format=YES

    24 connect_from_port_20=YES

    25 pasv_enable=YES

    26 pasv_max_port=24600

    27 pasv_min_port=24500

    28 pam_service_name=vsftpd.vu

    29 userlist_enable=YES

    30 userlist_deny=YES

    31 max_clients=0

    32 max_per_ip=0

    33 tcp_wrappers=YES

    34

    35 #虚拟用户

    36 guest_enable=YES

    37 guest_username=virtual

7.为不同的虚拟用户建立独立的配置文件

[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf

          38 user_config_dir=/etc/vsftpd/vusers_dir       //添加本行

[root@localhost ~]# mkdir /etc/vsftpd/vusers_dir

[root@localhost ~]# cd /etc/vsftpd/vusers_dir/

[root@localhost vusers_dir]#vi aaa

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

[root@localhost vusers_dir]#touch bbb

8.重载vsftpd服务

[root@localhost vusers_dir]#service vsftpd reload

关闭vsftpd:                                              [确定]

为vsftpd 启动vsftpd:                                    [确定]

9.测试

[root@localhost ~]# ftp 192.168.100.4

Name (192.168.100.4:root):aaa

Password:

ftp> mkdir 111

ftp> dir

drwxr-xr-x    2 501     501          4096 Aug 25 10:26 111

ftp> cd 111

ftp> put install.log.syslog

ftp> renameinstall.log.syslog  install.log

ftp> dir

-rw-r--r--    1 501     501         10033 Aug 25 10:27install.log

ftp> get install.log

10033 bytes received in3.2e-05 secs (313531.26 Kbytes/sec)

ftp> exit

221 Goodbye.

[root@localhost ~]# ftp192.168.100.4

Name (192.168.100.4:root):bbb

Password:

ftp> dir

drwxr-xr-x    2 501     501          4096 Aug 25 10:27 111

ftp> cd 111

ftp> dir

-rw-r--r--    1 501     501         10033 Aug 25 10:27install.log

ftp> put install.log

550 Permission denied.

ftp> rename install.log 22

550 Permission denied.

ftp> get install.log

10033 bytes received in5.2e-05 secs (192942.30 Kbytes/sec)

ftp> exit

221 Goodbye.

[root@localhost ~]# ftp 192.168.100.4

Name (192.168.100.4:root):kaixin

Password:

530 Login incorrect.

测试结果:

aaa:可登陆,能正常浏览,可上传、下载、修改文件

bbb:可登陆,能正常浏览,可下载,不可上传、修改文件

系统用户:不可登陆

一、简介

编译安装:

  1 yum install pcre-devel openssl-devel zlib-devel //准备好服务相关依赖包
  2 
  3 useradd -r nginx  //准备好服务账户
  4 
  5 ./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf --
  6 
  7 error-log-path=/var/log/nginx/error.log --http-logpath=/var/log/nginx/access.log
  8 
  9 --pid-path=/var/run/nginx.pid --lockpath=/var/run/nginx.lock
 10 
 11 --user=nginx --group=nginx --with-http_ssl_module
 12 
 13 --with-http_v2_module --with-http_dav_module --withhttp_stub_status_module
 14 
 15 --with-threads --with-file-aio
 16 
 17 make && make install //执行安装

当下有许多的运维自动化工具( 配置管理 ),例如:Ansible、SaltStack、Puppet、Fabric 等。

编译安装nginx选项:

  1  --prefix=/etc/nginx //安装路径
  2 
  3  --sbin-path=/usr/sbin/nginx //指明nginx程序文件安装路径
  4 
  5  --conf-path=/etc/nginx/nginx.conf //主配置文件安装位置
  6 
  7  --error-log-path=/var/log/nginx/error.log //错误日志文件安装位置
  8 
  9  --http-log-path=/var/log/nginx/access.log //访问日志文件安装位置
 10 
 11  --pid-path=/var/run/nginx.pid //指明pid文件安装位置
 12 
 13  --lock-path=/var/run/nginx.lock //锁文件安装位置
 14 
 15  --http-client-body-temp-path=/var/cache/nginx/client_temp //客户端body部分的临时文件存放路径,服务器允许客户端使用put方法提交大数据时,临时存放的磁盘路径
 16 
 17   --http-proxy-temp-path=/var/cache/nginx/proxy_temp //作为代理服务器,服务器响应报文的临时文件存放路径
 18 
 19   --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp //作为fastcgi代理服务器,服务器响应报文的临时文件存放路径
 20 
 21   --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp //作为uwsgi代理服务器,服务器响应报文的临时文件存放路径
 22 
 23   --http-scgi-temp-path=/var/cache/nginx/scgi_temp //作为scgi反代服务器,服务器响应报文的临时文件存放路径
 24 
 25   --user=nginx //指明以那个身份运行worker进程,主控master进程一般由root运行
 26 
 27   --group=nginx
 28 
 29   --with-http_ssl_module //表示把指定模块编译进来

Ansible 一种集成 IT 系统的配置管理、应用部署、执行特定任务的开源平台,是 AnsibleWorks 公司名下的项目,该公司由 Cobbler 及 Func 的作者于 2012 年创建成立。

Ansible 基于 Python 语言实现,由 Paramiko 和 PyYAML 两个关键模块构建。

二、特性

部署简单,只需在主控端部署 Ansible 环境,被控端无需做任何操作。

支持Linux/UNIX及windows环境

默认使用 SSH(Secure Shell)协议对设备进行管理,用它来配置思科路由也非常方便。

主从集中化管理。
配置简单、功能强大、扩展性强。
支持 API 及自定义模块,可通过 Python 轻松扩展。
通过 Playbooks 来定制强大的配置、状态管理。
对云计算平台、大数据都有很好的支持。
提供一个功能强大、操作性强的 Web 管理界面和 REST API 接口 ---- AWX 平台。

三、总体架构

 

图片 1

四、执行过程

图片 2

五、Ansible 与 SaltStack对比

>> 最大的区别是 Ansible 无需在被监控主机部署任何客户端代理,默认通过 SSH 通道进行远程命令执行或下发配置。
>> 相同点是都具备功能强大、灵活的系统管理、状态配置,都使用 YAML 格式来描述配置,两者都提供丰富的模板及 API,对云计算平台、大数据都有很好的支持。

Ansible在github上地址:

 

Ansible安装部署与配置

       角色              主机名                  IP                                组名             

       控制端           hd01                     192.168.1.11                 ——             

       被控端           hd02                     192.168.1.12                 webservers   

       被控端           hd03                     192.168.1.13                 webservers   

 

Ansible安装

安装可使用源码编译安装,也可以更新yum源后使用yum安装

 

yum 安装:

配置源(centos6)

yum install -y

换163的源

wget      

 mv CentOS6-Base-163.repo /etc/yum.repos.d/

 yum clean all

 

CentOS6-Base-163.repo主要是为了安装:PyYAML

配置源(centos7)
rpm -iUvh
下载配置文件(centos7)
wget          CentOS7-Base-163.repo主要是为了安装:PyYAML
mv CentOS7-Base-163.repo /etc/yum.repos.d/

yum clean all

 

安装ansible

yum -y install ansible

查看ansible 版本

[root@hd01 ~]# ansible --version

ansible 2.5.3

  config file = /etc/ansible/ansible.cfg

  configured module search path = [u'/usr/share/my_modules']

  ansible python module location = /usr/lib/python2.6/site-packages/ansible

  executable location = /usr/bin/ansible

  python version = 2.6.6 (r266:84292, Aug 18 2016, 15:13:37) [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)]

注:yum装ansible      随着时间的推移,ansible版本会是最新版的。

Ansible通过定义好的主机与组规则(Inventory)对匹配的目标主机进行远程操作,配置文件默认是/etc/ansible/hosts

定义Host Inventory

添加组名及允许执行命令的主机

图片 3

webservers 是组名,下面的是IP也可以使用域名、别名标识。

各主机SSH互信

[root@hd01 ~]# ssh-keygen -t rsa   #创建公钥与私钥

图片 4

 

一直回车就OK

将公钥传给webservers组中的主机

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.12

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.13

图片 5

 

 

测试主机免密 连通性:

[root@hd01 ~]# ansible webservers -m ping

#-m 使用ping模块  -vvv 可以查看详细的执行过程

图片 6

 

OK

提示:

使用Linux普通用户账户进行连接并使用sudo命令实现root权限,格式为:

ansible webservers -m ping -u ansible -sudo

当没有做免密码访问时用 ansible webservers -m ping -k

然后输入密码 操作

 

关于定义主机与组

在/etc/ansible/hosts中主机可以用域名、IP、别名进行标识。

/etc/ansible/hosts  中组成员主机名称支持正则描述   组成员主机IP支持正则描述

举例说明 格式:

[webservers]                #组名

alpha.example.org    #域名对应192.168.1.100     

beta.example.org     #域名对应192.168.1.110     

192.168.1.100               #IP

192.168.1.110               #IP

 

mail.example.com

192.168.1.90:2135         #定义一个SSH服务端口为:2135的主机  

 

组成员主机名称支持正则描述,举例:

[webservers]

www.[01:50].example.com

[databases]

db-[a:f].example.com

 

定义主机变量

主机可以指定变量,以便后面供Playbook配置使用,比如定义主机host1及host2上apache参数http_port及maxRequestsPerChild,目的是让两台主机产生Apache配置文件httpd.conf差异化,格式:

[atlanta]

host1 http_port=80 maxRequestsPerChild=808

host2 http_port=303 maxRequestsPerChild=909

定义组变量

组变量的作用域是覆盖所有成员,通过定义一个新块,块名由组名+”:vars”组成

格式:

[atlanta]

host1

host2

[atlanta:vars]

ntp_server=ntp. atlanta.example.com

proxy=proxy.atlanta.example.com

 

 

匹配目标

格式:ansible <目标主机或组> -m <模块名字> -a <模块参数>

重启webservers组所有Apache服务

[root@hd01 ~]# ansible webservers -m service -a "name=httpd state=restarted"

 

匹配目标主机规则表

本文由澳门新葡亰手机版发布于操作系统,转载请注明出处:自动化运维工具Ansible,FTP实验报告

上一篇:配合插件url,同步非阻塞 下一篇:11882漏洞利用,Msf利用复现
猜你喜欢
热门排行
精彩图文