由ssh角度来防止黑客攻击。随着linux系统的火热市场,传统的windows的黑客人员也开始逐渐的往linux系统转战,那么如何“防黑”也开始成为了我们的一个大的问题。在这里我就从黑客的角度,来防黑客,好的话不多说正式开始。
第一关:我是黑客我要进入你的服务器。
众所周知linux的最最常用的链接方式是什么?ssh当然是他。那么链接ssh需要什么?“用户名”,“密码”,“端口号”。有了这些东西那么我就可以很轻松的xshell链接你的机器(这里我只说最常见的,至于根据其他漏洞进入的我就不说了(小小菜鸟,感想之谈。大虾勿喷))。那么众所周知的是linux的用户名:root
密码:未知
端口:22
所以我们只需要知道密码就可以链接你的机器啦。好危险!!!所以我们就根据这个角度,据他千里之外~
具体思路:
ssh 一台管理机机器生成秘钥给所有机器,其他机器设置ssh只能管理机器能连。
管理机器不许空密码,root登录,不许空登录。
第一阶段:
客户端普通用户登录给sudo权限。更改端口为2213,更改只允许管理机器登录。
useradd aa
echo "123456" |passwd --stdin aa
给aa用户sudo权限
aa ALL=(ALL) NOPASSWD:ALL
更改ssh配置文件
-------------------------------------
Port 2231 #端口
AllowUsers aa@10.0.0.50 #对方用户对方ip。
-------------------------------------
重启ssh服务。
/etc/init.d/sshd restart
第二阶段服务器端=======================
#安装ansible
yum install ansible -y
#生成公钥私钥。
ssh-keygen -t dsa -f /root/.ssh/id_dsa -P ""
将公钥拷贝到客户端
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no -p 2231 aa@leo3"
#进行测试
ssh leo3
#修改ansiblehosts配置文件
[ls]
10.0.0.51 ansible_ssh_user=aa ansible_ssh_port=2231
第三阶段测试:
进行测试:
[root@leo ~]# ansible ls -m command -a "sudo hostname"
10.0.0.51 | SUCCESS | rc=0 >>
leo3
第二阶段服务器端=======================
如果不小心,黑客进入了你的服务器暴力破解了你的密码,那么这个时候想一下,如果你是黑客你会干什么?当然不是删除/或者重启机器什么的,完全没意义,那应该干嘛当然是留后门以便以后再来啊。所以他们经常喜欢干的事就是重新编译你的命令,然后你的命令还是照常好使的,但是你不知道的是,这个命令已经成为了他的后门,你的服务器也很不幸沦为肉鸡。所以对于这个考虑我们怎么办当然是添加指纹信息啊。~
第四阶段:(思路)
#对/sbin,/bin,/usr/bin/,/usr/sbin下内容进行加密到/aa
然后每天对MD5sum -c /aa进行查看。
补充:昨天发上去之后发现了自己留下了一个巨大的坑给广大网友,这里我来赔不是填坑来啦,米亚内~~
==================================如何让ansible可普通用户管理==============================
客户端
useradd aa
passwd aa
su - aa(可能没有bash文件)
vim /etc/ssh/sshd_config
------------------------------
Port 52113
AllowUsers aa@10.0.0.61
------------------------------
/etc/init.d/sshd reload(重新加载)
lsof -i:52113(查看有没有端口)
服务器端
ssh -p52113 aa@rsync(输入密码看能否登录)
sshpass -p123456 ssh-copy-id -i /root/.ssh/id_dsa.pub "-o StrictHostKeyChecking=no -p52113 aa@rsync"(传输公钥)
ssh -p52113 aa@rsync(看登录是否需要密码)
修改ansible的hosts文件
-------------------------------
[ls]
rsync ansible_ssh_user=aa ansible_ssh_port=52113
-------------------------------
ansible ls -m command -a 'hostname'(测试是否好使,你会成功的。)