CentOS 服务器安全配置策略
近期服务器频繁有被暴力破解,大致分析了一下入侵行为,整理了常用的安全策略:
最小的权限+最少的服务=最大的安全
1.修改ssh默认连接22端口和添加防火墙firewalld通过端口
步骤:
1)修改ssh的默认端口22:
vi/etc/ssh/sshd_config
2)让防火墙通过这个端口
firewall-cmd--state【firewalld是否运行】
firewall-cmd--permanent--list-port【查看端口列表】
firewall-cmd--permanent--zone=public--add-port=48489/tcp【添加端口】
firewall-cmd--permanent--remove-port=48489/tcp【删除端口】
3)重启SSH服务,并退出当前连接的SSH端口
servicesshdrestart
4)然后通过puttyssh连接软件链接一下,使用默认22号端口无法进入SSH,达到目的,就OK了~
2.禁止root帐号直接登录
Linux的默认管理员名即是root,只需要知道ROOT密码即可直接登录SSH。禁止Root从SSH直接登录可以提高服务器安全性。经过以下操作后即可实现。
1)新建帐户和设置帐户密码
useraddityangs
passwdityangs
2)不允许root直接登陆
vi/etc/ssh/sshd_config
查找“#PermitRootLoginyes”,将前面的“#”去掉,短尾“Yes”改为“No”,并保存文件。
systemctlrestartsshd.service【重启ssh,另一种方法重启】
3)下次登陆
先使用新建账号“ityangs”以普通用户登陆。
若要获得ROOT权限,在SSH中执行以下命令
suroot
执行以上命令并输入root密码后即可获得root权限。
4)WinSCP下su切换到root的技巧(禁止root远程ssh登录时)
限制了root用户的远程登录,但是重要的数据文件都是700。更可悲的是,WinSCP完全失去了用武之地。因为root账户无法登陆,而像是FTP,SFTP,SCP这些协议都不支持在登录以后切换用户。
SCP协议在登录的时候可以指定shell,一般默认的也就是推荐的是/bin/bash,但是我们可以修改它来玩花样,比如改成sudosu-
但是新问题又来了,sudo需要输入密码,但是WinSCP在登录的时候并没有交互过程。但是天无绝人只要在root权限之路,只要在root权限下visudo,添加如下一行即可取消sudu时的密码:
yourusernameALL=NOPASSWD:ALL
为了可以在非putty的环境下sudo,我们还需要注释掉下面一行:
Defaultsrequiretty
然后保存,即可在登录到WinSCP的时候享受root的快感啦!
步骤:
普通用户ssh到服务器,切换到root权限
visudo,然后添加yourusernameALL=NOPASSWD:ALL这一行,注释掉Defaultsrequiretty
[root@iZ252wo3Z~]#visudo
ityangsALL=NOPASSWD:ALL
#Defaultsrequiretty【没有可不用管】
修改WinSCP的文件协议为SCP
修改环境-SCP/Shell下的shell为sudosu-
登录WinSCP即可。
3.安装DenyHosts【拦截获取攻击的IP,生成黑名单,防止再次攻击】
DenyHosts(项目主页:http://denyhosts.sourceforge.net/)是运行于Linux上的一款预防SSH暴力破解的软件,可以从http://sourceforge.net/projects/denyhosts/files/进行下载,然后将下载回来的DenyHosts-2.6.tar.gz源码包上传到Linux系统中。
下面是安装过程
****************************************************************
tarzxvfDenyHosts-2.6.tar.gz#解压源码包
cdDenyHosts-2.6#进入安装解压目录
pythonsetup.pyinstall#安装DenyHosts
cd/usr/share/denyhosts/#默认安装路径
cpdenyhosts.cfg-distdenyhosts.cfg#denyhosts.cfg为配置文件
cpdaemon-control-distdaemon-control#daemon-control为启动程序
chownrootdaemon-control#添加root权限
chmod700daemon-control#修改为可执行文件
ln-s/usr/share/denyhosts/daemon-control/etc/init.d#对daemon-control进行软连接,方便管理安装到这一步就完成了。
/etc/init.d/daemon-controlstart#启动denyhosts
chkconfigdaemon-controlon#将denghosts设成开机启动
******************************************************************vi/usr/share/denyhosts/denyhosts.cfg#编辑配置文件,另外关于配置文件一些参数,通过grep-v"^#"denyhosts.cfg查看
SECURE_LOG=/var/log/secure#ssh日志文件,redhat系列根据/var/log/secure文件来判断;Mandrake、FreeBSD根据/var/log/auth.log来判断
#SUSE则是用/var/log/messages来判断,这些在配置文件里面都有很详细的解释。
HOSTS_DENY=/etc/hosts.deny#控制用户登陆的文件
PURGE_DENY=30m#过多久后清除已经禁止的,设置为30分钟;
#‘m'=minutes
#‘h'=hours
#‘d'=days
#‘w'=weeks
#‘y'=years
BLOCK_SERVICE=sshd#禁止的服务名,当然DenyHost不仅仅用于SSH服务
DENY_THRESHOLD_INVALID=1#允许无效用户失败的次数
DENY_THRESHOLD_VALID=3#允许普通用户登陆失败的次数
DENY_THRESHOLD_ROOT=3#允许root登陆失败的次数
DAEMON_LOG=/var/log/denyhosts#DenyHosts日志文件存放的路径,默认更改DenyHosts的默认配置之后,重启DenyHosts服务即可生效:
/etc/init.d/daemon-controlrestart#重启denyhosts
好了这篇文章就介绍到这了,需要的朋友可以参考一下。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。