Следует иметь в виду, что FTP отправляет Ваш пароль в ОТКРЫТОМ ТЕКСТЕ. Таким образом, потенциал для компромисса определенно там.
Другая вещь рассмотреть, действительно ли Ваш пароль FTP УНИКАЛЕН для Вашего хостинга? Вы уверены, что не используете его БОЛЬШЕ НИГДЕ? Никакие другие учетные записи, веб-сайты, и т.д.?
Насколько безопасный Ваш ПОЧТОВЫЙ пароль? Я был вовлечен в случаи, где "слабое звено" было на самом деле ПОЧТОВЫМ паролем, и преступник просто отправлял, "забыл пароли" на адрес электронной почты и удаление доказательства от электронного ящика, в то время как все были слишком заняты, фокусируясь на поставленном под угрозу сервере для замечания.
Всего несколькими вещами, которые пришли на ум... некоторые другие вещи, конечно, будет подход социальной инженерии с Вашим ISP или некоторой программной уязвимостью на Вашем сервере или одном из пакетов Ваш хостинг.
Существует более (очевидно), но это обычно - "обычные подозреваемые".
ОБНОВЛЕНИЕ:
На основе этой новой информации (что хакер не использует FTP для изменения файлов) я могу только предположить, что наиболее вероятной причиной является, вероятно, незащищенное веб-приложение.
Это не ЕДИНСТВЕННАЯ вещь, которой это может быть всего лишь в случаях как это, наиболее вероятно.
Другая вещь рассмотреть (и проверка на) состоит в том, если он оставил себя своего рода "черным ходом" Вашему приложению. Я, кажется, вспоминаю Вас упоминающий прежде, который Ваш ISP сказал, что он приехал на пути FTP. Действительно ли возможно, что он приехал на пути FTP в первый раз и оставил себя черным ходом?
Кроме того, это - выстрел в темноте, но я лично засвидетельствовал поставленные под угрозу поля, куда хакер только приехал в ОДНО время, но оставил задание крона, которое продолжало изменять файлы и другое различное зло. Действительно ли возможно, что хакер не возвратился, и Вы имеете дело с автоматизированным сценарием? Просто что-то, чтобы проверить, чувствуете ли Вы исчерпание всех других возможностей.
Наконец, у Вас есть доступ к Вашим блогам, системным журналам, и т.д.? Если так, что они говорят? Они показывают какие-либо подсказки?
Вот то, что я приготовил. обратите внимание, что мой svn каталог находится на корневой папке/svn
#!/bin/bash
#
# /etc/rc.d/init.d/subversion
#
# Starts the Subversion Daemon
#
# chkconfig: 2345 90 10
# description: Subversion Daemon
# processname: svnserve
. /etc/rc.d/init.d/functions
[ -x /usr/bin/svnserve ] || exit 1
RETVAL=0
prog="svnserve"
desc="Subversion Daemon"
start() {
echo -n $"Starting $desc ($prog): "
daemon $prog -r /svn -d
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
echo
}
stop() {
echo -n $"Shutting down $desc ($prog): "
killproc $prog
RETVAL=$?
[ $RETVAL -eq 0 ] && success || failure
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
RETVAL=$?
;;
condrestart)
[ -e /var/lock/subsys/$prog ] && restart
RETVAL=$?
;;
*)
echo $"Usage: $0 {start|stop|restart|condrestart}"
RETVAL=1
esac
exit $RETVAL
Измените эту строку для отражения каталога
daemon $prog -r /svn -denter code here
Затем выполненный в оболочке
#chkconfig --add svnserve
#chkconfig svnserve on
Перезапустите сервис, чтобы видеть, работает ли он
#service svnserve restart
и бум :D
Я создал интеллектуальный сценарий debian, основанный в основном на пакете Tomcat. При необходимости вы можете изменить основную переменную, она также может обрабатывать механизм по умолчанию. Наслаждайтесь.
#! /bin/sh # # /etc/init.d/subversion -- startup script for Subversion # # Author: Csaba Tenkes csaba.tenkes@brevissimus.eu # ### BEGIN INIT INFO # Provides: subversion # Required-Start: $local_fs $remote_fs $network # Required-Stop: $local_fs $remote_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start subversion # Description: Start the Subversion server. ### END INIT INFO set -e PATH=/bin:/usr/bin:/sbin:/usr/sbin DESC="Subversion server" NAME=svnserve SCRIPTNAME=/etc/init.d/$NAME PIDFILE=/var/run/$NAME.pid SVN_USER=subversion SVN_GROUP=subversion SVN_REPO_PATH=/opt/svn-repos/ SVNSERVE=/usr/bin/$NAME SVNSERVE_ARGS="-d -r $SVN_REPO_PATH" [ -x "$SVNSERVE" ] || exit 0 [ -r /etc/default/$NAME ] && . /etc/default/$NAME . /lib/lsb/init-functions case "$1" in start) set +e log_daemon_msg "Starting $DESC" "$NAME" if ! [ -f "$PIDFILE" ]; then # TODO: 'ps fax | grep svnserve| grep ?' or process is existing umask 002 start-stop-daemon --start --chuid $SVN_USER:$SVN_GROUP --make-pidfile --pidfile $PIDFILE --exec $SVNSERVE -- \ $SVNSERVE_ARGS >/dev/null; chown $SVN_USER "$PIDFILE" log_end_msg 0 else log_progress_msg "(already running)" log_end_msg $? fi set -e ;; stop) set +e log_daemon_msg "Stopping $DESC" "$NAME" if [ -f "$PIDFILE" ]; then if start-stop-daemon --stop --exec $SVNSERVE; then log_end_msg 0 else log_end_msg $? fi rm -f "$PIDFILE" else log_progress_msg "(not running)" log_end_msg 0 fi set -e ;; restart|force-reload) if [ -f "$PIDFILE" ]; then $0 stop sleep 1 fi $0 start ;; status) set +e start-stop-daemon --test --start --pidfile "$PIDFILE" \ --user $SVN_USER --exec $SVNSERVE \ >/dev/null 2>&1 if [ "$?" = "0" ]; then if [ -f "$PIDFILE" ]; then PID=`cat $PIDFILE` log_daemon_msg "$DESC" "$NAME (pid $PID) is running.." log_end_msg 0 exit 0 else log_daemon_msg "$DESC" "$NAME is not running" log_end_msg 0 exit 3 fi else log_daemon_msg "$DESC " "$NAME is running with pid `cat $PIDFILE`" log_end_msg 0 exit 0 fi set -e ;; *) log_success_msg "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" exit 1 ;; esac exit 0
в наши дни это должно быть так просто (если бы с ним только svnserve;В настоящее время я использую v1.9.5):
sudo systemctl enable svnserve
sudo systemctl daemon-reload
, но /etc/init.d/svnserve по-прежнему работает для Stretch (Debian v9.2, который я использую сейчас):
#!/bin/sh
if [ true != "$INIT_D_SCRIPT_SOURCED" ] ; then
set "$0" "$@"; INIT_D_SCRIPT_SOURCED=true . /lib/init/init-d-script
fi
### BEGIN INIT INFO
# Provides: svnserve
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: svnserve init script
# Description: bare minimum svn init script
### END INIT INFO
DESC="subversion server"
DAEMON=/usr/bin/svnserve
DAEMON_ARGS="-d -r /data/svn --log-file /var/log/svn.log"
ПРИМЕЧАНИЕ: измените базовый путь репо на набор ваши потребности, т.е. я использовал "svnadmin create / data / svn / repo1" и этот путь в аргументах демона, чтобы я мог просто svn: // host / repo1
, а затем запустить:
sudo chmod 755 /etc/init.d/svnserve
sudo update-rc.d svnserve defaults
, если вы получите ошибку Что касается отсутствия init-d-script, вы, вероятно, используете старый Debian, например Wheezy, поэтому «sudo rm /etc/init.d/svnserve», а затем «sudo cp /etc/init.d/skeleton / etc / init .d / svnserve "(который существовал еще в Wheezy, но не сейчас), и измените три строки ниже (первый блок - по умолчанию, а второй - то, что должно быть, отмечая sbin => bin):
NAME=daemonexecutablename
DAEMON=/usr/sbin/$NAME
DAEMON_ARGS="--options args"
NAME=svnserve
DAEMON=/usr/bin/$NAME
DAEMON_ARGS="-d -r /data/svn --log-file /var/log/svn.log"*
[лучше слишком много информации, чем слишком мало]