{"id":740,"date":"2025-08-18T03:38:21","date_gmt":"2025-08-18T03:38:21","guid":{"rendered":"https:\/\/www.quppa.net\/blog\/?p=740"},"modified":"2025-08-18T04:17:27","modified_gmt":"2025-08-18T04:17:27","slug":"configuring-sony-a7-iv-ftp-transfer-function","status":"publish","type":"post","link":"https:\/\/www.quppa.net\/blog\/2025\/08\/18\/configuring-sony-a7-iv-ftp-transfer-function\/","title":{"rendered":"Using Sony \u03b17 IV FTP transfer function with vsftpd"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">I decided to start using the FTP transfer function on my Sony \u03b17 IV camera and found it less straightforward than I expected, so I thought I&#8217;d write a short guide on setting up a basic vsftpd server and connecting the camera to it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Note on (missing) SFTP support<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">At the time of writing, the \u03b17 IV lacks support for the SSH (Secure) File Transfer Protocol (SFTP). The \u03b11, \u03b17S III and \u03b19 III <a href=\"https:\/\/www.sony-asia.com\/pressrelease?prName=sony-electronics-delivers-firmware-updates-including-c2pa-compliancy-as-a-next-step-to-ensure-authenticity-of-images\">support it with firmware versions 2.00, 3.00 and 2.00<\/a>, respectively, and the \u03b11 II supports it out of the box. Those firmware versions were released in March 2024 (alongside \u03b17 IV firmware version 3.00) and it seems unlikely at this point that Sony will add it to other models already on the market. I expect the \u03b17 V to include it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Given the lack of SFTP support, the next best option is to use FTP Secure (FTPS).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">vsftpd setup<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">With a machine running Ubuntu Server 24.04, I configured vsftpd as follows:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><code>apt install vsftpd<\/code><\/li>\n\n\n\n<li>Get a certificate for your hostname if you don&#8217;t have one. I used Let&#8217;s Encrypt: <code>certbot certonly --standalone -d ftp.example.com<\/code><\/li>\n\n\n\n<li>Create a user for FTP access (set a secure password, but remember you&#8217;ll have to enter it through the camera&#8217;s cumbersome UI): <code>adduser cameraftp<\/code><\/li>\n\n\n\n<li>Add the username to an FTP users whitelist: <code>echo \"cameraftp\" &gt; \/etc\/vsftpd.userlist<\/code><\/li>\n\n\n\n<li>Create a directory in <code>\/srv\/ftp<\/code> for uploads and grant ownership to the FTP user: <code>mkdir \/srv\/ftp\/camera &amp;&amp; chown cameraftp:cameraftp \/srv\/ftp\/camera<\/code><\/li>\n\n\n\n<li>Configure vsftpd. I changed the following settings from the Ubuntu defaults:<br><code>write_enable=YES<\/code> (so the camera can upload files)<br><code>chroot_local_user=YES<\/code> (isolate FTP users from the rest of the system)<br><code>local_root=\/srv\/ftp<\/code> (set the chroot jail to a directory where every part (<code>\/srv<\/code> and <code>\/srv\/ftp<\/code>) is owned by <code>root<\/code> and not writable by any other user or group)<br><code>rsa_cert_file=\/etc\/letsencrypt\/live\/ftp.example.com\/fullchain.pem<\/code><br><code>rsa_private_key_file=\/etc\/letsencrypt\/live\/ftp.example.com\/privkey.pem<\/code><br><code>ssl_enable=YES<\/code><br><code>ssl_ciphers=HIGH<\/code><br><code>pasv_enable=YES<\/code> (passive mode appears to be required)<br><code>pasv_min_port=&lt;some_port><\/code><br><code>pasv_max_port=&lt;some_higher_port><\/code> (in practice, my camera seems to transfer at most 2 files at a time, so you shouldn&#8217;t need to open a huge range if you&#8217;re not using the FTP server for other purposes; make sure these ports (and port 21) are open on your network)<br><code>userlist_enable=YES<\/code><br><code>userlist_file=\/etc\/vsftpd.userlist<\/code> (the file configured in step 4)<br><code>userlist_deny=NO<\/code> (whitelist instead of blacklist)<\/li>\n\n\n\n<li>Restart vsftpd: <code>systemctl restart vsftpd<\/code><\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Try connecting with an FTP client. You should see a directory <code>camera<\/code> that is writable. The root directory should be read-only, and you should have no other access to the filesystem.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Camera setup<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I then configured my camera as follows:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Get the root certificate for your TLS certificate. For my Let&#8217;s Encrypt certificate, this was the <code>ISRG Root X1<\/code> CA (the name being listed in the output of <code>openssl verify -show_chain \/etc\/letsencrypt\/live\/ftp.example.com\/chain.pem<\/code>). I downloaded the PEM from Let&#8217;s Encrypt&#8217;s website: <a href=\"https:\/\/letsencrypt.org\/certs\/isrgrootx1.pem\">https:\/\/letsencrypt.org\/certs\/isrgrootx1.pem<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/helpguide.sony.net\/ilc\/2110\/v1\/en\/contents\/TP1000653555.html\">Rename the root certificate to <code>cacert.pem<\/code><\/a> and copy it to the root directory of the memory card in Slot 1.<\/li>\n\n\n\n<li>Import the root certificate: Network \u2192 Network Option \u2192 Import Root Certificate \u2192 FTP Function<\/li>\n\n\n\n<li>Configure the FTP Transfer Function: Network \u2192 FTP Transfer \u2192 FTP Transfer Func.<br><code>Server Setting \u2192 Server 1 \u2192 Destination Settings \u2192 Host Name: ftp.example.com<\/code> <br><code>Server Setting \u2192 Server 1 \u2192 Destination Settings \u2192 Secure Protocol: On<\/code><br><code>Server Setting \u2192 Server 1 \u2192 Destination Settings \u2192 Root Certificate Error: Does Not Connect<\/code> (I couldn&#8217;t make my camera connect without the root certificate installed, regardless of this setting, so you might as well pick the secure option)<br><code>Server Setting \u2192 Server 1 \u2192 Destination Settings \u2192 Port: 21<\/code><br><code>Server Setting \u2192 Server 1 \u2192 Directory Settings \u2192 Specify Directory: camera<\/code> (matching the directory you created in <code>\/srv\/ftp<\/code>)<br><code>Server Setting \u2192 Server 1 \u2192 User Info Settings \u2192 User: cameraftp<\/code><br><code>Server Setting \u2192 Server 1 \u2192 User Info Settings \u2192 Password: &lt;password&gt;<\/code><br><code>FTP Function: On<\/code><\/li>\n\n\n\n<li>Assuming you are able to connect and have at least 1 photo saved, you should now be able to execute an <code>FTP Transfer<\/code>.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">And that&#8217;s it. You can now configure <a href=\"https:\/\/helpguide.sony.net\/di\/ftp_2110\/v1\/en\/contents\/TP1000657885.html\">Auto FTP Transfer<\/a> to back up your photos and videos whenever your camera has internet access.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I decided to start using the FTP transfer function on my Sony \u03b17 IV camera and found it less straightforward than I expected, so I thought I&#8217;d write a short guide on setting up a basic vsftpd server and connecting the camera to it. Note on (missing) SFTP support At the time of writing, the &hellip; <a href=\"https:\/\/www.quppa.net\/blog\/2025\/08\/18\/configuring-sony-a7-iv-ftp-transfer-function\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Using Sony \u03b17 IV FTP transfer function with vsftpd&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[211,209,210],"class_list":["post-740","post","type-post","status-publish","format-standard","hentry","category-miscellaneous","tag-camera","tag-ftp","tag-ftps"],"_links":{"self":[{"href":"https:\/\/www.quppa.net\/blog\/wp-json\/wp\/v2\/posts\/740","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.quppa.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.quppa.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.quppa.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.quppa.net\/blog\/wp-json\/wp\/v2\/comments?post=740"}],"version-history":[{"count":7,"href":"https:\/\/www.quppa.net\/blog\/wp-json\/wp\/v2\/posts\/740\/revisions"}],"predecessor-version":[{"id":749,"href":"https:\/\/www.quppa.net\/blog\/wp-json\/wp\/v2\/posts\/740\/revisions\/749"}],"wp:attachment":[{"href":"https:\/\/www.quppa.net\/blog\/wp-json\/wp\/v2\/media?parent=740"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.quppa.net\/blog\/wp-json\/wp\/v2\/categories?post=740"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.quppa.net\/blog\/wp-json\/wp\/v2\/tags?post=740"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}