用SSL保Samba安全
         在企业中用Samba做为文件服务器是非常容易的事了,那如何保证存储数据的安全,如何保证数据传输的安全呢?我以前介绍过通过Samba安全级别和加装防病毒软件在保证Samba安全的文章,今天给大家介绍基于SSL协议加密samba传输数据保证安全,SSL+证书是基于SSL加密标准之上的具有双重认证,安全性最高。下面介绍的方法和用ssl加密http,ftp传输类似,有过此类应用的同仁在做实验中就不会感到陌生。
        如果客户可以从Internet连接到Samba Server,则喜欢截获信息的Hacker就可以重新构造远程用户正在使用的文件。利用程序他们甚至可以在远程用户正在使用的文件中插入数据。通过SSL加固samba就可以彻底解决此类问题,SSL是一个标准和协议,它允许双方在不安全的网络上互相进行安全的通信。如果对于局域网用户就不必设置了。
编译带有SSL支持的samba,步骤如下:
1.得到、编译和安装SSLeay.可以在站点http://www.cryptsoft.com处得到SSLeay的最新版本。在配置带有SSL支持的samba之前必须进行这个步骤,否则无法编译Samba。
#./Configure linux-elf
CC =gcc
CFLAG =-DL_ENDIAN -DTERMIO -DBN_ASM -O3 -fomit-frame-pointer
EX_LIBS =
BN_MULW =asm/bn86-elf.o
DES_ENC =asm/dx86-elf.o asm/yx86-elf.o
BF_ENC =asm/bx86-elf.o
CAST_ENC =asm/cx86-elf.o
RC4_ENC =asm/rx86-elf.o
RC5_ENC =asm/r586-elf.o
MD5_OBJ_ASM =asm/mx86-elf.o
SHA1_OBJ_ASM =asm/sx86-elf.o
RMD160_OBJ_ASM=asm/rm86-elf.o
THIRTY_TWO_BIT mode
DES_PTR used
DES_RISC1 used
DES_UNROLL used
BN_LLONG mode
RC4_INDEX mode
接下来修改环境变量:PATH=$PATH:/usr/local/ssl/bin
生成文件:cat >/tmp/private.txt
生成随机数
# ssleay genrsa -rand /tmp/private.txt >/dev/null
2451 semi-random bytes loaded
Generating RSA private key, 512 bit long modulus
..+++++
.................................+++++
e is 65537 (0x10001)
2.下载Samba源码编译过程略 编译带有SSL支持的samba,从samba源代码编译修改Makefile文件,安装支持SSL的samba二进制文件。
#./configure --with-ssl
# make clean
# make all
3.为你的samba服务器,创建X.509证书。
# cd /etc
# mkdir certificates
# chmod 700 certificates
修改CA.sb脚本文件
找到CATOP=./demoCA,把它修改成:CATOP=/etc/certificates
下面你就要修改 /usr/local/ssl/lib/ssleay.cnf 文件
把[ CA_default ]字段dir = ./demoCA # Where everything is kept
改成:[ CA_default ]
dir = /etc/certificates # Where everything is kept
接着运行CA脚本:
#/usr/local/ssl/bin/CA.sh -newca
Making CA certificate ...
Using configuration from /usr/local/ssl/lib/ssleay.cnf
Generating a 1024 bit RSA private key
.............................+++++
.....................+++++
writing new private key to /etc/certificates/private/cakey.pem
Enter PEM pass phrase:
Verifying password - Enter PEM pass phrase:
接下来会填写这样的信息:
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:California
Locality Name (eg, city) []:Sebastopol
Organization Name (eg, company) []:O'Reilly
Organizational Unit Name (eg, section) []:Books
Common Name (eg, YOUR name) []:John Doe
Email Address []:doe@ora.com
创建客户端证书:
# ssleay genrsa -des3 1024 >phoenix.key
1112 semi-random bytes loaded
Generating RSA private key, 1024 bit long modulus
........................................+++++
.............+++++
e is 65537 (0x10001)
Enter PEM pass phrase:
Verifying password - Enter PEM pass phrase:
# ssleay req -new -key phoenix.key -out phoenix-csr
Enter PEM pass phrase:
4.配置samba使用ssl,告诉samba服务器证书,以及似有密钥的位置,并设置其他需要的参数。
下一步我们修改samba的配置文件,位置在/etc/certificates
[global]
ssl = yes
ssl server cert = /etc/certificates/cacert.pem
ssl server key = /etc/certificates/private/cakey.pem
ssl CA certDir = /etc/certificates
保存退出后重启smb服务
# nmbd -D
# smbd -D
Enter PEM pass phrase:
经过上面的设置就可以放心的在Interner上安全的使用samba传输数据了。

本文出自 “李晨光原创技术博客” 博客,谢绝转载!

最新文章

  1. Lua 安全调用 metatable 的简单应用
  2. CJCMS系列--持久层对MangoDB的支持
  3. Yii源码阅读笔记(二十八)
  4. CentOS 6.4安装Kangle面板
  5. Error LNK2019: unresolved external symbol "char * __stdcall _com_util::ConvertBSTRToString(wchar_t *)"
  6. Ubuntu 安装vsftp软件(已测试)
  7. 360 chrome不能登录Google账户
  8. 《java入门第一季》之面向对象多态面试题(多态收尾)
  9. Linux内核入门到放弃-网络-《深入Linux内核架构》笔记
  10. 使用python连接mysql/oracle
  11. Windows平台开发Mapreduce程序远程调用运行在Hadoop集群—Yarn调度引擎异常
  12. I/O Completion Ports学习
  13. Mac下更新SVN
  14. php7 改为从栈上分配内在的思路
  15. Http协议——Header说明
  16. Django学习笔记第七篇--实战练习三--关于更有层级的url请求、404错误以及其他响应函数
  17. 《深入理解mybatis原理2》 Mybatis初始化机制详解
  18. Apache: You don't have permission to access / on this server
  19. 关于:“无法序列化会话状态。在“StateServer”或“SQLServer”模式下,...的问题
  20. Tensorlflow-神经网络解决非线性回归问题

热门文章

  1. vuejs on
  2. 空宏-标C中空宏的妙用
  3. Linux-CentOS5/6启动流程
  4. php数据类型及运算
  5. v2.0版本小程序开发心得(代码之外)
  6. Git学习笔记 1,GitHub常用命令1
  7. 中断API之enable_irq
  8. Vue代理&跨域
  9. 【Codeforces Round #421 (Div. 2) A】Mister B and Book Reading
  10. ECNUOJ 2856 仰望星空