1、 编写脚本/root/bin/checkip.sh,每5分钟检查一次,如果发现通过ssh登录失败 次数超过10次,自动将此远程IP放入Tcp Wrapper的黑名单中予以禁止防问
#!/bin/bash
IP=`lastb |awk '/ssh/{print $3}'|sort|uniq -c|awk '{if($1>10)print $2}'` for i in ${IP};do sed -i '$a\sshd: '''$i'''' /etc/hosts.deny done |
备注:关于sed中引入变量有两种方式
方式一:
可以用双引号将将sed中的命令引起来如本题中:
sed -i "\$a\sshd: $IP" /etc/hosts.deny因为我是在文件的末尾插入一行,所以这里用到了”$a”,因此双引号中需要用”\”转义);但是,sed命令中也可能出现双引号,这样会与最外层的双引号产生冲突导致命令出现问题
方式二:
可以用三个单引号将变量引起来,如本题: sed -I ‘$a\sshd: '''$i'''';这样就不会出现前面的提到的问题,因此推荐使用这种方法
2、 配置magedu用户的sudo权限,允许magedu用户拥有root权限
useradd添加的用户没有sudo的权限,因此需要单独的配置,控制用户sudo权限的配置文件为/etc/sudoers,通过查看此文件可以发现有如下两项:
root ALL=(ALL) ALL
%wheel ALL=(ALL) ALL
代码格式可以概况为:
授权用户/组 主机=[(切换到哪些用户或组)] [是否需要输入密码验证] 命令1,命令2,... 授权用户/组: 不是%开头则表示授权用户,%开头则表示授权组 主机: 表示允许登陆的主机 [(切换到哪些用户或组)]: 可以省略,相当于(root:root),表示可以通过sudo提权到root;如果是(ALL)或(ALL:ALL)则表示能够提权到(任意用户:任意用户组),此处没有省略的情况下必须用()双括号扩起来 [是否需要输入密码验证]: 值为NOPASSWD,NOPASSWD后面带有冒号,表示执行sudo是可以不输入密码 命令1,命令2: 具体的命令,绝对路径,两个命令之间用逗号隔开,ALL代表所有命令
|
因此开通magedu用户sudo权限方法如下:
方法一:
usermod -a -G wheel magedu
直接加入到wheel组中,如果提示没有wheel组,则创建
groupadd wheel
方法二:
直接修改/etc/sudoers文件,但是此方法不推荐,通过visudo修改sudoers文件可以检查语法是否正确
visudo -f /etc/sudoers
方法三:
在/etc/sudoers.d/文件夹中创建账户对应的文件进行权限控制
touch magedu
推荐使用此方法,不同账户独立文件独立的权限控制,方便查看,而且不会因为修改语法方面的问题,影响全局的账户控制
关于sudoers格式说明参考了如下文章:
http://www.mamicode.com/info-detail-2376629.html