Linux系统jailkit安装配置使用方法

jailkit实战

jailkit 是一款能够在一个chroot jail中快速创建受限用户帐户的工具集。它包含了一个安全日志守护进程,shells可以限制用户,开启和设置chroot jail守护进程的工具。

简单说明

1、由Nginx处理http请求,nginx运行属主身份为www:www,执行php代理到后端php-fpm,php-fpm负责管理各用户间的php进程,用户运行php的组权限为nobody
2、默认为每个用户提供了SSH,方便用户直接进行管理。限定各SSH用户只能访问家目录的文件,访问系统级命令和访问其他非属主身份的路径显示为无权限。
3、关于用户目录权限的说明,建立的用户属主身份为user:nobody,家目录自身权限:drwxr-x–x,其创建的目录权限设置为drwx—r-x,文件权限设定为-rw—-r–。(user为当前用户)
4、通过设定系统umask及ftp服务umask,确保用户家目录下创建的文件权限为-rw—-r–,目录权限为drwx—r-x

前提:已经安装好了LNMP

下载安装jailkit

Source code   
cd /soft
 
wget -c http://olivier.sessink.nl/jailkit/jailkit-2.11.tar.gz
 
tar zxvf jailkit-2.11.tar.gz
 
cd jailkit-2.11
 
./configure
 
make && make install
 
cp extra/jailkit /etc/init.d/
 
chmod 755 /etc/init.d/jailkit
 
chkconfig jailkit on

初始化chroot环境,创建个chroot目录:

Source code   
mkdir -p /home/chroot
chown root:root /home/chroot
chmod 751 /home/chroot
 
jk_init -v -j /home/chroot sftp scp jk_lsh netutils extendedshell
 
jk_cp -v /home/chroot /usr/bin/id
jk_cp -v /home/chroot /usr/bin/unzip
jk_cp -v /home/chroot /usr/bin/zip
 

创建系统用户

Source code   
useradd www -m
 
echo www:123456|chpasswd
 
jk_jailuser -m -n -j /home/chroot/ --shell=/bin/bash www

检查   

[root@localhost chroot]# grep www /home/chroot/etc/passwd
 
www:x:503:503::/home/www:/bin/bash
 
[root@localhost chroot]# grep www /etc/passwd
 
www:x:503:503::/home/chroot/./home/www:/usr/sbin/jk_chrootsh
 

创建php-fpm配置文件

[root@localhost etc]# cat /application/php-5.3.29/etc/php-fpm.conf
 
include=etc/fpm.d/*.conf
 
[global]
 
pid = /tmp/php-fpm.pid
 
error_log = log/php-fpm.log
 
log_level = waring
 
emergency_restart_threshold = 10
 
process_control_timeout = 5s
 
process.max = 500
 
daemonize = yes
 
rlimit_files = 51200
 
rlimit_core = 0
 
events.mechanism = epoll
 

b.创建php-fpm pool

mkdir -p /application/php-5.3.29/etc/fpm.d
 
cat /application/php-5.3.29/etc/fpm.d/default.conf
 
[www]
 
listen = 127.0.0.1:9001
 
;listen = /usr/local/php5.4/var/run/php-fpm-www.sock
 
listen.allowed_clients = 127.0.0.1
 
listen.mode = 0666
 
listen.owner = www
 
listen.group = nobody
 
user = www
 
group = nobody
 
 
 
chroot = /home/chroot
 
; Choose how the process manager will control the number of child processes.
 
pm = dynamic
 
pm.max_children = 5
 
pm.start_servers = 1
 
pm.min_spare_servers = 1
 
pm.max_spare_servers = 5
 
pm.max_requests = 1000
 
request_terminate_timeout = 30s
 
 
; Pass environment variables
 
env[HOSTNAME] = $HOSTNAME
 
env[PATH] = /usr/local/bin:/bin
 
env[TMP] = /var/www/tmp
 
env[TMPDIR] = /var/www/tmp
 
env[TEMP] = /var/www/tmp
 
 
; Specific php ini settings here
 
php_value[sendmail_path] = "/usr/sbin/sendmail -t -i -f noreply@evlit.com"
 
php_admin_value[open_basedir] = ".:/var/www:/proc:/tmp"
 
php_value[include_path] = ".:/var/www:/var/www/include"
 
php_value[axis2.log_path] = "/var/www/tmp"
 
php_value[session_pgsql.sem_file_name] = "/var/www/tmp/php_session_pgsql"
 
php_value[soap.wsdl_cache_dir] = "/var/www/tmp"
 
php_value[uploadprogress.file.filename_template] = "/var/www/tmp/upt_%s.txt"
 
php_value[xdebug.output_dir] = "/var/www/tmp"
 
php_value[xdebug.profiler_output_dir] = "/var/www/tmp"
 
php_value[xdebug.trace_output_dir] = "/var/www/tmp"
 
php_admin_value[disable_functions] = "exec,system,passthru,shell_exec,ini_alter,dl,proc_open,proc_exec,proc_close,chroot,scandir,chgrp,chown,ini_restore,dbmopen,dbase_open,curl_multi_exec,multi_exec,gzinflate,parse_ini_file,show_source,escapeshellarg,escapeshellcmd,stream_socket_server,popepassthru,pfsockopen,set_time_limit"
 
 
; UPLOAD
 
php_admin_flag[file_uploads] = On
 
php_admin_value[upload_tmp_dir] = "/var/www/tmp"
 
;Maximum allowed size for uploaded files.
 
php_admin_value[upload_max_filesize] = "50M"
 
php_admin_value[max_input_time] = "120"
 
php_admin_value[post_max_size] = "50M"
 
 
; LOGS
 
php_admin_value[error_log] = "/var/www/logs/error.log"
 
php_admin_value[log_errors] = On
 
php_admin_value[display_errors] = Off
 
php_admin_value[html_errors] = Off
 
php_admin_value[display_startup_errors] = Off
 
php_admin_value[define_syslog_variables] = "1"
 
php_value[error_reporting] = "6143"
 
 
; Maximum execution time of each script, in seconds (30)
 
php_value[max_input_time] = "120"
 
 
; Maximum amount of time each script may spend parsing request data
 
php_value[max_execution_time] = "300"
 
 
; Maximum amount of memory a script may consume (8MB)
 
php_value[memory_limit] = "128M"
 
 
 
; Sessions: IMPORTANT reactivate garbage collector on Debian!!!
 
php_value[session.gc_maxlifetime] = "3600"
 
php_admin_value[session.gc_probability] = "1"
 
php_admin_value[session.gc_divisor] = "100"
 
 
; SECURITY
 
php_admin_value[session.auto_start] = Off
 
php_admin_value[mbstring.http_input] = pass
 
php_admin_value[mbstring.http_output] = pass
 
php_admin_value[mbstring.encoding_translation] = Off
 
php_admin_value[expose_php] = Off
 
php_admin_value[allow_url_fopen] = On
 
php_admin_value[variables_order] = PGCSE
 
; enforce filling PATH_INFO & PATH_TRANSLATED
 
; and not only SCRIPT_FILENAME
 
php_admin_value[cgi.fix_pathinfo] = "1"
 
; 1: will use PATH_TRANSLATED instead of SCRIPT_FILENAME
 
php_admin_value[cgi.discard_path] = "0"
 

网站实际的根目录:

/home/chroot/home/www

php-fpm pool设置

[root@localhost 123]# grep ^chroot /application/php-5.3.29/etc/fpm.d/default.conf

chroot = /home/chroot

nginx.conf配置

location / {

root   /home/chroot/home/www;

index  index.html index.htm;

}

location ~ \.php$ {

root           /home/chroot;

fastcgi_pass   127.0.0.1:9001;

fastcgi_index  index.php;

   fastcgi_param  SCRIPT_FILENAME  /home/www$fastcgi_script_name;

include        fastcgi_params;

}

[root@localhost conf]# grep ‘php_admin_value\[open_basedir\]’ /application/php-5.3.29/etc/fpm.d/default.conf

php_admin_value[open_basedir] = “.:/var/www:/proc:/tmp:/home/www”

这样,网站的安全性就相对提高了不少

时间: 2024-09-14 22:12:17

Linux系统jailkit安装配置使用方法的相关文章

Linux系统下安装配置postfix邮件服务器教程

  一,安装postfix,cyrus-sasl,cyrus-imapd 如果yum提示找不到软件包,请换一下源,请参考centos 6推荐使用epel源 代码如下: [root@localhost ~]# yum install postfix [root@localhost ~]# yum install cyrus* 二,删除了sendmail 代码如下: [root@localhost ~]# rpm -e sendmail 或者 代码如下: [root@localhost ~]# yu

Linux下Memcache安装配置的方法

安装配置方法一 个人理解: 1.它是基于C语言的Libevent库进行开发的 2.Memcache是一款C/S软件,这款软件是维护内存的. 3.是将数据在内存中使用,从内存中读取要比从硬盘中读取要快. 4.读取内存会减少对I/O设备的调用,从而加大访问速度. 5.内存是一个高速临时存储信息的硬件,断电后里面的信息将被清除. 6.硬盘是一个低速长期存储信息的硬件,断电后里面的信息将被保留. Linux下Memcache服务器端的安装 Memcache用到了libevent这个库用于Socket的处

Linux系统Memcache安装配置详解

安装Memcached服务端 memcached依赖于libevent,需要先安装libevent. 安装 libevent # tar zxvf libevent-2.0.21-stable.tar.gz # cd libevent-2.0.21-stable # ./configure --prefix=/usr/local/libevent # make && make install 安装memcached服务端 # wget http://www.memcached.org/fi

linux系统中安装配置LAMP服务器(Apache+PHP+MariaDB)RHEL 7.0

准备篇: RHEL 7.0系统安装配置图解教程我在此就不介绍了 一.使用系统镜像文件配置本地yum源 1.使用WinSCP.exe等工具上传系统镜像文件rhel-server-7.0-x86_64-dvd.iso到/usr/local/src目录 2.使用Putty.exe工具远程连接到RHEL服务器 3.挂载系统镜像文件 mkdir /media/cdrom #新建镜像文件挂载目录 cd /usr/local/src #进入系统镜像文件存放目录 ls #列出目录文件,可以看到刚刚上传的系统镜像

Linux系统下安装配置Nginx环境整理

PHP的这些环境在linux下也折腾过很多次了,每次重装都要重新去找这些文档,记性不好,还是自己整理下吧. Nginx安装 # yum -y install gcc* pcre glib2-devel openssl-devel pcre-devel bzip2-devel gzip-devel lrzsz    # groupadd www && useradd www -g www   # wget http://nginx.org/download/nginx-1.6.1.tar.g

linux系统中安装配置redis图文详解

1. 首先下载一个redis安装包,可以去官网下载最新版:http://redis.io/download.     2. 在linux下解压redis:tar zxvf redis-2.8.22.tar.gz    3. 解压完成之后,进入到解压的目录"redis-2.8.22",命令为:cd redis-2.8.22.    4. 执行 make MALLOC=libc 命令,如果出现"/bin/sh: cc: command not found "之类的错误,

在Linux系统上安装配置DNS服务器的教程

  简介 DNS 是计算机域名系统 (Domain Name System 或Domain Name Service) 的缩写,它是由解析器和域名服务器组成的.域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址功能的服务器.其中域名必须对应一个IP地址,而IP地址不一定有域名.域名系统采用类似目录树的等级结构.域名服务器为客户机/服务器模式中的服务器方,它主要有两种形式:主服务器和转发服务器.将域名映射为IP地址的过程就称为"域名解析".在Intern

详解Linux系统中安装配置Samba服务器的步骤

  一.获取源代码包并进行解压 从samba的官方网站可以下载最新的samba源代码包.下面我们以samba-3.5.9.tar.gz的源代码包作为案例进行解析.本例中,我们将源代码包放在目录/home/samba下,然后执行下面的命令进行解压缩. 代码如下: # tar –xzvf samba-3.5.9.tar.gz 二.配置configure 对源代码包进行解压缩后,进入目录 代码如下: # cd /home/samba/samba-3.5.9/source3 然后执行下面的命令进行配置.

Linux系统下安装Memcache的方法

1.分别把memcached和libevent下载回来,放到 /tmp 目录下: # cd /tmp # wget http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz # wget http://www.monkey.org/~provos/libevent-1.2.tar.gz 2.先安装libevent: # tar zxvf libevent-1.2.tar.gz # cd libevent-1.2 # ./configur