CentOS6源码安装VSFTPD3
还是碰到老问题:安全扫描,由于CentOS6上VSFTPD最高支持到V2.2.2,目前已经是官方支持的最新版本(发布了几年...)
但有安全漏洞,又没法通过限制访问进行控制,只能想办法升级到最新版本了。
关闭服务 service vsftpd stop service iptables stop sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config;
检查旧版vsftpd版本 vsftpd -v
卸载旧版vsftpd yum remove -y vsftpd
安装依赖包: yum install -y libcap libcap-devel tcp_wrappers tcp_wrappers-devel
编译安装源码包 tar -xzvf vsftpd-3.0.3.tar.gz cd vsftpd-3.0.3
修改显示 sed -i 's/UTF8 ON/DISABLE UTF8 ON/g' opts.c
编译安装
make &;&; make install`
mkdir /etc/vsftpd/
cp vsftpd.conf /etc/vsftpd/
cp RedHat/vsftpd.pam /etc/pam.d/vsftpd #PAM认证文件
sed -i 's/lib///lib64///g' /etc/pam.d/vsftpd
如果不成功,手动修改/etc/pam.d/vsftpd中的lib为lib64
启动并查看
vsftpd /usr/local/sbin/vsftpd &
netstat -tunlp | grep 21
/usr/local/sbin/vsftpd -v
cp /usr/local/sbin/vsftpd /usr/sbin/vsftpd
制作启动脚本 vim /etc/xinetd.d/vsftpd disable = yes
重启xinetd服务service xinetd restart
修改启动脚本:
vim /etc/init.d/vsftpd
#!/bin/bash
#
# vsftpd This shell script takes care of starting and stopping
# standalone vsftpd. Customized to be used with CentOS 5.4
# and Monit by creating PID files for each process
#
# chkconfig: - 60 50
# description: Vsftpd is a ftp daemon, which is the program \
# that answers incoming ftp service requests.
# processname: vsftpd
# config: /etc/vsftpd/vsftpd.conf
# Source function library.
. /etc/rc.d/init.d/functions
RETVAL=0
prog="vsftpd"
site="$prog"
sbin="/usr/sbin/vsftpd"
conf="/etc/vsftpd/vsftpd.conf"
pidfile="/var/run/vsftpd/vsftpd.pid"
[ -d /var/run/$prog ] || mkdir -p /var/run/$prog
start() {
[ -x $sbin ] || exit 1
[ -r $conf ] || exit 1
if [ -f $pidfile ]; then
pid=`cat $pidfile`
ps -ef | grep -v grep | grep $pid | grep $sbin > /dev/null
if [ $? -eq 0 ]; then
echo "$prog already running!"
exit 1
else
rm -f $pidfile
fi
fi
echo -n $"Starting $prog: "
$sbin $conf &
[ $? -eq 0 ] && success || failure
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
pidcmd=`ps -ef | grep -v grep | grep $sbin | awk '{print $2}'`
echo $pidcmd > $pidfile
echo
return $RETVAL
}
stop() {
echo -n $"Shutting down $prog: "
killproc $prog
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
rm -f $pidfile
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
RETVAL=$?
;;
condrestart)
if [ -f /var/lock/subsys/$prog ]; then
stop
start
RETVAL=$?
fi
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart|status}"
exit 2
esac
exit $RETVAL
授权755
chmod 755 /etc/init.d/vsftpd
chkconfig vsftpd on
修改配置文件
vim /etc/vsftpd/vsftpd.conf
---
验证
service vsftpd restart
vsftpd -v
贴一个主要配置:
local_root=/home
chroot_local_user=YES
chroot_list_enable=YES
allow_writeable_chroot=YES
chroot_list文件不包含要使用的FTP用户名!
解决报错500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
另,和以前版本不一样配置(估计没用):
cat /etc/vsftpd/user_config/ftpuser
write_enable=YES
CentOS6源码安装VSFTPD3的更多相关文章
- CentOS6源码安装vim8
CentOS6源码安装vim8 vim8相比vim7多了很多功能. 不过需要源码来进行安装. 移除旧版本的vim yum remove vim 安装依赖库 sudo yum install -y ru ...
- CentOS下源码安装vsftpd-3.0.0,并设置指定用户访问指定目录(附带完整配置文件)
1.卸载系统已经存在的ftp服务器 因为是源码安装,所以不能通过rpm -qa的方式查看是否已经安装ftp服务器,可以通过find / | grep vsftp*方式查看系统中存在哪些与vsftpd相 ...
- CentOS6源码安装zabbix服务器
1.下载安装包并解压 2.预环境搭建 3.创建zabbix用户,编译安装zabbix 4.配置mysql 5.配置zabbix-server 6.配置apache和php 7.添加开机自启动 1 yu ...
- Centos6 源码安装mysql5.6
这里介绍如何使用centos6.*来安装mysql5.6版本. 先做一下准备工作 确定好用于运行mysql的用户,安全起见,建议拒绝次用户登录,仅用于运行程序. useradd mysql -s/sb ...
- Centos6.6上源码安装Nodejs V4版本
本来就是想在vps上装一个Ghost博客,这个博客依赖的是Nodejs,然后推荐的是V4版本.然后我就对着官网的步骤安装,发现根本没有Centos6 i386的资源了(64位的还是有的), 我只能在那 ...
- CentOS6.7源码安装MySQL5.6
1.源码安装MySQL5.6 # CentOS6操作系统安装完成后,默认会在/etc目录下存在一个my.cnf, # 强制卸载了mysql-libs之后,my.cnf就会消失 rpm -qa | gr ...
- CENTOS6.5源码安装LNMP
CENTOS6.5源码安装LNMP 一.安装前准备 ########################################################################## ...
- [转帖]CENTOS6.6下mysql5.7.11带boost和不带boost的源码安装
CENTOS6.6下mysql5.7.11带boost和不带boost的源码安装 本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuir ...
- CentOS6.5源码安装MySQL5.6.35
CentOS6.5源码安装MySQL5.6.35 一.卸载旧版本 1.使用下面的命令检查是否安装有mysql [root@localhost tools]# rpm -qa|grep -i mysql ...
随机推荐
- gcc生成含有C信息的汇编
title: gcc生成含有C信息的汇编 tags: gcc date: 2018-10-24 23:40:19 --- https://www.cnblogs.com/fengkang1008/p/ ...
- python--编写用例脚本
from appium import webdriverimport time desired_caps = {}desired_caps['platformName'] = 'Android'des ...
- python css盒子型 浮动
########################总结############### 块级标签能够嵌套某些块级标签和内敛标签 内敛标签不能块级标签,只能嵌套内敛标签 嵌套就是: <div> ...
- Hadoop记录-HDFS balancer配置
HDFS balancer配置(可通过CM配置)dfs.datanode.balance.max.concurrent.moves 并行移动的block数量,默认5 dfs.datanode.bala ...
- Golang入门教程(十四)结构体和类详解
golang中并没有明确的面向对象的说法,实在要扯上的话,可以将struct比作其它语言中的class. 类声明 type Book struct { Title string Author stri ...
- 转--select/poll/epoll到底是什么一回事
面试题:说说select/poll/epoll的区别. 这是面试后台开发时的高频面试题,属于网络编程和IO那一块的知识.Android里面的Handler消息处理机制的底层实现就用到了epoll. 为 ...
- springBoot整合多数据源
springBoot整合相关 1:springBoot整合多数据源: 应用场景: 项目需要同时连接两个不同的数据库A, B,并且它们都为主从架构,一台写库,多台读库. 工具/版本: jdk1. ...
- Restful API学习Day5 - DRF之限制 分页 解析器和渲染器
参考文档: Django REST framework基础:认证.权限.限制 Django REST framework基础:分页 Django REST framework基础:解析器和渲染器 一. ...
- react编译报错:Import in body of module; reorder to top import/first
原因是这样的: 我把一个组件分为三个文件, |—Home.jsx // 业务逻辑与html Home——|—Home.css // 样式 |—index.js // 引入Home.css ,再把Hom ...
- Viterbi
把语音分割为计算发音质量测度所需要的小单元时候,需要进行Viterbi对齐 Viterbi,在htk和sphinx中,也被称作token passing model Viterbi解码图是 状态数Sm ...