Debian下部署vsftpd

虽然可以使用sftp,但是在某些应用下(比如wordpress,wordpress和wordpress)安装插件/主题的时候却只支持ftp,所以仍然还是需要使用到ftp,搜了一下找到了这一篇文章:http://wushuaishuai.blog.51cto.com/3432229/753071,对照着这个文章搞定了vsftpd使用系统账户的配置方法,以及对照着老大higkoo以前的文章搞定了虚拟账户的配置方法。以下正文
另,仍然是懒,所以用的root账户,非root账户记得加sudo
vsftpd 区分两种账户模式,系统账户与虚拟账户,前者可以直接通过系统自带的账户登陆,后者不需要创建系统账户,而是通过写配置文件来达到目的
一、使用系统账户
1、安装vsftpd
没啥难度,直接apt-get即可

apt-get install vsftpd

东西不大,基本上1分钟内就下载完并安装好了
2、创建和配置用户

adduser 用户名

#创建的时候会先让你输入两次密码,然后会跟你索要各种信息,有点通讯录的感觉,总之全部空着回车后问你是否正确,按下Y然后回车即可

adduser 用户名 ftp

#这个命令是把这个用户加到ftp组下,格式为adduser 用户名 组名

mkdir /home/用户名

#建立一个文件夹作为ftp账户的默认显示文件夹,这个大家可以根据需要自行调整

chmod -R 775 /home/用户名

#设置此目录下所有文件和子目录的读、写、执行权限

chgrp -R ftp /home/用户名

#设置此目录下所有文件和子目录属于ftp组

vim /etc/passwd

进入后找到写着你的用户名的那一行,格式为:

用户名:x:100*:100*:,,,:/home/用户名:/bin/bash

(星号为不确定数字,一般会根据创建账号的先后而逐渐增长,默认第一个为1000)
如果后期需要修改home目录位置的话,可以在这里直接修改目录
在这个地方我们需要先设置此账户改为不允许登陆状态,把/bin/bash删除,并改为/usr/sbin/nologin,修改完成后的样子为

用户名:x:100*:100*:,,,:/home/用户名:/usr/sbin/nologin

保存后退出

vim /etc/shells

检查此文件内有没有/usr/sbin/nologin这一行,没有的话在结尾添加即可
3、配置vsftpd配置文件

vim /etc/vsftpd.conf

最基础的几个需要修改的地方为:

anonymous_enable=NO
#关闭匿名用户有
local_enable=YES
#允许本地用户访问
write_enable=YES
#允许写入
local_umask=022
#上传文件的掩码为22(虽不明但觉厉,还没去查有什么具体用途,总之先改掉了)
chroot_local_user=NO
#禁止本地用户登录
chroot_list_enable=YES
#允许列表里的用户登录,这里设置为YES后必须设置下面的列表
chroot_list_file=/etc/vsftpd.chroot_list
#设置列表路径(此文件内直接输入用户名,一行一个)

保存后退出
由于启用了chroot,所以需要给根目录下放一个文件夹,来保证可写入,并设置根目录不可写
到达根目录后

chmod a-w /home/用户名

然后进去后人工创建一个目录来保证可以上传到这个文件夹内

service vsftpd restart #重启vsftpd服务

经过以上的配置,就可以直接通过21端口来使用ftp协议了
二、使用虚拟账户
1、安装vsftpd和db5.3-util

apt-get install vsftpd db5.3-util

2、创建FTP登陆后放文件文件夹,这里我把文件夹丢到/var下面

mkdir /var/ftp

3、给ftp文件夹ftp权限

chown ftp:ftp /var/ftp

4、touch出我们用的到的配置文件(debian需要先mkdir)

mkdir /etc/vsftpd/
touch /etc/vsftpd/{chroot-list,user-list,issue,accounts,create.sh} /etc/pam.d/vsftpd.ftp

5、给虚拟账号的密码加密

openssl req -newkey rsa:2048 -x509 -nodes -days 3650 -out /etc/vsftpd/vsftp-cert.pem -keyout /etc/vsftpd/vsftp-cert.pem

6、修改配置文件,案例见下

anon_mkdir_write_enable=NO
anon_root=/dev/zero
anon_upload_enable=NO
anon_world_readable_only=YES
anonymous_enable=NO
banner_file=/etc/vsftpd/issue
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot-list
allow_writeable_chroot=YES
userlist_deny=YES
userlist_file=/etc/vsftpd/user-list
data_connection_timeout=120
dirmessage_enable=NO
ftpd_banner=Welcome to ops ftp.
guest_enable=YES
guest_username=ftp
hide_file={\.*}
idle_session_timeout=600
listen_ipv6=NO
connect_from_port_20=NO
ftp_data_port=50234
listen_port=21
listen=YES
local_enable=YES
local_umask=022
log_ftp_protocol=YES
syslog_enable=NO
pam_service_name=vsftpd.ftp
passwd_chroot_enable=NO
pasv_enable=YES
pasv_min_port=62222
pasv_max_port=62333
tcp_wrappers=YES
use_localtime=NO
user_config_dir=/etc/vsftpd/roles
userlist_enable=YES
virtual_use_local_privs=YES
write_enable=YES
xferlog_enable=YES
xferlog_enable=YES
xferlog_std_format=YES
xferlog_file=/var/log/xfer.log
vsftpd_log_file=/var/log/vsftpd.log
ssl_enable=YES
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=YES
ssl_sslv3=YES
rsa_cert_file=/etc/vsftpd/vsftp-cert.pem
max_per_ip=30
max_clients=200
ssl_ciphers=HIGH
require_ssl_reuse=NO
log_ftp_protocol=yes
dual_log_enable=YES
lock_upload_files=NO
allow_anon_ssl=YES

7、配置好虚拟账号的配置文件(这里我们叫ftp)

mkdir /etc/vsftpd/roles #创建这个文件夹,以后每个虚拟账号的配置都在这里单独配置
vim ftp #一个账号一个配置文件,文件名就是账号名
local_root=/var/ftp #文件夹位置
anon_world_readable_only=NO
write_enable=YES #允许写入
anon_upload_enable=NO

8、创建一个“创建账号脚本”,这个是一次性的,以后继续增加账号的时候只需要执行即可

vim /etc/vsftpd/create.sh
/bin/mv -fv /etc/vsftpd/accounts.db /tmp
/usr/bin/db5.3_load -T -t hash -f /etc/vsftpd/accounts /etc/vsftpd/accounts.db
/bin/chmod 0600 /etc/vsftpd/accounts.db /etc/vsftpd/accounts

:wq保存退出
9、配置/etc/pam.d/vsftpd.ftp,这个也是一次性的,设置好后不会再动

vim /etc/pam.d/vsftpd.ftp
auth sufficient /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/accounts
account sufficient /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd/accounts

:wq保存退出
10、设定好账号和密码
vim

/etc/vsftpd/accounts

第一行写账号,第二行密码,第三行账号,第四行密码……以此类推
写完后:wq保存
11、

./create.sh 执行一下~

这里有个坑,第一次执行的时候会报一个找不到文件的错误,以后再运行就不会了
12、

service vsftpd restart

至此就搞定了账号了,如果需要添加新的账号的话,重复执行3、7、10、11、12即可
如果FTP登陆失败,提示:

500 OOPS: prctl PR_SET_SECCOMP failed
请在vsftpd.conf里加上seccomp_sandbox=NO

顺便在文章结尾附上配置文件里常用的可以调整的设置,这部分直接转载自文章开头所写出处。

#anonymous_enable 是否允许匿名ftp,如否则选择NO,默认允许匿名访问,
注意当允许是所有用户均视为匿名登录。
#local_enable 是否允许本地用户访问,是指VSFTP所在机器上的注册用户。
#local_umask=022 默认的umask码
#write_enable 是否允许本地用户修改和删除
#anon_upload_enable=YES 是否允许匿名用户上传
#anon_mkdir_write_enable=YES 是否允许匿名用户的写和创建目录的权限
#dirmessage_enable=YES 当切换目录时,是否显示该目录下message隐藏文件的内容
#xferlog_enable=YES 是否激活上传和下载的日志
#connect_from_port_20=YES 是否启动FTP数据端口20的连接请求
#chown_uploads=YES 是否改变上传文件的所有者
#chown_username=whoever 改变上传文件的所有者为whoever
#xferlog_file=/var/log/vsftpd.log 上传/下载日志文件所默认的路径
#xferlog_std_format=YES 是否使用标准的ftpd xferlog日志格式
#idle_session_timeout=600 是否将在用户会话空闲10分钟后被中断
#data_connection_timeout=120 是否将在数据连接空闲2分钟后被中断
#nopriv_user=ftpsecure 是否运行vsftpd需要的非特殊系统用户默认nobody
#async_abor_enable=YES 是否允许运行特殊的FTP命令async
#ascii_upload_enable=YES 是否启用上传的ascii传输方式
#ascii_download_enable=YES 是否启用下载的ascii传输方式
#ftpd_banner=Welcome to blah FTP service. 用户连接服务器后显示信息
#deny_email_enable=YES 是否允许某些匿名用户使用邮件地址(默认的)

Debian下ll命令的设置方法

之前一直用centos所以比起ls更习惯用ll,比ls能看到更多有用的信息,然而自己对linux并不是很了解,一直以为ll和htop类似属于三方程序,然后在debian上输入ll一直提示command not found,直到刚才谷歌了一下才明白原来ll就是ls -l。。。并且找到了设置方法(查到的地方是:http://bbs.chinaunix.net/thread-2108040-1-1.html),以下正文
1、需要的程序

alias

这个应该是不自带的样子(吧。。。因为我之前apt-get过这个程序所以并不知道是不是自带的)

apt-get install alien

2、设置ll命令

alias ll='ls -l' #还是挺好理解的,就是告诉程序ll等于ls -l 注意引号是单引号不是双引号

然后就可以直接用ll了=w=

Debian8中安装JAVA(JDK&JRE)

这次主要是为了帮一个用debian的朋友搞定MINECRAFT服务端而写的,依旧是和第一篇一样属于那种网上找了资料自己摸索着写的,原文地址:http://www.tsingpost.com/index.php/archives/463/
由于不是Centos,没法直接下载RPM包来安装,虽然看到debian可以通过apt-get来安装rpm或者是alien,但是咱装上后试图安装java的rpm结果失败了,懒得找原因,就干脆找别的办法去尝试,然后就搜到了这篇文章并且最终成功搞定
仍然是偷懒用的root账户,如果有其他账户的话记得命令前面加sudo
以下是正文:

1、下载最新的JDK

虽然很多人推荐去http://www.oracle.com/technetwork/java/javase/downloads/index.html这个地方下载,但是由于考虑到这里需要接受一个许可协议后才允许下载,对于直接在ssh上通过wget来获取就显得不那么方便了,所以我选择了去http://www.java.com/en/download/manual.jsp寻找,系统是debian 8 x64,注意版本不要搞错即可

wget http://javadl.sun.com/webapps/download/AutoDL?BundleId=108139

#通过wget下载我人工复制的官网提供的最新的java
下载下来后会发现文件名比较奇葩,叫“AutoDL?BundleId=108139”,不用管,直接改个名字就好了,记住从这里下载到的是tar.gz后缀的

mv AutoDL?BundleId=108139 java8.tar.gz

#给下载好的文件改名
(可以使用TAB直接自动填充,会比较方便,显示出来的肯定不是这样的文件名,忽略即可)

2、解压缩到指定路径

模仿着最初来源里的原文,文章里提到的路径为/usr/lib/jvm,也没多想反正就往里面丢了,而后面看到了第3步我才明白其实丢哪里都行……

cd /usr/lib #到/usr/lib

mkdir jvm #创建一个叫jvm的文件夹
文件夹建立好后我们来解压缩刚下好的压缩包
cd #回到最初的默认文件夹(因为我当时就下载到了root默认的路径(也就是/root))

tar -xzvf java8.tar.gz #解压缩刚才下载好的java8

我下载到的版本是jre1.8.0.51,解压缩完成后多出来一个叫jre1.8.0_51的文件夹,为了方便输入改一下名字

mv jre1.8.0_51 jdk8 #给文件夹改名为jdk8

然后移动到刚才创建好的文件夹内

mv jdk8 /usr/lib/jvm #移动文件夹

3、配置环境变量

因为我是root账户所以可能会比较简单。。。不过大概非root账户应该也没啥差别,加一个sudo就可以了(我猜的)

cd #回到root默认目录
vim .bashrc #用vim打开.bashrc
在文件的结尾添加以下内容
export JAVA_HOME=/usr/lib/jvm/jdk8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source ~/.bashrc #重新读取一下让新加的代码生效

以上就是最基础的一些东西,到这里只是单纯为了运行个mc的服务端已经足够了,可以输入以下java -version来看下是否有版本号的输出信息,以及版本是否和你下载到的对应即可

在Debian7中部署wordpress

第一篇博文就写如何部署wordpress
最开始是在Google404 Not Found搜到的这一篇文章模仿着做的,来源:本文由 Daniel Sun 原创编译,出处:http://www.onlyke.com/html/13.html
结果搞的时候并不顺利,所以在搞定后就计划第一篇文章写这个~
由于日常工作中经常接触Debian,所以为了更熟悉这个系统便也给自己的服务器使用了debian
服务器则是从看板娘超可爱的GMO旗下的ConoHa租用的,最低配置一个月900日元,提供50G的SSD,1G内存和100M不限流量的带宽,性价比还是挺高的,坑爹的提供商,用邀请链接注册就给2000日元优惠券,不用就不给,后悔死了,顺便丢一下自己的邀请链接。

ConoHa酱~来源:http://xn--y8j1ek.com/profile 里面还有ConoHa的姐姐Mikumo以及声优配音的声音片段
正文:
由于没啥重要的东西其实是偷懒,所以就直接用的root账户安装的,设置并使用其他账号的用户记得在命令前面加sudo

1、装所需的程序

架设wordpress之前需要先安装如下程序
Apache2(nginx也可以,然而并不会用)
MySQL
php5
php5-mysql
php5-gd
(以及为了以后方便管理其实还是偷懒我装了一个phpmyadmin(最初的参考链接里面还写了libapache2-mod-auth-mysql和libapache2-mod-php5,但是不知道为什么我这里并没有安装成功,不过最后发现还是可以用就不管了~))

apt-get install apache2 mysql-server-5.5 php5 php5-mysql php5-gd phpmyadmin

安装mysql的时候会提示让你设置root的密码,设置好后别忘了就好
安装phpmyadmin的时候会提示你配置一下账号和密码以及mysql的账号和密码,一共会输入3次,输入之前看清让你输入的是哪个密码
安装完后可以试着访问一下,由于是境外服务器所以没有80白名单限制,iptables默认也直接关掉了仍然是懒,在本地直接输入地址(或IP)访问,能显示出Apache2的初始页面就说明apache这部分没问题了。

2、配置phpmyadmin

实际上这一块可以忽略的,但是我装了就配置吧。。。

vim /etc/apache2/apache2.conf

进入后在文件最结尾添加这行代码:

Include /etc/phpmyadmin/apache.conf

然后保存退出,重启apache

service apache2 restart

重启后在本地电脑上访问一下phpmyadmin来确认下是否运行正常,访问地址是http://你的域名(或IP)/phpmyadmin
不知道为什么我这里访问登录页面以及点登陆后要等很久,不知道在处理什么奇怪的东西,总之我这里是能用的。

3、配置数据库给wordpress使用

在phpmyadmin上可以直接通过创建数据表的方式来添加,比较简单

phpmyadmin添加数据库

使用命令方式配置则是

mysql -u root -p

#登陆mysql

create database wordpress;

#创建名为wordpress的数据库

grant all privileges on wordpress.* to [email protected] identified by '123456';

#创建名为wordpress的用户,密码为123456,并赋予其对wordpress数据库的全部权限
4、建立虚拟站点
由于我这一台服务器内放置了2个不同的解析域名,所以需要配置虚拟站点。如果你的服务器内只放置wordpress的话则可以直接忽略此步,到第5步骤即可。
注意:以下仅提供适用于Apache2的设置方法
建立一个文件夹来放站点,这里我采取的是html文件夹放www的内容,另外建立一个wordpress文件夹放博客的系统

cd /var/www

#到达默认网页放置的路径

mkdir html wordpress

#创建html文件夹和wordpress文件夹
写虚拟站点文件

cd /etc/apache2/sites-enabled

#到达配置文件路径

vim wordpress.conf

#编辑wordpress配置文件(正常情况下不存在此文件)
添加内容如下:

<VirtualHost *:80>
ServerName www.你的域名.com
ServerAlias 你的域名.com
DocumentRoot /var/www/html/
</VirtualHost>
<VirtualHost *:80>
ServerName blog.你的域名.com
ServerAlias 你的域名.com
DocumentRoot /var/www/wordpress/
</VirtualHost>

然后保存退出即可,最后重启apache

service apache2 restart

5、安装wordpress
首先去wordpress官网获取wordpress,谷歌了一下发现提供多语种,果断访问中文页面:https://cn.wordpress.org/
官网提供了两种压缩包形式的wordpress,zip和tar.gz,这里我选择tar.gz格式打包的文件

wget https://cn.wordpress.org/wordpress-4.2.2-zh_CN.tar.gz

#下载源文件

tar -xzvf wordpress-4.2.2-zh_CN.tar.gz

#解压缩wordpress

cp -R wordpress /var/www/

#复制主程序到/var/www下面

chmod -R 777 /var/www/wordpress

#赋予此文件夹777的权限
以上,全部设置均完成,接下来就是访问你的blog,会有一个很人性化的页面来帮助你配置wordpress,包括设置wordpress的账号,连接到数据库等等。