{"version":3,"file":"component---src-pages-frequently-asked-question-pro-ftp-server-for-your-wqhd-camera-index-mdx-d3afad90aa6765989956.js","mappings":"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AAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,OAClBpB,EAAAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,OAClBpB,EAAAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,OAClBpB,EAAAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,OAClBpB,EAAAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,OAClBpB,EAAAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,OAClBpB,EAAAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,OAClBpB,EAAAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,OAClBpB,EAAAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,OAClBpB,EAAAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,OAClBpB,EAAAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,OAClBpB,EAAAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,OAClBpB,EAAAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,OAClBpB,EAAAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,OAClBpB,EAAAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,OAClBpB,EAAAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,OAClBpB,EAAAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,OAClBpB,EAAAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,OAClBpB,EAAAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,OAClBpB,EAAAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,OAClBpB,EAAAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,OAClBpB,EAAAA,EAAAA,IAAA,QAAMoB,WAAW,OAC/B,UAAa,qBAAmB,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","sources":["webpack://instar-wiki/./src/pages/Frequently_Asked_Question/ProFTP_Server_for_your_WQHD_Camera/index.mdx"],"sourcesContent":["import * as React from 'react'\n /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsxRuntime classic */\n/* @jsx mdx */\nimport { EuiSpacer } from '@elastic/eui';\nimport BreadCrumbs from 'components/Layout/BreadCrumbs';\nimport SEOHelmet from 'components/Layout/SEOHelmet';\nimport TimeLine from 'components/Products/CommentList/MqttIFTTTList';\nexport const _frontmatter = {\n \"title\": \"Set up a ProFTP Server for your WQHD Camera\",\n \"path\": \"/Frequently_Asked_Question/ProFTP_Server_for_your_WQHD_Camera/\",\n \"dateChanged\": \"2022-05-26\",\n \"author\": \"Mike Polinowski\",\n \"excerpt\": \"I want to use my cameras FTP service to upload alarm recordings and snapshot series to my Linux Server (Raspberry Pi).\",\n \"image\": \"../../FAQ_SearchThumb.png\",\n \"social\": \"/images/Search/FAQ_SearchThumb.webp\",\n \"toc\": \"/images/Search/TOC_Icons/Wiki_Tiles_FAQs_white.webp\",\n \"chapter\": \"FAQs\",\n \"faq\": \"WQHD & UHD Cameras\"\n};\nconst layoutProps = {\n _frontmatter\n};\nconst MDXLayout = \"wrapper\";\nexport default function MDXContent({\n components,\n ...props\n}) {\n return <MDXLayout {...layoutProps} {...props} components={components} mdxType=\"MDXLayout\">\n\n\n\n <SEOHelmet title='FAQs - Set up a ProFTP Server for your WQHD Camera' dateChanged='2022-05-26' author='Mike Polinowski' tag='INSTAR IP Camera' description='' image='/images/Search/FAQ_SearchThumb.png' twitter='/images/Search/FAQ_SearchThumb.webp' location={props.location.pathname} mdxType=\"SEOHelmet\" />\n <BreadCrumbs locationBC={props.location} locationEN={props.location.pathname} locationDE='/de/Frequently_Asked_Question/ProFTP_Server_for_your_WQHD_Camera/' locationFR='/fr/Frequently_Asked_Question/ProFTP_Server_for_your_WQHD_Camera/' crumbLabel=\"FAQs\" mdxType=\"BreadCrumbs\" />\n <h1 {...{\n \"id\": \"set-up-a-proftp-server-for-your-wqhd-camera\",\n \"style\": {\n \"position\": \"relative\"\n }\n }}><a parentName=\"h1\" {...{\n \"href\": \"#set-up-a-proftp-server-for-your-wqhd-camera\",\n \"aria-label\": \"set up a proftp server for your wqhd camera permalink\",\n \"className\": \"header-link-icon before\"\n }}><svg parentName=\"a\" {...{\n \"aria-hidden\": \"true\",\n \"focusable\": \"false\",\n \"height\": \"16\",\n \"version\": \"1.1\",\n \"viewBox\": \"0 0 16 16\",\n \"width\": \"16\"\n }}><path parentName=\"svg\" {...{\n \"fillRule\": \"evenodd\",\n \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n }}></path></svg></a>{`Set up a ProFTP Server for your WQHD Camera`}</h1>\n <p><strong parentName=\"p\">{`Q`}</strong>{`: I want to use my cameras FTP service to upload alarm recordings and snapshot series to my Linux Server (Raspberry Pi).`}</p>\n <p><strong parentName=\"p\">{`A`}</strong>{`: The simplest way would be to use your `}<a parentName=\"p\" {...{\n \"href\": \"/en/Motion_Detection/Router_as_a_FTP_Server/\"\n }}>{`Internet Router as FTP Server`}</a>{`. If you want to use a Linux Server like an Raspberry Pi we recommend using the `}<a parentName=\"p\" {...{\n \"href\": \"/en/Frequently_Asked_Question/Using_the_sFTP_Service_with_your_WQHD_Camera/\"\n }}>{`sFTP Service`}</a>{` instead of FTP or FTPS. But of course you can also set up your own FTP server instead. I would recommend `}<a parentName=\"p\" {...{\n \"href\": \"/en/Frequently_Asked_Question/FTP_Secure_Server_for_your_WQHD_Camera_using_Docker/\"\n }}>{`building an vsftpd Docker image`}</a>{` for this task.`}</p>\n <p>{`Or you can install the server software directly from your Linux Console. In the following tutorial I want to go throught the steps of setting up ProFTPD with a self-signed TLS ertificate and connecting with an WQHD and Full HD camera.`}</p>\n {/* TOC */}\n <ul>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"#install-proftp-on-debian-linux\"\n }}>{`Install ProFTP on Debian Linux`}</a></li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"#add-the-ftp-user\"\n }}>{`Add the FTP User`}</a>\n <ul parentName=\"li\">\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"#testing-the-login-with-filezilla-optional\"\n }}>{`Testing the Login with Filezilla optional`}</a></li>\n </ul>\n </li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"#set-up-tls-encryption\"\n }}>{`Set up TLS Encryption`}</a>\n <ul parentName=\"li\">\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"#generate-certificate-and-key\"\n }}>{`Generate Certificate and Key`}</a></li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"#configure-proftpd\"\n }}>{`Configure ProFTPD`}</a></li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"#testing-the-login-with-filezilla-optional\"\n }}>{`Testing the Login with Filezilla optional`}</a></li>\n </ul>\n </li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"#connecting-an-instar-ip-camera\"\n }}>{`Connecting an INSTAR IP Camera`}</a>\n <ul parentName=\"li\">\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"#wqhd-cameras\"\n }}>{`WQHD Cameras`}</a></li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"#full-hd-cameras\"\n }}>{`Full HD Cameras`}</a></li>\n </ul>\n </li>\n </ul>\n {/* /TOC */}\n <h2 {...{\n \"id\": \"install-proftp-on-debian-linux\",\n \"style\": {\n \"position\": \"relative\"\n }\n }}><a parentName=\"h2\" {...{\n \"href\": \"#install-proftp-on-debian-linux\",\n \"aria-label\": \"install proftp on debian linux permalink\",\n \"className\": \"header-link-icon before\"\n }}><svg parentName=\"a\" {...{\n \"aria-hidden\": \"true\",\n \"focusable\": \"false\",\n \"height\": \"16\",\n \"version\": \"1.1\",\n \"viewBox\": \"0 0 16 16\",\n \"width\": \"16\"\n }}><path parentName=\"svg\" {...{\n \"fillRule\": \"evenodd\",\n \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n }}></path></svg></a>{`Install ProFTP on Debian Linux`}</h2>\n <div {...{\n \"className\": \"gatsby-highlight\",\n \"data-language\": \"bash\"\n }}><pre parentName=\"div\" {...{\n \"className\": \"language-bash\"\n }}><code parentName=\"pre\" {...{\n \"className\": \"language-bash\"\n }}><span parentName=\"code\" {...{\n \"className\": \"token function\"\n }}>{`apt`}</span>{` update `}<span parentName=\"code\" {...{\n \"className\": \"token operator\"\n }}>{`&&`}</span>{` `}<span parentName=\"code\" {...{\n \"className\": \"token function\"\n }}>{`apt`}</span>{` upgrade -y\n`}<span parentName=\"code\" {...{\n \"className\": \"token function\"\n }}>{`apt`}</span>{` `}<span parentName=\"code\" {...{\n \"className\": \"token function\"\n }}>{`install`}</span>{` proftpd-basic -y`}</code></pre></div>\n <p>{`We can now edit the `}<a parentName=\"p\" {...{\n \"href\": \"https://gist.github.com/mpolinowski/2be6aebe79c4439a72b41aea455fceba\"\n }}>{`default ProFTP configuration file`}</a>{` in `}<code parentName=\"p\" {...{\n \"className\": \"language-text\"\n }}>{`/etc/proftpd/proftpd.conf`}</code>{`. Or alternativly, create a custom configuration file in the directory `}<code parentName=\"p\" {...{\n \"className\": \"language-text\"\n }}>{`/etc/proftpd/conf.d/`}</code>{`. This will override rules from the default configuration file:`}</p>\n <div {...{\n \"className\": \"gatsby-highlight\",\n \"data-language\": \"bash\"\n }}><pre parentName=\"div\" {...{\n \"className\": \"language-bash\"\n }}><code parentName=\"pre\" {...{\n \"className\": \"language-bash\"\n }}><span parentName=\"code\" {...{\n \"className\": \"token function\"\n }}>{`nano`}</span>{` /etc/proftpd/conf.d/custom.conf`}</code></pre></div>\n <p>{`Add the following content to this configuration file and adjust it if necessary:`}</p>\n <div {...{\n \"className\": \"gatsby-highlight\",\n \"data-language\": \"bash\"\n }}><pre parentName=\"div\" {...{\n \"className\": \"language-bash\"\n }}><code parentName=\"pre\" {...{\n \"className\": \"language-bash\"\n }}><span parentName=\"code\" {...{\n \"className\": \"token comment\"\n }}>{`# FTP users don't need a valid shell`}</span>{`\n`}<span parentName=\"code\" {...{\n \"className\": \"token operator\"\n }}>{`<`}</span>{`Global`}<span parentName=\"code\" {...{\n \"className\": \"token operator\"\n }}>{`>`}</span>{`\n RequireValidShell off\n`}<span parentName=\"code\" {...{\n \"className\": \"token operator\"\n }}>{`<`}</span>{`/Global`}<span parentName=\"code\" {...{\n \"className\": \"token operator\"\n }}>{`>`}</span>{`\n\n`}<span parentName=\"code\" {...{\n \"className\": \"token comment\"\n }}>{`# Disable IPv6 (if wanted)`}</span>{`\nUseIPv6 off\n\n`}<span parentName=\"code\" {...{\n \"className\": \"token comment\"\n }}>{`# Set home directory as root directory for FTP users`}</span>{`\nDefaultRoot ~\n\n`}<span parentName=\"code\" {...{\n \"className\": \"token comment\"\n }}>{`# Allow login only for users of the group \"ftpuser\"`}</span>{`\n`}<span parentName=\"code\" {...{\n \"className\": \"token operator\"\n }}>{`<`}</span>{`Limit LOGIN`}<span parentName=\"code\" {...{\n \"className\": \"token operator\"\n }}>{`>`}</span>{`\n DenyGroup `}<span parentName=\"code\" {...{\n \"className\": \"token operator\"\n }}>{`!`}</span>{`ftpuser\n`}<span parentName=\"code\" {...{\n \"className\": \"token operator\"\n }}>{`<`}</span>{`/Limit`}<span parentName=\"code\" {...{\n \"className\": \"token operator\"\n }}>{`>`}</span>{`\n\n`}<span parentName=\"code\" {...{\n \"className\": \"token comment\"\n }}>{`# In some cases you have to specify passive ports range to by-pass`}</span>{`\n`}<span parentName=\"code\" {...{\n \"className\": \"token comment\"\n }}>{`# firewall limitations. Ephemeral ports can be used for that, but`}</span>{`\n`}<span parentName=\"code\" {...{\n \"className\": \"token comment\"\n }}>{`# feel free to use a more narrow range.`}</span>{`\nPassivePorts `}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`4242`}</span>{` `}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`4243`}</span></code></pre></div>\n <p>{`Restart the ProFTPD Server and check if the service is satisfied with your configuration:`}</p>\n <div {...{\n \"className\": \"gatsby-highlight\",\n \"data-language\": \"bash\"\n }}><pre parentName=\"div\" {...{\n \"className\": \"language-bash\"\n }}><code parentName=\"pre\" {...{\n \"className\": \"language-bash\"\n }}>{`systemctl restart proftpd`}</code></pre></div>\n <p>{`And we can also make sure that our firewall - for example `}<code parentName=\"p\" {...{\n \"className\": \"language-text\"\n }}>{`ufw`}</code>{` - will allow clients to connect:`}</p>\n <div {...{\n \"className\": \"gatsby-highlight\",\n \"data-language\": \"bash\"\n }}><pre parentName=\"div\" {...{\n \"className\": \"language-bash\"\n }}><code parentName=\"pre\" {...{\n \"className\": \"language-bash\"\n }}>{`ufw allow `}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`20`}</span>{`:21/tcp\nufw allow `}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`4242`}</span>{`:4243/tcp\nufw reload`}</code></pre></div>\n <h2 {...{\n \"id\": \"add-the-ftp-user\",\n \"style\": {\n \"position\": \"relative\"\n }\n }}><a parentName=\"h2\" {...{\n \"href\": \"#add-the-ftp-user\",\n \"aria-label\": \"add the ftp user permalink\",\n \"className\": \"header-link-icon before\"\n }}><svg parentName=\"a\" {...{\n \"aria-hidden\": \"true\",\n \"focusable\": \"false\",\n \"height\": \"16\",\n \"version\": \"1.1\",\n \"viewBox\": \"0 0 16 16\",\n \"width\": \"16\"\n }}><path parentName=\"svg\" {...{\n \"fillRule\": \"evenodd\",\n \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n }}></path></svg></a>{`Add the FTP User`}</h2>\n <p>{`Now you have to create the group `}<code parentName=\"p\" {...{\n \"className\": \"language-text\"\n }}>{`ftpuser`}</code>{`. Use the following command to create the group:`}</p>\n <div {...{\n \"className\": \"gatsby-highlight\",\n \"data-language\": \"bash\"\n }}><pre parentName=\"div\" {...{\n \"className\": \"language-bash\"\n }}><code parentName=\"pre\" {...{\n \"className\": \"language-bash\"\n }}>{`addgroup ftpuser`}</code></pre></div>\n <p>{`Next, we have to create the user that is allowed to log in to the FTP server:`}</p>\n <div {...{\n \"className\": \"gatsby-highlight\",\n \"data-language\": \"bash\"\n }}><pre parentName=\"div\" {...{\n \"className\": \"language-bash\"\n }}><code parentName=\"pre\" {...{\n \"className\": \"language-bash\"\n }}>{`adduser ipcamera --shell /bin/false --home /home/ipcamera\n`}<span parentName=\"code\" {...{\n \"className\": \"token function\"\n }}>{`passwd`}</span>{` ipcamera`}</code></pre></div>\n <p>{`Add the FTP user you just created to the group `}<code parentName=\"p\" {...{\n \"className\": \"language-text\"\n }}>{`ipcamera`}</code>{` so that this user can log in to the FTP server:`}</p>\n <div {...{\n \"className\": \"gatsby-highlight\",\n \"data-language\": \"bash\"\n }}><pre parentName=\"div\" {...{\n \"className\": \"language-bash\"\n }}><code parentName=\"pre\" {...{\n \"className\": \"language-bash\"\n }}>{`adduser ipcamera ftpuser`}</code></pre></div>\n <h3 {...{\n \"id\": \"testing-the-login-with-filezilla-optional\",\n \"style\": {\n \"position\": \"relative\"\n }\n }}><a parentName=\"h3\" {...{\n \"href\": \"#testing-the-login-with-filezilla-optional\",\n \"aria-label\": \"testing the login with filezilla optional permalink\",\n \"className\": \"header-link-icon before\"\n }}><svg parentName=\"a\" {...{\n \"aria-hidden\": \"true\",\n \"focusable\": \"false\",\n \"height\": \"16\",\n \"version\": \"1.1\",\n \"viewBox\": \"0 0 16 16\",\n \"width\": \"16\"\n }}><path parentName=\"svg\" {...{\n \"fillRule\": \"evenodd\",\n \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n }}></path></svg></a>{`Testing the Login with Filezilla (optional)`}</h3>\n <p>{`If you have the Filezilla client at hand you can now use it to connect with your server using the new `}<code parentName=\"p\" {...{\n \"className\": \"language-text\"\n }}>{`ftpuser`}</code>{` and the local IP of your server:`}</p>\n <p><span parentName=\"p\" {...{\n \"className\": \"gatsby-resp-image-wrapper\",\n \"style\": {\n \"position\": \"relative\",\n \"display\": \"block\",\n \"marginLeft\": \"auto\",\n \"marginRight\": \"auto\",\n \"maxWidth\": \"920px\"\n }\n }}>{`\n `}<a parentName=\"span\" {...{\n \"className\": \"gatsby-resp-image-link\",\n \"href\": \"/en/static/efb4d1dbb8e3ed2479587606ecfd7bb1/393aa/ProFTP_Server_for_your_WQHD_Camera_01.png\",\n \"style\": {\n \"display\": \"block\"\n },\n \"target\": \"_blank\",\n \"rel\": \"noopener\"\n }}>{`\n `}<span parentName=\"a\" {...{\n \"className\": \"gatsby-resp-image-background-image\",\n \"style\": {\n \"paddingBottom\": \"57.826086956521735%\",\n \"position\": \"relative\",\n \"bottom\": \"0\",\n \"left\": \"0\",\n \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAIAAADtbgqsAAAACXBIWXMAAA7rAAAO6wFxzYGVAAACCUlEQVQoz1XQaW/UMBAG4HwGekHWOXzFjnM4thPHuTbNbpYt0EIr0f//b1C2UAnp0auZDzPSjEcZZzzFhCJMaJLQhGFCMCExRBgTdBFFcRjF0cVWxBAiDBH2tO1cNxa6zqVSxurGVaYplSmkZiJP0pylGRM5zwomNiKXCRcQYYSJJ/uRmTarmqxqhKzfFMr287qcH78///7x8vr48vr18dlOi+lnN688l7e3d74PvPThFK5HEMIguAg3/i4qtNVuarp946bKuFLZXNamHXU7Iso+fvxwfX3jlaVmiQhjEkb4XRBAaZwdl/7+NB3Ow/1pPJzb8eCmY3d/ykoDA0RI4rE0R4RH/w+DAFZ1106HbjrUbtJ20HZQdlB1b9yepyW4CWIfeUGIwhCFEdn8WwECKGtn3CQKRVmGCMc03RBOWIYQ312D4C72LkciEMQggABsGYQQgKjUthmXup+7edVuUu24sYPp54QVXz75wW3kIZriRFCeU5YnvNgW0xRipu3Qz0dpXFV3WVULad5kqmGiJChJSOoVxuluv377NR0fjg8/u3ktjJPNwLMqDBEAse+Hu130DoAYIQYBpjHzZDvW/bycn8blvJyfunmVdlBuyrWlPE/SkokNzyQXkokyLRSl2e4KRJ+hx3O1yapLqr9trtJCZ7IWpUkLXSjbdPvLz0c3Hjgvd1fbw/4Aww1q6bwag14AAAAASUVORK5CYII=')\",\n \"backgroundSize\": \"cover\",\n \"display\": \"block\"\n }\n }}></span>{`\n `}<picture parentName=\"a\">{`\n `}<source parentName=\"picture\" {...{\n \"srcSet\": [\"/en/static/efb4d1dbb8e3ed2479587606ecfd7bb1/e4706/ProFTP_Server_for_your_WQHD_Camera_01.avif 230w\", \"/en/static/efb4d1dbb8e3ed2479587606ecfd7bb1/d1af7/ProFTP_Server_for_your_WQHD_Camera_01.avif 460w\", \"/en/static/efb4d1dbb8e3ed2479587606ecfd7bb1/7f308/ProFTP_Server_for_your_WQHD_Camera_01.avif 920w\", \"/en/static/efb4d1dbb8e3ed2479587606ecfd7bb1/17ac9/ProFTP_Server_for_your_WQHD_Camera_01.avif 1190w\"],\n \"sizes\": \"(max-width: 920px) 100vw, 920px\",\n \"type\": \"image/avif\"\n }}></source><source parentName=\"picture\" {...{\n \"srcSet\": [\"/en/static/efb4d1dbb8e3ed2479587606ecfd7bb1/a0b58/ProFTP_Server_for_your_WQHD_Camera_01.webp 230w\", \"/en/static/efb4d1dbb8e3ed2479587606ecfd7bb1/bc10c/ProFTP_Server_for_your_WQHD_Camera_01.webp 460w\", \"/en/static/efb4d1dbb8e3ed2479587606ecfd7bb1/966d8/ProFTP_Server_for_your_WQHD_Camera_01.webp 920w\", \"/en/static/efb4d1dbb8e3ed2479587606ecfd7bb1/b6585/ProFTP_Server_for_your_WQHD_Camera_01.webp 1190w\"],\n \"sizes\": \"(max-width: 920px) 100vw, 920px\",\n \"type\": \"image/webp\"\n }}></source>{`\n `}<source parentName=\"picture\" {...{\n \"srcSet\": [\"/en/static/efb4d1dbb8e3ed2479587606ecfd7bb1/81c8e/ProFTP_Server_for_your_WQHD_Camera_01.png 230w\", \"/en/static/efb4d1dbb8e3ed2479587606ecfd7bb1/08a84/ProFTP_Server_for_your_WQHD_Camera_01.png 460w\", \"/en/static/efb4d1dbb8e3ed2479587606ecfd7bb1/c0255/ProFTP_Server_for_your_WQHD_Camera_01.png 920w\", \"/en/static/efb4d1dbb8e3ed2479587606ecfd7bb1/393aa/ProFTP_Server_for_your_WQHD_Camera_01.png 1190w\"],\n \"sizes\": \"(max-width: 920px) 100vw, 920px\",\n \"type\": \"image/png\"\n }}></source>{`\n `}<img parentName=\"picture\" {...{\n \"className\": \"gatsby-resp-image-image\",\n \"src\": \"/en/static/efb4d1dbb8e3ed2479587606ecfd7bb1/c0255/ProFTP_Server_for_your_WQHD_Camera_01.png\",\n \"alt\": \"Set ProFTP Server for your WQHD Camera\",\n \"title\": \"Set ProFTP Server for your WQHD Camera\",\n \"loading\": \"lazy\",\n \"decoding\": \"async\",\n \"style\": {\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"margin\": \"0\",\n \"verticalAlign\": \"middle\",\n \"position\": \"absolute\",\n \"top\": \"0\",\n \"left\": \"0\"\n }\n }}></img>{`\n `}</picture>{`\n `}</a>{`\n `}</span></p>\n <p>{`Since we limited to PASV port range to `}<code parentName=\"p\" {...{\n \"className\": \"language-text\"\n }}>{`4242`}</code>{` - `}<code parentName=\"p\" {...{\n \"className\": \"language-text\"\n }}>{`4243`}</code>{` and made sure that our firewall gives us access to those ports we can now use either the Active (`}<strong parentName=\"p\">{`PORT`}</strong>{`) or Passive (`}<strong parentName=\"p\">{`PASV`}</strong>{`) mode to connect:`}</p>\n <p><span parentName=\"p\" {...{\n \"className\": \"gatsby-resp-image-wrapper\",\n \"style\": {\n \"position\": \"relative\",\n \"display\": \"block\",\n \"marginLeft\": \"auto\",\n \"marginRight\": \"auto\",\n \"maxWidth\": \"920px\"\n }\n }}>{`\n `}<a parentName=\"span\" {...{\n \"className\": \"gatsby-resp-image-link\",\n \"href\": \"/en/static/eea212d164764b19cba62db9d1155011/c1b63/ProFTP_Server_for_your_WQHD_Camera_02.png\",\n \"style\": {\n \"display\": \"block\"\n },\n \"target\": \"_blank\",\n \"rel\": \"noopener\"\n }}>{`\n `}<span parentName=\"a\" {...{\n \"className\": \"gatsby-resp-image-background-image\",\n \"style\": {\n \"paddingBottom\": \"57.826086956521735%\",\n \"position\": \"relative\",\n \"bottom\": \"0\",\n \"left\": \"0\",\n \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAIAAADtbgqsAAAACXBIWXMAAA7rAAAO6wFxzYGVAAAB1UlEQVQoz22Q2W7bMBBF9ZymQJ3Y2kiKiyiSIkVRK6V4Se1sLfrQ//+cQrbTBm2Bg8Hw4czMZZARQvMcYQwgwoRkmKAsyzCGCC39+ZECmKTgSpImKQAQAYgCbdthnJStuSyNdcY12rrSVEIZkheEC8wF5ZJxSc/kQhHGAUQQZUE1TqxqhWmEaQrtLgjT7I4vLz9+fj29juPOz4f905vtH3Tj3bglXK1Wd1EUB8VhGz+dQoCjCEQxXEjQZpNw7Xb747Gb9sP02Hrdemk7UbVlMwLMbj7drFZ3gZAmz0WSZnGCfhNFgJe28btxmCe/7TpflLWqe1X3ZTNSrkAMMWEBpUWWsb/lGOayqrpJn3cq1xfaLbLtdDMSKqMvCYpwcDk1XuQsfh9xkZUblO0W6r50w1VuR0zE+nOYrmEQxUvUMAILYRouyUEYJbk0V+Ej7/L97Sa5BwHCHBFOmCRMUq4IEwhzmOVFWf9HPmdmhc4gyWkRKDeY1h+ev8+PL4fnb35/knW/HOwGabt/UW6guUrXgAAWmNZX3bw9vvr90/b4Nm6PuhlN6003fcQOD7afq35uph3Ly/VtCDYoYEKzQlN+rsVS/yAuTcllZRuvbadt5/qZUnn5sF9qQm3bpO+6zQAAAABJRU5ErkJggg==')\",\n \"backgroundSize\": \"cover\",\n \"display\": \"block\"\n }\n }}></span>{`\n `}<picture parentName=\"a\">{`\n `}<source parentName=\"picture\" {...{\n \"srcSet\": [\"/en/static/eea212d164764b19cba62db9d1155011/e4706/ProFTP_Server_for_your_WQHD_Camera_02.avif 230w\", \"/en/static/eea212d164764b19cba62db9d1155011/d1af7/ProFTP_Server_for_your_WQHD_Camera_02.avif 460w\", \"/en/static/eea212d164764b19cba62db9d1155011/7f308/ProFTP_Server_for_your_WQHD_Camera_02.avif 920w\", \"/en/static/eea212d164764b19cba62db9d1155011/07e28/ProFTP_Server_for_your_WQHD_Camera_02.avif 1200w\"],\n \"sizes\": \"(max-width: 920px) 100vw, 920px\",\n \"type\": \"image/avif\"\n }}></source><source parentName=\"picture\" {...{\n \"srcSet\": [\"/en/static/eea212d164764b19cba62db9d1155011/a0b58/ProFTP_Server_for_your_WQHD_Camera_02.webp 230w\", \"/en/static/eea212d164764b19cba62db9d1155011/bc10c/ProFTP_Server_for_your_WQHD_Camera_02.webp 460w\", \"/en/static/eea212d164764b19cba62db9d1155011/966d8/ProFTP_Server_for_your_WQHD_Camera_02.webp 920w\", \"/en/static/eea212d164764b19cba62db9d1155011/92f8c/ProFTP_Server_for_your_WQHD_Camera_02.webp 1200w\"],\n \"sizes\": \"(max-width: 920px) 100vw, 920px\",\n \"type\": \"image/webp\"\n }}></source>{`\n `}<source parentName=\"picture\" {...{\n \"srcSet\": [\"/en/static/eea212d164764b19cba62db9d1155011/81c8e/ProFTP_Server_for_your_WQHD_Camera_02.png 230w\", \"/en/static/eea212d164764b19cba62db9d1155011/08a84/ProFTP_Server_for_your_WQHD_Camera_02.png 460w\", \"/en/static/eea212d164764b19cba62db9d1155011/c0255/ProFTP_Server_for_your_WQHD_Camera_02.png 920w\", \"/en/static/eea212d164764b19cba62db9d1155011/c1b63/ProFTP_Server_for_your_WQHD_Camera_02.png 1200w\"],\n \"sizes\": \"(max-width: 920px) 100vw, 920px\",\n \"type\": \"image/png\"\n }}></source>{`\n `}<img parentName=\"picture\" {...{\n \"className\": \"gatsby-resp-image-image\",\n \"src\": \"/en/static/eea212d164764b19cba62db9d1155011/c0255/ProFTP_Server_for_your_WQHD_Camera_02.png\",\n \"alt\": \"Set ProFTP Server for your WQHD Camera\",\n \"title\": \"Set ProFTP Server for your WQHD Camera\",\n \"loading\": \"lazy\",\n \"decoding\": \"async\",\n \"style\": {\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"margin\": \"0\",\n \"verticalAlign\": \"middle\",\n \"position\": \"absolute\",\n \"top\": \"0\",\n \"left\": \"0\"\n }\n }}></img>{`\n `}</picture>{`\n `}</a>{`\n `}</span></p>\n <p>{`You should be able to connect and uploade / create items.`}</p>\n <h2 {...{\n \"id\": \"set-up-tls-encryption\",\n \"style\": {\n \"position\": \"relative\"\n }\n }}><a parentName=\"h2\" {...{\n \"href\": \"#set-up-tls-encryption\",\n \"aria-label\": \"set up tls encryption permalink\",\n \"className\": \"header-link-icon before\"\n }}><svg parentName=\"a\" {...{\n \"aria-hidden\": \"true\",\n \"focusable\": \"false\",\n \"height\": \"16\",\n \"version\": \"1.1\",\n \"viewBox\": \"0 0 16 16\",\n \"width\": \"16\"\n }}><path parentName=\"svg\" {...{\n \"fillRule\": \"evenodd\",\n \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n }}></path></svg></a>{`Set up TLS Encryption`}</h2>\n <p>{`The FTP protocol transfers login information as well as sent data in cleartext. The most common solution is encryption via TLS, which can be set up with minimal effort using the free OpenSSL software.`}</p>\n <div {...{\n \"className\": \"gatsby-highlight\",\n \"data-language\": \"bash\"\n }}><pre parentName=\"div\" {...{\n \"className\": \"language-bash\"\n }}><code parentName=\"pre\" {...{\n \"className\": \"language-bash\"\n }}><span parentName=\"code\" {...{\n \"className\": \"token function\"\n }}>{`apt`}</span>{` `}<span parentName=\"code\" {...{\n \"className\": \"token function\"\n }}>{`install`}</span>{` openssl`}</code></pre></div>\n <p>{`Starting by adding to our custom configuration file `}<code parentName=\"p\" {...{\n \"className\": \"language-text\"\n }}>{`custom.conf`}</code>{` from the previous step we now need to add a TLS certificate to our server. If your server runs on a public server you can use a service like Let's Encrypt / Certbot to generated a valid certificate for the domain name of your server. You can use this certificate for your Web as well as your FTP server. Otherwise you can follow our tutorial on how to `}<a parentName=\"p\" {...{\n \"href\": \"/en/Web_User_Interface/1440p_Series/Network/CA_Certificate/#take-matters-into-your-own-hands\"\n }}>{`generate your own CA certificate`}</a>{`. This tutorial goes through the steps of generating a valid CA cert for a local domain (provided by an AVM Fritzbox Home Internet Router) and put it to use with an `}<a parentName=\"p\" {...{\n \"href\": \"/en/Frequently_Asked_Question/Mosquitto_2.0_with_CA_Certificate/\"\n }}>{`external MQTT Broker`}</a>{`. The same certificate can be used here as well.`}</p>\n <p>{`But in the following steps we will simply generate a self-signed certificate that can be used with an local IP address (instead of a domain name). Of course, this means that we will have to activate the `}<code parentName=\"p\" {...{\n \"className\": \"language-text\"\n }}>{`insecure`}</code>{` mode in our cameras FTP client. This does not mean that the encryption will be weaker, but the camera will not try to verify if your personal FTP server really is the server the TLS certificate was issued to.`}</p>\n <h3 {...{\n \"id\": \"generate-certificate-and-key\",\n \"style\": {\n \"position\": \"relative\"\n }\n }}><a parentName=\"h3\" {...{\n \"href\": \"#generate-certificate-and-key\",\n \"aria-label\": \"generate certificate and key permalink\",\n \"className\": \"header-link-icon before\"\n }}><svg parentName=\"a\" {...{\n \"aria-hidden\": \"true\",\n \"focusable\": \"false\",\n \"height\": \"16\",\n \"version\": \"1.1\",\n \"viewBox\": \"0 0 16 16\",\n \"width\": \"16\"\n }}><path parentName=\"svg\" {...{\n \"fillRule\": \"evenodd\",\n \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n }}></path></svg></a>{`Generate Certificate and Key`}</h3>\n <p>{`Start by creating a directory for your certificate `}<code parentName=\"p\" {...{\n \"className\": \"language-text\"\n }}>{`mkdir /etc/proftpd/ssl`}</code>{` then run the following command to generate the key and certificate with a lifetime of 1 year:`}</p>\n <div {...{\n \"className\": \"gatsby-highlight\",\n \"data-language\": \"bash\"\n }}><pre parentName=\"div\" {...{\n \"className\": \"language-bash\"\n }}><code parentName=\"pre\" {...{\n \"className\": \"language-bash\"\n }}>{`openssl req -new -x509 -days `}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`365`}</span>{` -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem`}</code></pre></div>\n <p>{`Since we are not planning to verify this certificate you can leave all the answers blank except the FQDN - here you can add the local IP of your FTP server, e.g. `}<code parentName=\"p\" {...{\n \"className\": \"language-text\"\n }}>{`192.168.2.111`}</code>{`:`}</p>\n <div {...{\n \"className\": \"gatsby-highlight\",\n \"data-language\": \"bash\"\n }}><pre parentName=\"div\" {...{\n \"className\": \"language-bash\"\n }}><code parentName=\"pre\" {...{\n \"className\": \"language-bash\"\n }}>{`Generating a RSA private key\n`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span>{`+++++\n`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span>{`.+++++\nwriting new private key to `}<span parentName=\"code\" {...{\n \"className\": \"token string\"\n }}>{`'/etc/proftpd/ssl/proftpd.key.pem'`}</span>{`\n-----\nYou are about to be asked to enter information that will be incorporated\ninto your certificate request.\nWhat you are about to enter is what is called a Distinguished Name or a DN.\nThere are quite a few fields but you can leave some blank\nFor some fields there will be a default value,\nIf you enter `}<span parentName=\"code\" {...{\n \"className\": \"token string\"\n }}>{`'.'`}</span>{`, the field will be left blank.\n-----\nCountry Name `}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`(`}</span><span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`2`}</span>{` letter code`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`)`}</span>{` `}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`[`}</span>{`AU`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`]`}</span>{`:.\nState or Province Name `}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`(`}</span>{`full name`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`)`}</span>{` `}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`[`}</span>{`Some-State`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`]`}</span>{`:.\nLocality Name `}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`(`}</span>{`eg, city`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`)`}</span>{` `}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`[`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`]`}</span>{`:.\nOrganization Name `}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`(`}</span>{`eg, company`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`)`}</span>{` `}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`[`}</span>{`Internet Widgits Pty Ltd`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`]`}</span>{`:.\nOrganizational Unit Name `}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`(`}</span>{`eg, section`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`)`}</span>{` `}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`[`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`]`}</span>{`:.\nCommon Name `}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`(`}</span>{`e.g. server FQDN or YOUR name`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`)`}</span>{` `}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`[`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`]`}</span>{`:192.168.2.111\nEmail Address `}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`[`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`]`}</span>{`:.`}</code></pre></div>\n <h3 {...{\n \"id\": \"configure-proftpd\",\n \"style\": {\n \"position\": \"relative\"\n }\n }}><a parentName=\"h3\" {...{\n \"href\": \"#configure-proftpd\",\n \"aria-label\": \"configure proftpd permalink\",\n \"className\": \"header-link-icon before\"\n }}><svg parentName=\"a\" {...{\n \"aria-hidden\": \"true\",\n \"focusable\": \"false\",\n \"height\": \"16\",\n \"version\": \"1.1\",\n \"viewBox\": \"0 0 16 16\",\n \"width\": \"16\"\n }}><path parentName=\"svg\" {...{\n \"fillRule\": \"evenodd\",\n \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n }}></path></svg></a>{`Configure ProFTPD`}</h3>\n <p>{`Now create a configuration file to activate the `}<code parentName=\"p\" {...{\n \"className\": \"language-text\"\n }}>{`mod_tls`}</code>{` module in proFTPD `}<code parentName=\"p\" {...{\n \"className\": \"language-text\"\n }}>{`/etc/proftpd/conf.d/tls.conf`}</code>{`:`}</p>\n <div {...{\n \"className\": \"gatsby-highlight\",\n \"data-language\": \"jsx\"\n }}><pre parentName=\"div\" {...{\n \"className\": \"language-jsx\"\n }}><code parentName=\"pre\" {...{\n \"className\": \"language-jsx\"\n }}><span parentName=\"code\" {...{\n \"className\": \"token tag\"\n }}><span parentName=\"span\" {...{\n \"className\": \"token tag\"\n }}><span parentName=\"span\" {...{\n \"className\": \"token punctuation\"\n }}>{`<`}</span><span parentName=\"span\" {...{\n \"className\": \"token class-name\"\n }}>{`IfModule`}</span></span>{` `}<span parentName=\"span\" {...{\n \"className\": \"token attr-name\"\n }}>{`mod_tls.c`}</span><span parentName=\"span\" {...{\n \"className\": \"token punctuation\"\n }}>{`>`}</span></span><span parentName=\"code\" {...{\n \"className\": \"token plain-text\"\n }}>{`\n TLSEngine on\n TLSLog /var/log/proftpd/tls.log\n TLSProtocol TLSv1.2 TLSv1.3\n TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem\n TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem\n TLSVerifyClient off\n TLSOptions NoSessionReuseRequired\n TLSRequired on\n`}</span><span parentName=\"code\" {...{\n \"className\": \"token tag\"\n }}><span parentName=\"span\" {...{\n \"className\": \"token tag\"\n }}><span parentName=\"span\" {...{\n \"className\": \"token punctuation\"\n }}>{`</`}</span><span parentName=\"span\" {...{\n \"className\": \"token class-name\"\n }}>{`IfModule`}</span></span><span parentName=\"span\" {...{\n \"className\": \"token punctuation\"\n }}>{`>`}</span></span></code></pre></div>\n <blockquote>\n <p parentName=\"blockquote\"><strong parentName=\"p\">{`Note`}</strong>{`: INSTAR Full HD Camera require `}<strong parentName=\"p\">{`TLSv1.2`}</strong>{` while INSTAR WQHD Cameras use the newer `}<strong parentName=\"p\">{`TLSv1.3`}</strong>{`. You can remove the `}<code parentName=\"p\" {...{\n \"className\": \"language-text\"\n }}>{`TLSv1.2`}</code>{` configuration if you only work with WQHD Cameras.`}</p>\n </blockquote>\n <p>{`Now make sure that the TLS module is actually active:`}</p>\n <div {...{\n \"className\": \"gatsby-highlight\",\n \"data-language\": \"bash\"\n }}><pre parentName=\"div\" {...{\n \"className\": \"language-bash\"\n }}><code parentName=\"pre\" {...{\n \"className\": \"language-bash\"\n }}><span parentName=\"code\" {...{\n \"className\": \"token function\"\n }}>{`nano`}</span>{` /etc/proftpd/modules.conf`}</code></pre></div>\n <p>{`The un-comment the following lines - if necessary:`}</p>\n <div {...{\n \"className\": \"gatsby-highlight\",\n \"data-language\": \"bash\"\n }}><pre parentName=\"div\" {...{\n \"className\": \"language-bash\"\n }}><code parentName=\"pre\" {...{\n \"className\": \"language-bash\"\n }}><span parentName=\"code\" {...{\n \"className\": \"token comment\"\n }}>{`# Install proftpd-mod-crypto to use this module for TLS/SSL support.`}</span>{`\nLoadModule mod_tls.c\n`}<span parentName=\"code\" {...{\n \"className\": \"token comment\"\n }}>{`# Even these modules depend on the previous one`}</span>{`\nLoadModule mod_tls_fscache.c\nLoadModule mod_tls_shmcache.c`}</code></pre></div>\n <p>{`And restart the proFTPD service:`}</p>\n <div {...{\n \"className\": \"gatsby-highlight\",\n \"data-language\": \"bash\"\n }}><pre parentName=\"div\" {...{\n \"className\": \"language-bash\"\n }}><code parentName=\"pre\" {...{\n \"className\": \"language-bash\"\n }}><span parentName=\"code\" {...{\n \"className\": \"token function\"\n }}>{`service`}</span>{` proftpd restart\n`}<span parentName=\"code\" {...{\n \"className\": \"token function\"\n }}>{`service`}</span>{` proftpd status`}</code></pre></div>\n <h3 {...{\n \"id\": \"testing-the-login-with-filezilla-optional-1\",\n \"style\": {\n \"position\": \"relative\"\n }\n }}><a parentName=\"h3\" {...{\n \"href\": \"#testing-the-login-with-filezilla-optional-1\",\n \"aria-label\": \"testing the login with filezilla optional 1 permalink\",\n \"className\": \"header-link-icon before\"\n }}><svg parentName=\"a\" {...{\n \"aria-hidden\": \"true\",\n \"focusable\": \"false\",\n \"height\": \"16\",\n \"version\": \"1.1\",\n \"viewBox\": \"0 0 16 16\",\n \"width\": \"16\"\n }}><path parentName=\"svg\" {...{\n \"fillRule\": \"evenodd\",\n \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n }}></path></svg></a>{`Testing the Login with Filezilla (optional)`}</h3>\n <p>{`Before we used Filezilla Client to access our FTP server and the Fillezilla log will have displayed that no encryption was being used connecting you your server:`}</p>\n <div {...{\n \"className\": \"gatsby-highlight\",\n \"data-language\": \"bash\"\n }}><pre parentName=\"div\" {...{\n \"className\": \"language-bash\"\n }}><code parentName=\"pre\" {...{\n \"className\": \"language-bash\"\n }}>{`Status:\tConnecting to `}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`192.168`}</span>{`.2.111:21`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span>{`.\nStatus:\tConnection established, waiting `}<span parentName=\"code\" {...{\n \"className\": \"token keyword\"\n }}>{`for`}</span>{` welcome message`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span>{`.\nStatus:\tInsecure server, it does not support FTP over TLS.\nStatus:\tLogged `}<span parentName=\"code\" {...{\n \"className\": \"token keyword\"\n }}>{`in`}</span>{`\nStatus:\tRetrieving directory listing of `}<span parentName=\"code\" {...{\n \"className\": \"token string\"\n }}>{`\"/\"`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span>{`.\nStatus:\tDirectory listing of `}<span parentName=\"code\" {...{\n \"className\": \"token string\"\n }}>{`\"/\"`}</span>{` successful`}</code></pre></div>\n <p>{`This time you will be greeted by a pop-up screen asking you to verify your own certificate - you can check the option to always trust this certificate in the future:`}</p>\n <p><span parentName=\"p\" {...{\n \"className\": \"gatsby-resp-image-wrapper\",\n \"style\": {\n \"position\": \"relative\",\n \"display\": \"block\",\n \"marginLeft\": \"auto\",\n \"marginRight\": \"auto\",\n \"maxWidth\": \"920px\"\n }\n }}>{`\n `}<a parentName=\"span\" {...{\n \"className\": \"gatsby-resp-image-link\",\n \"href\": \"/en/static/57ff88e63d6cb8c5386dbd3b86d7e0ea/1790f/ProFTP_Server_for_your_WQHD_Camera_03.png\",\n \"style\": {\n \"display\": \"block\"\n },\n \"target\": \"_blank\",\n \"rel\": \"noopener\"\n }}>{`\n `}<span parentName=\"a\" {...{\n \"className\": \"gatsby-resp-image-background-image\",\n \"style\": {\n \"paddingBottom\": \"77.39130434782608%\",\n \"position\": \"relative\",\n \"bottom\": \"0\",\n \"left\": \"0\",\n \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAPCAIAAABr+ngCAAAACXBIWXMAAA7rAAAO6wFxzYGVAAACH0lEQVQoz3XS2Y6bMBQGYO4nCynEGLDNFsJuFm+AszCdSL3s+79NxXQqtZOp9Ml3v85/jmyc0nNDaV6WJI6jMEpO6TnLT2mKMPYR9nyMSYBIgDD5xEfYsI7ANE0IIcbYsu3D4ZsL3YN5MM2DZdmWZWMSeJ4PgPPMoEmKoyRJsyBKklN2zoowThCJEA5JGLuev9lstrvdl4yfP0auX8fbdz7fhV7G2xuf78N4ZeNV6CWrqOO4yAt8F3/mYYNypZeHmG+9uvRKt3yqernqRMOn5FwBE3o2di30zChaIfSd8qlhquVTJ+ZO6l7qTszVIONTedwCcHCBCYEJHdP9m5FTxqarmNf8fH/M98d0e9PLQ11eW6mTtDpuATx4n2If4aqXYr7Xg6p6WXYia4aMspyyrBlyypKsQh4hKCQoxH4YkjgiyfoGSUSSNczGK2VjwyfKp7qXRcsLuip7GaclMKFr+Z6NECDYCfwjdi3/fWffKDohL0uv9KAu6rIMSjdMNWxs2EjFtO68AY651oZ/2oI9BHvo7KFRtLyXehivndCtmMuW5++1c8rWyafyuAPO/3Zu2MjnWyumNdmJshP1oDq53rxmY3Qq7M0R7F2wg8+MqpNSL1Iv6voqL4u8LK2Yfh9vPVheBzgiJCL4C0bZiZavYz/wqWh51at6UJRPcVZZlg0ceATOM4MkZxz/g8TntGjyusvrDgXxy8vLbrv/8nP/AnIZfPc4PAHxAAAAAElFTkSuQmCC')\",\n \"backgroundSize\": \"cover\",\n \"display\": \"block\"\n }\n }}></span>{`\n `}<picture parentName=\"a\">{`\n `}<source parentName=\"picture\" {...{\n \"srcSet\": [\"/en/static/57ff88e63d6cb8c5386dbd3b86d7e0ea/e4706/ProFTP_Server_for_your_WQHD_Camera_03.avif 230w\", \"/en/static/57ff88e63d6cb8c5386dbd3b86d7e0ea/d1af7/ProFTP_Server_for_your_WQHD_Camera_03.avif 460w\", \"/en/static/57ff88e63d6cb8c5386dbd3b86d7e0ea/7f308/ProFTP_Server_for_your_WQHD_Camera_03.avif 920w\", \"/en/static/57ff88e63d6cb8c5386dbd3b86d7e0ea/c93d7/ProFTP_Server_for_your_WQHD_Camera_03.avif 1189w\"],\n \"sizes\": \"(max-width: 920px) 100vw, 920px\",\n \"type\": \"image/avif\"\n }}></source><source parentName=\"picture\" {...{\n \"srcSet\": [\"/en/static/57ff88e63d6cb8c5386dbd3b86d7e0ea/a0b58/ProFTP_Server_for_your_WQHD_Camera_03.webp 230w\", \"/en/static/57ff88e63d6cb8c5386dbd3b86d7e0ea/bc10c/ProFTP_Server_for_your_WQHD_Camera_03.webp 460w\", \"/en/static/57ff88e63d6cb8c5386dbd3b86d7e0ea/966d8/ProFTP_Server_for_your_WQHD_Camera_03.webp 920w\", \"/en/static/57ff88e63d6cb8c5386dbd3b86d7e0ea/1671b/ProFTP_Server_for_your_WQHD_Camera_03.webp 1189w\"],\n \"sizes\": \"(max-width: 920px) 100vw, 920px\",\n \"type\": \"image/webp\"\n }}></source>{`\n `}<source parentName=\"picture\" {...{\n \"srcSet\": [\"/en/static/57ff88e63d6cb8c5386dbd3b86d7e0ea/81c8e/ProFTP_Server_for_your_WQHD_Camera_03.png 230w\", \"/en/static/57ff88e63d6cb8c5386dbd3b86d7e0ea/08a84/ProFTP_Server_for_your_WQHD_Camera_03.png 460w\", \"/en/static/57ff88e63d6cb8c5386dbd3b86d7e0ea/c0255/ProFTP_Server_for_your_WQHD_Camera_03.png 920w\", \"/en/static/57ff88e63d6cb8c5386dbd3b86d7e0ea/1790f/ProFTP_Server_for_your_WQHD_Camera_03.png 1189w\"],\n \"sizes\": \"(max-width: 920px) 100vw, 920px\",\n \"type\": \"image/png\"\n }}></source>{`\n `}<img parentName=\"picture\" {...{\n \"className\": \"gatsby-resp-image-image\",\n \"src\": \"/en/static/57ff88e63d6cb8c5386dbd3b86d7e0ea/c0255/ProFTP_Server_for_your_WQHD_Camera_03.png\",\n \"alt\": \"Set ProFTP Server for your WQHD Camera\",\n \"title\": \"Set ProFTP Server for your WQHD Camera\",\n \"loading\": \"lazy\",\n \"decoding\": \"async\",\n \"style\": {\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"margin\": \"0\",\n \"verticalAlign\": \"middle\",\n \"position\": \"absolute\",\n \"top\": \"0\",\n \"left\": \"0\"\n }\n }}></img>{`\n `}</picture>{`\n `}</a>{`\n `}</span></p>\n <p>{`And the log will tell you that the connection is now secure!`}</p>\n <div {...{\n \"className\": \"gatsby-highlight\",\n \"data-language\": \"bash\"\n }}><pre parentName=\"div\" {...{\n \"className\": \"language-bash\"\n }}><code parentName=\"pre\" {...{\n \"className\": \"language-bash\"\n }}>{`Status:\tConnecting to `}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`192.168`}</span>{`.2.111:21`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span>{`.\nStatus:\tConnection established, waiting `}<span parentName=\"code\" {...{\n \"className\": \"token keyword\"\n }}>{`for`}</span>{` welcome message`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span>{`.\nStatus:\tInitializing TLS`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span>{`.\nStatus:\tTLS connection established.\nStatus:\tLogged `}<span parentName=\"code\" {...{\n \"className\": \"token keyword\"\n }}>{`in`}</span>{`\nStatus:\tRetrieving directory listing of `}<span parentName=\"code\" {...{\n \"className\": \"token string\"\n }}>{`\"/\"`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`..`}</span>{`.\nStatus:\tDirectory listing of `}<span parentName=\"code\" {...{\n \"className\": \"token string\"\n }}>{`\"/\"`}</span>{` successful`}</code></pre></div>\n <h2 {...{\n \"id\": \"connecting-an-instar-ip-camera\",\n \"style\": {\n \"position\": \"relative\"\n }\n }}><a parentName=\"h2\" {...{\n \"href\": \"#connecting-an-instar-ip-camera\",\n \"aria-label\": \"connecting an instar ip camera permalink\",\n \"className\": \"header-link-icon before\"\n }}><svg parentName=\"a\" {...{\n \"aria-hidden\": \"true\",\n \"focusable\": \"false\",\n \"height\": \"16\",\n \"version\": \"1.1\",\n \"viewBox\": \"0 0 16 16\",\n \"width\": \"16\"\n }}><path parentName=\"svg\" {...{\n \"fillRule\": \"evenodd\",\n \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n }}></path></svg></a>{`Connecting an INSTAR IP Camera`}</h2>\n <p>{`We can now connect to our server using TLS encryption:`}</p>\n <h3 {...{\n \"id\": \"wqhd-cameras\",\n \"style\": {\n \"position\": \"relative\"\n }\n }}><a parentName=\"h3\" {...{\n \"href\": \"#wqhd-cameras\",\n \"aria-label\": \"wqhd cameras permalink\",\n \"className\": \"header-link-icon before\"\n }}><svg parentName=\"a\" {...{\n \"aria-hidden\": \"true\",\n \"focusable\": \"false\",\n \"height\": \"16\",\n \"version\": \"1.1\",\n \"viewBox\": \"0 0 16 16\",\n \"width\": \"16\"\n }}><path parentName=\"svg\" {...{\n \"fillRule\": \"evenodd\",\n \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n }}></path></svg></a>{`WQHD Cameras`}</h3>\n <p>{`For your WQHD camera make sure to select the `}<code parentName=\"p\" {...{\n \"className\": \"language-text\"\n }}>{`insecure`}</code>{` option to skip the certificate verification step when connecting:`}</p>\n <p><span parentName=\"p\" {...{\n \"className\": \"gatsby-resp-image-wrapper\",\n \"style\": {\n \"position\": \"relative\",\n \"display\": \"block\",\n \"marginLeft\": \"auto\",\n \"marginRight\": \"auto\",\n \"maxWidth\": \"920px\"\n }\n }}>{`\n `}<a parentName=\"span\" {...{\n \"className\": \"gatsby-resp-image-link\",\n \"href\": \"/en/static/55fd9a5c45250b1a97536882cd5794e9/2e367/ProFTP_Server_for_your_WQHD_Camera_04.png\",\n \"style\": {\n \"display\": \"block\"\n },\n \"target\": \"_blank\",\n \"rel\": \"noopener\"\n }}>{`\n `}<span parentName=\"a\" {...{\n \"className\": \"gatsby-resp-image-background-image\",\n \"style\": {\n \"paddingBottom\": \"55.65217391304348%\",\n \"position\": \"relative\",\n \"bottom\": \"0\",\n \"left\": \"0\",\n \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAIAAADwazoUAAAACXBIWXMAAA7rAAAO6wFxzYGVAAACDElEQVQoz22Rz0/TYByHdzCaGJCDMQqbrCttx9oyZLIyur1r+/bHurc/trc/03VDREbRxIsJicCI8eLRA0ePxr9gcvfgP2Zg0+zgk+f65JPv++aq1SrP8/xWtUwR2uEn/8sv92qKJj/Ny+lMNLnpTm7sq+nB199SegGl5maFXVtbKxaLOZZluTtoitTcQfL+c3hyHizYPzrrH525rz6E2aRtBjs723pH15DZxTg3K3meoxkGSmAQYex0sdP13JlIaYut/V1RqClgX6jVlh48EgRhcDg6ePd2HrMsS9M0VNVBOgzCyPP9f6qa3moBUWxKkoxsK79aWHm4glx7MH6Tq1QqPM9zHMcwDIQwSRL/Du8vuq5LkgQAaAOQDBPNNJbuLQmNxjAb38az8VmcpmkQBN4CqqoCABqNhiiKYRziyH+88mT7RS0dH/8njqJoMXYcx7Zty7IshOIk7gV49Wlh52U9PVlYvr0ZwtEwjcLA8/A89X3LckzT7BiGjZDUljZIOv+soOn66DSbfxXLsgxNywp0g9RwfLeHPXxHzzbkpiwDQVFEXavX95bvL1PUJrI6OI7nr81x7AZFWwb8ftH/ce5kIx8HURR4UXYZf/x2PD6/ttxrPzYkOV94XiqRBEUx5fLCMlMGzf3TUMk8gHRFVlSoyBD50HttmnjUAgcy3NvdXS+ukyRZIgiCKP4Bxqmw7pyYdr0AAAAASUVORK5CYII=')\",\n \"backgroundSize\": \"cover\",\n \"display\": \"block\"\n }\n }}></span>{`\n `}<picture parentName=\"a\">{`\n `}<source parentName=\"picture\" {...{\n \"srcSet\": [\"/en/static/55fd9a5c45250b1a97536882cd5794e9/e4706/ProFTP_Server_for_your_WQHD_Camera_04.avif 230w\", \"/en/static/55fd9a5c45250b1a97536882cd5794e9/d1af7/ProFTP_Server_for_your_WQHD_Camera_04.avif 460w\", \"/en/static/55fd9a5c45250b1a97536882cd5794e9/7f308/ProFTP_Server_for_your_WQHD_Camera_04.avif 920w\", \"/en/static/55fd9a5c45250b1a97536882cd5794e9/730d0/ProFTP_Server_for_your_WQHD_Camera_04.avif 1066w\"],\n \"sizes\": \"(max-width: 920px) 100vw, 920px\",\n \"type\": \"image/avif\"\n }}></source><source parentName=\"picture\" {...{\n \"srcSet\": [\"/en/static/55fd9a5c45250b1a97536882cd5794e9/a0b58/ProFTP_Server_for_your_WQHD_Camera_04.webp 230w\", \"/en/static/55fd9a5c45250b1a97536882cd5794e9/bc10c/ProFTP_Server_for_your_WQHD_Camera_04.webp 460w\", \"/en/static/55fd9a5c45250b1a97536882cd5794e9/966d8/ProFTP_Server_for_your_WQHD_Camera_04.webp 920w\", \"/en/static/55fd9a5c45250b1a97536882cd5794e9/fbb05/ProFTP_Server_for_your_WQHD_Camera_04.webp 1066w\"],\n \"sizes\": \"(max-width: 920px) 100vw, 920px\",\n \"type\": \"image/webp\"\n }}></source>{`\n `}<source parentName=\"picture\" {...{\n \"srcSet\": [\"/en/static/55fd9a5c45250b1a97536882cd5794e9/81c8e/ProFTP_Server_for_your_WQHD_Camera_04.png 230w\", \"/en/static/55fd9a5c45250b1a97536882cd5794e9/08a84/ProFTP_Server_for_your_WQHD_Camera_04.png 460w\", \"/en/static/55fd9a5c45250b1a97536882cd5794e9/c0255/ProFTP_Server_for_your_WQHD_Camera_04.png 920w\", \"/en/static/55fd9a5c45250b1a97536882cd5794e9/2e367/ProFTP_Server_for_your_WQHD_Camera_04.png 1066w\"],\n \"sizes\": \"(max-width: 920px) 100vw, 920px\",\n \"type\": \"image/png\"\n }}></source>{`\n `}<img parentName=\"picture\" {...{\n \"className\": \"gatsby-resp-image-image\",\n \"src\": \"/en/static/55fd9a5c45250b1a97536882cd5794e9/c0255/ProFTP_Server_for_your_WQHD_Camera_04.png\",\n \"alt\": \"Set up an FTP Server for your WQHD Camera using Docker\",\n \"title\": \"Set up an FTP Server for your WQHD Camera using Docker\",\n \"loading\": \"lazy\",\n \"decoding\": \"async\",\n \"style\": {\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"margin\": \"0\",\n \"verticalAlign\": \"middle\",\n \"position\": \"absolute\",\n \"top\": \"0\",\n \"left\": \"0\"\n }\n }}></img>{`\n `}</picture>{`\n `}</a>{`\n `}</span></p>\n <p>{`Checking the TLS log `}<code parentName=\"p\" {...{\n \"className\": \"language-text\"\n }}>{`/var/log/proftpd/tls.log`}</code>{` you will see that your camera connects using `}<strong parentName=\"p\">{`TLSv1.3`}</strong>{`:`}</p>\n <div {...{\n \"className\": \"gatsby-highlight\",\n \"data-language\": \"bash\"\n }}><pre parentName=\"div\" {...{\n \"className\": \"language-bash\"\n }}><code parentName=\"pre\" {...{\n \"className\": \"language-bash\"\n }}><span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`2022`}</span>{`-05-26 `}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`14`}</span>{`:34:05,088 mod_tls/2.9`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`[`}</span><span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`13571`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`]`}</span>{`: SSL/TLS-P requested, starting TLS handshake\n`}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`2022`}</span>{`-05-26 `}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`14`}</span>{`:34:05,100 mod_tls/2.9`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`[`}</span><span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`13571`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`]`}</span>{`: client supports secure renegotiations\n`}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`2022`}</span>{`-05-26 `}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`14`}</span>{`:34:05,100 mod_tls/2.9`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`[`}</span><span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`13571`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`]`}</span>{`: TLSv1.3 connection accepted, using cipher TLS_AES_256_GCM_SHA384 `}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`(`}</span><span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`256`}</span>{` bits`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`)`}</span>{`\n`}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`2022`}</span>{`-05-26 `}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`14`}</span>{`:34:05,149 mod_tls/2.9`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`[`}</span><span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`13571`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`]`}</span>{`: Protection `}<span parentName=\"code\" {...{\n \"className\": \"token builtin class-name\"\n }}>{`set`}</span>{` to Private\n`}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`2022`}</span>{`-05-26 `}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`14`}</span>{`:34:05,160 mod_tls/2.9`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`[`}</span><span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`13571`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`]`}</span>{`: TLSv1.3 data connection accepted, using cipher TLS_AES_256_GCM_SHA384 `}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`(`}</span><span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`256`}</span>{` bits, resumed session`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`)`}</span></code></pre></div>\n <h3 {...{\n \"id\": \"full-hd-cameras\",\n \"style\": {\n \"position\": \"relative\"\n }\n }}><a parentName=\"h3\" {...{\n \"href\": \"#full-hd-cameras\",\n \"aria-label\": \"full hd cameras permalink\",\n \"className\": \"header-link-icon before\"\n }}><svg parentName=\"a\" {...{\n \"aria-hidden\": \"true\",\n \"focusable\": \"false\",\n \"height\": \"16\",\n \"version\": \"1.1\",\n \"viewBox\": \"0 0 16 16\",\n \"width\": \"16\"\n }}><path parentName=\"svg\" {...{\n \"fillRule\": \"evenodd\",\n \"d\": \"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"\n }}></path></svg></a>{`Full HD Cameras`}</h3>\n <p>{`For your Full HD camera make sure to select the `}<code parentName=\"p\" {...{\n \"className\": \"language-text\"\n }}>{`SSL`}</code>{` option:`}</p>\n <p><span parentName=\"p\" {...{\n \"className\": \"gatsby-resp-image-wrapper\",\n \"style\": {\n \"position\": \"relative\",\n \"display\": \"block\",\n \"marginLeft\": \"auto\",\n \"marginRight\": \"auto\",\n \"maxWidth\": \"920px\"\n }\n }}>{`\n `}<a parentName=\"span\" {...{\n \"className\": \"gatsby-resp-image-link\",\n \"href\": \"/en/static/e74239707c3db84a5521efcf31307f2c/e2e58/ProFTP_Server_for_your_WQHD_Camera_05.png\",\n \"style\": {\n \"display\": \"block\"\n },\n \"target\": \"_blank\",\n \"rel\": \"noopener\"\n }}>{`\n `}<span parentName=\"a\" {...{\n \"className\": \"gatsby-resp-image-background-image\",\n \"style\": {\n \"paddingBottom\": \"47.82608695652174%\",\n \"position\": \"relative\",\n \"bottom\": \"0\",\n \"left\": \"0\",\n \"backgroundImage\": \"url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAIAAAA7N+mxAAAACXBIWXMAAA7rAAAO6wFxzYGVAAAB50lEQVQoz12QXW/SUACGSeYFXwOaQsNHoFg+OlvIJLjCOaeFDtcy1lboOaes3UZmXPQPmOxuuC1GvfBavfAnbDPxwt9nKIqJT97bJ0/yRmRZllutJ2KjO8Kj15/VxS1c3IKz/zc4fz969aHd0yeHZq1WLxaLgiBE1rLYEAazi/NPv4Kbh+PrB+/d/WZ0eU+u7oKbu5cff+5C8+luu1gqcRxXqVQikiTJsiyKIujtzbGDncOZPXbDYefQMvd1pOhIgUrnQEf12uNkMskwTCqVymazkTDcEkURIhScnFLqYULXI9SzHQciFSIVAGiOx82myDAMy7LpdDqXy0VaISsZQt/3CSH4L4QQ27Y1TVNVFUJomqaiKIVCIR3CcdyqLElSs9mEEAZB4Ps+pXQjW5alaRpCqN/vG4bR6XQymUw8Ho9Go6uyHLIunwS+f+xt2oRQy3aG+v5QGyAATMNotdvZbLZarfI8Xy6X/8jr8pT4k6lnTzF2V2B35hyZ4wP9+WSsGoZhWYIgJLe314fl8/l/b6sIfn374sfSunozm2FvTjE9vfAvv80vvyzp2Xd7eu3SaqMei0YfbW2xLMvz/OqwUN551u0Gjr6wwWQEAEQA9KE2RCaGhmv2oLunHAFUKJXisVgikRBCfgPwa5GdPcVd1AAAAABJRU5ErkJggg==')\",\n \"backgroundSize\": \"cover\",\n \"display\": \"block\"\n }\n }}></span>{`\n `}<picture parentName=\"a\">{`\n `}<source parentName=\"picture\" {...{\n \"srcSet\": [\"/en/static/e74239707c3db84a5521efcf31307f2c/e4706/ProFTP_Server_for_your_WQHD_Camera_05.avif 230w\", \"/en/static/e74239707c3db84a5521efcf31307f2c/d1af7/ProFTP_Server_for_your_WQHD_Camera_05.avif 460w\", \"/en/static/e74239707c3db84a5521efcf31307f2c/7f308/ProFTP_Server_for_your_WQHD_Camera_05.avif 920w\", \"/en/static/e74239707c3db84a5521efcf31307f2c/c986f/ProFTP_Server_for_your_WQHD_Camera_05.avif 1069w\"],\n \"sizes\": \"(max-width: 920px) 100vw, 920px\",\n \"type\": \"image/avif\"\n }}></source><source parentName=\"picture\" {...{\n \"srcSet\": [\"/en/static/e74239707c3db84a5521efcf31307f2c/a0b58/ProFTP_Server_for_your_WQHD_Camera_05.webp 230w\", \"/en/static/e74239707c3db84a5521efcf31307f2c/bc10c/ProFTP_Server_for_your_WQHD_Camera_05.webp 460w\", \"/en/static/e74239707c3db84a5521efcf31307f2c/966d8/ProFTP_Server_for_your_WQHD_Camera_05.webp 920w\", \"/en/static/e74239707c3db84a5521efcf31307f2c/b8544/ProFTP_Server_for_your_WQHD_Camera_05.webp 1069w\"],\n \"sizes\": \"(max-width: 920px) 100vw, 920px\",\n \"type\": \"image/webp\"\n }}></source>{`\n `}<source parentName=\"picture\" {...{\n \"srcSet\": [\"/en/static/e74239707c3db84a5521efcf31307f2c/81c8e/ProFTP_Server_for_your_WQHD_Camera_05.png 230w\", \"/en/static/e74239707c3db84a5521efcf31307f2c/08a84/ProFTP_Server_for_your_WQHD_Camera_05.png 460w\", \"/en/static/e74239707c3db84a5521efcf31307f2c/c0255/ProFTP_Server_for_your_WQHD_Camera_05.png 920w\", \"/en/static/e74239707c3db84a5521efcf31307f2c/e2e58/ProFTP_Server_for_your_WQHD_Camera_05.png 1069w\"],\n \"sizes\": \"(max-width: 920px) 100vw, 920px\",\n \"type\": \"image/png\"\n }}></source>{`\n `}<img parentName=\"picture\" {...{\n \"className\": \"gatsby-resp-image-image\",\n \"src\": \"/en/static/e74239707c3db84a5521efcf31307f2c/c0255/ProFTP_Server_for_your_WQHD_Camera_05.png\",\n \"alt\": \"Set up an FTP Server for your WQHD Camera using Docker\",\n \"title\": \"Set up an FTP Server for your WQHD Camera using Docker\",\n \"loading\": \"lazy\",\n \"decoding\": \"async\",\n \"style\": {\n \"width\": \"100%\",\n \"height\": \"100%\",\n \"margin\": \"0\",\n \"verticalAlign\": \"middle\",\n \"position\": \"absolute\",\n \"top\": \"0\",\n \"left\": \"0\"\n }\n }}></img>{`\n `}</picture>{`\n `}</a>{`\n `}</span></p>\n <p>{`Checking the TLS log `}<code parentName=\"p\" {...{\n \"className\": \"language-text\"\n }}>{`/var/log/proftpd/tls.log`}</code>{` you will see that your camera connects using `}<strong parentName=\"p\">{`TLSv1.2`}</strong>{`:`}</p>\n <div {...{\n \"className\": \"gatsby-highlight\",\n \"data-language\": \"bash\"\n }}><pre parentName=\"div\" {...{\n \"className\": \"language-bash\"\n }}><code parentName=\"pre\" {...{\n \"className\": \"language-bash\"\n }}><span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`2022`}</span>{`-05-26 `}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`14`}</span>{`:36:31,743 mod_tls/2.9`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`[`}</span><span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`13644`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`]`}</span>{`: TLS/TLS-C requested, starting TLS handshake\n`}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`2022`}</span>{`-05-26 `}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`14`}</span>{`:36:31,789 mod_tls/2.9`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`[`}</span><span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`13644`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`]`}</span>{`: client supports secure renegotiations\n`}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`2022`}</span>{`-05-26 `}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`14`}</span>{`:36:31,789 mod_tls/2.9`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`[`}</span><span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`13644`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`]`}</span>{`: TLSv1.2 connection accepted, using cipher ECDHE-RSA-AES256-GCM-SHA384 `}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`(`}</span><span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`256`}</span>{` bits`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`)`}</span>{`\n`}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`2022`}</span>{`-05-26 `}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`14`}</span>{`:36:31,887 mod_tls/2.9`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`[`}</span><span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`13644`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`]`}</span>{`: Protection `}<span parentName=\"code\" {...{\n \"className\": \"token builtin class-name\"\n }}>{`set`}</span>{` to Private\n`}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`2022`}</span>{`-05-26 `}<span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`14`}</span>{`:36:31,943 mod_tls/2.9`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`[`}</span><span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`13644`}</span><span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`]`}</span>{`: TLSv1.2 data connection accepted, using cipher ECDHE-RSA-AES256-GCM-SHA384 `}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`(`}</span><span parentName=\"code\" {...{\n \"className\": \"token number\"\n }}>{`256`}</span>{` bits`}<span parentName=\"code\" {...{\n \"className\": \"token punctuation\"\n }}>{`)`}</span></code></pre></div>\n <ul>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"/en/FAQs/\"\n }}>{`FAQs`}</a>\n <ul parentName=\"li\">\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"/en/FAQs/IN-9420WQHD/\"\n }}>{`IN-9420 WQHD`}</a></li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"/en/FAQs/IN-9408WQHD/\"\n }}>{`IN-9408 WQHD`}</a></li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"/en/FAQs/IN-8415WQHD/\"\n }}>{`IN-8415 WQHD`}</a></li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"/en/FAQs/IN-8403WQHD/\"\n }}>{`IN-8403 WQHD`}</a></li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"/en/FAQs/IN-8401WQHD/\"\n }}>{`IN-8401 WQHD`}</a></li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"/en/FAQs/IN-9020FHD/\"\n }}>{`IN-9020 Full HD`}</a></li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"/en/FAQs/IN-9010FHD/\"\n }}>{`IN-9010 Full HD`}</a></li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"/en/FAQs/IN-9008FHD/\"\n }}>{`IN-9008 Full HD`}</a></li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"/en/FAQs/IN-8015FHD/\"\n }}>{`IN-8015 Full HD`}</a></li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"/en/FAQs/IN-8003FHD/\"\n }}>{`IN-8003 Full HD`}</a></li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"/en/FAQs/IN-8001FHD/\"\n }}>{`IN-8001 Full HD`}</a></li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"/en/FAQs/IN-7011HD/\"\n }}>{`IN-7011 HD`}</a></li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"/en/FAQs/IN-6014HD/\"\n }}>{`IN-6014 HD`}</a></li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"/en/FAQs/IN-6012HD/\"\n }}>{`IN-6012 HD`}</a></li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"/en/FAQs/IN-6001HD/\"\n }}>{`IN-6001 HD`}</a></li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"/en/FAQs/IN-5907HD/\"\n }}>{`IN-5907 HD`}</a></li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"/en/FAQs/IN-5905HD/\"\n }}>{`IN-5905 HD`}</a></li>\n <li parentName=\"ul\"><a parentName=\"li\" {...{\n \"href\": \"/en/FAQs/VGA_Series/\"\n }}>{`VGA Series`}</a></li>\n </ul>\n </li>\n </ul>\n\n </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n "],"names":["_frontmatter","layoutProps","MDXLayout","MDXContent","_ref","components","props","_objectWithoutProperties","_excluded","mdx","Object","assign","mdxType","SEOHelmet","title","dateChanged","author","tag","description","image","twitter","location","pathname","BreadCrumbs","locationBC","locationEN","locationDE","locationFR","crumbLabel","parentName","isMDXComponent"],"sourceRoot":""}