如何在centos7上搭建堡垒机
时间: 2024-05-28 20:03:54 浏览: 144
jumpserver1.5.3版本的堡垒机搭建-cent7.x
在 CentOS 7 上搭建堡垒机,可以按照以下步骤进行:
1. 安装必要软件:
```
yum install epel-release -y
yum install -y python-pip python-devel gcc openssl-devel wget
```
2. 安装 Ansible:
```
pip install ansible
```
3. 配置 SSH 登录免密码:
为了方便管理,我们需要配置 SSH 登录免密码。在堡垒机上,执行以下命令:
```
ssh-keygen -t rsa
ssh-copy-id username@192.168.1.100
```
其中,`username` 是远程服务器的用户名,`192.168.1.100` 是远程服务器的 IP 地址。执行以上命令后,会要求输入远程服务器的密码,输入密码后,将本机的公钥文件(`~/.ssh/id_rsa.pub`)复制到远程服务器的 `~/.ssh/authorized_keys` 文件中。
4. 编写 Ansible playbook:
在堡垒机上,创建一个名为 `inventory` 的文件,定义要管理的远程服务器的 IP 地址和用户名:
```
[web]
192.168.1.100
[web:vars]
ansible_ssh_user=username
```
其中,`username` 是远程服务器的用户名。
接着,创建一个名为 `playbook.yml` 的 Ansible playbook 文件:
```
- hosts: web
gather_facts: no
tasks:
- name: Install EPEL repository
yum: name=epel-release state=present
- name: Install Python
yum: name=python state=present
- name: Install Nginx
yum: name=nginx state=present
- name: Start Nginx service
service: name=nginx state=started
```
以上示例 playbook 用于安装 Nginx 服务。可以根据实际需求进行修改。
5. 执行 Ansible playbook:
在堡垒机上,执行以下命令,将 playbook 应用到远程服务器上:
```
ansible-playbook -i inventory playbook.yml
```
执行以上命令后,Ansible 将自动在远程服务器上安装和配置 Nginx 服务。
6. 配置堡垒机:
为了增强安全性,我们需要为堡垒机配置 SSL 证书。在堡垒机上,执行以下命令:
```
yum install -y openssl
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/bastion.key -out /etc/pki/tls/certs/bastion.crt
```
以上命令将生成一个自签名的 SSL 证书,用于加密堡垒机与客户端之间的通信。接着,编辑 Nginx 配置文件:
```
vi /etc/nginx/nginx.conf
```
在 `http` 段中添加以下内容:
```
upstream ssh {
server 192.168.1.100:22; # 远程服务器的 IP 地址和 SSH 端口号
}
server {
listen 443 ssl;
server_name bastion.example.com; # 替换为堡垒机的域名
ssl_certificate /etc/pki/tls/certs/bastion.crt;
ssl_certificate_key /etc/pki/tls/private/bastion.key;
location / {
proxy_pass http://ssh;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 1800;
}
}
```
其中,`192.168.1.100` 是远程服务器的 IP 地址和 SSH 端口号,`bastion.example.com` 是堡垒机的域名。
7. 打开防火墙端口:
为了让客户端能够访问堡垒机,我们需要打开防火墙端口。在堡垒机上,执行以下命令:
```
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
```
执行以上命令后,堡垒机的 443 端口将被打开,允许客户端访问。
8. 客户端访问:
打开浏览器,访问堡垒机的域名,例如 `https://bastion.example.com`,将会看到一个登录界面。输入远程服务器的 IP 地址和用户名,即可登录远程服务器。
以上就是在 CentOS 7 上搭建堡垒机的过程。
阅读全文