TCP Wrapper & Samba
    1.TCP Wrapper
      一般在操作系统层面上安装防火墙来处理网络连接,然而虽然防火墙有非常广泛的用途,但他却不是万能的,例如它无法处理类似的向连接发起者发送一些文本这样的任务。
      TCP Wrappers扩展了inetd为受其控制的服务程序实施控制的能力,通过使用这种方法,它能够提供日志支持、返回消息给联入的连接、使得服务程序只接受内部连接,等等。
      然而,由TCP Wrappers提供的一些额外的安全功能,不应被视为好的防火墙的替代品,TCP Wrappers 应结合防火墙或其他安全加强设施一并使用,为系统多提供一层安全防护。
      所有受控于xinetd的进程通过使用库文件libwrap.so实现对服务的访问控制。Linux系统中,使用命令ldd查询某个服务是否收TCP wrapper控制例如:#ldd `which ssd` | grep libwrap。对于静态连接方式连接到libwrap.so的服务可是使用以下命令查询:(portmap为例)#string `which portmap` | grep hosts
     
      TCP Wrapper的配置文件有两个:/etc/hosts.allow,/etc/hosts.deny,而且当数据进入的时候,其检查顺序是先匹配allow文件,然后匹配deny文件。最后才是默认文件,默认是允许通过。
     
      TCP Wapper的配置文件的个格式十分简单,其格式是: demon_list: client_list [:options],例如:在allowed文件中写入in.telnetd: 192.168.0.1表示允许IP为192.168.0.1访问本机的telnet服务在,同时,其客户端的列表中内容支持IP格式,主机名格式,也支持网络/掩码格式,但是掩码必须为长格式的掩码,还支持网络组的格式。
      
      下面是笔者的一个简单的TCP wrapper的配置文件:
      allow中:vsftpd: 192.168.0.0/255.255.255.0 EXCEPT 192.168.0.212 : spawn echo 'TIME IS `date` login attempt from %c to %s ,the host is %h .PID is %p' >> /var/log/tcpwrapper.log
      deny中:vsftpd: ALL
      表示以仅允许192.168.0.0/24网段内除去192.168.0.212的所有主机访问本机的FTP服务,并且在其访问时记录下其访问时间,主机名和PID,和日志信息一并存入/var/log/tcpwrapper.log
     
    2.Samba
      早期的Windows的文件共享协议为SMB/CIFS,Linux的文件共享是通过NFS实现的,不幸的是这两个协议是不能互相兼容的。所以,为了实现两种操作系统的主机的文件共享,Samba出现了。
     
      Samba的软件包为:samba,samba-commom,samba-client。其守护进程为/usr/sbin/nmbd,/usr/sbin/smbd。其监听的端口为:137/udp(netbios-ns),128/udp(netbios-dgm),139/tcp(netbios-ssn),445/tcp(microsoft-ds),其配置文件为/etc/samba/smb.conf,/etc/samba
     
      Samba的配置还可以通过web的方式实现,安装软件包samba-swat,然后,启动该服务后在浏览器中输入http://localhost:901,就可以进入其网页配置页面了。
     
      Samba的配置文件由3部分组成,[global]用于设置全局的配置,[home]用于确定是否可以通过samba访问用户的家目录,[printers]用于定义打印机资源和服务。其中管理员可以定义自定义的配置部分。例如在配置文件的最后添加一下内容:[dongni]
                                comment = dongni's samba
                                path = /samba
                                public = no
                                writable = no
                                printable = no
      配置完成后可以使用命令testparm进行语法测试。
     
      登陆时密码的创建:
      Samba默认工作于user模式,登录时需要输入用户名和密码,其中,samaba对应的用户必须是系统中的一个用户,其密码需要另外设置。命令为#smbpasswd -a dongni 选项-a 表示添加用户,-x表示删除用户,-d临时禁用一个用户,-e启用禁用的帐号
     
      客户端工具:smbclient -L hostname 列出主机所有的共享资料;-U username%passwd 以某用户名和其对应的密码登录。