Linux服务器基础安全策略


Linux服务器基础安全策略

  1. 修改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
    
  2. 修改root登录

    新建用户

    useradd aaa
    
    passwd aaa
    
  1. 进入目录/etc/ssh/修改文件sshd_config里面的

    PermitRootLogin no
    

    重启sshd服务

    service sshd restart
    
  2. 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那里设置的密码