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
- 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 查看端口