编译安装FTP及相关配置

第一步、安装

        1. 从https://security.appspot.com/vsftpd.html下载vsftpd.tar.gz;

        2. 执行以下命令:

tar -zxvf vsftpd-xx.tar.gz
cd vsftpd-xx

        3. 编辑Makefile文件,编辑结果如下所示:

# Makefile for systems with GNU tools
CC      =       gcc
INSTALL =       install
IFLAGS  = -idirafter dummyinc
#CFLAGS = -g
CFLAGS  =       -O2 -fPIE -fstack-protector --param=ssp-buffer-size=4 \
        -Wall -W -Wshadow -Werror -Wformat-security \
        -D_FORTIFY_SOURCE=2 \
        #-pedantic -Wconversion

LIBS    =       `./vsf_findlibs.sh`
LINK    =       -Wl,-s
LDFLAGS =       -fPIE -pie -Wl,-z,relro -Wl,-z,now

OBJS    =       main.o utility.o prelogin.o ftpcmdio.o postlogin.o privsock.o \
                tunables.o ftpdataio.o secbuf.o ls.o \
                postprivparent.o logging.o str.o netstr.o sysstr.o strlist.o \
    banner.o filestr.o parseconf.o secutil.o \
    ascii.o oneprocess.o twoprocess.o privops.o standalone.o hash.o \
    tcpwrap.o ipaddrparse.o access.o features.o readwrite.o opts.o \
    ssl.o sslslave.o ptracesandbox.o ftppolicy.o sysutil.o sysdeputil.o \
    seccompsandbox.o


.c.o:
        $(CC) -c $*.c $(CFLAGS) $(IFLAGS)

vsftpd: $(OBJS)
        $(CC) -o vsftpd $(OBJS) $(LINK) $(LDFLAGS) $(LIBS)

install:
        if [ -x /usr/local/sbin ]; then \
                $(INSTALL) -m 755 vsftpd /usr/local/sbin/vsftpd; \
        else \
                $(INSTALL) -m 755 vsftpd /usr/sbin/vsftpd; fi
        if [ -x /usr/share/man ]; then \
                $(INSTALL) -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8; \
                $(INSTALL) -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5; \
        elif [ -x /usr/local/man ]; then \
                $(INSTALL) -m 644 vsftpd.8 /usr/local/man/man8/vsftpd.8; \
                $(INSTALL) -m 644 vsftpd.conf.5 /usr/local/man/man5/vsftpd.conf.5; \
        else \
                $(INSTALL) -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \
                $(INSTALL) -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi
        if [ -x /etc/xinetd.d ]; then \
                $(INSTALL) -m 644 xinetd.d/vsftpd /etc/xinetd.d/vsftpd; fi

clean:
        rm -f *.o *.swp vsftpd

        4. 执行以下命令:

make
ls -l vsftpd
useradd nobody
mkdir /usr/share/empty
mkdir /var/ftp
useradd -d /var/ftp ftp
chown root.root /var/ftp
chmod og-w /var/ftp
cp vsftpd.conf.5 /usr/local/man/man5
cp vsftpd.8 /usr/local/man/man8
cp vsftpd /usr/local/sbin/vsftpd
make install
cp vsftpd.conf /etc

        5. 启动服务,测试登录

启动服务:
/usr/local/sbin/vsftpd
测试登录
ftp localhost
用户名为ftp,密码为空

第二步:修改端口

        1. 修改/etc/vsftpd.conf,在末尾添加:

listen_port=801

        表示将端口号修改为801。

        2. 编辑/etc/services文件,将“ftp 21/tcp”改为“ftp 801/tcp”。

        3. 重启FTP服务。


第三步:设置密码登录

        1. 修改vsftpd.conf,把anonymouns=yes改成anonymouns=no
        2. useradd -d /var/ftp test
        3. passwd test
        4. 重启vsftpd即可


第四步:有防火墙的外网访问

        FTP访问包括请求接口和数据库连接接口,对FTP的访问包括PASV和PORT两种方式,我们通常会用PASV方式,所以除暴露FTP的访问端口(即listen_port的值)外,还需要暴露PASV指定的端口,在vsftpd.conf中添加以下配置:

listen_port=30

pasv_enable=YES
pasv_min_port=55443
pasv_max_port=55443

        表赤FTP端口是30,数据访问端口是55443,对外只需要暴露这两个端口即可用外网访问FTP。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值