服務安全與監控1

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 [email protected]    # 允許nb 在任何機器登陸主機52 ,,在192.168.4.254 只允許用戶root 登陸主機52

             黑名單 : 僅僅不允許列表中裏面的用戶

                               DenyUsers   用戶列表

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

    DenyUsers nb [email protected]   # 不允許nb 在任何機器登陸主機52 ,,在192.168.4.254 不允許用戶root 登陸主機52

 

          3.3 認證登陸方式  (默認2種開啓)

                   密鑰對認證登陸 (公鑰 加密,私鑰解密)

                  口令(用戶密碼)

       3.4配置密鑰對認證登陸步驟

             1創建密鑰對 ssh-keygen

            2把公鑰給目標主機 ssh-copy-id [email protected]

四 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

  1. anonymous_enable=YES                                 //開啓匿名訪問
  2. anon_upload_enable=YES                             //允許上傳文件
  3. anon_mkdir_write_enable=YES                         //允許上傳目錄
  4. [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  查看端口

    

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章