堡垒机介绍
在一个特定网络环境下,为了保障网络和数据不受外界入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态、安全事件、网络活动,以便集中报警、及时处理及审计定责。
我们又把堡垒机叫做跳板机,简易的跳板机功能简单,主要核心功能是远程登录服务器和日志审计。
比较优秀的开源软件jumpserver,认证、授权、审计、自动化、资产管理。
商业堡垒机:齐治,Citrix XenApp
搭建简易堡垒机
具备堡垒机的条件是,该机器有公司和私网,其中私网和机房其他机器互通
设计堡垒机思路
跳板机安全设置(iptables端口限制、登录限制sshd-config)
用户、命令权限限制(iailkit)http://blog.chinaunix.net/uid-28310119-id-3503318.htm
客户机器日志审计t http://www.68idc.cn/help/server/1inux/2014042190951.html
搭建简易堡垒机 - jailkit chroot
源码安装jailkit
cd /usr/local/src/ wget https://olivier.sessink.nl/jailkit/jailkit-2.19.tar.bz2 tar -jxvf jailkit-2.19.tar.bz2 cd jailkit-2.19/ yum install gcc -y ./configure make && make install
创建虚拟系统的根目录,并把常用命令添加到虚拟系统的根目录下
jk_init -v -j /home/jail/ basicshell jk_init -v -j /home/jail/ editors jk_init -v -j /home/jail/ netutils jk_init -v -j /home/jail/ ssh ]# cd /home/jail/ ]# ls bin dev etc lib64 usr
创建用户
]# useradd zhangsan;echo '123456' | passwd --stdin zhangsan 更改用户 zhangsan 的密码 。 passwd:所有的身份验证令牌已经成功更新。
创建sbin目录,拷贝虚拟系统 shell
]# mkdir /home/jail/usr/sbin ]# cp /usr/sbin/jk_lsh /home/jail/usr/sbin/jk_lsh
刚刚创建的用户更改为虚拟系统用户
[root@test1 jail]# jk_jailuser -m -j /home/jail zhangsan [root@test1 jail]# cat /home/jail/etc/passwd root:x:0:0:root:/root:/bin/bash zhangsan:x:1001:1001::/home/zhangsan:/usr/sbin/jk_lsh
修改虚拟用户登陆 shell
]# sed -ir '/^zhangsan/s@/usr/sbin/jk_lsh@/bin/bash@' /home/jail/etc/passwd ]# cat /home/jail/etc/passwd root:x:0:0:root:/root:/bin/bash zhangsan:x:1001:1001::/home/zhangsan:/bin/bash
安全优化
# 只允许密钥登陆 vim /etc/ssh/sshd_config PasswordAuthentication no # 添加规则 iptables 略 # 允许哪些ip 链接 vim /etc/hosts.allow sshd: 172.16.0.20/24 1.1.1.1 # ssh 除了允许ip之外的ip都拒绝 vim /etc/hosts.deny sshd: ALL
# 服务器设置 只允许从那天跳板机登陆过来
vim /etc/hosts.allow sshd: 172.16.0.20 # 跳板机 IP
vim /etc/hosts.deny
sshd: ALL
日志审计
[root@test1 ~]# mkdir /usr/local/records [root@test1 ~]# chmod 777 /usr/local/records [root@test1 ~]# chmod +t /usr/local/records [root@test1 ~]# vim /etc/profile if [ ! -d /usr/local/records/${LOGNAME} ] then mkdir -p /usr/local/records/${LOGNAME} chmod 300 /usr/local/records/${LOGNAME} fi export HISTORY_FILE="/usr/local/records/${LOGNAME}/bash_history" export PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >>$HISTORY_FILE' [root@test1 ~]# source /etc/profile
开源堡垒机 Jump Server
介绍
- 官网 www.jumpserver.org
- jumpserver 是一款使用 Python,Django 开发的开元跳板机系统,助理 互联网企业高效,用户,资产,权限,审计,管理
- CMDB 资产管理
- Auth 统一认证
- 统一授权
- 日志审计
- 自动化运维(ansible)
安装jump server
http://docs.jumpserver.org/zh/docs/setup_by_centos.html
Jump Server 用户管理
- 修改管理员密码
右上角用户管理 --->> 快速修改 --->> 修改密码
创建管理用户(远程机器执行命令)
~]# ssh-keygen -f jumpserver ~]# sz jumpserver
创建系统用户,用于跳转到其他机器
创建管理用户
~]# useradd jumpserver ~]# cd /home/jumpserver/ ]# su - jumpserver ~]$ mkdir .ssh ~]$ vim .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDic8ywYiwEft4qDUR8fZQWgCkitHfw/dP9UdJajJ5/eoEA1Vcp1TvEL/WCnIYe5/PY8qKj8lx3QUxJy2TYJZy2eza8UTkowpS4x0ZGbg2UdKIZ0s3AIxPtwbs+ODbWiEGQ5AtUKftkm3aZpdB6O8wZhldkjIEcdjgVr4M4Bugw67FdLf4WFqClC1aQd2vUTyoY41dU6+/i1NSJL0BZPr2Ez+js4KN6LQROuWkBsDFG69bsh5qM2AyTnDre0TLZe8MrrXOuXB6/SsUwdlWS7sW9sMKbfDfEvmUkolaGi8PYf4X1fFjKfOdQ+AnWrYgZatgdjOLUQw5e0QjxRPMbZYNp root@mysql-master ~]$ cd .ssh
~]$ chmod 700 .
~]$ exit [root@mysql-master jumpserver]# visudo jumpserver ALL=(ALL) NOPASSWD: ALL
资产管理
创建资产 添加主机
作业中心检查
创建资产授权 授权系统用户