安全

# useradd zhangsan
# passwd zhangsan

# chage -l zhangsan
最近一次密码修改时间 :12月 07, 2018
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7

# chage -E 2019-1-1 zhangsan
# chage -l zhangsan
最近一次密码修改时间 :12月 07, 2018
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :1月 01, 2019
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7

# passwd -S zhangsan
提示信息:
zhangsan PS 2018-12-07 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)

# passwd -l zhangsan
提示信息:
锁定用户 zhangsan 的密码 。
passwd: 操作成功

# passwd -S zhangsan
提示信息:
zhangsan LK 2018-12-07 0 99999 7 -1 (密码已被锁定。)

# passwd -u zhangsan
提示信息:
解锁用户 zhangsan 的密码。
passwd: 操作成功

# vim /etc/issue 是开机还没登陆时显示的东西。默认是显示内核的版本,这样不安全。
hello world 更改后,重启后,会显示hello world

# cat /etc/issue.net 也可以修改这个文件,也能生效
\S
Kernel \r on an \m


# vim /etc/fstab 在defaults后面加上,noexec。noexec属性可让分区下的所有程序都不可执行,包括病毒与木马
UUID=5d6c8afe-b75a-4e6b-9de1-1a3eeeaf23d9 /boot xfs defaults,noexec 0 0
重启后生效
系统盘不要加noexec属性,要不系统起不来。放数据库mysql数据的,可以加noexec属性。

# mount -o remount,noexec /boot 马上生效。临时生效。重启失效。

# cp /bin/ls /root/
# /root/ls
anaconda-ks.cfg initial-setup-ks.cfg ls 公共 模板 视频 图片 文档 下载 音乐 桌面

# cp /bin/ls /boot/
# /boot/ls
-bash: /boot/ls: 权限不够


atime access time cat
ctime create time
mtime modify time

工作中一定要都把atime关了,不要让它更新访问的时间。
# cat /etc/fstab
/dev/vda1 /boot xfs defaults,noexec 0 0
/dev/vda3 /home xfs defaults,noatime 0 0
备注:
noexec属性可以让分区下的所有程序都不可执行,包括病毒与木马
noatime让分区下的所有文件都不再更新atime时间,atime时间为文件的访问时间


# lsattr /etc/passwd
---------------- /etc/passwd
# touch a.txt
# echo a > a.txt

# chattr +i a.txt 加上i,只有看的权限,其他都操作不了。改删都不行。重要文件加这个
# cat a.txt
a
# echo xxx > a.txt
-bash: a.txt: 权限不够
# rm -rf a.txt
rm: 无法删除"a.txt": 不允许的操作
# cat a.txt
a


# chattr -i a.txt
# echo yyy > a.txt
# cat a.txt
yyy


# chattr +i 文件名 //锁定文件(无法修改、删除等)
# chattr -i 文件名 //解锁文件
# chattr +a 文件名 //锁定后文件仅可追加
# chattr -a 文件名 //解锁文件
# lsattr 文件名 //查看文件特殊属性


append追加,只能用echo来追加。不能用vim打开来追加。
工作中尽量不要删东西

# su - zhangsan root切换到用户zhangsan
上一次登录:五 12月 7 10:46:39 CST 2018pts/0 上
[zhangsan@10 ~]$ su - 此时su -后面没加用户,默认是切换到root用户
密码: 输入root密码
上一次登录:五 12月 7 10:47:16 CST 2018pts/0 上
[root@10 ~]# exit 成功切换到root后,退出
登出
[zhangsan@10 ~]$ exit 又回到zhangsan,再退出
登出
[root@10 ~]# 又回到root

# su - zhangsan -c "touch /tmp/zhangsan.txt"

# ll /tmp/zhangsan.txt
-rw-rw-r--. 1 zhangsan zhangsan 0 12月 7 10:46 /tmp/zhangsan.txt

sudo 也可以提权(工作中更常用这个)
需要管理员提前授权(systemctl,useradd...)
普通用户就可以sudo成root执行对应的命令
输入的是自己的密码

ubuntu默认禁用root创建普通用户
##########################################################################################
# visudo 没有颜色,但会帮你做语法检查。和vim /etc/sudoers是一样的意思
如果没改内容,会提示如下:
visudo: /etc/sudoers.tmp 未更改


# vim /etc/sudoers 有颜色,但不帮你做语法检查
... ...
92 root ALL=(ALL) ALL
93
94 softadm ALL=(root) /usr/bin/systemctl 加这行
... ...
#wq! 因为是只读文件,所以要强制保存!


下面是网上找到的注释:
用户:允许使用 sudo 的用户名
ALL:允许从任何终端(任何机器)使用 sudo
(ALL):允许以任何用户执行 sudo 命令
ALL:允许 sudo 权限执行任何命令
如果我们想让用户 test 只能在本主机(主机名为guohl-pc)以 root 账户执行/bin/chown、/bin/chmod 两条命令,那么就应该这样配置:
##########################################################################################
# su - softadm

[softadm@10 ~]$ systemctl restart httpd
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to manage system services or units.
Authenticating as: root
Password:

[softadm@10 ~]$ sudo systemctl start httpd
会出现以下提示:

我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。

[sudo] softadm 的密码:

[softadm@10 ~]$ sudo systemctl start nfs-server
[softadm@10 ~]$ sudo passwd root
对不起,用户 softadm 无权以 root 的身份在 10 上执行 /bin/passwd root。
############################################################################
# vim /etc/sudoers 有颜色,但不帮你做语法检查
... ...
94 softadm ALL=(root) /usr/bin/systemctl,/usr/bin/yum 也可以写/bin/*。但是权力太大了。
... ...
#wq! 因为是只读文件,所以要强制保存!


# su - softadm

[softadm@10 ~]$ sudo yum -y install httpd 命令前要加sudo

常见报错:命令前面忘了加sudo。
[softadm@10 ~]$ yum -y install httpd
已加载插件:langpacks, product-id, search-disabled-repos, subscription-manager
您需要 root 权限执行此命令。
############################################################################
# adduser useradm adduser和useradd作用一样的
# passwd useradm
更改用户 useradm 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
############################################################################
# which useradd 查看命令的绝对路径
/usr/sbin/useradd
# which adduser
/usr/sbin/adduser


# vim /etc/sudoers 有颜色,但不帮你做语法检查
... ...
94 softadm ALL=(root) /usr/bin/systemctl,/usr/bin/yum
95 useradm ALL=(root) /usr/sbin/useradd,/usr/sbin/adduser,/usr/bin/passwd
... ...
#wq! 因为是只读文件,所以要强制保存!
##############################################################################
# su - useradm

[useradm@10 ~]$ sudo useradd wangwu
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。

[sudo] useradm 的密码:

[useradm@10 ~]$ id wangwu 成功创建用户wangwu
uid=1004(wangwu) gid=1004(wangwu) 组=1004(wangwu)

[useradm@10 ~]$ sudo passwd wangwu 成功改用户wangwu的密码
更改用户 wangwu 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

[useradm@10 ~]$ sudo passwd root 也能改root密码,权力太大了
更改用户 root 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
#################################################################################################
# vim /etc/sudoers 感叹号代表取反,不能执行给root改密码这个操作。 !/usr/bin/passwd root
... ...
95 useradm ALL=(root) /usr/sbin/useradd,/usr/sbin/adduser,/usr/bin/passwd,!/usr/bin/passwd root
... ...
#wq! 因为是只读文件,所以要强制保存!

[useradm@10 ~]$ sudo passwd root 不能改root的密码了!
提示如下:
对不起,用户 useradm 无权以 root 的身份在 10 上执行 /bin/passwd root。

[useradm@10 ~]$ sudo passwd lisi 还能改lisi的密码了!
更改用户 lisi 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

[useradm@10 ~]$ sudo passwd passwd后不加用户时,还是能默认给root改密码!!!
更改用户 root 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
########################################################################################
禁止授权的普通用户给root改密码


# man sudoers man帮助找到下面这行,直接复制粘贴,防止授权用户给root改密码
:/passwd
... ...
pete HPPA = /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
... ...


# vim /etc/sudoers 感叹号代表取反,不能执行给root改密码这个操作 !/usr/bin/passwd root
... ...
95 useradm ALL=(root) /usr/sbin/useradd,/usr/sbin/adduser,/usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root
... ...
#wq! 因为是只读文件,所以要强制保存!


# su - useradm

[useradm@10 ~]$ sudo passwd 不管用哪种方法,授权用户useradm都无法改root的密码
对不起,用户 useradm 无权以 root 的身份在 10 上执行 /bin/passwd。

[useradm@10 ~]$ sudo passwd root 不管用哪种方法,授权用户useradm都无法改root的密码
对不起,用户 useradm 无权以 root 的身份在 10 上执行 /bin/passwd root。

[useradm@10 ~]$ sudo passwd lisi 但是能改普通用户lisi的密码
更改用户 lisi 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
########################################################################################
把普通用户加入wheel这个组,就会默认和root一样的权限。

vim /etc/sudoers 系统原本就默认设置了,属于wheel组的人都具有和root一样的权限
... ...
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL 百分号%代表是一个组,%wheel代表wheel这个组

## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL 这行的注释打开时,代表wheel组的成员可以无密码就sudo执行命令
... ...


# useradd -G wheel dachui 可以在创建用户时加入wheel组

# useradd lucy
# id lucy
uid=1007(lucy) gid=1007(lucy) 组=1007(lucy)

# usermod -a -G wheel lucy 可以在已有用户lucy的基础上,修改用户的附加组为wheel
# id lucy
uid=1007(lucy) gid=1007(lucy) 组=1007(lucy),10(wheel)

# su - lucy 切换到lucy用户
[lucy@10 ~]$ sudo passwd root 可以给root改密码
提示如下:
我们信任您已经从系统管理员那里了解了日常注意事项。
总结起来无外乎这三点:

#1) 尊重别人的隐私。
#2) 输入前要先考虑(后果和风险)。
#3) 权力越大,责任越大。

[sudo] lucy 的密码:
更改用户 root 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。 成功更改root密码

[lucy@10 ~]$ sudo passwd 可以给root改密码
更改用户 root 的密码 。
新的 密码:
无效的密码: 密码是一个回文
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
############################################################################################
vim /etc/sudoers
... ...
9 Defaults logfile="/var/log/sudo" 第9行指定了sudo的日志目录,只要用户使用了sudo这命令,不管成功失败都会记录入日志


# su - zhangsan 切换到zhangsan
[zhangsan@10 ~]$ sudo systemctl restart nfs-server 执行一个sudo命令
... ...
[sudo] zhangsan 的密码:
zhangsan 不在 sudoers 文件中。此事将被报告。 没有权限,所以执行sudo命令时失败了,会被记录入sudo的日志


[zhangsan@10 ~]$ exit 退出
[root@10 ~]# su - useradm 切换到别的用户useradm

[useradm@10 ~]$ sudo useradd liuliu 执行sudo命令,创建一个用户liuliu
[sudo] useradm 的密码: 如果密码输错,会有提示
对不起,请重试。
[sudo] useradm 的密码:

[useradm@10 ~]$ id liuliu 确认是否成功创建用户liuliu
uid=1008(liuliu) gid=1008(liuliu) 组=1008(liuliu)
[useradm@10 ~]$ exit
###############################################################################################
查看sudo的日志,发现记录有刚才用户执行sudo的具体信息

# cat /var/log/sudo
Dec 7 14:04:13 : zhangsan : user NOT in sudoers ; TTY=pts/0 ;
PWD=/home/zhangsan ; USER=root ; COMMAND=/bin/systemctl restart nfs-server
Dec 7 14:05:12 : useradm : TTY=pts/0 ; PWD=/home/useradm ; USER=root ;
COMMAND=/sbin/useradd liuliu
#############################################################################################
# usermod -a -G wheel softadm 把softadm用户加入wheel组,拥有和root一样的权限

# passwd softadm 更改softadm的密码

# vim /etc/ssh/sshd_config
38 PermitRootLogin no 改第38行,禁止root远程登陆

# systemctl restart sshd 重启sshd
# exit 退出
#############################################################################################
真机

# ssh -X root@192.168.4.10 真机输入正确的密码,也无法用root登陆4.10
提示如下:
root@192.168.4.10's password:
Permission denied, please try again.
root@192.168.4.10's password:
Permission denied, please try again.
root@192.168.4.10's password:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). 权限被拒绝

真机
# ssh -X softadm@192.168.4.10 softadm拥有和root一样的权限,且没被设置拒绝远程,所以能成功远程登陆4.10
[softadm@10 ~]$ sudo vim /etc/ssh/sshd_config 能修改配置,改回来
[sudo] softadm 的密码:
# 38 PermitRootLogin no 注释掉第38行,允许root远程登陆
[softadm@10 ~]$ sudo systemctl restart sshd 重启sshd
[softadm@10 ~]$ exit
#################################################################################
真机

# ssh -X root@192.168.4.10 root又能成功远程登陆4.10了
# vim /etc/ssh/sshd_config
... ...
#MaxAuthTries 6 输入密码的次数!不要改这行!它的次数,3才代表能连2次!2代表能连1次!写1就不能连了!!!
... ...

# systemctl restart sshd
# exit

真机
# ssh -X root@192.168.4.10
root@192.168.4.10's password:
Received disconnect from 192.168.4.10 port 22:2: Too many authentication failures
Authentication failed.

# vim /etc/ssh/sshd_config
... ...最后一行追加
ALLowUsers softadm@192.168.4.11 只允许softadm用户从主机192.168.4.11远程!!!谨慎使用!!!

真机
[root@room9pc01 ~]# ssh -X softadm@192.168.4.10
softadm@192.168.4.10's password:
Permission denied, please try again.

[root@room9pc01 ~]# ssh -X root@192.168.4.11
[root@11 ~]# ssh -X softadm@192.168.4.10
#####################################################################################
vindows木马(记录键盘)
windows------>linux
ssh ip
root,123456

推荐用密钥!防止木马偷偷记录键盘输入的密码。
ssh-keygen 我的电脑生成密钥对,/root/.ssh/id_rsa /root/.ssh/id_rsa.pub
ssh-copy-id 对方 把我的公钥传给对方,放哪了?/root/.ssh/authorized_keys
ssh 对方IP 远程无密码登陆对方

要用正版!xshell(中文)。
之前putty,secureCRT很流行,但没有中文版,但是有破解版,结果11年发现有后门,能自动记录密码。

#####################################################################################
[root@10 ~]# ssh-keygen 一路回车
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:1578A2Oevx7EdKtxwMjNF7mFvhDJHrZKQ6cdOywsTZ4 root@10
The key's randomart image is:
+---[RSA 2048]----+
| . . o.|
| + & ..o|
| * @ %..+|
| . E.Oo+o.|
| So.+.+o+ |
| ..o+o= |
| o+=. |
| o... |
| o=o |
+----[SHA256]-----+
------------------------------------------------------------------------------------------------------------------------------------------
[root@10 ~]# ssh-copy-id 192.168.4.11
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub"
The authenticity of host '192.168.4.11 (192.168.4.11)' can't be established.
ECDSA key fingerprint is SHA256:59Byua15gv4TAVEm7YutMtmgXfxGTYbzSfO84kICu0E.
ECDSA key fingerprint is MD5:7e:6e:95:ed:84:fe:5b:8e:26:94:73:9b:c3:4b:90:cb.
Are you sure you want to continue connecting (yes/no)? yes

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.4.11's password:

Number of key(s) added: 1

Now try logging into the machine, with: "ssh '192.168.4.11'"
and check to make sure that only the key(s) you wanted were added.
------------------------------------------------------------------------------------------------------------------------------------
[root@10 ~]# ssh 192.168.4.11
Last login: Fri Dec 7 14:53:47 2018 from 192.168.4.254
------------------------------------------------------------------------------------------------------------------------------------
[root@11 ~]# exit
登出
Connection to 192.168.4.11 closed.
[root@10 ~]#
########################################################################################
[root@10 ~]# ls /root/.ssh/id_rsa
/root/.ssh/id_rsa
[root@10 ~]# ls /root/.ssh/id_rsa.pub
/root/.ssh/id_rsa.pub


[root@11 ~]# ls /root/.ssh/known_hosts
/root/.ssh/known_hosts
[root@11 ~]# ls /root/.ssh/authorized_keys
/root/.ssh/authorized_keys
########################################################################################
# vim /etc/ssh/sshd_config
47 AuthorizedKeysFile .ssh/authorized_keys 这是放密钥的位置,默认的
#############################################################################
# vim /etc/ssh/sshd_config

PasswordAuthentication yes 不要轻易改这行!是禁止用密码登陆!除非你已经设置好密钥登陆了!
#############################################################################
工作中一般禁用selinux
SELinux(军用级别)
传统的权限针对用户
LINUX,用root执行命令,自动降级为普通

selinux控制程序
target,仅控制网络程序
mls 所有程序
什么程序,可以读什么文件

写规则
1,用a标签的程序,仅可以读aa_tmp的文件
2,用a标签的程序,仅可以读aa_rw的文件
#######################################################################################
ps aux -Z
ls -Z
chcon -t 标签 目录或文件

加-Z查看安全上下文(标签)
# ls -Z
-rw-------. root root system_u:object_r:admin_home_t:s0 anaconda-ks.cfg
-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 a.txt
-rw-r--r--. root root system_u:object_r:admin_home_t:s0 initial-setup-ks.cfg
-rwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 ls
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 公共
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 模板
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 视频
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 图片
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 文档
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 下载
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 音乐
drwxr-xr-x. root root unconfined_u:object_r:admin_home_t:s0 桌面
#######################################################################################
# setenforce 1 先临时生效,改为强制模式
# getenforce
Enforcing

# yum -y install vsftpd
# ls -ldZ /var/ftp/
drwxr-xr-x. root root system_u:object_r:public_content_t:s0 /var/ftp/

# echo a > /var/ftp/a.txt
# ls -lZ /var/ftp/a.txt
-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 /var/ftp/a.txt

# echo root > /root/root.txt 在root下面新建的,标签不同
# ls -lZ /root/root.txt
-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 /root/root.txt

# mv /root/root.txt /var/ftp/ 剪切到ftp默认目录下
# ls -Z /var/ftp/root.txt
-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 /var/ftp/root.txt 标签没变

# systemctl restart vsftpd

真机访问4.10的ftp
ftp://192.168.4.10/
发现只有a.txt。看不到root.txt。
#######################################################################################
# chcon --reference=/var/ftp/a.txt /var/ftp/root.txt 参考a.txt为模版,把root.txt改成像a.txt那样的标签
# ls -Z /var/ftp/root.txt
-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 /var/ftp/root.txt

# chcon -t admin_home_t /var/ftp/root.txt 把root.txt的标签改回原来的
# ls -Z /var/ftp/root.txt
-rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 /var/ftp/root.txt


# chcon -t public_content_t /var/ftp/root.txt 查看a.txt的标签,再复制,改root.txt的标签像a.txt那样
# ls -Z /var/ftp/root.txt
-rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 /var/ftp/root.txt

真机访问4.10的ftp
ftp://192.168.4.10/
发现全都能看到了,a.txt和root.txt。
#######################################################################################
[root@room9pc01 ~]# curl -I https://www.qulv.com/#c01-125214
HTTP/1.1 200 OK
Server: NWSs
Date: Fri, 07 Dec 2018 09:38:56 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 251531
Connection: keep-alive
X-NWS-UUID-VERIFY: 4ea0f6d4a89adc5a98a2355e978a8c03
Set-Cookie: ASP.NET_SessionId=pxnogszzlkoad1d1ogdnpwgn; path=/; HttpOnly
X-AspNetMvc-Version: 4.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
X-NWS-LOG-UUID: 524c97a7-2a69-458e-a0cb-253ff7640c6b
X-Daa-Tunnel: hop_count=2

 

posted @ 2019-04-30 22:54  安于夏  阅读(1143)  评论(0编辑  收藏  举报