Linux服务器基础安全策略
修改ssh登录端口
修改iptables文件,打开新的ssh登录端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 822 -j ACCEPT
重启防火墙
service iptables restart
进入目录/etc/ssh/修改文件sshd_config里面的端口22
重启sshd服务
service sshd restart
修改root登录
新建用户
useradd aaa passwd aaa
进入目录/etc/ssh/修改文件sshd_config里面的
PermitRootLogin no
重启sshd服务
service sshd restart
SSH 密钥登录linux
首先得生成一对密钥,一把私有密钥和一把公用密钥,公用密钥用于对消息进行加密,只有拥有私有密钥的人才能对该消息进行解密。把公钥放到我们要远程登录的主机(remote)上(~/.ssh/authorized_keys),专用密钥放置到本地机(local)或是U盘。
首先我们创建属于你自己的公钥和私钥:
(1)SSH Secure Shell的Edit菜单Setting菜单,找到Keys,然后Generate New..开始生成新密钥;
(2)下一步(全部默认即可),选择DSA吧(RSA也可以,但RSA和DSA差不多,DSA耗资源少点,其实这点资源消耗可以忽略不计);
(3)下一步,File,取个文件名:zx-ssh,别的可以不填直接点“完成”,Passphrase写了则每次连接时需要输入,我喜欢连密码都不输;为了实现自动登录,passphrase为空,但这样不安全,还是设置一个passphrase吧
(4)找到密钥存放的目录:windows7,在C:\Users\ZX\AppData\Roaming\SSH\UserKeys,有2个文件:zx-ssh(私钥,与公钥一起存放到本地或复制到U盘,在没有使用该过密钥的机器上要访问服务器,则需要导入密钥。
(5)服务器端(我以freebsd为例),修改配置文件:vi/etc/ssh/sshd-config
启用ChallengeResponseAuthentication no #启用此项才可以真正取消密码验证 启用UsePAM yes
重启sshd服务
service sshd restart
(6)将生产的公钥(zx-ssh.pub),上传到服务器用户主目录,复制到用户主目录下的.ssh目录中,然后进行格式转换(转换为openssl格式):
cd ~/.ssh/
如果没有.ssh目录建立一个
ssh-keygen -X -f zx-ssh.pub>>authorized_keys
#转换格式openss格式,并将公钥导入到authorized_keys文件中
chmod 0640 authorized_keys #设置权限,使该文件仅允许属主读写
rm zx-ssh.pub#删除上传的公钥,要不然留住也没用
这里要注意一个问题,就是这个linux主机如果有多个公钥,要注意每个公钥后面需要有个回车或是换行,不能将多个公钥直接罗列在一行。
应该重新检查一下你的authorized_keys的权限(640)。也可能要检查.ssh目录的权限,.ssh目录应该对“组用户”(group)和“其它用户”(other)没有写的权限。运行下面的命令来取消“组用户”(group)和“其它用户”(other)对于.ssh目录的写权限(740):chmod go-w ~/.ssh(也可以chmod 740 ~/.ssh,一样的)
chmod 740 ~/.ssh
mobaXterm里使用私有钥匙连接服务器
(1)选择advanced ssh settings标签(勾选Specify username输入root用户)
(2)勾选Use private key 并选择私有钥匙文件
(3)连接服务器并输入passphrase那里设置的密码