Virtualmin虚拟服务器,Virtualmin/Webmin配置隔绝的虚拟主机

Virtualmin/Webmin配置隔离的虚拟主机

需要实现的目标:

允许使用PHP、MySQL、FTP,不允许使用SSH登录

FTP目录限制在用户的home目录下

每一个vhost在运行php时不可读取其他目录,防止被挂马后影响其他应用

Virtualmin/Webmin安装

sudo apt-get install webmin webmin-virtual-server

模块设置

在System Settings -> Features and Plugins中,关闭不必要的模块。我只保留如下模块:

1227980.html

Feature

or Plugin

Source

Version

Domains

Default?

Actions

103932405.gif

Administration user

Core

3.98.gpl

1

Show domains

103932405.gif

Home directory

Core

3.98.gpl

1

Show domains

BIND DNS domain

Core

3.98.gpl

0

Show domains

Mail for domain

Core

3.98.gpl

0

Show domains

Apache website

Core

3.98.gpl

1

Show domains

Webalizer reporting

Core

3.98.gpl

1

Show domains

SSL website

Core

3.98.gpl

0

Show domains

Log file rotation

Core

3.98.gpl

1

Show domains

MySQL database

Core

3.98.gpl

1

Show domains

PostgreSQL database

Core

3.98.gpl

0

Show domains

ProFTPd virtual FTP

Core

3.98.gpl

0

Show domains

Spam filtering

Core

3.98.gpl

0

Show domains

Virus filtering

Core

3.98.gpl

0

Show domains

Webmin login

Core

3.98.gpl

0

Show domains

AWstats reporting

Plugin

4.8

0

Configure | Open

DAV Login

Plugin

3.5

0

Configure

Mailman

Plugin

6.1

0

Configure | Open

Protected web directories

Plugin

2.6

-

Subversion repositories

Plugin

4.9

0

Configure | Open

禁止SSH由于不允许虚拟主机以ssh方式访问,直接在System Customization -> Custom Shells中,保留/bin/false(勾选其enabled, admin, Mailbox, default).

限制FTP根目录

在Limits and Validation -> FTP Directory Restrictions,这里

1227980.html勾上Active,选择Users' home directories,以及Users' home directories。

限制php读取目录

在System settints -> Edit Server Template中,选择Apache Website,

找到Default PHP execution mode,使用mod_php运行。(使用FastCGI模式似乎无法使用php_admin_value配置……)

在Directives and settings for new websites的配置模板中加入一行:

php_admin_value open_basedir "${HOME}/public_html:/tmp"

即:

ServerName ${DOM}

ServerAlias www.${DOM}

DocumentRoot ${HOME}/public_html

php_admin_value open_basedir "${HOME}/public_html:/tmp"

ErrorLog /var/log/virtualmin/${DOM}_error_log

CustomLog /var/log/virtualmin/${DOM}_access_log combined

ScriptAlias /cgi-bin/ ${HOME}/cgi-bin/

DirectoryIndex index.html index.htm index.php index.php4 index.php5

Options -Indexes +IncludesNOEXEC +SymLinksIfOwnerMatch

allow from all

AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch

allow from all

AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch

这样就限制了php脚本读取其他文件目录了。

另一替代方法是使用apache的mod_chroot,但是只能限制整个apache的运行环境,无法根据vhost分别设置,也不易和virtualmin脚本结合,故舍弃,可以参考这里:http://wiki.ubuntu.org.cn/Apache%E8%AE%BE%E7%BD%AEChroot%E7%8E%AF%E5%A2%83

完成&测试

建立一个virtual server,各选项默认即可。

检查以下内容:

SSH无法登录

FTP登录后,访问被限制在用户目录下

上传PHP木马,确定只可访问public_html目录

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值