meigea / kali-penetration-testing

个人kali渗透测试的相关笔记
5 stars 2 forks source link

Vagrant教程2 #27

Open meigea opened 4 years ago

meigea commented 4 years ago

安装vagrant

vagrant官网:https://www.vagrantup.com/

安装vagrant,直接下载以下软件默认下一步安装即可:

virtualbox及vagrant可能下载速度较慢,如果本地有docker环境,可以从dockerhub里获取这2个安装包:

docker run -itd --name vagrant willdockerhub/dload:vagrant sleep 10000
docker cp vagrant:/vagrant/ ./
docker rm -f vagrant

在D盘根目录鼠标右键,选择git bash here,建立目录:

mkdir virtualbox
mkdir vagrant
mkdir vagrant/box

由于虚拟机占用磁盘空间较大,所以这里统一把虚拟机相关文件放在D盘。

打开virtualbox修改虚拟机保存路径,选择菜单栏,点击管理--全局设定--默认虚拟机电脑位置,改为D:\virtualbox.

下载vagrant box

vagrant官方镜像:https://vagrantcloud.com/boxes/search

vagrant第三方仓库:http://www.vagrantbox.es/

centos官方镜像仓库:http://cloud.centos.org/centos/7/vagrant/x86_64/images/

ubuntu官方镜像仓库:https://cloud-images.ubuntu.com/disco/current/

选择以下2个镜像下载后保存到vagrant/box目录下:

http://cloud.centos.org/centos/7/vagrant/x86_64/images/CentOS-7.box

https://cloud-images.ubuntu.com/disco/current/disco-server-cloudimg-amd64-vagrant.box

如果本地有docker环境,可以从dockerhub里获取这2个box,然后保存到vagrant-box目录下

docker run -itd --name centos willdockerhub/dload:centos sleep 10000
docker run -itd --name ubuntu willdockerhub/dload:ubuntu1910 sleep 10000
docker cp centos:/vagrant/ ./
docker cp ubuntu:/vagrant/ ./
docker rm -f centos ubuntu

把下载的box上传到box目录下,然后添加box到vagrant,box名称自定义:

cd vagrant/box
vagrant box add centos7 CentOS-7.box
vagrant box add ubuntu1910 eoan-server-cloudimg-amd64-vagrant.box

#查看添加的box
$ vagrant box list
centos7      (virtualbox, 0)
ubuntu1910   (virtualbox, 0)

命令创建虚拟机

在vagrant目录下创建虚拟机目录,并使用添加的box启动虚拟机

#创建虚拟机环境目录
cd d:/vagrant/
mkdir centos7-test && cd centos7-test

#初始化虚拟机,指定初始化使用的box,此时生成Vagrantfile文件,仅定义了box参数
vagrant init centos7

#启动虚拟机,此时当前目录生成.vagrant/目录,打开virtualbox可以看到新创建虚拟机已经处于运行状态
vagrant up

#查看虚拟机运行状态
vagrant status

登录虚拟机

#ssh登录虚拟机
$ vagrant ssh

#查看系统版本
[vagrant@localhost ~]$ cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

#查看内核版本
[vagrant@localhost ~]$ uname -sr
Linux 3.10.0-957.27.2.el7.x86_64

#查看虚拟机IP,该IP为NAT网络,可以访问互联网,但宿主机无法与该IP通信,需要配置端口映射
[vagrant@localhost ~]$ ip a

允许root远程登录并配置root密码

#切换到root用户
sudo -i

#修改ssh配置
sed -i 's/^PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
systemctl reload sshd

#为root用户配置密码
echo "root:vagrant" | sudo chpasswd >/dev/null 2>&1

然后可以使用ssh终端工具(Putty/SecureCRT)连接主机127.0.0.1的2222端口,使用root用户远程登录到虚拟机。

vagrantfile创建虚拟机

创建虚拟机保存目录

#创建虚拟机目录
cd d:/vagrant/
mkdir centos7-test1 && cd centos7-test1

创建vagrantfile

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "centos7" 
  config.vm.network "private_network", ip: "192.168.33.10"
  config.vm.provider "virtualbox" do |vb|
    vb.name = "centos7"
    vb.memory = 2048
    vb.cpus = 1
  end
  config.vm.provision "shell", path: "bootstrap.sh"
end

配置说明

创建初始化脚本bootstrap.sh

#!/bin/bash

# Install aliyun repo
echo ">>> Install aliyun repo"
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo >/dev/null 2>&1

# Install desired packages
echo ">>> Install desired packages"
yum install -y -q vim wget net-tools epel-release >/dev/null 2>&1

# Update the system
# echo ">>> Update the system"
#yum update -y >/dev/null 2>&1

# Config ssh connection
echo ">>> Config ssh connection"
sed -i 's/^PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
systemctl reload sshd
echo "root:vagrant" | sudo chpasswd

# Disable SELinux and firewalld
echo ">>> Disable SELinux and firewalld"
setenforce 0
sed -i --follow-symlinks 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux
systemctl disable --now firewalld >/dev/null 2>&1

启动虚拟机

$ ls d:/vagrant/centos-test1
bootstrap.sh  vagrantfile

#直接启动虚拟机
vagrant up

此时无需其他配置,ssh终端可以直接连接到虚拟机

vagrantfile指定的IP为192.168.33.10,直接连接即可,默认端口22,用户名为root,密码为vagrant,在bootstrap.sh中已经配置。

meigea commented 4 years ago
#!/bin/bash

# Install aliyun repo
echo ">>> Install aliyun repo"
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo >/dev/null 2>&1

# Install desired packages
echo ">>> Install desired packages"
yum install -y -q vim wget net-tools epel-release >/dev/null 2>&1

# Update the system
# echo ">>> Update the system"
#yum update -y >/dev/null 2>&1

# Config ssh connection
echo ">>> Config ssh connection"
sed -i 's/^PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
systemctl reload sshd
echo "root:vagrant" | sudo chpasswd

# Disable SELinux and firewalld
echo ">>> Disable SELinux and firewalld"
setenforce 0
sed -i --follow-symlinks 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux
systemctl disable --now firewalld >/dev/null 2>&1

# Install Docker-ce 
echo ">>> Install Docker-ce"
yum install -y yum-utils device-mapper-persistent-data lvm2 ;
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo ;
yum makecache fast ;
#yum -y install docker-ce-17.12.0.ce-1.el7.centos
yum -y install docker-ce ;
xx-zhang commented 4 years ago

vagrant 教程02 ; issue记录自己的动态