diff --git a/setup.py b/setup.py new file mode 100644 index 0000000000000000000000000000000000000000..b67b8d21fd26a94f8a6aa178bfe62cb10f4a4ba0 --- /dev/null +++ b/setup.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 +# coding: utf-8 + +from setuptools import setup, find_packages + +setup( + name="Pass-Checker", + version="0.1", + packages=find_packages(), + scripts=['pass-checker.py'], + + # Project uses reStructuredText, so ensure that the docutils get + # installed or upgraded on the target machine + install_requires=['click', 'zxcvbn', 'http.server', 'cgi', 'cgitb', 'getpass'], + + package_data={ + # If any package contains *.txt or *.rst files, include them: + '': ['*.txt', '*.rst'], + }, + + # metadata for upload to PyPI + author="Tetras Libre", + author_email="David.Beniamine@Tetras-Libre.fr", + description="PassCheker est un système d'évaluation de mot de passes basé sur zxcvbn-python", + license="AGPL", + keywords="password, zxcvbn", + url="https://gitlab.tetras-libre.fr/tetras-libre/PasswordTester", # project home page, if any + + # could also include long_description, download_url, classifiers, etc. +) diff --git a/src/apache/pass-checker.conf b/src/apache/pass-checker.conf new file mode 100644 index 0000000000000000000000000000000000000000..d06b7b49e1c83b73fe3d04253ee4e921b71737a4 --- /dev/null +++ b/src/apache/pass-checker.conf @@ -0,0 +1,22 @@ +<VirtualHost *> + ServerAdmin <ADMIN> + ServerName <FQDN> + ServerSignature Off + CustomLog /var/log/apache2/passchecker_access.log combined + ErrorLog /var/log/apache2/passchecker_error.log + ErrorLog syslog:local2 + + ProxyVia On + ProxyRequests Off + ProxyPass / http://localhost:8842/ + ProxyPassReverse / http://localhost:8842/ + ProxyPreserveHost on + <Proxy *> + Options FollowSymLinks MultiViews + AllowOverride All + Order allow,deny + allow from all + </Proxy> + Include /etc/apache2//ssl.conf +</VirtualHost> + diff --git a/src/console.py b/src/commands/cli.py similarity index 65% rename from src/console.py rename to src/commands/cli.py index 223f74ee394947f9e4d9e27cd0f00b74041fb8df..40fbcbc42f55f2d8c54ee23fd18050a06b2fb7ca 100644 --- a/src/console.py +++ b/src/commands/cli.py @@ -19,15 +19,20 @@ from getpass import getpass from test_pass import test_pass -# Read password -passwd = getpass("Merci d'entrer un mot de passe qui ne sera pas affiché\n") -user_inputs = [] -while True: - word = input("Veuillez entrer un mot d'aide ou une date au format jj/mm/yyyy pour le système ou tappez [entrer]" - " pour arrêter\n") - if word == "": - break - user_inputs.append(word) +def cli(): + # Read password + passwd = getpass("Merci d'entrer un mot de passe qui ne sera pas affiché\n") -print(test_pass(passwd, user_inputs)) + user_inputs = [] + while True: + word = input("Veuillez entrer un mot d'aide ou une date au format jj/mm/yyyy pour le système ou tappez [entrer]" + " pour arrêter\n") + if word == "": + break + user_inputs.append(word) + + print(test_pass(passwd, user_inputs)) + +if __name__ == '__main__': + cli() diff --git a/src/server.py b/src/commands/web.py similarity index 95% rename from src/server.py rename to src/commands/web.py index d9103d28c0c44e6fcf0d1a1bef5f47d55643af1b..36a1f6994c86416cd6a7c62872ea199330ec07ac 100644 --- a/src/server.py +++ b/src/commands/web.py @@ -23,7 +23,7 @@ import cgitb cgitb.enable() -def run(addr, port): +def serve(addr, port): server_address = (addr, port) server = HTTPServer handler = CGIHTTPRequestHandler @@ -34,4 +34,4 @@ def run(addr, port): httpd.serve_forever() if __name__ == "__main__": - run("localhost", 8080) + serve("localhost", 8080) diff --git a/src/translations.py b/src/lib/translations.py similarity index 100% rename from src/translations.py rename to src/lib/translations.py diff --git a/src/test_pass.py b/src/lib/zxcvbn-wrapper.py similarity index 100% rename from src/test_pass.py rename to src/lib/zxcvbn-wrapper.py diff --git a/src/pass-checker.py b/src/pass-checker.py new file mode 100644 index 0000000000000000000000000000000000000000..b5ea76015434b6a693a5f5a15421e64303211e6c --- /dev/null +++ b/src/pass-checker.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python3 +# coding: utf-8 + +import click +from server import serve +from console import cli + +@click.option('--server/--no-server', default=False, help='Start the server for web interface, no means use CLI') +@click.option('--port', default=8842, help='Port on which the web server should listen') +@click.option('--address', default='localhost', help='Address on which the web server should listen') +def passchecker(server, port, address): + + +if __name__ == '__main__': + passchecker() diff --git a/src/service/pass-checker.service b/src/service/pass-checker.service new file mode 100644 index 0000000000000000000000000000000000000000..9de43e688ad481e0f35e9593bb9ef72c8c5e8807 --- /dev/null +++ b/src/service/pass-checker.service @@ -0,0 +1,12 @@ +[Unit] +Description=Pass-Checker Service +After=network.target + +[Service] +Type=simple +User=root +ExecStart=python3 /usr/local/sbin/pass-checker.py --server + +[Install] +WantedBy=multi-user.target +