当前位置 主页 > 服务器问题 > Linux/apache问题 >
近期服务器频繁有被暴力破解,大致分析了一下入侵行为,整理了常用的安全策略:
最小的权限+最少的服务=最大的安全
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端口
service sshd restart
4)然后通过putty ssh连接软件链接一下,使用默认22号端口无法进入SSH,达到目的,就OK了~
2. 禁止root帐号直接登录
Linux的默认管理员名即是root,只需要知道ROOT密码即可直接登录SSH。禁止Root从SSH直接登录可以提高服务器安全性。经过以下操作后即可实现。
1)新建帐户和设置帐户密码
useradd ityangs
passwd ityangs
2)不允许root直接登陆
vi /etc/ssh/sshd_config
查找“#PermitRootLogin yes”,将前面的“#”去掉,短尾“Yes”改为“No”,并保存文件。
systemctl restart sshd.service【重启ssh,另一种方法重启】
3)下次登陆
先使用新建账号“ityangs”以普通用户登陆。
若要获得ROOT权限,在SSH中执行以下命令
su root
执行以上命令并输入root密码后即可获得root权限。
4)WinSCP下su切换到root的技巧(禁止root远程ssh登录时)
限制了root用户的远程登录,但是重要的数据文件都是700。更可悲的是,WinSCP完全失去了用武之地。因为root账户无法登陆,而像是FTP,SFTP,SCP这些协议都不支持在登录以后切换用户。
SCP协议在登录的时候可以指定shell,一般默认的也就是推荐的是/bin/bash,但是我们可以修改它来玩花样,比如改成sudo su -
但是新问题又来了,sudo需要输入密码,但是WinSCP在登录的时候并没有交互过程。但是天无绝人只要在root权限之路,只要在root权限下visudo,添加如下一行即可取消sudu时的密码:
yourusername ALL=NOPASSWD: ALL
为了可以在非putty的环境下sudo,我们还需要注释掉下面一行:
Defaults requiretty
然后保存,即可在登录到WinSCP的时候享受root的快感啦!
步骤:
普通用户ssh到服务器,切换到root权限
visudo,然后添加 yourusername ALL=NOPASSWD: ALL 这一行,注释掉Defaults requiretty
[root@iZ252wo3Z ~]# visudo
ityangs ALL=NOPASSWD: ALL
#Defaults requiretty 【没有可不用管】
修改WinSCP的文件协议为SCP
修改环境-SCP/Shell下的shell为sudo su-