{"id":13576713,"url":"https://github.com/nieluj/nntp-proxy","last_synced_at":"2026-01-10T22:02:27.777Z","repository":{"id":6112951,"uuid":"7340748","full_name":"nieluj/nntp-proxy","owner":"nieluj","description":"simple NNTP proxy with SSL support","archived":false,"fork":false,"pushed_at":"2020-04-29T07:08:10.000Z","size":218,"stargazers_count":58,"open_issues_count":10,"forks_count":24,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-05T08:35:21.800Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nieluj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-12-27T13:36:46.000Z","updated_at":"2024-06-04T14:15:59.000Z","dependencies_parsed_at":"2022-09-06T12:01:09.314Z","dependency_job_id":null,"html_url":"https://github.com/nieluj/nntp-proxy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nieluj/nntp-proxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nieluj%2Fnntp-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nieluj%2Fnntp-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nieluj%2Fnntp-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nieluj%2Fnntp-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nieluj","download_url":"https://codeload.github.com/nieluj/nntp-proxy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nieluj%2Fnntp-proxy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28259565,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2026-01-10T02:00:06.867Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T15:01:13.110Z","updated_at":"2026-01-10T22:02:27.746Z","avatar_url":"https://github.com/nieluj.png","language":"C","funding_links":[],"categories":["C"],"sub_categories":[],"readme":"# nntp-proxy\n\nsimple NNTP proxy with SSL support. If a padlock engine is available, it will be used automatically for AES encryption (requires libssl \u003e 1.0).\n\n## Configuration\n\nBelow is an example of a configuration file :\n\n```\n##################################\n#\n# nntp-proxy configuration\n#\n##################################\n\nnntp_server:\n{\n    # NNTP Server host and port address\n    server = \"ssl-eu.astraweb.com\";\n    port = 563;\n    # NNTP username\n    username = \"changeme\";\n    # NNTP password in clear text\n    password = \"changeme\";\n    # Maximum number of connections allowed by the NNTP\n    max_connections = 20;\n};\n\nproxy:\n{\n    #Local address and port to bind to\n    bind_ip = \"0.0.0.0\";\n    bind_port = 5555;\n\n    # SSL key and cert file\n    ssl_key = \"key.pem\";\n    ssl_cert = \"cert.pem\";\n\n    # prohibit users from posting\n    prohibit_posting = false;\n\n    # Verbose levels: ERROR, WARNING, NOTICE, INFO, DEBUG\n    verbose = \"INFO\";\n\n    # Password is made with: 'mkpasswd -m sha-512 \u003cpassword\u003e'\n    # mkpasswd is found in whois package on Debian-based systems\n    users = (\n        {\n            # Username of the client side of the proxy\n            username = \"tarzan\";\n            # Password: monkey\n            password = \"$6$Ds77DJE/u/ScJLk$Tj0SaT7AUDdDBqS7v/4uDYGYWDDH3GWSL0KP6FQKk7anC5Cghi5IJUYzIAxJZ8rFgyeFmosPSEyQRL.slG5ST1\";\n            # the number of allowed connections for this user\n            max_connections = 1;\n        },\n        {\n            # Username of the client side of the proxy\n            username = \"jane\";\n            # Password: king\n            password = \"$6$xvOO3Cm97/O6yj$a6GmSiz9yWCibWcetxJQ.c4cIOUbXly.3i1p/oCqdGo47TezmChb0tSeIxmvD.2zrb/lywc4vtl/IKLBoqMXs1\";\n            # the number of allowed connections for this user\n            max_connections = 1;\n        }\n    );\n};\n```\n\n\n\n## Installation\n\nTODO\n\n### Compilation\n\nThe program relies on ``libevent`` (version 2) with openssl support and libconfig. On Debian-based systems, the dependencies can be installed with the following command line :\n\n```sh\n$ sudo apt-get install libssl-dev libevent-dev libconfig-dev\n```\n\nOn Mac OS X\n\n```sh\n$ brew install openssl libevent libconfig pkg-config\n$ brew link --force openssl\n```\n\nThe provided `Makefile` can be used to compile the program.\n\n### SSL support\n\nThe proxy only establishes SSL connections to the NNTP and with the NNTP clients.\nA X509 certificate must be generated for the server side of the proxy\n\n```sh\n$ openssl genrsa -out key.pem 2048\n$ openssl req -new -key key.pem -out cert.req\n$ openssl x509 -req -days 365 -in cert.req -signkey key.pem -out cert.pem\n```\n\n## Usage\n\n`nntp-proxy [\u003cconfig file\u003e]`\n\n  * `config file` : Configuration file (See nntp-proxy.conf.example)\n\nExample : `$ nntp-proxy nntp-proxy.conf`\n\n## Troubleshooting\n\nThe first thing to try is to test a connection using OpenSSL :\n\n```bash\n$ openssl s_client -host localhost -port 563\nCONNECTED(00000003)\ndepth=0 CN = localhost\nverify error:num=18:self signed certificate\nverify return:1\ndepth=0 CN = localhost\nverify return:1\n---\nCertificate chain\n 0 s:/CN=localhost\n   i:/CN=localhost\n---\nServer certificate\n-----BEGIN CERTIFICATE-----\nMIICpDCCAYwCCQDj2QNMky6R8zANBgkqhkiG9w0BAQUFADAUMRIwEAYDVQQDDAls\nb2NhbGhvc3QwHhcNMTMwNTIwMTAxODEyWhcNMTQwNTIwMTAxODEyWjAUMRIwEAYD\n[...]\nj4IpsG3kPxY5ONX9JvdggnKkYEvI1DKQTPKM1EwkuWLe/H0rZRE1nA12aQD45lyp\n3oVSa8TiQwBlCT9C2y63mW4m3E7v70jwSm5JnuxovqAefgZ76n7VYGtl7lGOgfxD\nL8MPr0uN0XA=\n-----END CERTIFICATE-----\nsubject=/CN=localhost\nissuer=/CN=localhost\n---\nNo client certificate CA names sent\n---\nSSL handshake has read 1017 bytes and written 568 bytes\n---\nNew, TLSv1/SSLv3, Cipher is AES256-SHA\nServer public key is 2048 bit\nSecure Renegotiation IS supported\nCompression: zlib compression\nExpansion: zlib compression\nSSL-Session:\n    Protocol  : TLSv1.1\n    Cipher    : AES256-SHA\n    Session-ID: 2A56CC5DC4DFB9D1D113CB8447914D07DF0359E3958472F8BB49877BC329DDF5\n    Session-ID-ctx: \n    Master-Key: 4EC9F096762531815FEA4BF97F86A12040FAA94D7208994298D5D73F2553622FB1B1A790FF528D68D394E23F6466345B\n    Key-Arg   : None\n    PSK identity: None\n    PSK identity hint: None\n    SRP username: None\n    TLS session ticket lifetime hint: 300 (seconds)\n    TLS session ticket:\n    0000 - 97 d1 d6 6f 45 8e 5b ce-03 81 f0 5f 8e 54 c2 d4   ...oE.[...._.T..\n    0010 - 18 a4 5d 47 80 89 42 44-32 0f 93 99 4b 30 04 fb   ..]G..BD2...K0..\n    0020 - f4 0d be 83 05 b6 5a 84-62 77 ae dd e1 13 50 83   ......Z.bw....P.\n    0030 - 3f 3b de 14 ad 6f 60 ef-89 fc 17 c5 4e 21 51 95   ?;...o`.....N!Q.\n    0040 - de fa 8a 3e 35 0c 6b 48-ca 51 12 12 a4 12 3f bf   ...\u003e5.kH.Q....?.\n    0050 - 91 5f e0 92 71 94 56 79-26 39 e6 03 8a 9d b9 32   ._..q.Vy\u00269.....2\n    0060 - 5f 35 da a1 f6 c6 1b 0d-a2 20 d6 f9 48 ee bd dc   _5....... ..H...\n    0070 - 8d 18 0b 54 6c 15 3e e1-a2 55 50 b0 22 08 65 ff   ...Tl.\u003e..UP.\".e.\n    0080 - 40 0d c4 77 84 fc 24 5d-76 20 43 0c 2d 79 61 32   @..w..$]v C.-ya2\n    0090 - d5 84 00 4e 5f f9 c9 4f-02 ad 23 85 d5 c2 8c 0c   ...N_..O..#.....\n\n    Compression: 1 (zlib compression)\n    Start Time: 1369045956\n    Timeout   : 300 (sec)\n    Verify return code: 18 (self signed certificate)\n---\n200 NNTP Proxy service ready.\nAUTHINFO USER tarzan\n381 PASS required\nAUTHINFO PASS monkey\n281 OK\nLIST EXTENSIONS\n202 Extensions supported:\nHDR\nOVER\n.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnieluj%2Fnntp-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnieluj%2Fnntp-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnieluj%2Fnntp-proxy/lists"}