linux安全登录,ssh

2016-04-24

晚上19:34

by:FHT

原因:由于网络上面无聊的人或许是别有用心的人太多,总是会在恶意扫描的你的主机尝试登录,由于本人服务器被黑,网上一直有很多这样安全登录,和防止被攻击等博客,

这次由于是我的亲身经历所以我决定要写一篇关于安全登录ssh的文章。

IP地址:

主机一.101.200.163.78

主机二. 101.200.182.81

1.不让普通用户直接登录系统。

2.更改登录端口。

3.一直使用sudo命令来代替root用户。

4.使用普通用户登录,使用秘药登录(linux主机之间为了安全登录使用秘钥登录)。

5.在/etc/profile中添加一段命令串,即使有人入侵了你的服务器也会详细记录他的所有操作。

6. 101.200.163.78主机ssh 101.200.182.81实现秘钥登录方式


下面要在两台服务器上面做同样的操作


[root@fanhongtao1 ~]# vim /etc/ssh/sshd_config   #修改配置文件

1.修改下面几处:

PubkeyAuthentication  yes  #启用PublicKey认证。

AuthorizedKeysFile       .ssh/authorized_keys  #PublicKey文件路径。

PasswordAuthentication  no  #不适用密码认证登录。
PermitRootLogin no  不允许root用户登录。


2.修改登录的端口,因为谁都知道ssh端口号是22,改成一个只有自己知道的端口即可。

[root@fanhongtao1 ~]# vim /etc/ssh/sshd_config   

#Port 22  #默认状态,解掉注释修改为你想要登录ssh时候使用的端口。

Port 11209  #在这里我改的是11209

第一步和第二部配置文件已经修改完成,保存退出即可。

[root@fanhongtao1 ~]# /etc/init.d/sshd restart #改完配置之后一定要记得重启sshd服务。


3.创建普通用户,设置用户使用sudo。

它的所有者是root,所以普通用户可以像root那样执行该程序注意的是更改其他用户密码只有root才可以其他都不好使。

创建普通用户为普通用户设置密码

[root@fanhongtao1 ~]# useradd tom
[root@fanhongtao1 ~]# echo 123456 |passwd --stdin tom

visudo 

添加如下信息,tom用户可以使用sudo来代替root执行一些超级用户才可以执行的程序或权限 注意的是更改其他用户密码只有root才可以,其他都不好使。

tom     ALL=(ALL)       ALL

保存退出

sudo常用的几个命令

[tom@fanhongtao1 root]$ sudo -l #查看sudo的权限

Matching Defaults entries for tom on this host:
    requiretty, !visiblepw, always_set_home, env_reset, env_keep="CO
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
    LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER
    _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/u


User tom may run the following commands on this host:
    (ALL) ALL   
代表所有权限

使用sudo的一个验证过程。 sudo默认有个时间戳是5分钟,在输入tom用户密码是在这五分钟内你使用sudo命令将不会在提示你输入密码,直接使用命令即可,

linux安全登录,ssh_第1张图片

[tom@fanhongtao1 root]$ sudo -k     而sudo -k 命令是 为了安全着想,在你不需要使用sudo命令时杀掉这个时间戳,再次使用时候重新输入密码。

截图是在五分钟之内默认是不用在提示输入密码的,但是由于使用sudo -k 杀死了时间戳,挡在执行命令时系统会提示再次输入密码。

linux安全登录,ssh_第2张图片


4.生成一个秘钥对在这里我是用的工具是xshell

,创建一个新的密钥对。

linux安全登录,ssh_第3张图片

RSA算法好在网络容易实现密钥manage,便进行数字签名,算法复杂,加/解速度慢,采用非对称加密

DSA是基于整数有限域离散对数难题的,其安全性与RSA相比差不多 


点击下一步


linux安全登录,ssh_第4张图片

为密钥设置密码,即使别人得到了你的公钥不知道你秘钥的密码也是无计可施。设置密码的时候要尽量的复杂,越复杂越是对自己负责,这里不多说了。


linux安全登录,ssh_第5张图片

将生成的公钥添加到tom用户目录下

[tom@fanhongtao1 ~]$ touch /home/tom/.ssh/authorized_keys 

将公钥复制到   [tom@fanhongtao1 ~]$   /home/tom/.ssh/authorized_keys 

linux安全登录,ssh_第6张图片

[tom@fanhongtao1 ~]$ vim /home/tom/.ssh/authorized_keys #添加的结果 

linux安全登录,ssh_第7张图片

下面测试登陆方式

(1.)使用22号端口登陆失败,说明修改的端口已经生效。

linux安全登录,ssh_第8张图片

(2.) 修改登录端口为11209

linux安全登录,ssh_第9张图片


使用tom用户登录,选择key登陆,密码是生成key是填写的密码。

linux安全登录,ssh_第10张图片

使用key登陆成功。

linux安全登录,ssh_第11张图片

用户使用密钥登陆到此圆满结束。

方便记录每个用户在什么时间登陆linux服务器在上面操作了什么都会记录在/tmp/history/登陆用户名目录/文本中。

/etc/profile中添加如下变量

USER=`whoami`

USER_IP=`who -u am i 2>/dev/null|awk '{print $NF}'|sed -e 's/[()]//g'`

if [ "$USER_IP" ="" ]; then

USER_IP=`hostname`

fi

 

if [ ! -d /tmp/history/${LOGNAME} ];then

mkdir /tmp/history/${LOGNAME}

fi

 

export HISTSIZE=4096

DT=`date+"%Y-%m-%d_%H:%M:%S"`

export HISTFILE=/tmp/history/${LOGNAME}/${USER}@${USER_IP}_history.$DT

保存退出

这些记录会产生在/tmp/history/目录中/生成的目录是以登陆用户名称定义的,经本人多次测试肯定好使。

mkdir -p /tmp/history/


###################################################################################################################################

6. 101.200.163.78主机ssh 101.200.182.81实现秘钥登录方式

[tom@fanhongtao1 home]$  ssh-keygen -t  rsa    #在101.200.163.78主机上面生成密钥对 

一路回车就可以了,在这里我没有给秘钥设置密码。

linux安全登录,ssh_第12张图片

用 ssh-copy-id 把公钥复制到 101.200.182.81远程主机上

[tom@fanhongtao1 home]$ ssh-copy-id -i ~/.ssh/id_rsa.pub  [email protected]

第一次传输密钥的时候需要填写密码,之后从101.200.182.78 登录到 101.200.182.81的时候不需要密码直接可以登录



你可能感兴趣的:(linux,ssh安全登录,ssh密钥登陆,linux操作记录)