Linux安全应用    (用户  文件   sshd   sudo)

selinux   

数据加密  数据解密   https

++++++++++++++++++++++++++++++++++

什么是安全?

保护谁的安全? 服务器的安全

怎么保护?

物理安全(规则制度)

本地安全 (用户  文件) 用户从本地登录 或ssh登录后可以执行的操作(登录用户有什么使用权限和管理权限对文件的访问权限服务的配置系统文件)

网络安全 (防火墙软件/硬件))                                iptables   tcp/udp  端口号

数据安全(数据加密)  数据在网路中传输不安全,需要加密

数据在网络中传输时,会受到那些***?

堵车    篡改(数据完整性校验)    截获(加密)    冒名顶替(数字签名)

++++++++++++++++++++++++++++++++

一、服务本地安全(系统加固)  /etc/login.defs   (如用户uid起始等等不加选项 默认时遵循配置文件)

1.1  用户账号安全   阻止普通用户关机

1.2  设置账号有效期

useradd   zengye

passwd   zengye

chage  -E  2015-12-31  zengye

                  设置过期时间


chage  -l    zengye  查看用户密码相关信息

chage -d 0 zengye


useradd    tom 

echo  123   |   passwd    --stdin    tom   初始密码

chage   -d   0     tom    强制用户首次登录系统,修改密码


1.3 锁定账号

usermod    -L/U     tom

passwd   -l/u   tom

passwd  -S   tom

passwd   -d   tom


/etc/passwd       /etc/shadow   

添加系统用户使用的配置文件   /etc/login.defs

相关的文件 /etc/skel/ 

/etc/group


useradd -s -m -g -u -G 用户

 useradd -s  /sbin/nologin   服务的访问帐号,进程的执行者


usermod -u -g  -G  -s -U  -L  

groupadd  tea

usermod -G tea zhang 将这个用户加到组里有这个组权限



userdel -r 用户名(工作不能这样删该用户的所有文件都在家下 要先备份出来 再删)


vim ~/.bash_logout  (用户退出时,执行该文件中命令操作)

rm -fr  /home/zhang/*



用户级配置文件(只对自己有效,如果系统的也写。这个也写,遵循这个)

~/.bashrc (这两个都写 这个生效)

~/.bash_profile

系统级配置文件(对所有用户有效)

/etc/profile

/etc/bashrc

全局变量 或命名别名


定义一个变量可以给他做成全局

[root@svr6 ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

[root@svr6 ~]# mkdir /shell

[root@svr6 ~]# PATH=$PATH:/shell

[root@svr6 ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/shell]:/shell

[root@svr6 ~]# vim ~/.bash_profile

PATH=$PATH:/shell

[root@svr6 ~]# echo $PATH (永久 再开一个终端也有)

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/shell:/root/bin:/shell





# awk -F ":" '{print $1,$7,$6}'   /etc/passwd  查看用户的名字 登录的shell 家目录


# awk -F ":" '$7=="/sbin/nologin" {print $1,$7,$6}'  /etc/passwd 查看不能登录系统的用户 名字家目录,shell


# awk -F ":" '$7=="/sbin/nologin" {print $1,$4}'  /etc/passwd  



# awk -F ":" ' {print $1,$4}'  /etc/group   查看组的用户名和成员

# awk -F ":" '$1="zhang" {print $1,$4}'  /etc/group  查看zhang这个组的用户



别名:1. vim /etc/bashrc  alias my='ls'  (针对全体用户都生效 再开一个终端测试)

       2. alias yy=hostname (临时生效,只应用当前用户,关闭端口或切换别的用户失效)

       3.vim /root/.bashrc  alias m=ls  (永久有效,但不能切换到别的用户中使用)


设置history历史记录个数

配置文件 /etc/profile   /etc/bashrc

HISTSIZE=1000  改成HISTSIZE=10

#source /etc/profile 或 重启就行 (bash /etc/profile 不行) 历史记录命令就只有保存10个


history -c 清空历史命令

#history 

#!h 执行最近一次h开头命令


设置历史命令执行的时间 /etc/bashrc  /etc/profile  

 最后一行添加: export HISTTIMEFORMAT="%F %H:%M "

再开一个终端测试  #history



vim /etc/services (所有服务端口号,配置文件)



伪装登录提示(level  3)

修改文件内容,隐藏操作系统的版本和内核版。

/etc/issue    (用户本地登录的提示信息)

/etc/issue.net  (用户网络登录的提示信息)

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

2   文件系统安全

ext2   ext3   ext4 

mount    /dev/sdb2    /disk2 (默认挂载)

mount    -t  ext4    -o   选项,选项    /dev/sdb2    /disk2


man   mount

开机挂载设备  /etc/fstab

                       /etc/rc.local

defaults 默认挂载选项包括那些?

rw, suid, dev, exec, auto, nouser, async, and relatime


noexec   禁止运行二进制文件

nosuid   禁用SUID、SGID特殊权限


mount    -t  ext4    -o   noexec,nosuid    /dev/sdb2    /disk2



3 保护文件   (系统配置   服务的配置)

EXT3/EXT4的文件属性控制 

文件的特殊属性

i  不可变(immutable)(不能被mv   rm   写  )只能读

a  仅可追加(append only)  仅追加 不能vim进去加


chattr   +i   /etc/passwd (

chattr   -i   /etc/passwd


chattr  +i  /etc/resolv.conf(不能被mv   rm   写,但是可以拷贝,拷贝走了就没有i属性)

lsattr      /etc/resolv.conf (查看该文件属性)


[root@room1pc01 ~]# lsattr /etc/rc.d/rc.local

----i--------e- /etc/rc.d/rc.local

[root@room1pc01 ~]# tail -1 /etc/rc.d/rc.local

echo Taren1 | passwd --stdin root




chattr +a /etc/passwd(只能对这个文件追加 创用户会报错)

chattr -a /etc/passwd (取消a属性)


[root@room9pc00 mysql]# chattr  -i /etc/passwd

[root@room9pc00 mysql]# lsattr /etc/passwd


网卡 网关  dns  主机名 /etc/hosts  服务主配置文件 一般只对他们设置这种特殊属性让他们只能看

————————————————————————————————————————————————————————————



++++++++++++++++++++++++++++++++++++




禁用非必要的系统服务


chkconfig   --add  --del --list --level 


[root@room1pc01 ~]# ntsysv 可以查看所有服务是否开机自启 (*开机自启)


#chmod -x /etc/init.d/* (禁止普通用户使用服务脚本启动暂停) 



文件系统安全




10G   /dev/sdb    

分区     格式化    挂载

fdisk   mkfs    mount   -o 选项,选项

        ext4

                     



手动挂载:  

开机自动挂:  /etc/fstab   /etc/rc.local

触发挂载:  /etc/auto.master

      /etc/init.d/autofs  restart





defaults 包含哪些参数


man


mount -o  nosuid,noexec /dev/sdb1 /disk1 (挂载一般接这样的参数)



文件权限种利:

普通: rwx 421

特殊: suid sgid  粘赤位

         S  S      T

         s   s     t   x



suid让用户执行文件时候,身份切换成文件的所有者


普通用户创建用户 需要/usr/sbin/useradd 给s权限才能创建

[root@room1pc01 ~]# which useradd

/usr/sbin/useradd

[root@room1pc01 ~]# useradd tom

[root@room1pc01 ~]# echo 1 |passwd --stdin tom

更改用户 tom 的密码 。

passwd: 所有的身份验证令牌已经成功更新。

[root@room1pc01 ~]# su tom

[tom@room1pc01 root]$ useradd zhang

bash: /usr/sbin/useradd: 权限不够

[tom@room1pc01 root]$ ll /usr/sbin/useradd

-rwxr-x---. 1 root root 103096 4月   7 2015 /usr/sbin/useradd

[tom@room1pc01 root]$ exit

exit

[root@room1pc01 ~]# chmod u+s /usr/sbin/useradd

[root@room1pc01 ~]# ll /usr/sbin/useradd

-rwsr-x---. 1 root root 103096 4月   7 2015 /usr/sbin/useradd

[root@room1pc01 ~]# su tom

[tom@room1pc01 root]$ useradd zhang

bash: /usr/sbin/useradd: 权限不够

[tom@room1pc01 root]$ exit

exit

[root@room1pc01 ~]# chmod +x /usr/sbin/useradd

[root@room1pc01 ~]# su tom

[tom@room1pc01 root]$ useradd zhang

[tom@room1pc01 root]$ ll /usr/sbin/useradd

-rwsr-x--x. 1 root root 103096 4月   7 2015 /usr/sbin/useradd


1.粘只位(管理员给一个目录其它用户o+t权限,别的用户不能对该目录或该目录写不属于自己用户的文件有修改,增加,删除权限,可以看)

[root@svr7 ~]# mkdir /publ

[root@svr7 ~]# chmod 777 /publ

[root@svr7 ~]# ls -dl /publ/

drwxrwxrwx. 2 root root 4096 3月   6 05:10 /publ/

[root@svr7 ~]# chmod o+t /publ/

[root@svr7 ~]# su - zhang

[zhang@svr7 ~]$ cd /publ/

[zhang@svr7 publ]$ touch 1.txtx

[zhang@svr7 publ]$ mv 1.txtx  11

[zhang@svr7 publ]$ ls

11

[zhang@svr7 publ]$ cd

[zhang@svr7 ~]$ rm -fr /publ/

rm: 无法删除"/publ": 权限不够

[zhang@svr7 ~]$ exit

logout

[root@svr7 publ]# su - tc

[tc@svr7 ~]$ cd /publ/

[tc@svr7 publ]$ ls

11

[tc@svr7 publ]$ vim 11 (不能修改,只读)

[tc@svr7 publ]$ mv 11 1

mv: 无法将"11" 移动至"1": 不允许的操作

[tc@svr7 publ]$ ls

11

[tc@svr7 publ]$ ls -ld 1.txt

-rw-rw-r--. 1 zhang zhang 0 3月   6 05:13 1.txt

[tc@svr7 publ]$ exit

logout

[root@svr7 ~]# su - zhang

[zhang@svr7 ~]$ cd /publ/

[zhang@svr7 publ]$ ls

1.txt

[zhang@svr7 publ]$ mv 1.txt 11.txt

[tc@svr7 ~]$ ls -ld /publ/

drwxrwxrwt. 2 root root 4096 3月   6 05:15 /publ/



ACL权限可以为个别普通用户或组单独使用这个文件的权限。tc妹妹(单独给某个用户使用权限)

[root@svr7 ~]# useradd zhang

[root@svr7 ~]# useradd tc

[root@svr7 ~]# mkdir /nsd

[root@svr7 ~]# chmod 750 /nsd

[root@svr7 ~]# ls -lhd /nsd

drwxr-x---. 2 root root 4.0K 3月   6 05:03 /nsd

[root@svr7 ~]# setfacl -m u:tc:rwx /nsd

[root@svr7 ~]# su - tc

[tc@svr7 ~]$ cd /nsd

[tc@svr7 ~]$ ls -lhd /nsd

drwxr-x---+ 2 root root 4.0K 3月   6 05:03 /nsd

[tc@svr7 ~]$ exit

[root@svr7 ~]# su - zhang

[zhang@svr7 ~]$ cd /nsd

-bash: cd: /nsd: 权限不够

[zhang@svr7 ~]$ ls -lhd /nsd

drwxr-x---+ 2 root root 4.0K 3月   6 05:03 /nsd



[root@room1pc01 桌面]# mkdir /tiantan

[root@room1pc01 桌面]# mkdir /tedu
[root@room1pc01 桌面]# useradd tc
[root@room1pc01 桌面]# setfacl -m u:tc:rwx /tedu  
[root@room1pc01 桌面]# getfacl
Usage: getfacl [-aceEsRLPtpndvh] file ...
Try `getfacl --help' for more information.
[root@room1pc01 桌面]# getfacl /tedu
getfacl: Removing leading '/' from absolute path names
# file: tedu
# owner: root
# group: root
user::rwx
user:tc:rwx
group::r-x
mask::rwx
other::r-x

[root@room1pc01 桌面]# setfacl -x u:tc /tedu
[root@room1pc01 桌面]# getfacl /tedu
getfacl: Removing leading '/' from absolute path names
# file: tedu
# owner: root
# group: root
user::rwx
group::r-x
mask::r-x
other::r-x

[root@room1pc01 桌面]# mkdir /data/aa

[root@room1pc01 桌面]# setfacl -Rm u:tc:rwx /data/aa
[root@room1pc01 桌面]# getfacl /data/aa
getfacl: Removing leading '/' from absolute path names
# file: data/aa
# owner: root
# group: root
user::rwx
user:tc:rwx
group::r-x
mask::rwx
other::r-x

[root@room1pc01 桌面]# setfacl -dm u:tc:rwx /tiantan
[root@room1pc01 桌面]# getfacl /tiantan
getfacl: Removing leading '/' from absolute path names
# file: tiantan
# owner: root
# group: root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:user:tc:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

[root@room1pc01 桌面]# mkdir /tiantan/abc

[root@room1pc01 桌面]# getfacl /tiantan/abc
getfacl: Removing leading '/' from absolute path names
# file: tiantan/abc
# owner: root
# group: root
user::rwx
user:tc:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:tc:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

[root@room1pc01 桌面]# su - tc
[tc@room1pc01 ~]$ mkdir /tiantan/aa
mkdir: 无法创建目录"/tiantan/aa": 权限不够
[tc@room1pc01 ~]$ mkdir /tiantan/abc/aa
[tc@room1pc01 ~]$ su - root
密码:
[root@room1pc01 ~]# setfacl -m u:tc:rwx /tiantan
[root@room1pc01 ~]# getfacl /tiantan
getfacl: Removing leading '/' from absolute path names
# file: tiantan
# owner: root
# group: root
user::rwx
user:tc:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:tc:rwx
default:group::r-x
default:mask::rwx
default:other::r-x


[root@room1pc01 ~]# su - tc
[tc@room1pc01 ~]$ mkdir /tiantan/tt



#lsof  查看哪些程序在打开哪些文件或目录(进程打开的文件)有时候umount卸载不掉 就查看下




系统分区规划


/boot

交换分区 硬盘划分出来(当内存不够用使用)


/var (可以做LV)  /home   (可以做LV逻辑卷)     




++++++++++++++++++++++++++++++++++++

二、用户切换与提权

2.1  用户切换 su

su      用户名      su      bob2

su  -   用户名      su   -   bob2

su  -               切换到管理员root用户





su  [-]  -c  "命令"  [目标用户]


[zhang@svr6 ~]$ su -c "service httpd status" root

密码:

httpd (pid  1915) 正在运行...

[zhang@svr6 ~]$ 




su 操作的日志文件   cat    /var/log/secure


/etc/profile  (系统级配置 对登录系统的所有用户生效)

~/.bash_profile  (用户级配置 只对当前用户生效)

HISTSIZE=1000

HISTTIMEFORMAT='%F %T'

export   HISTSIZE    HISTTIMEFORMAT


++++++++++++++++++++++++++++++++

2.2  用户提权 sudo

Super or another Do,超级执行

管理员预先为用户设置执行许可

被授权用户有权执行授权的命令,验证自己的口令


普通用执行提权命令的格式

用法1:sudo  特权命令

用法2:sudo   [-u  目标用户]   特权命令




提权修改的配置文件   /etc/sudoers


2.2  用户提权 sudo



运维数据库服务 lom

维护网站服务 lucy


运维数据库服务 tom

维护网站服务 bob 



httpd  mysql  运行。。。。

useradd  lom lucy  tom  bob 密码123456

——————  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++               

提权实验:

++++++++++

[root@svr7 ~]# hostname

svr7.tedu.cn

[root@svr7 ~]# cat /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

[root@svr7 ~]# which service

/sbin/service

[root@svr7 ~]# which vim

/usr/bin/vim


[root@svr7 ~]# useradd tom

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

[root@svr7 ~]# visudo   / vim   /etc/sudoers (两种方式进入提权配置文件)


     98 root    ALL=(ALL)       ALL

     99 tom     localhost,svr7.tedu.cn=/sbin/service httpd *  ,/usr/bin/vim /etc     /httpd/conf/httpd.conf


测试:(提权)

[root@svr7 ~]# su - tom

[tom@svr7 ~]$ sudo -l (第一次输密码)

[tom@svr7 ~]$ sudo /usr/bin/vim /etc/httpd/conf/httpd.conf 

[tom@svr7 ~]$ sudo /sbin/service  httpd status

httpd (pid  3723) 正在运行...

_____________________________________________________________


99 tom     localhost,svr7.tedu.cn=/usr/sbin/*,!/usr/sbin/useradd  (除这一个命令没给权,其它tom都能做)


把用户加入一个组提权(晚班组)


groupadd  wenbanmin

usermod  -G wenbanmin tom

usermod  -G wenbanmin lom


99 %wenbanmin    localhost,svr7.tedu.cn=/sbin/service httpd *,/usr/bin/vim /etc   /httpd/conf/httpd.conf




测试效果一样

——————————————————

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

+++提权后用户操作的日志文件++、


服务器记录通过普通用户执行过的提权命令操作(管理员可以查看你执行的命令)

启用日志文件/etc/sudoers

vim /etc/sudoers

Defaults logfile="/var/log/sudo"


[tom@svr7 ~]$ sudo /sbin/service httpd stop

停止 httpd:  

#tailf /var/log/sudo

Mar  6 07:28:56 : tom : TTY=pts/2 ; PWD=/home/tom ; USER=root ;

    COMMAND=/sbin/service httpd stop



——————————————————————————————————————————————


提权时设置别名(别名必须使用大写字母) 管理软件包 磁盘 网络 服务

*先定义后使用,但可以只定义不使用

给用户设置别名  User_Alias      别名名称=用户名列表

给主机设置别名  Host_Alias      别名名称=主机名列表

给命令设置别名  Cmnd_Alias      别名名称=命令列表


99 %wenbanmin    localhost,svr7.tedu.cn=NETWORKING,SOFTWARE    

     



Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool


Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum






___________________________________________________________________________________________________________

编辑提权配置文件

vim   /etc/sudoers

visudo    打开配置文件的专属命令


配置文件语法格式

普通用户名    主机列表=命令列表


%用户组名    主机列表=命令列表


jim    localhost,ser5=/sbin/*


visudo    #管理员给普通用户提权

%wheel        ALL=(ALL)       NOPASSWD: ALL


mike    localhost,svr1=/sbin/*, !/sbin/ifconfig  eth0 

bob     localhost,room9pc00=/etc/init.d/httpd *

%webadmingrp     localhost,room9pc00=/etc/init.d/httpd *

:wq


useradd  lily

echo   123   |   passwd --stdin  lily

usermod  -G   wheel   lily


grep   wheel   /etc/group



useradd   mike

echo  123  |  passwd --stdin  mike


groupadd  webadmingrp

useradd  jim

useradd  tom

echo  123  |  passwd --stdin  tom

echo  123  |  passwd --stdin  jim


提权用户登录系统测试命令能否使用

su  -  bob

sudo   -l   查看可以使用命令

sudo  /etc/init.d/httpd  status  执行可以使用的命令



提权时设置别名(别名必须使用大写字母)

*先定义后使用,但可以只定义不使用

给用户设置别名  User_Alias      别名名称=用户名列表

给主机设置别名  Host_Alias      别名名称=主机名列表

给命令设置别名  Cmnd_Alias    别名名称=命令列表


User_Alias   ADMINS = jsmith, mikem


Host_Alias     MAILSERVERS = smtp, smtp2


Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool


Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum


ADMINS     MAILSERVERS=NETWORKING


jerry       localhost,ser5=NETWORKING,SOFTWARE



MYSER=mail,web,ftp,mysql,localhost


+++++++++++++++++++++++++++++++

启用日志记录用户执行了那些提权命令

visudo

...

Defaults  logfile="/var/log/sudo"

:wq


sed   -n  '/^$/!p'  /etc/sudoers   |  sed  -n  '/^#/!p'

[root@room9pc00 ~]# sed   -n  '/^$/!p'  /etc/sudoers   |  sed  -n  '/^#/!p'(去除空白行和注释)

Defaults    requiretty

Defaults   !visiblepw

Defaults    always_set_home

Defaults    env_reset

Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"

Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"

Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"

Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"

Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

rootALL=(ALL) ALL



[root@svr6 ~]# grep -v "^$" /etc/sudoers |grep -v "^#" (和上面效果一样)


++++++++++++++++++++++++++++++++++++

三、管理SSH服务  22端口号

/etc/init.d/sshd  start  ;chkconfig   sshd on


1.默认所有地址接收连接请求(就是一台上的两个ip都可以)

2.默认允许使用本机所有帐号连接


/etc/ssh/sshd_config


 13 Port 2222


 16 ListenAddress 192.168.4.6 (当服务器多个ip时,只允许连这个ip远程管理)


 43 PermitRootLogin no   (不让别人连root用户)


 42 #LoginGraceTime 2m

 45 #MaxAuthTries 6   (输入密码时最多输入错次,都错了要等多少次,这两个连一起用)

 

66 PasswordAuthentication no   (如果做了这一条,就不允许别人输入口令连自己了,但是之前做过密钥对的还是可以免密码连 要改成yes 就都可以 也可以口令)


黑白名单 /etc/ssh/sshd_config


黑名单 在名单列表里的用户不允许登录


DenyUsers yaya@192.168.4.7  jing

DenyGroups dbadmin  webadmin



白名单 只有在命令/etc/ssh/sshd_config


AllowUsers root@172.40.50.117  jerry   (只允许root用户在这个117才能连,jerry任何用户都能连)


AloowGroups  mywebgrp 



配置密钥对登录   (/root/.ssh/)


客户端创建:[root@svr7 ~]# rm -fr /root/.ssh/

      [root@svr7 ~]# ssh-keygen 

      [root@svr7 ~]# ls /root/.ssh

       id_rsa  id_rsa.pub

      [root@svr7 ~]#ssh-copy-id root@192.168.4.6

         

服务器:vim /etc/ssh/sshd_config(修改完配置文件,只允许用密钥对这种方式,口令密码上不了)

 49 PubkeyAuthentication yes

 50 AuthorizedKeysFile      .ssh/authorized_keys  (开启密钥连)


 66 PermitEmptyPasswords no  (不允许输入口令连)



现在只能使用密钥对远程 不能使用口令。

客户端(如果普通用户要远程管理,可以把私钥拷贝到普通用户家目录下并给权限)


将公钥拷贝到普通用户之后就能远程。

[root@svr7 ~]# useradd dc

[root@svr7 ~]# echo 123456 |passwd --stdin dc

[root@svr7 ~]# su - dc

[dc@svr7 ~]$ mkdir /home/dc/.ssh

[dc@svr7 ~]$ ls -ld /home/dc/.ssh

drwxrwxr-x. 2 dc dc 4096 3月   6 10:46 /home/dc/.ssh

[dc@svr7 ~]$ exit

logout

[root@svr7 ~]# cp /root/.ssh/id_rsa /home/dc/.ssh/

[root@svr7 ~]# chown dc:dc /home/dc/.ssh/id_rsa 

[root@svr7 ~]# su - dc

[dc@svr7 ~]$ ssh  root@192.168.4.254

Last login: Mon Mar  6 18:43:24 2017 from 192.168.4.7

[root@room1pc01 ~]# 





3.1   服务运行参数

vim /etc/ssh/sshd_config


ssh  -p  20002 root@172.40.50.117




3.2   登录方式

3.2.1  密码认证登录(用户名  密码)

3.2.2  密钥对认证登录

           密钥对由公钥 和 私钥组成 


1   88客户端在自己本机生成密钥对 ssh-keygen

[root@stu ~]# which ssh-keygen

/usr/bin/ssh-keygen

[root@stu ~]# rpm  -qf  /usr/bin/ssh-keygen 

openssh-5.3p1-111.el6.x86_64

[root@stu ~]#

man   ssh-keygen  查帮助


[root@stu ~]# ls /root/.ssh/

id_rsa  id_rsa.pub  known_hosts

私钥     公钥

[root@stu ~]# 


2客户端把自己公钥拷贝ssh服务器上 (99)   

ssh-copy-id   root@172.40.50.99


[root@stu ~]# ssh-copy-id  root@172.40.50.99

root@172.40.50.99's password: 

Now try logging into the machine, with "ssh 'root@172.40.50.99'", and check in:


  .ssh/authorized_keys


to make sure we haven't added extra keys that you weren't expecting.


[root@stu ~]#


vim /etc/ssh/sshd_conf

PasswordAuthentication no (不输入口令)

PubkeyAuthentication yes

AuthorizedKeysFile      .ssh/authorized_key

:wq


/etc/init.d/sshd  reload



ssh   -X   -p  端口     用户名@地址

++++++++++++++++++++++++++++++

3.2.3  连接控制(黑白名单)

vim  /etc/ssh/sshd_config

单个用户

DenyUsers    USER1  USER2    黑名单

AllowUsers   USER1@HOST   USER2    白名单


AllowUsers   stu1@1.1.1.1  

++++++++++++++++++++++++++++++++

用户组

DenyGroups  GROUP1 GROUP2 …   黑名单

AllowGroups  GROUP1 GROUP2 …  白名单

++++++++++++++++++++++++++++++++