服务安全与监控1

mysqlredis安全分类:系统安全服务安全数据安全网络安全抓包与扫描监控系统安全:linux基本防护[root@host52~]#chage-lroot最近一次密码修改时间:从不密码过期时间:从不密码失效时间:从不帐户过期时间:从不两次改变密码之间相距的最小天数:0两次改变密码之间相距的最大天数:99999在密码过期之前警告的天数:7[root@host52~]#chage-E2019-05-...

mysql � redis ��

安全分类:系统安全 � 服务安全 �数据安全 � 网络安全 �抓包与扫描 � 监控

系统安全:linux基本防护

� � �[root@host52 ~]# chage -l root�
最近一次密码修改时间�� ��� ��� ��� ��� �:从不
密码过期时间�� ��� ��� ��� ��� �:从不
密码失效时间�� ��� ��� ��� ��� �:从不
帐户过期时间�� ��� ��� ��� ��� ��� �:从不
两次改变密码之间相距的最小天数�� ��� �:0
两次改变密码之间相距的最大天数�� ��� �:99999
在密码过期之前警告的天数�� �:7

[root@host52 ~]# chage -E 2019-05-31 tom � #设置账户过期时间
chage -l 用户名 � #查看账户年龄信息�

锁定用户账户 �passwd --help

[root@proxy ~]# passwd -l zhangsan ��������������������//锁定用户账号lock

锁定用户 zhangsan 的密码。

passwd: 操作成功

[root@proxy ~]# passwd -S zhangsan ��������������������//查看状态status

添加用户由[root@host52 ~]# ls �/etc/login.defs 配置文件决定

PASS_MAX_DAYS � 99999
PASS_MIN_DAYS � 0 � � � 0表示永远不用修改密码
PASS_MIN_LEN � �5 � � � � �密码长度 5
PASS_WARN_AGE � 7 � � � �7天提醒修改密码

伪登陆提示:

[root@host52 ~]# vim /etc/issue


\S �操作系统的版本 � �([root@host52 ~]# �cat �/etc/redhat-release�
� � � � � � � � � � � � � � � � � � � � � � � � � Red Hat Enterprise Linux Server release 7.4 (Maipo)

Kernel \r on an \m � �内核版本和参数 � � � ([root@host52 ~]# �cat �/etc/redhat-release�
� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �Red Hat Enterprise Linux Server release 7.4 (Maipo)
[root@host52 ~]# cat �/etc/issue.net�
\S
Kernel \r on an \m

例子:账户在登录Linux系统时,默认会显示登陆信息(包括操作系统内核信息)

/etc/issue这个配置文件里保存的就是这些登陆信息,修改该文件防止内核信息泄露。

[root@proxy ~]# cat /etc/issue ����������������������������//确认原始文件

Red Hat Enterprise Linux Server release 6.5 (Santiago)

Kernel \r on an \m

[root@proxy ~]# cp /etc/issue /etc/issue.origin ������������//备份文件

[root@proxy ~]# vim /etc/issue ����������������������������//修改文件内容

Windows Server 2012 Enterprise R2

NT 6.2 Hybrid

文件系统安全 :

RHEL6 � �chkconfig �

� � � � � � � � � chkconfig httpd on � � � � �

� � � � � � � � � chkconfig httpd off

� � � � � � � � � service httpd start

� � � � � � � � � service httpd stop

RHEL7 � systemctl �

� � � � � � � � �systemctl enable httpd

� � � � � � � � �systemctl disable httpd

� � � � � � � � � systemctl start httpd

� � � � � � � � �systemctl stop httpd

锁定/解锁保护文件

# chattr i 文件名��������������������//锁定文件(无法修改、删除等)

# chattr -i 文件名��������������������//解锁文件

# chattr a 文件名��������������������//锁定后文件仅可追加

# chattr -a 文件名��������������������//解锁文件

# lsattr 文件名������������������������//查看文件特殊属性

�用户切换与提权��

2.1 用户切换 su

�echo $PWD
� echo $PATH

2.2 用户提权 :

2.2.1配置系统的普通用户可以执行root用户 的命令

2.2.2 主配置文件 : �/etc/sudoers

2.2.3 修改文件: �vim �/etc/sudoers � � 最后一定要强制保存退出 �:wq!

� � � � � � � � � � � � � � �或者 �visudo

2.2.4 提权配置格式:

� 普通用户 �主机名=命令列表(rpm,yum 需要写命令的绝对路径)

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

2.2.5 普通用户执行提权命令 sudo 提权 命令

2.2.6普通用户查看可以使用的提权命令 �sudo �-l

2.2.7 提权例子

[root@host52 ~]# vim �/etc/sudoers

dachui localhost,host52=/usr/bin/systemctl * httpd,/usr/bin/vim /etc/httpd/conf/httpd.conf � # �使dachui有这些权限
tiechui localhost,host52=/usr/bin/systemctl * mysqld,/usr/bin/vim /etc/my.cnf
nb localhost,host52=/usr/bin/systemctl * httpd,/usr/bin/vim /etc/httpd/conf/httpd.conf,/usr/bin/systemctl * mysqld,/usr/bin/vim /etc/my.cnf
## Allows members of the 'sys' group to run networking, software,�

给 dachui,tiechui,nb赋与指定的特权

2.2.8 �别名设置 (给多个值,起一个名字)

命令别名 �Cmnd_Alias�

主机别名 Host_Alias�

用户别名 User_Alias

[root@host52 ~]# vim �/etc/sudoers

Cmnd_Alias MGMWEB=/usr/bin/systemctl * httpd,/usr/bin/vim /etc/httpd/conf/httpd.conf � # �MGMWEB � 一定要大写
Cmnd_Alias MGMDB=/usr/bin/systemctl * mysqld,/usr/bin/vim /etc/my.cnf
Cmnd_Alias MGMSOFT=/usr/bin/rpm,/usr/bin/yum
Host_Alias MYSER=localhost,host52
dachui MYSER=MGMWEB,MGMSOFT
tiechui �MYSER=MGMDB,MGMSOFT
nb MYSER=MGMWEB,MGMSOFT,MGMDB

�用nb 这个用户登陆 host52 ,执行提权命令 :�[nb@host52 ~]$ sudo systemctl stop �httpd

� � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � � �[nb@host52 ~]$ sudo systemctl restart httpd

2.2.9启用日志 � �

[root@host52 ~]# vim �/etc/sudoers

Defaults logfile="/var/log/sudo.log" � # �只有在普通用户登陆后,执行了提权的操作后才会出现这个文件

三 � ssh 访问登陆控制

� � � � 3.1 ssh服务常用配置

� � � � 3.2 黑白名单 �(限制客户端连接时使用的用户及客户端地址)

� � � � � � �白名单: 仅仅允许使用列表里面的用户连接

� � � � � � � � � � � � � � � �AllowUsers �用户列表� � �

[root@host52 ~]# vim �/etc/ssh/sshd_config�

� � � �AllowUsers nb root@192.168.4.254 � �# 允许nb 在任何机器登陆主机52 ,,在192.168.4.254 只允许用户root 登陆主机52

� � � � � � �黑名单 : 仅仅不允许列表中里面的用户

� � � � � � � � � � � � � � � �DenyUsers � 用户列表

[root@host52 ~]# vim �/etc/ssh/sshd_config�

� � DenyUsers nb root@192.168.4.254 ��# 不允许nb 在任何机器登陆主机52 ,,在192.168.4.254 不允许用户root 登陆主机52

� � � � � 3.3 认证登陆方式 �(默认2种开启)

� � � � � � � � � �密钥对认证登陆 (公钥 加密,私钥解密)

� � � � � � � � � 口令(用户密码)

� � � �3.4配置密钥对认证登陆步骤

� � � � � � �1创建密钥对 ssh-keygen

� � � � � � 2把公钥给目标主机 ssh-copy-id root@192.168.4.52

四 SElinux安全防护

� � � 定义 : 一套强化Linux安全的扩展模块

� � �运作机制 : �集成到Linux内核(2.6及以上) ��[root@host53 ~]# uname �-r

� � � � � � � � � � � � � �操作系统提供可以定制的策略,管理工具

�[root@host53 ~]# �sestatus � �# 查看selinux状态
SELinux status: � � � � � � � � enabled
SELinuxfs mount: � � � � � � � �/sys/fs/selinux
SELinux root directory: � � � � /etc/selinux
Loaded policy name: � � � � � � targeted
Current mode: � � � � � � � � � enforcing
Mode from config file: � � � � �enforcing
Policy MLS status: � � � � � � �enabled
Policy deny_unknown status: � � allowed
Max kernel policy version: � � �28

查看安全上下文

� � � �文件 �ls �-lZ 文件名

� � � �目录 �ls -ldZ 目录名

� � � 进程 � ps � �aux -Z �| grep �-i � 进程名

[root@host53 ~]# ps �aux �-Z � | grep �-i �httpd


用户:角色:访问类型:选项

system_u:system_r:httpd_t:s0

system_u:system_r:mysqld_t:s0

4.2.2 一般规律 :

� � � � 移动的文件 : 所有的上下文属性不变

� � � �复制的文件 : 自动继承目标位置的上下文

修改安全上下文

� � �chcon

�� �]# chcon -R -t httpd_sys_content_t /var/www/html �

� � ]# chcon -t httpd_sys_content_t /var/www/html/a4.html

重置安全上下文

� restorecon

[root@host53 ~]# restorecon �/var/www/html/a5.html�

[root@host53 ~]# restorecon �-R /var/www/html/

(禁用selinux)在主机192.168.4.53上运行vsftpd服务 �允许匿名用户 访问服务的/var/ftp/share目录时有上传和下载文件的权限

主机53 :yum �-y install vsftp

� � �vim ��/etc/vsftpd/vsftpd.conf

  • anonymous_enable=YES ��������������������������������//开启匿名访问
  • anon_upload_enable=YES ����������������������������//允许上传文件
  • anon_mkdir_write_enable=YES ������������������������//允许上传目录
  • [root@proxy ~]# systemctl start vsftpd����������������//启动服务
  • [root@host53 ~]# mkdir /var/ftp/share

    � �[root@host53 ~]chmod o=rwx /var/ftp/share/ � �

    在主机50 上面操作,

    � �[root@host50�~]# yum �-y install ftp

    [root@host50�~]# ftp 192.168.4.53
    Connected to 192.168.4.53 (192.168.4.53).
    220 (vsFTPd 3.0.2)
    Name (192.168.4.53:root): ftp
    331 Please specify the password.
    Password: � � � � � � � # 直接按空格 不用输入密码�

    下载文件 :

    [root@host50�~]# ftp 192.168.4.53
    ftp> cd share
    250 Directory successfully changed.
    ftp> ls
    ftp> get passwd
    上传文件

    ftp> cd share
    ftp> lcd /etc/
    ftp> put �hosts

    ftp �192.168.4.53 �连接53主机的ftp服务�� �
    �� ��� �get �下载
    �� ��� �put �上传
    �� ��� �cd � 进入ftp服务的目录
    � � � � � � � � lcd �进入客户端本机目录�

    4.2.5 SElinux 布尔值�

    � � 1查看布尔值 �getsebool -a

    � � � � � � � � � getsebool -a �| grep samba

    � 2.修改布尔值 � � � � ��

    � � � �]# setsebool �-P ftpd_anon_write on
    �� ��� ��� �]# setsebool �-P ftpd_full_access=1


    �� ��� �查看SElinux的日志信息 排错

    关闭SELinux,运行53主机的httpd服务 服务使用的端口号是8077 在网页目录编写测试文件test.html在客户端访问
    �� ��� �
    �� ��� �]# setenforce 0

    �� ��� �]# rpm -q httpd || �yum -y �install
    �� ��� �]# vim 42 /etc/httpd/conf/httpd.conf
    �� ��� � � � Listen 8077
    �� ��� �:wq
    �� ��� �]# systemctl �start httpd
    �� ��� �]# netstat �-utnlp �| grep �:8077
    �� ��� �]# echo �"192.168.4.53-web" > /var/www/html/test.html

    �� ��� �]# curl http://localhost:8077/test.html
    �� ��� ��� �192.168.4.53-web

    �� ��� � ]# setenforce 1
    �� ��� � ]# vim 42 /etc/httpd/conf/httpd.conf
    � � � � � � � � � � �Listen 8099
    � � � � � � � � :wq
    �� ��� �]# systemctl �restart httpd 启动服务失败
    �� ��� �]# rpm -qa | grep setroubleshoot �查看日志程序软件包
    �� ��� �]# ls /var/log/messages � 记录日志的文件
    �� ��� �]# grep setroubleshoot /var/log/messages | tail -1 过滤日志

    Jun �2 16:43:50 host53 setroubleshoot: SELinux is preventing /usr/sbin/httpd from name_bind access on the tcp_socket port 8099. For complete SELinux messages run: sealert -l e2513e9a-d942-44e5-963c-43f4e783e979

    �� ��� �]# sealert -l e2513e9a-d942-44e5-963c-43f4e783e979 执行命令

    �� ��� �]# setsebool -P httpd_run_preupgrade 1
    �� ��� �]# ausearch -c 'httpd' --raw | audit2allow -M my-httpd
    �� ��� �]# semodule -i my-httpd.pp

    �� ��� �]# systemctl �start httpd �服务启动成功
    �� ��� �]# netstat �-utnlp �| grep �:8099 �查看端口

    �� �

    源文地址:https://www.guoxiongfei.cn/csdn/4657.html
    0