Xinetd
超级守护进程服务
# yum install xinetd -y
# vim /etc/xinetd.conf
子配置文件目录
/etc/xinetd.d/
例子1:把vsftp服务托管给xinetd
# lsof -i:21
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
vsftpd 6138 root 3u IPv4 171638 TCP *:ftp (LISTEN)
1、
# service vsftpd stop
# vim /etc/vsftpd/vsftpd.conf
listen=NO
2、
# cp /etc/xinetd.d/tftp /etc/xinetd.d/vsftp
# vim /etc/xinetd.d/vsftp
service ftp # 协议的名字
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/vsftpd
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
# service xinetd start
# lsof -i:21
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
xinetd 6741 root 5u IPv4 177272 TCP *:ftp (LISTEN)
例子2:把sshd服务托管给xinetd
# vim /etc/xinetd.d/sshd
service ssh
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/sshd
server_args = -i
disable = no
per_source = 11
cps = 100 2
flags = IPv4
no_access = 10.1.1.22
only_from = 10.1.1.0/24
access_times = 11:30-12:30
log_on_success += DURATION
instances = 10 <---只支持10个用户连接
}
===================================
Tcpwrapper
简单的tcp防火墙
client <-----> Tcpwrapper <----> Server
/etc/hosts.allow
/etc/hosts.deny
例子1:tcpwrapper保护vsftp
1、查看服务是否支持tcpwrapper保护
# ldd /usr/sbin/vsftpd | grep libwrap
libwrap.so.0 => /lib/libwrap.so.0 (0x00743000)
2、实现只允许10.1.1.22访问
# vim /etc/hosts.allow
vsftpd:10.1.1.22
# vim /etc/hosts.deny
vsftpd:All
tcpwrapper的判断过程:
首选判断hosts.allow文件是否有允许访问的规则,如果有,允许,停止继续往下匹配,更不会读取hosts.deny文件的规则
如果hosts.allow里面没有好到匹配的规则,那么就会读取hosts.deny文件的规则,找到则匹配,拒绝连接,如果还是找不到,就允许。
例子2:
本机的ssh经常被黑客穷解密码,为了保护ssh免受破解密码的入侵,可以把连续多次登录失败的IP直接使用tcpwrapper进行拒绝。
实现的是:只拒绝小部分,允许大部分
方法1:
# vim /etc/hosts.allow
留空
# vim /etc/hosts.deny
sshd: 10.1.1.22
方法2:
# vim /etc/hosts.allow
sshd: ALl EXCEPT 10.1.1.22
# vim /etc/hosts.deny
sshd: ALL
例子3:
只允许10.1.1.0/24网段访问ssh,但10.1.1.22不能访问,其他的也不能访问。
方法1:
# vim /etc/hosts.allow
sshd: 10.1.1.0/255.255.255.0 EXCEPT 10.1.1.22
# vim /etc/hosts.deny
sshd: ALL
方法2:
# vim /etc/hosts.allow
sshd:
# vim /etc/hosts.deny
sshd: ALL EXCEPT 10.1.1.0/255.255.255.0 EXCEPT 10.1.1.22
例子4:增加额外的动作。
sshd:10.1.1.22:spawn echo `date` %d %c >> /tmp/sshd.log
通配符号: man hosts.allow
搜索 EXPANSIONS
===============================
Samba
samba 服务端
samba-swat 提供基于web界面配置
samba-client 客户端
samba-common 通用包
配置文件:
# vim /etc/samba/smb.conf
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
security = user 运行模式: share,server,domain,ads
passdb backend = tdbsam
load printers = yes
cups options = raw
[homes]
comment = Home Directories
browseable = no
writable = yes
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
例子1:默认共享用户的家目录
1、把系统帐号添加到samba当中
# id bean
uid=505(bean) gid=506(bean) groups=506(bean)
# id tom
uid=504(tom) gid=505(tom) groups=505(tom)
# smbpasswd -a bean
# smbpasswd -a tom
2、直接重启samba。
默认就有共享家目录的设定
[homes] 《--保留名字
comment = Home Directories
browseable = no 《--隐藏的资源
writable = yes 《--可写资源
# service smb restart
测试
# smbclient -L //10.1.1.254 -U tom
Password:
Domain=[NODE1] OS=[Unix] Server=[Samba 3.0.33-3.14.el5]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Samba Server Version 3.0.33-3.14.el5)
tom Disk Home Directories 《---
访问资源:
# smbclient //10.1.1.254/homes -U tom
# smbclient //10.1.1.254/tom -U tom
# mount -t cifs //10.1.1.254/homes /mnt -o user=tom
例子2:自定一个匿名资源
# vim /etc/samba/smb.conf
[soft]
comment = Softs for office
path = /share/soft
browseable = yes
guest ok = yes
# mkdir -p /share/soft
# service smb restart
测试
# smbclient -L //10.1.1.254/soft
# smbclient //10.1.1.254/soft
Password: 《--留空
匿名资源权限?
默认只读权限
让匿名资源可写,该如何?
1、
read only = no
或者
writable = yes
2、修改目录的权限
# chmod 777 /share/soft/
例子3:定义一个非匿名可见资源,共享名字为pub,路径随意。
这是一个允许下载,上传的资源。
[pub]
comment = just for test
path = /share/pub
browseable = yes
public = no
writable = yes
# chown 777 /share/pub
# chmod o+t /share/pub <<<----
测试:
分别使用两个用户上传文件到该资源里,然后验证是否可以把对方上传的文件删除。如何禁止删除对方的文件。(使用粘贴位t即可);如果要使自己上传的文件也无法删除,就可以考虑到粘贴位的特性,假设上传者上传文件后,文件的拥有者自动改变成了别的账户,那就不可以删除自己上传的文件了,inherit owner 在smb中可以更改文件所有者 , man smb.conf可以查到此选项
应该把上传之后的文件的权限修改成什么样,才能杜绝其他人把自己的文件删除呢?
只要文件拥有者具有w的权限,那么,其他就可以删除。
如何实现上传的文件自动的就去掉自己的w权限
r-x,r--,r--
create mask = 0544
为了让用户能够正常登录samba共享的目录,该用户至少要对该目录有r-x
例子4:
在上面的例子的基础上,实现tom可以上传下载,bean只能下载,不能上传,也不能删除文件。其他用户一律不允许访问该资源。
[pub]
comment = just for test
path = /share/pub
browseable = yes
public = no
valid users= tom,bean
write list = tom
思考:如何实现对用户组的控制
例子5:对访问源进行控制
hosts allow
hosts deny ===> allow,deny冲突,allow生效
只允许 10.1.1.0/24访问,但10.1.1.22不允许,别的IP也不允许
hosts allow = 10.1.1. EXCEPT 10.1.1.22
只禁止10.1.1.0/24访问,但除了10.1.1.22。其他的IP都允许
hosts deny = 10.1.1. EXCEPT 10.1.1.22
想实现更详细的权限控制,可以采用子配置文件,每个用户登录之后都有自己的配置选项。
在全局配置中,添加参数
config file = /etc/samba/user_config/%U.conf
练习:
建立一个非匿名资源,只允许tom,mary,bean访问
tom可以上传下载
mary只允许下载
bean只允许上传,不能下载
阅读(1023) | 评论(0) | 转发(0) |