前几年学的不用也忘的差不多了,重新记录一下。
-------------------------------------------------------------------------------------------------------
本文主要讲解服务程序有:apache、tcp_wapper、sendmail、samba、nfs、squid、ssh的访问控制。
实验中可以用修改/etc/hosts文件加
127.0.0.1 student.example.com student localhost.localdomain localhost
192.168.100.102 student1.example.com student1
192.168.100.103 abc.crack.org abc
apache测试
----------回顾
deny from 192.168.100.
deny from 192.168.100
deny from 192.168.100.101/24
都可以
域名用.example.com
Order allow,deny
allow from .example.com
表示只允许.example.com访问。
果加上deny from all,表示全部都拒绝,
order deny,allow
deny from .example.com
表示只拒绝.example.com
如果加上allow from all 表示全部都允许,
Deny,Allow
Deny指令在 Allow指令之前被评估。缺省允许所有访问。 任何不匹配Deny指令或者匹配 Allow指令的客户都被允许访问服务器。
Allow,Deny
Allow指令在 Deny指令之前被评估。缺省禁止所有访问。 任何不匹配Allow指令或者匹配 Deny指令的客户都将被禁止访问服务器。
用户登陆认证
directory中加
AllowOverride AuthConfig
在限制的目录下
.htaccess 这个名字固定 千万注意不要写错
写入
AuthName "Auth service"
AuthType basic
AuthUserFile /etc/httpd/conf/.htpasswd 这个名字和位置都不固定,
require valid-user
用htpasswd -c /etc/httpd/conf/.htpasswd 用户名
\\\\\\\\\小结\\\\\\\\\\
只允许.example.com的域访问。
Order allow,deny
allow from .example.com
只不允许.example.com访问
Order deny,allow
deny from .example.com
********************************************************************************************
tcp_wapper
----回顾
1。tcpd先检查hosts.allow再检查hosts.deny,如果前者允许的IP或者域名 后者即使有也不起作用
2。写法不支持24/32/8等mask的写法,必须把掩码写全
如:
sshd: 192.168.0.0/255.255.255.0
单个IP可以不写。
域名用 .example.com
还可以写sshd: all except .example.com
3。rhel3里常用
sshd
vsftpd
ipop3d
例题:
ssh可以被本地子网访问,但是不能让其他网段的用户访问
/etc/hosts.deny
sshd :ALL EXCEPT 192.168.0.
\\\\\\\\\小结\\\\\\\\\\
只允许example.com访问
hosts.allow
sshd:ALL EXCEPT .example.com
hosts.deny无
只不允许example.com访问
hosts.deny
sshd:ALL EXCEPT .example.com
hosts.allow无
**以上的理解是错误的,在tcp_wrapper中,拒绝只能用host.deny**
如果只允许example.com访问
hosts.allow 写sshd:.example.com
hosts.deny 写sshd:all
如果只不允许example.com访问
hosts.allow不写
hosts.deny 写sshd:.example.com
所以:
对于sshd:ALL EXCEPT .example.com这一句,表示的是hosts.allow中对sshd 都允许进入但是除了example.com不运用这个规则,但不表示拒绝,只是表示不进入,如果想拒绝还需要在 hosts.deny中加规则。
***********************************************************************************************
sendmail
写入文件
access中
192.168.0 拒绝是REJECT
无最后的点
域名
******************************************************************************************
ssh限制
如果限制用户登陆
在sshd_config中加入
AllowUsers root 那么除了这个用户都不可以登陆
DenyUsers sshtest 那么对这个用户拒绝登陆
************************************************************************************************
samba限制
------回顾
机制和tcp_wrapper一样,先看allow再看deny
hosts deny = 150.203.4. badhost.mynet.edu.au
hosts allow = 150.203. EXCEPT 150.203.6.66
hosts deny = all except .crack.org
hosts allow = 192.168.100.
Where the lists conflict, the allow list takes precedence.
如果冲突以allow优先。
\\\\\\\\\小结\\\\\\\\\\
只允许example.com访问
hosts allow = .example.com(如果同时不写hosts deny,默认deny all)
或者
hosts deny = all except .example.com
只拒绝example.com访问
hosts deny = .example.com
注意:这里也不能加hosts allow =all,不需要如果有了hosts.deny默认允许其他,加了反而允许全部访问,因为allow优先,和apache里的设置类似。
************************************************************************************
nfs限制
/var/smbtest *.example.com(ro,no_root_squash,async) *.crack.org(rw,root_squash,sync)
注意这里域名前要用 * 号
ip写法:
192.168.100.* == 192.168.100.0/24
/usr/src *.siyongc.domain(ro,root_squash,sync) 192.168.100.*(ro,root_squash,sync)
/var/ftp/pub/incoming 192.168.100.24(rw,all_squash,anonuid=50,anongid=50)
只允许example.com访问
/var/smbtest *.example.com(ro,no_root_squash,async)
**************************************************************************************
squid限制
和sendmail一样默认是deny all
他的规则和tcp_wrapper一样,如果allow通过,那么将不在检查deny
写法 需要先定义,然后在使用
搜索acl all,在之前定义
acl example src 192.168.100.0/24
acl spams dstdomain .hotmail.com
然后 搜索YOUR,使用
http_access deny spams
http_access allow example
只为.example.com的域提供代理,拒绝允许代理的域访问 .hotmail.com的页面
acl allowdomain srcdomain .example.com
acl spams dstdomain .hotmail.com
http_access deny spams
http_access allow example