一、TCP_Wrappers介紹
工作在第四層(傳輸層)的TCP協(xié)議
對有狀態(tài)連接的特定服務(wù)進(jìn)行安全檢測并實(shí)現(xiàn)訪問控制
以庫文件形式實(shí)現(xiàn)
某進(jìn)程是否接受libwrap的控制,取決于發(fā)起此進(jìn)程的程序在編譯時(shí)是否調(diào)用libwrap
判斷服務(wù)程序是否能夠由tcp_wrapper進(jìn)行訪問控制的方法:
ldd /PATH/TO/PROGRAM|grep libwrap.so
strings PATH/TO/PROGRAM|grep libwrap.so
1.1 TCP_Wrappers使用
配置文件:/etc/hosts.allow, /etc/hosts.deny
幫助參考:man 5 hosts_access,man 5 hosts_options
檢查順序:hosts.allow,hosts.deny(如無內(nèi)容則表示默認(rèn)允許)
注:一旦前面規(guī)則匹配,直接生效,將不再繼續(xù)
基本語法:
daemon_list@host: client_list [ :options :option… ]
daemon_list@host格式:
- 單個(gè)應(yīng)用程序的二進(jìn)制文件名,而非服務(wù)名,例如vsftpd
- 以逗號(hào)或空格分隔的應(yīng)用程序文件名列表,如:sshd,vsftpd
- ALL表示所有接受tcp_wrapper控制的服務(wù)程序
- 主機(jī)有多個(gè)IP,可用@hostIP來實(shí)現(xiàn)控制
例如:in.telnetd@192.168.0.254
客戶端Client_list格式
- 以逗號(hào)或空格分隔的客戶端列表
- 基于IP地址:192.168.10.1 192.168.1.
- 基于主機(jī)名:www.magedu.com .magedu.com 較少用
- 基于網(wǎng)絡(luò)/掩碼:192.168.0.0/255.255.255.0
- 基于net/prefixlen: 192.168.1.0/24(CentOS7)
- 基于網(wǎng)絡(luò)組(NIS 域):@mynetwork
- 內(nèi)置ACL:ALL,LOCAL,KNOWN,UNKNOWN,PARANOID
EXCEPT用法:
示例:拒絕172.16.0.0/16網(wǎng)段連接vsftpd進(jìn)程,除了172.16.100.0/24,但172.16.100.1例外
vsftpd: 172.16. EXCEPT 172.16.100.0/24 EXCEPT 172.16.100.1
常見用法示例:編寫腳本/root/bin/checkip.sh,每5分鐘檢查一次,如果發(fā)現(xiàn)通過ssh登錄失敗次數(shù)超過10次,自動(dòng)將此遠(yuǎn)程IP放入Tcp Wrapper的黑名單中予以禁止防問
cat checkip.sh
#!/bin/bash
lastb|awk '!/^btmp|^$/{ip[$3]++}END{for(i in ip){if(ip[i]>=10){system("echo sshd: "i" >> /etc/hosts.deny")}}}'
crontab -l
*/5 * * * * /root/checkip.sh
cat /etc/hosts.deny
#
# hosts.deny This file contains access rules which are used to
# deny connections to network services that either use
# the tcp_wrappers library or that have been
# started through a tcp_wrappers-enabled xinetd.
#
# The rules in this file can also be set up in
# /etc/hosts.allow with a 'deny' option instead.
#
# See 'man 5 hosts_options' and 'man 5 hosts_access'
# for information on rule syntax.
# See 'man tcpd' for information on tcp_wrappers
#
sshd: 192.168.75.131
二、sudo權(quán)限
等價(jià)于:su 切換身份 su -l username -c ‘command’
- 來自sudo包,man 5 sudoers
- sudo能夠授權(quán)指定用戶在指定主機(jī)上運(yùn)行某些命令。如果未授權(quán)用戶嘗試使用 sudo,會(huì)提示聯(lián)系管理員
- sudo可以提供日志,記錄每個(gè)用戶使用sudo操作
- sudo為系統(tǒng)管理員提供配置文件,允許系統(tǒng)管理員集中地管理用戶的使用權(quán)限和使用的主機(jī)
- sudo使用時(shí)間戳文件來完成類似“檢票”的系統(tǒng),默認(rèn)存活期為5分鐘的“入場券”
- 通過visudo命令編輯配置文件,具有語法檢查功能
visudo -c 檢查語法
visudo -f /etc/sudoers.d/test
2.1 sudo使用
配置文件:/etc/sudoers, /etc/sudoers.d/
時(shí)間戳文件:/var/db/sudo
日志文件:/var/log/secure
配置文件支持使用通配符glob:
? 任意單一字符
* 匹配任意長度字符
[wxc] 匹配其中一個(gè)字符
[!wxc] 除了這三個(gè)字符的其它字符
\x 轉(zhuǎn)義
[[alpha]] 字母 示例: /bin/ls [[alpha]]*
配置文件規(guī)則
1、別名定義:不是必須的
2、授權(quán)規(guī)則:必須的
授權(quán)規(guī)則格式:
用戶 登入主機(jī)=(代表用戶) 命令
user host=(runas) command
示例:
root ALL=(ALL) ALL
- 格式說明:
user: 運(yùn)行命令者的身份
host: 通過哪些主機(jī)
(runas):以哪個(gè)用戶的身份
command: 運(yùn)行哪些命令
配置示例:配置magedu用戶的sudo權(quán)限,允許magedu用戶擁有root權(quán)限
visudo ##在第100行下方添加如下內(nèi)容:
magedu ALL=(ALL) ALL
保存退出:wq
驗(yàn)證結(jié)果:
su - magedu
cat /etc/shadow
cat: /etc/shadow: Permission denied
sudo cat /etc/shadow
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for magedu:
root:$6$xYGbjjf5gHfWfU74$evxYxJ0LdnpmAH0mXY7RbYGo7W4ngrmZRZJe85wuH4u.xthGn/jNz6l3ievX3Hp8CCEnxBvvqjELBI5jvvpqz.::0:99999:7:::