当前位置: 操作系统/服务器>linux
本页文章导读:
▪IIS7下配置SSL的方法分析
在IIS7中,HTTP.sys在内核模式下操作SSL加密解密,相对于IIS6,这种方式能提高近20%的性能。 当SSL运行于内核模式时,会将SSL绑定信息保存在两个地方。第一个地方,绑定配置保存在%windir%\Syst.........
▪VSFTPD配置(匿名——本地用户——虚拟用户)
1,下载VSFTPD.TAR.GZ 程序下载地址:ftp://vsftpd.beasts.org/users/cevans/ 2,检查和建立相应账户和目录 1,nobody用户 [root@main vsftpd-2.1.0]# cat /etc/passwd |grep nobody nobody:x:99:99:Nobody:/:/sbin/nologin 如不存在请建.........
▪基于gentoo安装Nginx php mysql的方法
1、先在/etc/make.conf加入sync站点,待会儿要用emerge进行同步。 代码如下: SYNC="rsync://rsync.gentoo.org/gentoo-portage" 在执行 emerge --sync 同步portage树。 2、升级portage 版本,要不待会儿安装mysql的时候.........
[1]IIS7下配置SSL的方法分析
来源: 互联网 发布时间: 2013-12-24
在IIS7中,HTTP.sys在内核模式下操作SSL加密解密,相对于IIS6,这种方式能提高近20%的性能。
当SSL运行于内核模式时,会将SSL绑定信息保存在两个地方。第一个地方,绑定配置保存在%windir%\System32\inetsrv\config\applicationHost.config中,当站点启动时,IIS7发送绑定信息给HTTP.sys,同时HTTP.sys会在特定的IP和端口监听请求。第二个地方,与绑定相关联的SSL配置保存在HTTP.sys配置中。使用netsh命令可以查看保存在HTTP.sys的SSL绑定配置:
netsh http show sslcert
当一个客户开始连接并初始化SSL协商时,HTTP.sys在它的配置中查找这个IP:Port对应的SSL配置。这个SSL配置必须包括证书hash值和名称:
l 在ApplicationHost.config中确认这个绑定是否存在
l HTTP.sys中是否包含有效证书的hash值以及命名是否存在
选择证书时,需要考虑以下问题:
是否想让最终用户能够通过你提供的证书确认你服务器的唯一性?
如果是的,则
要么建立一个证书请求,并且发送证书请求到证书权威机构(CA),比如VeriSign或者GeoTrust;
要么从Intranet的在线CA那里获取一个证书
浏览器一般用三样东西来确认服务器证书的有效性:
1. 当前日期在证书的有效期范围内
2. 证书的“Common Name”(CN)与请求中的主机名相匹配。比如,如果客户发起了一个到http://www.contoso.com的请求,则CN必须是这样的:http://www.contoso.com/
3. 证书的发行者是已知的和受到信任的CA
如果其中有1项失败,浏览器就会警告用户。如果你有个Internet站点或者你不怎么熟的Intranet用户,那你就需要确保这3项是都通过的。
自签名的证书可以用你自己的计算机创建。如果最终用户不重要,或者他们信任你的服务器,又或者用于测试环境,则这种自签名证书将会非常有用。
Ø 使用WMI来绑定SSL证书
使用WMI命名空间,是不能够请求或者创建证书。
建立SSL绑定
以下脚本展示了如何建立SSL绑定,以及添加相应信息到HTTP.sys中:
Set oIIS = GetObject("winmgmts:root\WebAdministration")
'''''''''''''''''''''''''''''''''''''''''''''
' CREATE SSL BINDING
'''''''''''''''''''''''''''''''''''''''''''''
oIIS.Get("SSLBinding").Create _
"*", 443, "4dc67e0ca1d9ac7dd4efb3daaeb15d708c9184f8", "MY"'''''''''''''''''''''''''''''''''''''''''''''
' ADD SSL BINDING TO SITE
'''''''''''''''''''''''''''''''''''''''''''''
Set oBinding = oIIS.Get("BindingElement").SpawnInstance_
oBinding.BindingInformation = "*:443:"
oBinding.Protocol = "https"
Set oSite = oIIS.Get("Site.Name='Default Web Site'")
arrBindings = oSite.Bindings
ReDim Preserve arrBindings(UBound(arrBindings) + 1)
Set arrBindings(UBound(arrBindings)) = oBinding
oSite.Bindings = arrBindings
Set oPath = oSite.Put_
注意:证书的hash值和名称必须引用了你服务其上真实且有用的证书。如果其中有一项虚假,就会出现错误。
注意:证书的hash值和名称必须引用了你服务其上真实且有用的证书。如果其中有一项虚假,就会出现错误。
配置SSL设置
以下脚本展示了如何通过IIS7的WMI提供程序来设置SSL。
CONST SSL = 8
Set oIIS = GetObject("winmgmts:root\WebAdministration")
Set oSection = oIIS.Get( _
"AccessSection.Path='MACHINE/WEBROOT/APPHOST',Location='Default Web Site'")
oSection.SslFlags = oSection.SslFlags OR SSL
oSection.Put_
使用IIS管理器来绑定SSL证书
当SSL运行于内核模式时,会将SSL绑定信息保存在两个地方。第一个地方,绑定配置保存在%windir%\System32\inetsrv\config\applicationHost.config中,当站点启动时,IIS7发送绑定信息给HTTP.sys,同时HTTP.sys会在特定的IP和端口监听请求。第二个地方,与绑定相关联的SSL配置保存在HTTP.sys配置中。使用netsh命令可以查看保存在HTTP.sys的SSL绑定配置:
netsh http show sslcert
当一个客户开始连接并初始化SSL协商时,HTTP.sys在它的配置中查找这个IP:Port对应的SSL配置。这个SSL配置必须包括证书hash值和名称:
l 在ApplicationHost.config中确认这个绑定是否存在
l HTTP.sys中是否包含有效证书的hash值以及命名是否存在
选择证书时,需要考虑以下问题:
是否想让最终用户能够通过你提供的证书确认你服务器的唯一性?
如果是的,则
要么建立一个证书请求,并且发送证书请求到证书权威机构(CA),比如VeriSign或者GeoTrust;
要么从Intranet的在线CA那里获取一个证书
浏览器一般用三样东西来确认服务器证书的有效性:
1. 当前日期在证书的有效期范围内
2. 证书的“Common Name”(CN)与请求中的主机名相匹配。比如,如果客户发起了一个到http://www.contoso.com的请求,则CN必须是这样的:http://www.contoso.com/
3. 证书的发行者是已知的和受到信任的CA
如果其中有1项失败,浏览器就会警告用户。如果你有个Internet站点或者你不怎么熟的Intranet用户,那你就需要确保这3项是都通过的。
自签名的证书可以用你自己的计算机创建。如果最终用户不重要,或者他们信任你的服务器,又或者用于测试环境,则这种自签名证书将会非常有用。
Ø 使用WMI来绑定SSL证书
使用WMI命名空间,是不能够请求或者创建证书。
建立SSL绑定
以下脚本展示了如何建立SSL绑定,以及添加相应信息到HTTP.sys中:
代码如下:
Set oIIS = GetObject("winmgmts:root\WebAdministration")
'''''''''''''''''''''''''''''''''''''''''''''
' CREATE SSL BINDING
'''''''''''''''''''''''''''''''''''''''''''''
oIIS.Get("SSLBinding").Create _
"*", 443, "4dc67e0ca1d9ac7dd4efb3daaeb15d708c9184f8", "MY"'''''''''''''''''''''''''''''''''''''''''''''
' ADD SSL BINDING TO SITE
'''''''''''''''''''''''''''''''''''''''''''''
Set oBinding = oIIS.Get("BindingElement").SpawnInstance_
oBinding.BindingInformation = "*:443:"
oBinding.Protocol = "https"
Set oSite = oIIS.Get("Site.Name='Default Web Site'")
arrBindings = oSite.Bindings
ReDim Preserve arrBindings(UBound(arrBindings) + 1)
Set arrBindings(UBound(arrBindings)) = oBinding
oSite.Bindings = arrBindings
Set oPath = oSite.Put_
注意:证书的hash值和名称必须引用了你服务其上真实且有用的证书。如果其中有一项虚假,就会出现错误。
注意:证书的hash值和名称必须引用了你服务其上真实且有用的证书。如果其中有一项虚假,就会出现错误。
配置SSL设置
以下脚本展示了如何通过IIS7的WMI提供程序来设置SSL。
代码如下:
CONST SSL = 8
Set oIIS = GetObject("winmgmts:root\WebAdministration")
Set oSection = oIIS.Get( _
"AccessSection.Path='MACHINE/WEBROOT/APPHOST',Location='Default Web Site'")
oSection.SslFlags = oSection.SslFlags OR SSL
oSection.Put_
使用IIS管理器来绑定SSL证书
获取一个证书
在树目录中选择服务器节点,在右面双击Server Certificates图标:
单击Create Self-Signed Certificate…按钮:
输入新证书的名字后单击OK。
现在你有了一个自签名证书。这个证书被标记为”服务器端验证”
建立SSL绑定
选择一个站点,在Actions面板中单击Bindings…。会显示出添加、修改、删除绑定对话框。单击Add…按钮添加新的SSL绑定。
默认设置是80端口,在类型下拉框中选择https,在SSL Certificate下拉框中选择你刚才建立的自签名证书名字,单击OK。
现在你已经完成SSL绑定的建立工作了,剩下的就是要确认是否工作正常了。
Ø SSL绑定的确认
在Actions面板中,在Browse web site下,单击刚才增加的绑定
由于这个证书是个自签名的证书,IE7会显示一个错误页面。
单击Continue to this website(not recommended).继续
Ø 配置SSL设置
当你要求用户必须使用证书,又或者必须SSL方式连接时,你需要配置SSL设置。双击SSL Settings如下图:
[2]VSFTPD配置(匿名——本地用户——虚拟用户)
来源: 互联网 发布时间: 2013-12-24
1,下载VSFTPD.TAR.GZ
程序下载地址:ftp://vsftpd.beasts.org/users/cevans/
2,检查和建立相应账户和目录
1,nobody用户
[root@main vsftpd-2.1.0]# cat /etc/passwd |grep nobody
nobody:x:99:99:Nobody:/:/sbin/nologin
如不存在请建立相关账户。
2,/usr/share/empty 目录, 如不存在请创建
3,如允许匿名访问,需创建Ftp用户,家目录为/var/ftp(一般ftp用户存在而家目录不存在)
[root@main vsftpd-2.1.0]# mkdir /var/ftp/
[root@main vsftpd-2.1.0]# chown root.root /var/ftp
[root@main vsftpd-2.1.0]# chmod 755 /var/ftp
3,解压、编译、安装程序(其实vsftpd用rpm和用源码安装差不多,编译安装反而不方便,推荐各位RPM安装,呵呵)
[root@main ~]# tar xzfv vsftpd-2.1.0.tar.gz
[root@main ~]# cd vsftpd-2.1.0
[root@main vsftpd-2.1.0]# make && make install
4,复制相关文件
如果是用RPM安装,可能会和源码安装的文件路径略有不同,如/etc/vsftpd.conf变成了/etc/vsftpd/vsftpd.conf,这类变动请自行 find相关文件。
主配置文件
[root@main vsftpd-2.1.0]# cp vsftpd.conf /etc/vsftpd.conf
PAM身份验证用文件
[root@main vsftpd-2.1.0]# cp RedHat/vsftpd.pam /etc/pam.d/ftp
5,配置vsftpd.conf
启用/禁止匿名用户访问。
anonymous_enable=YES/NO
允许本地用户登录并允许其上传文件。
local_enable=YES
write_enable=YES
将本地用户锁定在主目录中,不允许切换到上一级目录中
chroot_local_user=YES
匿名和本地用户限速(单位byte)
anon_max_rate=数字
local_max_rate=数字
禁止某些用户通过ftp登录服务器。如果设置了local_enable=YES,那么所有的用户包括root也能通过ftp登录服务器,出于安全考虑,需要对某些用户进行限制。在vsftpd.conf中有三个选项控制:
userlist_deny=YES/NO
userlist_enalbe=YES
userlist_file=/etc/vsftpd.user_list
如果userlist_deny=YES,/etc/vsftpd.user_list中列出的用户名就不允许登录ftp服务器;如果userlist_deny=NO,/etc/vsftpd.user_list中列出的用户名允许登录ftp服务器。我们只要在/etc目录下创建vsftpd.user_list文件,文件内容为允许登录或禁止登录的用户名,每个用户一行。
禁止用户通过FTP修改文件或文件夹的权限。
chmod_enable=NO(
设置本地用户上传的文件或文件夹的umask值(默认为077)
local_umask=022
最多同时允许100个客户连接
max_clients=100
每个ip地址最多允许开3个线程
max_per_ip=3
只监听来访问192.168.0.2(适用本机多网卡、多IP的情况)的FTP服务请求
listen_address=192.168.0.2
6,安装完成后使用vsftpd命令即可启动vsftpd服务。保证防火墙开放相关端口后尝试下匿名登陆吧,注意所有匿名用户都登录到相同的目录中/var/ftp。
我们可以通过pgrep vsftpd 来查看vsftpd是否运行起来,可以用pkill vsftpd 来杀死vsftpd进程,把vsFTPd关闭。所以上文说更推荐用rpm安装,那样就可以用service vsftpd start|stop|restart来控制了。
[root@main ~]# pgrep vsftpd
2745
[root@main ~]# pkill vsftpd
7,设置pub目录,允许匿名用户上传、下载文件。
更改配置文件,确保有这几项:
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_umask=022
新建文件夹,并更改权限。
[root@main ~]# mkdir /var/ftp/pub
[root@main ~]# chmod 777 /var/ftp/pub
尝试一下匿名上传下载吧,应该没问题。
8,设置使用本地用户登陆FTP服务器,并进行权限设置。
添加一个只能从ftp登录服务器,而不能从本地shell登录的用户。以下创建一个用户ftpuser,不允许从本地登录
[root@localhost root]# useradd -g ftp -s /sbin/nologin ftpuser
创建账户和密码后改一下配置文件vsftpd.conf ,以确保本地虚拟用户能有读写权限:
local_enable=YES
write_enable=YES
local_umask=022
尝试用本地用户上传和下载文件。(PS,我不知道为什么我无法进行上传下载操作,但我重启系统后可以应用了)
还可以用userlist_deny=YES/NO
userlist_enalbe=YES
userlist_file=/etc/vsftpd.user_list
这些选项对用户进行控制。
9,尝试使用虚拟用户访问FTP服务。
创建一个口令源文件,文件格式是第一行用户名、第二行密码、第三行用户名、第四行密码……
[root@main ~]# cat temp_pass.txt
caocao
caomengde
xiaocaocao
xiaocaomengde
使用db_load命令生成认证文件。我遇到的情况就是本机没有db_load这个命令,网上搜到的答案是缺少DB4的rpm包,应该是把光盘中DB4开头的rpm包都装全,我嫌麻烦,采用的yum -y install db4*,装了以后就有db_load命令了。
[root@main ~]# db_load -T -t hash -f temp_pass.txt /etc/vuser.db
设置db文件的权限,同时删除口令文件。
[root@main ~]# chmod 600 /etc/vuser.db
[root@main ~]# rm temp_pass.txt
建立虚拟用户所需的PAM配置文件
[root@main ~]# vi /etc/pam.d/ftpuser.vu
#添加如下内容
auth required /lib/security/pam_userdb.so db=/etc/vuser
account required /lib/security/pam_userdb.so db=/etc/vuser
添加新用户,可以考虑设置该用户nologin
[root@main home]# useradd vuserftp
修改vsftpd.conf配置文件,有则改,无则添加。
guest_enable=YES
guest_username=vuserftp
pam_service_name=ftpuser.vu
重启一下,现在访问ftp://caocao@ftp是否可以用caomengde做密码访问?如果期间有小问题,可以考虑以下目录权限问题。
10,尝试给虚拟用户分配权限
修改VSFTPD的配置文件,有则改,无则加。创建并进入这个文件夹。
user_config_dir=/etc/vuserftp/
[root@main vuserftp]# mkdir /etc/vuserftp/
[root@main vuserftp]# cd /etc/vuserftp/
创建虚拟用户权限的配置文件
[root@main vuserftp]# vi caocao
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/vuserftp/caocao
创建虚拟用户的目录,并配置权限。
[root@localhost ~]# mkdir /home/vuserftp/caocao
[root@localhost ~]# chown vuserftp /home/vuserftp/caocao/
11,我又照着这个教程复核了一下虚用户登录FTP的相关过程。show 相关配置文件和权限,因仅仅是实验用的,所以配置比较粗糙。大家可以自己优化和精简。
[root@localhost ~]# ll /home/vuserftp/
total 4
drwxr-xr-x 2 root root 4096 Mar 30 09:47 caocao
[root@localhost ~]# grep -v '#' /etc/vsftpd.conf
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
listen=YES
guest_enable=YES
guest_username=vuserftp
pam_service_name=ftpuser.vu
user_config_dir=/etc/vuserftp/
[root@localhost ~]# rpm -qa |grep db4-
db4-java-4.3.29-9.fc6
db4-devel-4.3.29-9.fc6
db4-tcl-4.3.29-9.fc6
db4-4.3.29-9.fc6
db4-utils-4.3.29-9.fc6
[root@localhost ~]# cat /etc/passwd |grep vuserftp
vuserftp:x:500:500::/home/vuserftp:/bin/bash(可以改成nologin)
[root@localhost ~]# cat /etc/pam.d/ftpuser.vu
auth required /lib/security/pam_userdb.so db=/etc/vuser
account required /lib/security/pam_userdb.so db=/etc/vuser
程序下载地址:ftp://vsftpd.beasts.org/users/cevans/
2,检查和建立相应账户和目录
1,nobody用户
[root@main vsftpd-2.1.0]# cat /etc/passwd |grep nobody
nobody:x:99:99:Nobody:/:/sbin/nologin
如不存在请建立相关账户。
2,/usr/share/empty 目录, 如不存在请创建
3,如允许匿名访问,需创建Ftp用户,家目录为/var/ftp(一般ftp用户存在而家目录不存在)
[root@main vsftpd-2.1.0]# mkdir /var/ftp/
[root@main vsftpd-2.1.0]# chown root.root /var/ftp
[root@main vsftpd-2.1.0]# chmod 755 /var/ftp
3,解压、编译、安装程序(其实vsftpd用rpm和用源码安装差不多,编译安装反而不方便,推荐各位RPM安装,呵呵)
[root@main ~]# tar xzfv vsftpd-2.1.0.tar.gz
[root@main ~]# cd vsftpd-2.1.0
[root@main vsftpd-2.1.0]# make && make install
4,复制相关文件
如果是用RPM安装,可能会和源码安装的文件路径略有不同,如/etc/vsftpd.conf变成了/etc/vsftpd/vsftpd.conf,这类变动请自行 find相关文件。
主配置文件
[root@main vsftpd-2.1.0]# cp vsftpd.conf /etc/vsftpd.conf
PAM身份验证用文件
[root@main vsftpd-2.1.0]# cp RedHat/vsftpd.pam /etc/pam.d/ftp
5,配置vsftpd.conf
启用/禁止匿名用户访问。
anonymous_enable=YES/NO
允许本地用户登录并允许其上传文件。
local_enable=YES
write_enable=YES
将本地用户锁定在主目录中,不允许切换到上一级目录中
chroot_local_user=YES
匿名和本地用户限速(单位byte)
anon_max_rate=数字
local_max_rate=数字
禁止某些用户通过ftp登录服务器。如果设置了local_enable=YES,那么所有的用户包括root也能通过ftp登录服务器,出于安全考虑,需要对某些用户进行限制。在vsftpd.conf中有三个选项控制:
userlist_deny=YES/NO
userlist_enalbe=YES
userlist_file=/etc/vsftpd.user_list
如果userlist_deny=YES,/etc/vsftpd.user_list中列出的用户名就不允许登录ftp服务器;如果userlist_deny=NO,/etc/vsftpd.user_list中列出的用户名允许登录ftp服务器。我们只要在/etc目录下创建vsftpd.user_list文件,文件内容为允许登录或禁止登录的用户名,每个用户一行。
禁止用户通过FTP修改文件或文件夹的权限。
chmod_enable=NO(
设置本地用户上传的文件或文件夹的umask值(默认为077)
local_umask=022
最多同时允许100个客户连接
max_clients=100
每个ip地址最多允许开3个线程
max_per_ip=3
只监听来访问192.168.0.2(适用本机多网卡、多IP的情况)的FTP服务请求
listen_address=192.168.0.2
6,安装完成后使用vsftpd命令即可启动vsftpd服务。保证防火墙开放相关端口后尝试下匿名登陆吧,注意所有匿名用户都登录到相同的目录中/var/ftp。
我们可以通过pgrep vsftpd 来查看vsftpd是否运行起来,可以用pkill vsftpd 来杀死vsftpd进程,把vsFTPd关闭。所以上文说更推荐用rpm安装,那样就可以用service vsftpd start|stop|restart来控制了。
[root@main ~]# pgrep vsftpd
2745
[root@main ~]# pkill vsftpd
7,设置pub目录,允许匿名用户上传、下载文件。
更改配置文件,确保有这几项:
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_umask=022
新建文件夹,并更改权限。
[root@main ~]# mkdir /var/ftp/pub
[root@main ~]# chmod 777 /var/ftp/pub
尝试一下匿名上传下载吧,应该没问题。
8,设置使用本地用户登陆FTP服务器,并进行权限设置。
添加一个只能从ftp登录服务器,而不能从本地shell登录的用户。以下创建一个用户ftpuser,不允许从本地登录
[root@localhost root]# useradd -g ftp -s /sbin/nologin ftpuser
创建账户和密码后改一下配置文件vsftpd.conf ,以确保本地虚拟用户能有读写权限:
local_enable=YES
write_enable=YES
local_umask=022
尝试用本地用户上传和下载文件。(PS,我不知道为什么我无法进行上传下载操作,但我重启系统后可以应用了)
还可以用userlist_deny=YES/NO
userlist_enalbe=YES
userlist_file=/etc/vsftpd.user_list
这些选项对用户进行控制。
9,尝试使用虚拟用户访问FTP服务。
创建一个口令源文件,文件格式是第一行用户名、第二行密码、第三行用户名、第四行密码……
[root@main ~]# cat temp_pass.txt
caocao
caomengde
xiaocaocao
xiaocaomengde
使用db_load命令生成认证文件。我遇到的情况就是本机没有db_load这个命令,网上搜到的答案是缺少DB4的rpm包,应该是把光盘中DB4开头的rpm包都装全,我嫌麻烦,采用的yum -y install db4*,装了以后就有db_load命令了。
[root@main ~]# db_load -T -t hash -f temp_pass.txt /etc/vuser.db
设置db文件的权限,同时删除口令文件。
[root@main ~]# chmod 600 /etc/vuser.db
[root@main ~]# rm temp_pass.txt
建立虚拟用户所需的PAM配置文件
[root@main ~]# vi /etc/pam.d/ftpuser.vu
#添加如下内容
auth required /lib/security/pam_userdb.so db=/etc/vuser
account required /lib/security/pam_userdb.so db=/etc/vuser
添加新用户,可以考虑设置该用户nologin
[root@main home]# useradd vuserftp
修改vsftpd.conf配置文件,有则改,无则添加。
guest_enable=YES
guest_username=vuserftp
pam_service_name=ftpuser.vu
重启一下,现在访问ftp://caocao@ftp是否可以用caomengde做密码访问?如果期间有小问题,可以考虑以下目录权限问题。
10,尝试给虚拟用户分配权限
修改VSFTPD的配置文件,有则改,无则加。创建并进入这个文件夹。
user_config_dir=/etc/vuserftp/
[root@main vuserftp]# mkdir /etc/vuserftp/
[root@main vuserftp]# cd /etc/vuserftp/
创建虚拟用户权限的配置文件
[root@main vuserftp]# vi caocao
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/vuserftp/caocao
创建虚拟用户的目录,并配置权限。
[root@localhost ~]# mkdir /home/vuserftp/caocao
[root@localhost ~]# chown vuserftp /home/vuserftp/caocao/
11,我又照着这个教程复核了一下虚用户登录FTP的相关过程。show 相关配置文件和权限,因仅仅是实验用的,所以配置比较粗糙。大家可以自己优化和精简。
[root@localhost ~]# ll /home/vuserftp/
total 4
drwxr-xr-x 2 root root 4096 Mar 30 09:47 caocao
[root@localhost ~]# grep -v '#' /etc/vsftpd.conf
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
listen=YES
guest_enable=YES
guest_username=vuserftp
pam_service_name=ftpuser.vu
user_config_dir=/etc/vuserftp/
[root@localhost ~]# rpm -qa |grep db4-
db4-java-4.3.29-9.fc6
db4-devel-4.3.29-9.fc6
db4-tcl-4.3.29-9.fc6
db4-4.3.29-9.fc6
db4-utils-4.3.29-9.fc6
[root@localhost ~]# cat /etc/passwd |grep vuserftp
vuserftp:x:500:500::/home/vuserftp:/bin/bash(可以改成nologin)
[root@localhost ~]# cat /etc/pam.d/ftpuser.vu
auth required /lib/security/pam_userdb.so db=/etc/vuser
account required /lib/security/pam_userdb.so db=/etc/vuser
[3]基于gentoo安装Nginx php mysql的方法
来源: 互联网 发布时间: 2013-12-24
1、先在/etc/make.conf加入sync站点,待会儿要用emerge进行同步。
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
在执行 emerge --sync 同步portage树。
2、升级portage 版本,要不待会儿安装mysql的时候会提示portage 版本旧的!
emerge portage
先定义USE:
/etc/portage/package.use
dev-lang/php cli ming xml ftp curl pdo mysqli mysql sqlite json cgi ctype gd hash
www-servers/nginx fastcgi
编辑/etc/portage/package.keywords
www-servers/spawn-fcgi ~x86
3、安装 mysql nginx php spawn-fcgi pecl-apc pecl-memcache。
emerge mysql nginx php spawn-fcgi pecl-apc pecl-memcache
4、配置mysql。
mkdir -p /data0/mysql/data
mysql_install_db --user=mysql --basedir=/usr --datadir=/data0/mysql/data
配置my.cnf
rm -f /etc/mysql/my.cnf
vim /etc/mysql/my.cnf
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysql]
prompt="(\u:s135[\d]> "
no-auto-rehash
[mysqld]
bind-address = 173.252.207.109
user = mysql
port = 3306
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
datadir = /data0/mysql/data
open_files_limit = 600
back_log = 20
max_connections = 100
max_connect_errors = 200
table_cache = 60
external-locking = FALSE
max_allowed_packet = 16M
sort_buffer_size = 128K
join_buffer_size = 128K
thread_cache_size = 10
thread_concurrency = 8
query_cache_size = 0M
query_cache_limit = 2M
query_cache_min_res_unit = 2k
default_table_type = MyISAM
thread_stack = 192K
transaction_isolation = READ-UNCOMMITTED
tmp_table_size = 512K
max_heap_table_size = 32M
/var/log/slow.log
/var/log/error.log
long_query_time = 1
log_long_format
server-id = 1
#log-bin = /usr/local/mysql/data/binlog
binlog_cache_size = 2M
max_binlog_cache_size = 4M
max_binlog_size = 512M
expire_logs_days = 7
key_buffer_size = 4M
read_buffer_size = 1M
read_rnd_buffer_size = 2M
bulk_insert_buffer_size = 2M
myisam_sort_buffer_size = 4M
myisam_max_sort_file_size = 10G
myisam_max_extra_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
[mysqldump]
quick
max_allowed_packet = 16M
mysqladmin -uroot password ""
启动mysql
/etc/init.d/mysql start
5、配置nginx
vim /etc/nginx/nginx.conf
user nginx nginx;
worker_processes 1;
error_log /var/log/nginx/nginx_error.log crit;
pid /var/run/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 52100;
events
{
use epoll;
worker_connections 52100;
}
http
{
include mime.types;
default_type application/octet-stream;
#charset gb2312;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 70 20;
tcp_nodelay on;
server_tokens off;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip off;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
server
{
server_name www.freebsdsystem.org;
root /data0/www/wwwroot/;
index index.html index.htm index.php;
location ~ .*\.php?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 1h;
}
log_format blog '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
access_log /var/log/nginx/blog.log blog;
}
}
配置spawn-fcgi
vim /usr/local/bin/php-fcgi
#!/bin/sh
# author:coralzd
# powered by www.freebsdsystem.org
bin=/usr/bin/php-cgi
case $1 in
start)
echo "starting php-cgi"
spawn-fcgi -a 127.0.0.1 -p 9000 -C 8 -u nginx -g nginx -f /usr/bin/php-cgi 2>&1 >/dev/null &
echo "Done"
stop)
killall php-cgi
echo "php-cgi stop"
*)
echo "usage start|stop";;
esac
6、开机启动 nginx mysql
rc-update add nginx default
rc-update add mysql default
至此配置完成!
代码如下:
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
在执行 emerge --sync 同步portage树。
2、升级portage 版本,要不待会儿安装mysql的时候会提示portage 版本旧的!
代码如下:
emerge portage
先定义USE:
代码如下:
/etc/portage/package.use
dev-lang/php cli ming xml ftp curl pdo mysqli mysql sqlite json cgi ctype gd hash
www-servers/nginx fastcgi
编辑/etc/portage/package.keywords
www-servers/spawn-fcgi ~x86
3、安装 mysql nginx php spawn-fcgi pecl-apc pecl-memcache。
代码如下:
emerge mysql nginx php spawn-fcgi pecl-apc pecl-memcache
4、配置mysql。
代码如下:
mkdir -p /data0/mysql/data
mysql_install_db --user=mysql --basedir=/usr --datadir=/data0/mysql/data
配置my.cnf
代码如下:
rm -f /etc/mysql/my.cnf
vim /etc/mysql/my.cnf
[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock
[mysql]
prompt="(\u:s135[\d]> "
no-auto-rehash
[mysqld]
bind-address = 173.252.207.109
user = mysql
port = 3306
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
datadir = /data0/mysql/data
open_files_limit = 600
back_log = 20
max_connections = 100
max_connect_errors = 200
table_cache = 60
external-locking = FALSE
max_allowed_packet = 16M
sort_buffer_size = 128K
join_buffer_size = 128K
thread_cache_size = 10
thread_concurrency = 8
query_cache_size = 0M
query_cache_limit = 2M
query_cache_min_res_unit = 2k
default_table_type = MyISAM
thread_stack = 192K
transaction_isolation = READ-UNCOMMITTED
tmp_table_size = 512K
max_heap_table_size = 32M
/var/log/slow.log
/var/log/error.log
long_query_time = 1
log_long_format
server-id = 1
#log-bin = /usr/local/mysql/data/binlog
binlog_cache_size = 2M
max_binlog_cache_size = 4M
max_binlog_size = 512M
expire_logs_days = 7
key_buffer_size = 4M
read_buffer_size = 1M
read_rnd_buffer_size = 2M
bulk_insert_buffer_size = 2M
myisam_sort_buffer_size = 4M
myisam_max_sort_file_size = 10G
myisam_max_extra_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
[mysqldump]
quick
max_allowed_packet = 16M
mysqladmin -uroot password ""
启动mysql
/etc/init.d/mysql start
5、配置nginx
vim /etc/nginx/nginx.conf
代码如下:
user nginx nginx;
worker_processes 1;
error_log /var/log/nginx/nginx_error.log crit;
pid /var/run/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 52100;
events
{
use epoll;
worker_connections 52100;
}
http
{
include mime.types;
default_type application/octet-stream;
#charset gb2312;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 70 20;
tcp_nodelay on;
server_tokens off;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip off;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
server
{
server_name www.freebsdsystem.org;
root /data0/www/wwwroot/;
index index.html index.htm index.php;
location ~ .*\.php?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 1h;
}
log_format blog '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
access_log /var/log/nginx/blog.log blog;
}
}
配置spawn-fcgi
代码如下:
vim /usr/local/bin/php-fcgi
#!/bin/sh
# author:coralzd
# powered by www.freebsdsystem.org
bin=/usr/bin/php-cgi
case $1 in
start)
echo "starting php-cgi"
spawn-fcgi -a 127.0.0.1 -p 9000 -C 8 -u nginx -g nginx -f /usr/bin/php-cgi 2>&1 >/dev/null &
echo "Done"
stop)
killall php-cgi
echo "php-cgi stop"
*)
echo "usage start|stop";;
esac
6、开机启动 nginx mysql
代码如下:
rc-update add nginx default
rc-update add mysql default
至此配置完成!
最新技术文章: