{"id":113,"date":"2023-04-08T11:25:05","date_gmt":"2023-04-08T11:25:05","guid":{"rendered":"https:\/\/idstower.com\/blog\/?p=113"},"modified":"2024-02-17T08:44:08","modified_gmt":"2024-02-17T08:44:08","slug":"building-a-custom-suricata-deb-package","status":"publish","type":"post","link":"https:\/\/idstower.com\/blog\/building-a-custom-suricata-deb-package\/","title":{"rendered":"Building a Custom Suricata DEB Package"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<p>Suricata IDS is published in different formats, among the standard ones are the pre-compiled binaries as RPM or DEB packages.<\/p>\n\n\n\n<p>Those packages offer an easy way to install\/upgrade Suricata and are configured for the most common use-cases, for that, some of the features that you might want to use are disabled in these packages, and you will need to compile Suricata your self to have them available.<\/p>\n\n\n\n<p>Recently, one of IDSTower users needed to use Napatech NICs with Suricata but faced several hurdles since this features is understandably not enabled by default in the default RPM\/DEB packages and manually compiling Suricata IDS on each cluster host is a bit too much.<\/p>\n\n\n\n<p>The customer needed a way to compile Suricata once and deploy it to the IDS Cluster using  the <a href=\"https:\/\/idstower.com\/docs\/advance\/custom_built_packages_repo.html\" target=\"_blank\" rel=\"noreferrer noopener\">Custom Packages Repository feature in IDSTower.<\/a><\/p>\n\n\n\n<p>In this post, we will go thru the steps to create a custom Suricata DEB package that have the features that we wants enabled (eBPF support in this example) while maintaining the standard features enabled as well.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">The build setup<\/h4>\n\n\n\n<p>We did everything in this tutorial using:<br>&#8211; Ubuntu 22.04.2 LTS (Jammy Jellyfish)<br>&#8211; Suricata 6.0.11<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Building the Suricata IDS .deb package, howto<\/h2>\n\n\n\n<p>a dep package is a simple Unix archive that contains both the application binaries and other utility files, to create the .deb package, we need to obtain Suricata source code, configure it to enable the features\/options we want to use, compile it and finally package it as a DEB file that can be used on Ubuntu\/Debian.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Compiling the source code<\/h3>\n\n\n\n<p>First, we need to download the all of the libraries and tools needed to build Suricata IDS from the source<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt -y install jq curl checkinstall build-essential pkg-config make rustc cargo\nsudo apt -y install libpcre3 libpcre3-dbg libpcre3-dev libpcap-dev   \\\n                libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev \\\n                libcap-ng-dev libcap-ng0 libmagic-dev         \\\n                libnss3-dev libgeoip-dev liblua5.1-dev libhiredis-dev libevent-dev \\\n                python3-yaml libjansson-dev libluajit-5.1-dev libhyperscan-dev libmaxminddb-dev liblz4-dev \\\n\t\tlibnetfilter-queue-dev libnetfilter-queue1  \\\n\t\tlibnetfilter-log-dev libnetfilter-log1      \\\n\t\tlibnfnetlink-dev libnfnetlink0\t\\\n\t\tlibelf-dev libbpf-dev<\/code><\/pre>\n\n\n\n<p>Then, lets create a directory to host our build and download and extract source code in it.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir suricata_build\ncd suricata_build\/\nwget https:\/\/www.openinfosecfoundation.org\/download\/suricata-6.0.11.tar.gz\ntar xzvf suricata-6.0.11.tar.gz\ncd suricata-6.0.11\/<\/code><\/pre>\n\n\n\n<p>Once Suricata source code is extracted, proceed to &#8220;configure&#8221; the build to enable all of the standard features that are normally enabled in the &#8220;official&#8221; Suricata DEB package, plus eBPF support (notice the option in bold)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.\/configure --build=x86_64-linux-gnu --prefix=\/usr\/ --sysconfdir=\/etc\/ --localstatedir=\/var\/ --disable-silent-rules --disable-maintainer-mode --disable-dependency-tracking --enable-nfqueue --disable-gccmarch-native --enable-hiredis --enable-geoip --enable-gccprotect --enable-pie --enable-luajit <strong>--enable-ebpf<\/strong><\/code><\/pre>\n\n\n\n<p>Now we are ready to compile Suricata<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>make clean\nmake<\/code><\/pre>\n\n\n\n<p>Compilation will take a while depending on system resources, once it is done successfully, we will proceed to bundle Suricata as a DEB package that can be used to deploy Suricata to Ubuntu\/Debian systems<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Creating the DEB package<\/h3>\n\n\n\n<p>To create the Suricata IDS .deb package, we will use the checkinstall tool, which is among the easies ways to bundle compiled source code into .deb and .rpm packages.<\/p>\n\n\n\n<p>We will start by creating a list of configuration files we want checkinstall to bundle inside our suricata .deb package<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>echo \"\/etc\/suricata\" &gt; suricata_conf_files\necho \"\/var\/log\/suricata\" &gt;&gt; suricata_conf_files<\/code><\/pre>\n\n\n\n<p>We will need to tell checkinstall about all of the dependencies that Suricata requires to be installed so that they get automatically installed by apt when we install the Suricata package.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo checkinstall -y -D -A amd64 --install=no --fstrans=no --backup=no --exclude=\/home,\/root --include=.\/suricata_conf_files --requires \"libevent-2.1-7,libevent-pthreads-2.1-7,libhiredis0.14,libhtp2,libhyperscan5,libluajit-5.1-2,libnet1,libnetfilter-log1,libnetfilter-queue1,python3-simplejson\" make install install-conf<\/code><\/pre>\n\n\n\n<p>Once the checkinstall tool finishes creating the deb package, we can find it written in our source directory and we can proceed to install it and verify that eBPF support is now enabled<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install .\/suricata_6.0.11-1_amd64.deb -y\n\nuser@suricathost:~\/suricata_build\/suricata-6.0.11$ suricata --build-info\nThis is Suricata version 6.0.11 RELEASE\nFeatures: NFQ PCAP_SET_BUFF AF_PACKET HAVE_PACKET_FANOUT LIBCAP_NG LIBNET1.1 HAVE_HTP_URI_NORMALIZE_HOOK PCRE_JIT HAVE_NSS HAVE_LUA HAVE_LUAJIT HAVE_LIBJANSSON TLS TLS_C11 MAGIC RUST\nSIMD support: none\nAtomic intrinsics: 1 2 4 8 byte(s)\n64-bits, Little-endian architecture\nGCC version 11.3.0, C version 201112\ncompiled with -fstack-protector\ncompiled with _FORTIFY_SOURCE=2\nL1 cache line size (CLS)=64\nthread local storage method: _Thread_local\ncompiled with LibHTP v0.5.42, linked against LibHTP v0.5.39\n\nSuricata Configuration:\n  AF_PACKET support:                       yes\n  <strong>eBPF support:                                 yes<\/strong>\n  <strong>XDP support:                                  yes<\/strong>\n  PF_RING support:                           no\n  NFQueue support:                          yes\n  NFLOG support:                              no\n  IPFW support:                                 no\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Using the Suricata DEB package<\/h2>\n\n\n\n<p>Now that you have the Suricata deb package ready, you can use it to install Suricata IDS on other hosts Ubuntu\/Debian hosts.<\/p>\n\n\n\n<p>The same steps that we followed above, can be used to enable other features that are not enabled by default in official Suricata binaries, including Napatech &amp; PF_RING support.<\/p>\n\n\n\n<h5 class=\"wp-block-heading\"><strong>How IDSTower can help?<\/strong><\/h5>\n\n\n\n<p>IDSTower helps you provision and deploy you custom Suicata packages to 10&#8217;s of hosts using the <a href=\"https:\/\/idstower.com\/docs\/advance\/custom_built_packages_repo.html\" target=\"_blank\" rel=\"noreferrer noopener\">Custom Packages Repository feature.<\/a> It also offer an easy to use GUI for Suricata hosts configuration management, health monitoring and rules life-cycle management.<\/p>\n\n\n\n<p>If you are interested to learn more on how IDSTower can help you enhance your network security operations, please take a look at <a href=\"https:\/\/www.idstower.com\/#overview\">the Features that IDSTower offers<\/a> &amp; <a href=\"https:\/\/idstower.com\/getLicense.php?type=Standard\">Download A free license now!<\/a><\/p>\n\n\n\n<p> <\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Suricata IDS is published in different formats, among the standard ones are the pre-compiled binaries as RPM or DEB packages. Those packages offer an easy way to install\/upgrade Suricata and are configured for the most common use-cases, for that, some of the features that you might want to use are disabled in these packages, and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[3],"tags":[13,8,14],"class_list":["post-113","post","type-post","status-publish","format-standard","hentry","category-suricata-ids","tag-deb","tag-suricata","tag-ubuntu"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Building a Custom Suricata DEB Package - IDSTower Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/idstower.com\/blog\/building-a-custom-suricata-deb-package\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Building a Custom Suricata DEB Package - IDSTower Blog\" \/>\n<meta property=\"og:description\" content=\"Suricata IDS is published in different formats, among the standard ones are the pre-compiled binaries as RPM or DEB packages. Those packages offer an easy way to install\/upgrade Suricata and are configured for the most common use-cases, for that, some of the features that you might want to use are disabled in these packages, and [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/idstower.com\/blog\/building-a-custom-suricata-deb-package\/\" \/>\n<meta property=\"og:site_name\" content=\"IDSTower Blog\" \/>\n<meta property=\"article:published_time\" content=\"2023-04-08T11:25:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-02-17T08:44:08+00:00\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@IDSTower\" \/>\n<meta name=\"twitter:site\" content=\"@IDSTower\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/idstower.com\\\/blog\\\/building-a-custom-suricata-deb-package\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/idstower.com\\\/blog\\\/building-a-custom-suricata-deb-package\\\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\\\/\\\/idstower.com\\\/blog\\\/#\\\/schema\\\/person\\\/de3006b0e8ec6f07ed283b57edc0137d\"},\"headline\":\"Building a Custom Suricata DEB Package\",\"datePublished\":\"2023-04-08T11:25:05+00:00\",\"dateModified\":\"2024-02-17T08:44:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/idstower.com\\\/blog\\\/building-a-custom-suricata-deb-package\\\/\"},\"wordCount\":633,\"publisher\":{\"@id\":\"https:\\\/\\\/idstower.com\\\/blog\\\/#organization\"},\"keywords\":[\"DEB\",\"Suricata\",\"Ubuntu\"],\"articleSection\":[\"Suricata IDS\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/idstower.com\\\/blog\\\/building-a-custom-suricata-deb-package\\\/\",\"url\":\"https:\\\/\\\/idstower.com\\\/blog\\\/building-a-custom-suricata-deb-package\\\/\",\"name\":\"Building a Custom Suricata DEB Package - IDSTower Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/idstower.com\\\/blog\\\/#website\"},\"datePublished\":\"2023-04-08T11:25:05+00:00\",\"dateModified\":\"2024-02-17T08:44:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/idstower.com\\\/blog\\\/building-a-custom-suricata-deb-package\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/idstower.com\\\/blog\\\/building-a-custom-suricata-deb-package\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/idstower.com\\\/blog\\\/building-a-custom-suricata-deb-package\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/idstower.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Building a Custom Suricata DEB Package\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/idstower.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/idstower.com\\\/blog\\\/\",\"name\":\"IDSTower Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/idstower.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/idstower.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/idstower.com\\\/blog\\\/#organization\",\"name\":\"IDSTower\",\"url\":\"https:\\\/\\\/idstower.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/idstower.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/idstower.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/logo-min-1.png\",\"contentUrl\":\"https:\\\/\\\/idstower.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/logo-min-1.png\",\"width\":184,\"height\":50,\"caption\":\"IDSTower\"},\"image\":{\"@id\":\"https:\\\/\\\/idstower.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/x.com\\\/IDSTower\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/idstower.com\\\/blog\\\/#\\\/schema\\\/person\\\/de3006b0e8ec6f07ed283b57edc0137d\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/446d57f9f6515801789387627928696577a5920591f0aa3658734e8e5f482304?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/446d57f9f6515801789387627928696577a5920591f0aa3658734e8e5f482304?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/446d57f9f6515801789387627928696577a5920591f0aa3658734e8e5f482304?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"http:\\\/\\\/idstower.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Building a Custom Suricata DEB Package - IDSTower Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/idstower.com\/blog\/building-a-custom-suricata-deb-package\/","og_locale":"en_US","og_type":"article","og_title":"Building a Custom Suricata DEB Package - IDSTower Blog","og_description":"Suricata IDS is published in different formats, among the standard ones are the pre-compiled binaries as RPM or DEB packages. Those packages offer an easy way to install\/upgrade Suricata and are configured for the most common use-cases, for that, some of the features that you might want to use are disabled in these packages, and [&hellip;]","og_url":"https:\/\/idstower.com\/blog\/building-a-custom-suricata-deb-package\/","og_site_name":"IDSTower Blog","article_published_time":"2023-04-08T11:25:05+00:00","article_modified_time":"2024-02-17T08:44:08+00:00","author":"admin","twitter_card":"summary_large_image","twitter_creator":"@IDSTower","twitter_site":"@IDSTower","twitter_misc":{"Written by":"admin","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/idstower.com\/blog\/building-a-custom-suricata-deb-package\/#article","isPartOf":{"@id":"https:\/\/idstower.com\/blog\/building-a-custom-suricata-deb-package\/"},"author":{"name":"admin","@id":"https:\/\/idstower.com\/blog\/#\/schema\/person\/de3006b0e8ec6f07ed283b57edc0137d"},"headline":"Building a Custom Suricata DEB Package","datePublished":"2023-04-08T11:25:05+00:00","dateModified":"2024-02-17T08:44:08+00:00","mainEntityOfPage":{"@id":"https:\/\/idstower.com\/blog\/building-a-custom-suricata-deb-package\/"},"wordCount":633,"publisher":{"@id":"https:\/\/idstower.com\/blog\/#organization"},"keywords":["DEB","Suricata","Ubuntu"],"articleSection":["Suricata IDS"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/idstower.com\/blog\/building-a-custom-suricata-deb-package\/","url":"https:\/\/idstower.com\/blog\/building-a-custom-suricata-deb-package\/","name":"Building a Custom Suricata DEB Package - IDSTower Blog","isPartOf":{"@id":"https:\/\/idstower.com\/blog\/#website"},"datePublished":"2023-04-08T11:25:05+00:00","dateModified":"2024-02-17T08:44:08+00:00","breadcrumb":{"@id":"https:\/\/idstower.com\/blog\/building-a-custom-suricata-deb-package\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/idstower.com\/blog\/building-a-custom-suricata-deb-package\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/idstower.com\/blog\/building-a-custom-suricata-deb-package\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/idstower.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Building a Custom Suricata DEB Package"}]},{"@type":"WebSite","@id":"https:\/\/idstower.com\/blog\/#website","url":"https:\/\/idstower.com\/blog\/","name":"IDSTower Blog","description":"","publisher":{"@id":"https:\/\/idstower.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/idstower.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/idstower.com\/blog\/#organization","name":"IDSTower","url":"https:\/\/idstower.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/idstower.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/idstower.com\/blog\/wp-content\/uploads\/2021\/07\/logo-min-1.png","contentUrl":"https:\/\/idstower.com\/blog\/wp-content\/uploads\/2021\/07\/logo-min-1.png","width":184,"height":50,"caption":"IDSTower"},"image":{"@id":"https:\/\/idstower.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/IDSTower"]},{"@type":"Person","@id":"https:\/\/idstower.com\/blog\/#\/schema\/person\/de3006b0e8ec6f07ed283b57edc0137d","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/446d57f9f6515801789387627928696577a5920591f0aa3658734e8e5f482304?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/446d57f9f6515801789387627928696577a5920591f0aa3658734e8e5f482304?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/446d57f9f6515801789387627928696577a5920591f0aa3658734e8e5f482304?s=96&d=mm&r=g","caption":"admin"},"sameAs":["http:\/\/idstower.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/idstower.com\/blog\/wp-json\/wp\/v2\/posts\/113","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/idstower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/idstower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/idstower.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/idstower.com\/blog\/wp-json\/wp\/v2\/comments?post=113"}],"version-history":[{"count":11,"href":"https:\/\/idstower.com\/blog\/wp-json\/wp\/v2\/posts\/113\/revisions"}],"predecessor-version":[{"id":131,"href":"https:\/\/idstower.com\/blog\/wp-json\/wp\/v2\/posts\/113\/revisions\/131"}],"wp:attachment":[{"href":"https:\/\/idstower.com\/blog\/wp-json\/wp\/v2\/media?parent=113"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/idstower.com\/blog\/wp-json\/wp\/v2\/categories?post=113"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/idstower.com\/blog\/wp-json\/wp\/v2\/tags?post=113"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}