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 … 白名单
++++++++++++++++++++++++++++++++
转载于:https://blog.51cto.com/12346621/1905290