基于SSH的SFTP服务器由***录制
前一段时间,大约在12月,该公司需要设置一个sftp服务器。当时我想的只是上传文件。更何况这还是一个基于SSH的SSL加密sftp,又没有太大的安全问题。结果这个月每天晚上都有人暴力。我在以前的博客文章中写过关于安装设置的内容。下面是被***和防***的记录。(centos6。x)
检查日志
ssh日志通常位于/var/log/secure中,某些linux版本可能位于/var/log/messages中。我们只需要修改sshd_config,在配置文件中添加SyslogFacilityauthpriv,然后重启sshd服务。将来,sftp服务器会将日志记录在/var/log/secure中。
分析日志
让我们检查服务器日志并使用命令cat/var/log/secure|more
那么暴力***多少次?使用命令cat/var/log/secure|grepfailed|WC-l
这次连接的是***,注意防范。
针对***的措施
那个时候首先想到的是/etc/passwd和修改ssh配置文件,以及linux自带的TCP包装器。
对于/etc/passwd文件,我们需要做的是禁止不必要的账号在本地登录服务器,比如mysql,oracle,以及上次sftp登录的账号delcom03等。,而只需将最后一项修改为/sbin/nologin,这样这些账号只能通过网络认证,无法登录本地服务器。
为了安全起见,我可以把root换成另一个名字,这样不管别人怎么用root暴力破解都没用了。
接下来,我们修改sftp服务器配置文件,Vim/etc/ssh/sshd_config修改如下:
修改上述配置文件后,只有192.168.0.0和172.17.0.0两个网络可以使用root帐户ssh和sftp登录。非两网的只能用delcom03账号sftp登录。
让我们修改TCPWrapper,一个简单的防火墙。它主要由两个文件/etc/hosts.allow和/etc/hosts.deny组成。
Hosts.allow相当于白名单,hosts.deny相当于黑名单。当两者发生冲突时,以白名单为准,这并不是对优先权的否定。
执行命令vim/etc/hosts.allow,首先将白名单添加到服务器。注意格式是sshd:ip(process:IP),如下所示:
快来加入我在日志中找到的所有非法IP地址到/etc/hosts.deny.执行如下图的命令vim/etc/hosts.deny。
自己写的剧本
由于手动检查日志,然后将非法IP添加到/etc/hosts.deny,效率很低,也不及时,所以使用脚本是最好的方式,错误比手动少很多。
脚本实现功能:
最后根据服务器的频率和性能,给调度的任务加上时间,crontab–e就可以执行了。
上面的脚本已经运行了半个月了,真的没问题。很稳定,但还是发现了一个问题。日期不到10号的时候,唉,脚本没运行就奇怪了。检查一的数量后,没有发现问题。最后发现linux系统日志在输出时有不同的格式。
当linux日志中的日期小于10时,在/var/log/securelog中的月和日之间有两个空单元格,反之则有一个空单元格。
为此我修改了剧本,在前面加了判决语句如下图所示
最后还要修改原脚本,添加变量$TODAY,就OK了。
这篇文章巧妙的一个字一个字的打,参考了很多资料。感谢他们的分享,本着开源共享的精神,转载请注明。
支持我,请点击别出心裁谢谢
引用:
鸟哥第九章,防火墙和NAT服务器:[/S2/]http://vbird.dic.ksu.edu.tw/Linux_服务器/0250Simple_防火墙
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)