{"id":1152,"date":"2017-10-23T11:24:09","date_gmt":"2017-10-23T08:24:09","guid":{"rendered":"https:\/\/community.virtono.com\/?p=1152"},"modified":"2020-06-10T16:47:05","modified_gmt":"2020-06-10T13:47:05","slug":"set-up-the-ftp-server-under-debian","status":"publish","type":"post","link":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/set-up-the-ftp-server-under-debian\/","title":{"rendered":"Set up the FTP server under Debian"},"content":{"rendered":"<p><b>ProFTPD<\/b>\u00a0is a widely-used, well-configurable FTP server for UNIX-based operating systems.\u00a0This article shows the\u00a0<b>installation and configuration of ProFTPD<\/b>\u00a0in version 1.3.5b-4 on\u00a0Debian\u00a0Linux.\u00a0In the example shown, a TLS encryption is configured on the FTP server to encrypt the communication between the FTP client (eg FileZilla) and the FTP server ProFTPD.\u00a0Debian Stretch 9 was used as a test system.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_73 counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/set-up-the-ftp-server-under-debian\/#Installation\" title=\"Installation\">Installation<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/set-up-the-ftp-server-under-debian\/#Configuration\" title=\"Configuration\">Configuration<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/set-up-the-ftp-server-under-debian\/#SSL_TLS_encrypted_FTP_connection_with_mod_tls\" title=\"SSL \/ TLS encrypted FTP connection with mod_tls\">SSL \/ TLS encrypted FTP connection with mod_tls<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/set-up-the-ftp-server-under-debian\/#Create_Certificate\" title=\"Create Certificate\">Create Certificate<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/set-up-the-ftp-server-under-debian\/#Configure_TLS\" title=\"Configure TLS\">Configure TLS<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/set-up-the-ftp-server-under-debian\/#Create_FTP_user\" title=\"Create FTP user\">Create FTP user<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/set-up-the-ftp-server-under-debian\/#Anonymous_access\" title=\"Anonymous access\">Anonymous access<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/set-up-the-ftp-server-under-debian\/#Analysis_of_connection_problems\" title=\"Analysis of connection problems\">Analysis of connection problems<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.virtono.com\/community\/tutorial-how-to\/set-up-the-ftp-server-under-debian\/#Message_memcache_support_not_enabled\" title=\"Message: memcache support not enabled\">Message: memcache support not enabled<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Installation\"><\/span><span id=\"Installation\" class=\"mw-headline\">Installation<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The installation of ProFTPD is done quickly by the package administration integrated in Debian.<\/p>\n<div class=\"mw-highlight mw-content-ltr\" dir=\"ltr\">\n<pre>sudo apt install proftpd-basic\r\n<\/pre>\n<\/div>\n<p>If the package can not be found, update the package sources:<\/p>\n<div class=\"mw-highlight mw-content-ltr\" dir=\"ltr\">\n<pre>sudo apt update\r\n<\/pre>\n<\/div>\n<p>If the package still fails to install, check the\u00a0<i>\/etc\/apt\/sources.list<\/i>\u00a0file\u00a0, there may be a problem with the configured Debian Mirror Server.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Configuration\"><\/span><span id=\"Konfiguration\" class=\"mw-headline\">Configuration<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>The configuration of the ProFTPD server is described below.\u00a0The directory\u00a0<code>\/etc\/proftpd\/<\/code>contains the configuration files of ProFTPD.<\/p>\n<p>However, your own configuration files are best\u00a0<code>conf.d<\/code>stored\u00a0in the directory\u00a0.\u00a0Package updates do not affect the files in this directory.\u00a0The include directive includes all files in the\u00a0<code>conf.d<\/code>directory in the proftpd.conf.<\/p>\n<p>In this example, the file\u00a0<code>custom.conf<\/code>for the customizations of the ProFTPD server is used for the configuration to take effect:<\/p>\n<div class=\"mw-highlight mw-content-ltr\" dir=\"ltr\">\n<pre>$ sudo vi \/etc\/proftpd\/conf.d\/custom.conf\r\n <span class=\"c1\"># Ftp user does not need a valid shell<\/span>\r\n&lt;Global&gt;\r\n    RequireValidShell off\r\n&lt;\/ Global&gt;\r\n<span class=\"c1\"># If desired turn off IPv6<\/span>\r\nUseIPv6 off\r\n<span class=\"c1\"># Default directory is ftpusers home<\/span>\r\nDefaultRoot ~ ftpuser\r\n<span class=\"c1\"># Limit login to the ftpuser group<\/span>\r\n&lt;Limit LOGIN&gt;\r\n    DenyGroup! Ftpuser\r\n&lt;\/ Limit&gt;\r\n<\/pre>\n<\/div>\n<p>The file is then saved and the ProFTPD Server is restarted:<\/p>\n<div class=\"mw-highlight mw-content-ltr\" dir=\"ltr\">\n<pre>$ sudo systemctl restart proftpd.service\r\n<\/pre>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"SSL_TLS_encrypted_FTP_connection_with_mod_tls\"><\/span><span id=\"SSL.2FTLS-verschl.C3.BCsselte_FTP-Verbindung_mit_mod_tls\" class=\"mw-headline\">SSL \/ TLS encrypted FTP connection with mod_tls<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>The TLS module allows an encrypted connection over SSL \/ TLS to the ProFTPD server.<\/p>\n<p><b>Attention: Without encryption, the FTP protocol transfers both login and normal data in the plaintext!\u00a0The use of SSL \/ TLS is strongly recommended for productive environments.<\/b><\/p>\n<p>By default, ProFTPD supports the TLS module:<\/p>\n<div class=\"mw-highlight mw-content-ltr\" dir=\"ltr\">\n<pre>$ sudo proftpd -vv <span class=\"p\">| <\/span>grep tls\r\n  mod_tls_memcache \/ 0.1\r\n  mod_tls \/ 2.6\r\n<\/pre>\n<\/div>\n<p>It is\u00a0<code>\/etc\/proftpd\/modules.conf<\/code>already included in and automatically active.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Create_Certificate\"><\/span><span id=\"Zertifikat_erstellen\" class=\"mw-headline\">Create Certificate<\/span><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>The following example uses the self-signed Snakeoil certificate of the\u00a0<code>ssl-cert<\/code>package\u00a0as a certificate\u00a0(see\u00a0Ubuntu default snakeoil SSL Certificate renew\u00a0):<\/p>\n<div class=\"mw-highlight mw-content-ltr\" dir=\"ltr\">\n<pre>$ sudo apt install ssl-cert\r\n$ sudo make-ssl-cert create-default-snakeoil -force-overwrite\r\n$ sudo ls -la \/etc\/ssl\/certs\/ssl-cert-snakeoil.pem\r\n-rw -r - r-- <span class=\"m\">1<\/span> root root <span class=\"m\">1021<\/span> Sep <span class=\"m\">29<\/span> 12:16 \/etc\/ssl\/certs\/ssl-cert-snakeoil.pem\r\n$ sudo ls -la \/etc\/ssl\/private\/ssl-cert-snakeoil.key\r\n-rw-r ----- <span class=\"m\">1<\/span> root ssl-cert <span class=\"m\">1704<\/span> Sep <span class=\"m\">29<\/span> 12:16 \/etc\/ssl\/private\/ssl-cert-snakeoil.key\r\n<\/pre>\n<\/div>\n<h4><span class=\"ez-toc-section\" id=\"Configure_TLS\"><\/span><span id=\"TLS_konfigurieren\" class=\"mw-headline\">Configure TLS<\/span><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>The ProFTPD package available in the package sources of Debian Stretch version 1.3.5b-4 also supports TLSv1.2.\u00a0<sup id=\"cite_ref-1\" class=\"reference\">[1]<\/sup><\/p>\n<p>In the\u00a0<code>conf.d<\/code>directory its own configuration file for SSL \/ TLS is again created:<\/p>\n<div class=\"mw-highlight mw-content-ltr\" dir=\"ltr\">\n<pre>$ sudo vi \/etc\/proftpd\/conf.d\/tls.conf\r\n&lt;IfModule mod_tls.c&gt;\r\n        TLSEngine on\r\n        TLSLog \/var\/log\/proftpd\/tls.log\r\n        TLSProtocol TLSv1.2\r\n        TLSRSACertificateFile \/etc\/ssl\/certs\/ssl-cert-snakeoil.pem\r\n        TLSRSACertificateKeyFile \/etc\/ssl\/private\/ssl-cert-snakeoil.key\r\n        TLSVerifyClient off\r\n        TLSRequired on\r\n&lt;\/ IfModule&gt;\r\n<\/pre>\n<\/div>\n<p>ProFTPD is then restarted.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Create_FTP_user\"><\/span><span id=\"FTP_Benutzer_erstellen\" class=\"mw-headline\">Create FTP user<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>A separate user is created for FTP access without a valid login shell and with the home directory\u00a0<code>\/var\/www\/upload<\/code>:<\/p>\n<div class=\"mw-highlight mw-content-ltr\" dir=\"ltr\">\n<pre>$ sudo adduser ftpuser --shell \/ bin \/ false --home \/ var \/ www \/ upload\r\nAdding user <span class=\"sb\">`<\/span> ftpuser <span class=\"s1\">'... <\/span>\r\n<span class=\"s1\">Adding new group` ftpuser' <\/span> <span class=\"o\">(<\/span> 1001 <span class=\"o\">)<\/span> ...\r\nAdding new user <span class=\"sb\">`<\/span> ftpuser <span class=\"s1\">'(1001) with group` ftpuser'<\/span> ...\r\nCreating home directory <span class=\"sb\">`<\/span> \/ var \/ www \/ upload <span class=\"s1\">'... <\/span>\r\n<span class=\"s1\">Copying files from` \/ etc \/ skel'<\/span> ...\r\nEnter new UNIX password: \r\nRetype new UNIX password: \r\npasswd: password updated tracks\r\n<span class=\"o\">[<\/span> ... <span class=\"o\">]<\/span>\r\n<\/pre>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"Anonymous_access\"><\/span><span id=\"Anonymous_Zugang\" class=\"mw-headline\">Anonymous access<\/span><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>To allow anonymous read access, the following file is created:<\/p>\n<div class=\"mw-highlight mw-content-ltr\" dir=\"ltr\">\n<pre>$ sudo vi \/etc\/proftpd\/conf.d\/anon.conf\r\n&lt;Anonymous ~ ftpuser&gt;\r\n        User ftp\r\n        Group ftp\r\n        <span class=\"c1\"># Users can also login with ftp<\/span>\r\n        UserAlias \u200b\u200banonymous ftp\r\n        <span class=\"c1\"># All files belong to ftp<\/span>\r\n        DirFakeUser on ftp\r\n        DirFakeGroup on ftp\r\n        RequireValidShell off\r\n        MaxClients 10\r\n        &lt;Directory *&gt;\r\n                &lt;Limit WRITE&gt;\r\n                DenyAll\r\n                &lt;\/ Limit&gt;\r\n        &lt;\/ Directory&gt;\r\n&lt;\/ Anonymous&gt;\r\n<\/pre>\n<\/div>\n<p>To\u00a0<code>ftp<\/code>allow\u00a0the user\u00a0to access the anonymous FTP area, it must be\u00a0<code>ftpuser<\/code>added to\u00a0the group\u00a0:<\/p>\n<div class=\"mw-highlight mw-content-ltr\" dir=\"ltr\">\n<pre>$ sudo adduser ftp ftpuser\r\nAdding user <span class=\"sb\">`<\/span> ftp <span class=\"s1\">'to group` ftpuser'<\/span> ...\r\nAdding user ftp to group ftpuser\r\nDone.\r\n<\/pre>\n<\/div>\n<h2><span class=\"ez-toc-section\" id=\"Analysis_of_connection_problems\"><\/span><span id=\"Analyse_bei_Verbindungsproblemen\" class=\"mw-headline\">Analysis of connection problems<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>In case of problems with the structure of the FTP connections the following things can be checked:<\/p>\n<ol>\n<li>ProFTPD service runs:\u00a0<code>$ sudo service proftpd status<\/code><\/li>\n<li>ProFTPD listens on port 21:\u00a0<code>$ sudo netstat -tlp|grep proftp<\/code><\/li>\n<li>Error messages in the ProFTPD log:\u00a0<code>$ sudo tail -20 \/var\/log\/proftpd\/proftpd.log<\/code><\/li>\n<li>Error messages in the ProFTPD TLS log:\u00a0<code>$ sudo tail -20 \/var\/log\/proftpd\/tls.log<\/code><\/li>\n<li>Connection test on port 21 with telnet:\u00a0<code>$ telnet 192.0.2.10 21<\/code><\/li>\n<li>Connection test on port 21 with TLS:\u00a0<code>$ openssl s_client -connect 192.0.2.10:21 -starttls ftp<\/code><\/li>\n<\/ol>\n<h2><span class=\"ez-toc-section\" id=\"Message_memcache_support_not_enabled\"><\/span><span id=\"Meldung:_memcache_support_not_enabled\" class=\"mw-headline\">Message: memcache support not enabled<\/span><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>In some cases, the following message may appear when the ProFTPD server is restarted:<\/p>\n<div class=\"mw-highlight mw-content-ltr\" dir=\"ltr\">\n<pre>$ sudo service proftpd restart\r\n <span class=\"o\">[<\/span> ok <span class=\"o\">]<\/span> Stopping ftp server: proftpd.\r\n<span class=\"o\">[<\/span> .... <span class=\"o\">]<\/span> Starting ftp server: proftpddebian proftpd <span class=\"o\">[<\/span> 4856 <span class=\"o\">]<\/span> : mod_tls_memcache \/ 0.1: notice: unable to register <span class=\"s1\">'memcache'<\/span> SSL\r\nsessionCache: Memcache support not enabled\r\n, OK\r\n<\/pre>\n<\/div>\n<p>Here is the problem that the Debian package is not\u00a0<code>--enable-memcache<\/code>compiled\u00a0with\u00a0.\u00a0<sup id=\"cite_ref-2\" class=\"reference\">[2]<\/sup><\/p>\n<p>The module can therefore be taken out &#8211; a diamond is inserted before the line:<\/p>\n<div class=\"mw-highlight mw-content-ltr\" dir=\"ltr\">\n<pre>$ sudo vi \/etc\/proftpd\/modules.conf\r\n <span class=\"o\">[<\/span> ... <span class=\"o\">] <\/span>\r\n<span class=\"c1\"># LoadModule mod_tls_memcache.c <\/span>\r\n<span class=\"o\">[<\/span> ... <span class=\"o\">]<\/span>\r\n<\/pre>\n<\/div>\n<p>A subsequent restart occurs without the memcache message:<\/p>\n<div class=\"mw-highlight mw-content-ltr\" dir=\"ltr\">\n<pre>$ sudo service proftpd restart\r\n <span class=\"o\">[<\/span> ok <span class=\"o\">]<\/span> Stopping ftp server: proftpd.\r\n<span class=\"o\">[<\/span> ok <span class=\"o\">]<\/span> Starting ftp server: proftpd.\r\n<\/pre>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>ProFTPD\u00a0is a widely-used, well-configurable FTP server for UNIX-based operating systems.\u00a0This article shows the\u00a0installation and configuration of ProFTPD\u00a0in version 1.3.5b-4 on\u00a0Debian\u00a0Linux.\u00a0In the example shown, a TLS encryption is configured on the FTP server to encrypt the communication between the FTP client (eg FileZilla) and the FTP server ProFTPD.\u00a0Debian Stretch 9 was<\/p>\n","protected":false},"author":4,"featured_media":1153,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[3],"tags":[],"class_list":["post-1152","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutorial-how-to"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/10\/unnamed.png?fit=300%2C300&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7ISfL-iA","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":1036,"url":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/installing-lamp-linux-apache-mysql-php-stack-on-debian-7-server\/","url_meta":{"origin":1152,"position":0},"title":"INSTALLING LAMP (LINUX, APACHE, MYSQL &amp; PHP) STACK ON DEBIAN 7 SERVER","author":"Daniel Draga","date":"September 25, 2017","format":false,"excerpt":"LAMP STANDS FOR: L:Linux A:Apache M:MySQL P:PHP What is LAMP? LAMP is a shorthand term for a\u00a0web application platform\u00a0consisting of Linux, Apache, MySQL and one of Perl or PHP. Lamp is an\u00a0\u00a0OPENSOURCE Together, these open source tools provide a world-class platform for deploying web applications TECHNOLOGIES USED IN LAMP: For\u2026","rel":"","context":"In &quot;Tutorials&quot;","block_context":{"text":"Tutorials","link":"https:\/\/www.virtono.com\/community\/category\/tutorial-how-to\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/09\/maxresdefault.jpg?fit=1200%2C750&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/09\/maxresdefault.jpg?fit=1200%2C750&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/09\/maxresdefault.jpg?fit=1200%2C750&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/09\/maxresdefault.jpg?fit=1200%2C750&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/09\/maxresdefault.jpg?fit=1200%2C750&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":3400,"url":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/how-to-build-a-ci-cd-pipeline-with-jenkins-on-ubuntu-20-04\/","url_meta":{"origin":1152,"position":1},"title":"How to build a CI\/CD Pipeline with Jenkins on Ubuntu 20.04","author":"George B.","date":"May 26, 2023","format":false,"excerpt":"In this tutorial, we will guide you through the process of building a CI\/CD pipeline with Jenkins on Ubuntu, empowering you to automate your software delivery process and streamline your development workflow. In today's fast-paced software development world, Continuous Integration and Continuous Delivery (CI\/CD) have become crucial practices for ensuring\u2026","rel":"","context":"In &quot;Tutorials&quot;","block_context":{"text":"Tutorials","link":"https:\/\/www.virtono.com\/community\/category\/tutorial-how-to\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/05\/How-to-build-a-CI-CD-Pipeline-with-Jenkins-on-Ubuntu.png?fit=600%2C330&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/05\/How-to-build-a-CI-CD-Pipeline-with-Jenkins-on-Ubuntu.png?fit=600%2C330&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/05\/How-to-build-a-CI-CD-Pipeline-with-Jenkins-on-Ubuntu.png?fit=600%2C330&ssl=1&resize=525%2C300 1.5x"},"classes":[]},{"id":1345,"url":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/samba-sharing-with-authentication\/","url_meta":{"origin":1152,"position":2},"title":"Samba sharing with authentication","author":"Shreyash Sharma","date":"February 22, 2018","format":false,"excerpt":"Complementing a simple Samba release, this article shows how to\u00a0create a username and password based Samba share\u00a0using a\u00a0Debian\u00a08 based system.\u00a0Ubuntu\u00a016.04 and Windows 10 are used\u00a0as client software for testing the connection\u00a0. \u00a0 Installation and configuration on the Debian server These following sections show the necessary configuration steps on the Debian\u2026","rel":"","context":"In &quot;Tutorials&quot;","block_context":{"text":"Tutorials","link":"https:\/\/www.virtono.com\/community\/category\/tutorial-how-to\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2018\/02\/Samba-Schema.gif?fit=450%2C300&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":3843,"url":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/how-to-install-apache-spark-on-debian\/","url_meta":{"origin":1152,"position":3},"title":"How to Install Apache Spark on Debian","author":"George B.","date":"September 8, 2023","format":false,"excerpt":"In this article, we'll provide a step-by-step guide on how to install Apache Spark on Debian. Whether you're a newbie or an experienced user, this guide will make the installation process a breeze. If you're keen on big data processing, you've likely come across Apache Spark, a powerful open-source unified\u2026","rel":"","context":"In &quot;Tutorials&quot;","block_context":{"text":"Tutorials","link":"https:\/\/www.virtono.com\/community\/category\/tutorial-how-to\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2023\/09\/How-to-Install-Apache-Spark-on-Debian.png?fit=360%2C240&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":1030,"url":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/how-to-install-and-use-mysql-on-debian-7\/","url_meta":{"origin":1152,"position":4},"title":"How To Install and Use MySQL on Debian 7","author":"Daniel Draga","date":"September 24, 2017","format":false,"excerpt":"Introduction MYSQL is a software, with MySQL server at its core, and a lot of utility programs, that helps is managing and administration of database. For example, let's say you want to create a new database, you send a message to the MySQL server that says, for instance, \u201cCreate a\u2026","rel":"","context":"In &quot;Tutorials&quot;","block_context":{"text":"Tutorials","link":"https:\/\/www.virtono.com\/community\/category\/tutorial-how-to\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/09\/mysql-backup.png?fit=394%2C315&ssl=1&resize=350%2C200","width":350,"height":200},"classes":[]},{"id":965,"url":"https:\/\/www.virtono.com\/community\/tutorial-how-to\/how-to-install-mongodb-on-debian-8\/","url_meta":{"origin":1152,"position":5},"title":"How to Install MongoDB on Debian 8","author":"Daniel Draga","date":"June 11, 2017","format":false,"excerpt":"Introduction Part of the MEAN stack MongoDB is the new\u00a0NoSQL document database that is being implemented within modern web applications. So using MongoDB in your own application will give it the edge, you will be able to deal with a large amount of data. On top of all that you\u2026","rel":"","context":"In &quot;Tutorials&quot;","block_context":{"text":"Tutorials","link":"https:\/\/www.virtono.com\/community\/category\/tutorial-how-to\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/06\/mongodb-for-giant-ideas-bbab5c3cf8.png?fit=1024%2C512&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/06\/mongodb-for-giant-ideas-bbab5c3cf8.png?fit=1024%2C512&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/06\/mongodb-for-giant-ideas-bbab5c3cf8.png?fit=1024%2C512&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.virtono.com\/community\/wp-content\/uploads\/2017\/06\/mongodb-for-giant-ideas-bbab5c3cf8.png?fit=1024%2C512&ssl=1&resize=700%2C400 2x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/posts\/1152","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/comments?post=1152"}],"version-history":[{"count":2,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/posts\/1152\/revisions"}],"predecessor-version":[{"id":1155,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/posts\/1152\/revisions\/1155"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/media\/1153"}],"wp:attachment":[{"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/media?parent=1152"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/categories?post=1152"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.virtono.com\/community\/wp-json\/wp\/v2\/tags?post=1152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}