コード例 #1
0
def run():
    portal = Portal(
        FTPRealm('/opt/ffp2/ftp'),
        [AllowAnonymousAccess(), CertPasswordDB()])
    reactor.listenTCP(2121, CertFTPFactory(fn_uploaded,
                                           portal))  #@UndefinedVariable
    reactor.run()  # @UndefinedVariable
コード例 #2
0
def launch_server(args):
    ftproot_directory = args.root
    config = args.auth
    if args.verbose:
        print(f"[*] Setting ftproot to {ftproot_directory}")
        print(f"[*] Setting FilePasswordDB to {config}")

    while True:
        try:

            users = {'offsec': 'offsec'}

            if args.verbose:
                print(f"[*] Crafting twisted ftp realm")
            p = Portal(
                FTPRealm(ftproot_directory),
                #[AllowAnonymousAccess(), FilePasswordDB(config)]
                [AllowAnonymousAccess(),
                 InMemoryDB(**users)])

            if args.verbose:
                print(f"[*] Crafting FTPFactory from realm")
            f = FTPFactory(p)

            if args.verbose:
                iface = "all" if args.address == "" else args.address
                print(
                    f"[*] Spawning Twisted reactor and binding to TCP socket {iface}:{args.port}"
                )
            reactor.listenTCP(args.port, f, interface=args.address)
            reactor.run()

        except KeyboardInterrupt:
            break
コード例 #3
0
 def getService(self):
     p = Portal(FTPRealm(FTP_PATH), [DenyAllAccess()])
     f = FTPFactory(p)
     f.protocol = LoggingFTP
     f.welcomeMessage = self.banner
     f.canaryservice = self
     return internet.TCPServer(self.port, f, interface=self.listen_addr)
コード例 #4
0
    def setUp(self):
        from twisted.protocols.ftp import FTPRealm, FTPFactory
        from scrapy.core.downloader.handlers.ftp import FTPDownloadHandler

        # setup dir and test file
        self.directory = self.mktemp()
        os.mkdir(self.directory)

        fp = FilePath(self.directory)
        fp.child('file.txt').setContent(b"I have the power!")
        fp.child('file with spaces.txt').setContent(b"Moooooooooo power!")

        # setup server for anonymous access
        realm = FTPRealm(anonymousRoot=self.directory)
        p = portal.Portal(realm)
        p.registerChecker(checkers.AllowAnonymousAccess(),
                          credentials.IAnonymous)

        self.factory = FTPFactory(portal=p, userAnonymous=self.username)
        self.port = reactor.listenTCP(0, self.factory, interface="127.0.0.1")
        self.portNum = self.port.getHost().port
        crawler = get_crawler()
        self.download_handler = create_instance(FTPDownloadHandler,
                                                crawler.settings, crawler)
        self.addCleanup(self.port.stopListening)
コード例 #5
0
    def setUp(self):
        from twisted.protocols.ftp import FTPRealm, FTPFactory
        from scrapy.core.downloader.handlers.ftp import FTPDownloadHandler

        # setup dirs and test file
        self.directory = self.mktemp()
        os.mkdir(self.directory)
        userdir = os.path.join(self.directory, self.username)
        os.mkdir(userdir)
        fp = FilePath(userdir)
        fp.child('file.txt').setContent(b"I have the power!")
        fp.child('file with spaces.txt').setContent(b"Moooooooooo power!")

        # setup server
        realm = FTPRealm(anonymousRoot=self.directory, userHome=self.directory)
        p = portal.Portal(realm)
        users_checker = checkers.InMemoryUsernamePasswordDatabaseDontUse()
        users_checker.addUser(self.username, self.password)
        p.registerChecker(users_checker, credentials.IUsernamePassword)
        self.factory = FTPFactory(portal=p)
        self.port = reactor.listenTCP(0, self.factory, interface="127.0.0.1")
        self.portNum = self.port.getHost().port
        crawler = get_crawler()
        self.download_handler = create_instance(FTPDownloadHandler,
                                                crawler.settings, crawler)
        self.addCleanup(self.port.stopListening)
コード例 #6
0
ファイル: 03.py プロジェクト: okipriyadi/NewSamplePython
def run():
    portal = Portal(
        FTPRealm('/home/kyi/delete'),
        [AllowAnonymousAccess(), CertPasswordDB()])
    reactor.listenTCP(CERT_FTP_PORT,
                      CertFTPFactory(self.fn_uploaded,
                                     portal))  #@UndefinedVariable
    reactor.run()  # @UndefinedVariable
コード例 #7
0
 def __init__(self, service):
     
     self.service = service
     
     self.FDB = FolderDB()
     p = Portal(FTPRealm("", "JobLocation"),
                [self.FDB])
     
     FTPFactory.__init__(self, p)
コード例 #8
0
    def start(self):
        """
        Starts the server.
        :return: None
        """
        if self.__path is None:
            raise AttributeError("The server's root path cannot be None")

        p = Portal(FTPRealm(self.__path),
                   [AllowAnonymousAccess(), FilePasswordDB("pass.dat")])
        f = FTPFactory(p)
        self.__server = reactor.listenTCP(self.__port, f)
コード例 #9
0
ファイル: __init__.py プロジェクト: dslice25/tinymmo-python
def start():

    game = Game()

    # Game event server
    endpoints.serverFromString(reactor, "tcp:10000").listen(GameFactory(game))
    loop = task.LoopingCall(game.loop)
    loop.start(0.05)

    # Game data server
    client_resources = '/tmp/pub/'
    p = Portal(FTPRealm(client_resources), [AllowAnonymousAccess()])
    f = FTPFactory(p)
    reactor.listenTCP(10001, f)

    reactor.run()
コード例 #10
0
 def startService(self):
     log.msg("Starting %s service .." % self.SERVICENAME)
     p = Portal(FTPRealm(anonymousRoot='/dev/null', userHome=self.homedir),
                [FtpUserDb(self)])
     f = CustomFTPFactory(p)
     f.allowAnonymous = False
     f.passivePortRange = xrange(self.passivePortStart,
                                 self.passivePortEnd + 1)
     f.welcomeMessage = "crossbar.io FTP at your service."
     f.passivePublicIp = self.passivePublicIp
     self.listener = self.reactor.listenTCP(self.port, f)
     self.isRunning = True
     log.msg(
         "embedded FTP server running on port %d (passive FTP ports %d - %d, homedir %s)"
         % (self.port, self.passivePortStart, self.passivePortEnd,
            self.homedir))
コード例 #11
0
    def setUp(self):
        # setup dirs and test file
        self.directory = self.mktemp()
        os.mkdir(self.directory)
        userdir = os.path.join(self.directory, self.username)
        os.mkdir(userdir)
        FilePath(userdir).child('file.txt').setContent("I have the power!")

        # setup server
        realm = FTPRealm(anonymousRoot=self.directory, userHome=self.directory)
        p = portal.Portal(realm)
        users_checker = checkers.InMemoryUsernamePasswordDatabaseDontUse()
        users_checker.addUser(self.username, self.password)
        p.registerChecker(users_checker, credentials.IUsernamePassword)
        self.factory = FTPFactory(portal=p)
        self.port = reactor.listenTCP(0, self.factory, interface="127.0.0.1")
        self.portNum = self.port.getHost().port
        self.download_handler = FTPDownloadHandler(Settings())
        self.addCleanup(self.port.stopListening)
コード例 #12
0
ファイル: ftp_server.py プロジェクト: riyazudheen/devel
def init(ftp_port=None):
    global _FTPServer
    lg.out(4, 'ftp_server.init')
    if _FTPServer:
        lg.warn('already started')
        return
    if not ftp_port:
        ftp_port = settings.getFTPServerPort()
    if not os.path.isfile(settings.FTPServerCredentialsFile()):
        bpio.WriteTextFile(settings.FTPServerCredentialsFile(),
                           'bitdust:bitdust')
    # TODO: add protection: accept connections only from local host: 127.0.0.1
    _FTPServer = reactor.listenTCP(
        ftp_port,
        BitDustFTPFactory(
            Portal(FTPRealm('./'), [
                AllowAnonymousAccess(),
                FilePasswordDB(settings.FTPServerCredentialsFile()),
            ]), ))
    lg.out(4, '    started on port %d' % ftp_port)
コード例 #13
0
#!/usr/bin/env python2
from __future__ import print_function, division, absolute_import

# Import twisted things

from twisted.protocols.ftp import FTPFactory
from twisted.protocols.ftp import FTP
from twisted.protocols.ftp import FTPRealm
from twisted.protocols.policies import TimeoutMixin, ThrottlingFactory, WrappingFactory, ThrottlingProtocol
from twisted.internet import reactor
from twisted.cred.portal import Portal
from twisted.cred.checkers import AllowAnonymousAccess

p = Portal(FTPRealm("."), [AllowAnonymousAccess()])
#f = ThrottlingFactory(FTPFactory, readLimit=1000, writeLimit=1000)
#p = Tho(p)

f = FTPFactory(p)
#factory = FTPFactory()
#wrapper = ThrottlingFactory(FTPFactory(p), readLimit=1, writeLimit=1)

#f = f.wrappedFactory(p)
f.timeOut = None
#f = ThrottlingFactory(f, readLimit=1, writeLimit=1)
#f = FileServerFactory()

reactor.listenTCP(5504, f)
reactor.run()
コード例 #14
0
# access to anonymous users and is relatively simple; the second is a very
# primitive password checker.  This example uses a plain text password file
# that has one username:password pair per line. This checker *does* provide
# a hashing interface, and one would normally want to use it instead of
# plain text storage for anything remotely resembling a 'live' network. In
# this case, the file "pass.dat" is used, and stored in the same directory
# as the server. BAD.
#
# Create a pass.dat file which looks like this:
#
# =====================
#   jeff:bozo
#   grimmtooth:bozo2
# =====================
#
p = Portal(FTPRealm("./"), [AllowAnonymousAccess(), FilePasswordDB("pass.dat")])

#
# Once the portal is set up, start up the FTPFactory and pass the portal to
# it on startup. FTPFactory will start up a twisted.protocols.ftp.FTP()
# handler for each incoming OPEN request. Business as usual in Twisted land.
#
f = FTPFactory(p)

#
# You know this part. Point the reactor to port 21 coupled with the above factory,
# and start the event loop.
#
reactor.listenTCP(21, f)
reactor.run()
コード例 #15
0
def start_ftp_server(rootdir):
    p = Portal(FTPRealm(rootdir), [AllowAnonymousAccess()])
    f = FTPFactory(p)
    reactor.listenTCP(2022, f)
コード例 #16
0
#!/usr/bin/env python2
from __future__ import absolute_import, division, print_function

from os.path import isdir
from twisted.cred.checkers import AllowAnonymousAccess
from twisted.cred.portal import Portal
from twisted.internet import reactor
# ftp server imports
from twisted.protocols.ftp import FTPFactory, FTPRealm

from evora.common import netconsts

# TODO: this needs to be specified some other way
# Does not exist on non-observatory computers
data_path = "/home/mro/storage/evora_data/"

if isdir(data_path):
    p = Portal(FTPRealm(data_path), [AllowAnonymousAccess()])
    f = FTPFactory(p)
    f.timeOut = None
    reactor.listenTCP(netconsts.FTP_TRANSFER_PORT, f)
else:
    print("[ftp_server.py] Directory at '" + data_path +
          "' does not exist, exiting...")
    quit()

reactor.run()
コード例 #17
0
 def __init__( self, anonymousRoot, userHome="/home", callback=None ):
     FTPRealm.__init__( self, anonymousRoot, userHome=userHome )
     self.callback = callback