#!/bin/sh # # script to protect anonymous ftp against some attacks # (c) Mar-90 by guenther@ira.uka.de # FTP_HOME=/ftp BIN=$FTP_HOME/bin DEV=$FTP_HOME/dev ETC=$FTP_HOME/etc IN=$FTP_HOME/incoming LF=$FTP_HOME/lost+found LOG=$FTP_HOME/ls-lagR OUT=$FTP_HOME/outgoing PUB=$FTP_HOME/pub TMP=/tmp # FTP_UID=ftpadm FTP_GID=XLINK # CHGRP=/bin/chgrp CHMOD=/bin/chmod CHOWN=/etc/chown COMPRESS=/usr/ucb/compress FIND=/usr/bin/find LS=/bin/ls RM=/bin/rm SH=/bin/sh # # # create temporary script for find # CHPERM=$TMP/SECURE_FTP.$$ $CAT << 'EOF' > $CHPERM #!$SH if [ -d $1 ] ; then $CHMOD 755 $1; else $CHMOD 644 $1; fi EOF # $CHOWN -f root $FTP_HOME $CHMOD 755 $FTP_HOME $CHOWN -f $FTP_UID $FTP_HOME/* $CHOWN -f -R root $BIN $ETC $LF cd $FTP_HOME for i in * ; do $SH $CHPERM $i done $CHMOD 111 $BIN $ETC $CHMOD 711 $OUT $CHMOD 733 $IN $CHOWN -f -R $FTP_UID $PUB $IN $OUT $CHGRP -f -R $FTP_GID $PUB $IN $OUT $FIND $PUB -exec $SH $CHPERM {} \; $RM -f $CHPERM # [ -f $LOG.Z ] && { $RM -f $LOG.Z } [ -f $LOG ] && { $RM -f $LOG } cd FTP_HOME $LS -lagR $PUB > $LOG $COMPRESS $LOG $CHOWN -f $FTP_UID $LOG $LOG.Z $CHGRP -f $FTP_GID $LOG $LOG.Z [ -f $LOG ] && { $CHMOD 644 $LOG } [ -f $LOG.Z ] && { $CHMOD 644 $LOG.Z } # # end-of-script #