<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Icanhazip on Major Hayden</title><link>https://major.io/tags/icanhazip/</link><description>Recent content in Icanhazip on Major Hayden</description><generator>Hugo</generator><language>en</language><managingEditor>major@mhtx.net (Major Hayden)</managingEditor><webMaster>major@mhtx.net (Major Hayden)</webMaster><copyright>All content licensed [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/)</copyright><lastBuildDate>Sun, 10 May 2026 09:15:13 +0000</lastBuildDate><atom:link href="https://major.io/tags/icanhazip/index.xml" rel="self" type="application/rss+xml"/><item><title>Extra icanhazip services going offline</title><link>https://major.io/p/extra-icanhaz-services-going-offline/</link><pubDate>Thu, 28 Jul 2022 00:00:00 +0000</pubDate><author>major@mhtx.net (Major Hayden)</author><guid>https://major.io/p/extra-icanhaz-services-going-offline/</guid><description>&lt;p&gt;Every great thing has its end, and the extra services I launched along with &lt;a href="https://icanhazip.com"&gt;icanhazip.com&lt;/a&gt; are no exception.
I started &lt;a href="https://icanhazip.com"&gt;icanhazip.com&lt;/a&gt; way back in 2009 and detailed much of the history when I &lt;a href="https://major.io/2021/06/06/a-new-future-for-icanhazip/"&gt;transferred ownership to Cloudflare&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The extra services, such as &lt;code&gt;icanhazptr.com&lt;/code&gt;, &lt;code&gt;icanhaztrace.com&lt;/code&gt;, and &lt;code&gt;icanhaztraceroute.com&lt;/code&gt;, came online in 2013 and they weren&amp;rsquo;t part of the Cloudflare transfer.
These services add extra challenges since they need IPv6 connectivity and they don&amp;rsquo;t play well with containers.
Relative to icanhazip.com, these services receive very little traffic.&lt;/p&gt;
&lt;p&gt;As much as I&amp;rsquo;d like to keep running these sites, &lt;strong&gt;the extra services will go offline on August 17, 2022&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="and-if-you-cant-live-without-it"&gt;And if you can&amp;rsquo;t live without it&lt;/h2&gt;
&lt;p&gt;Still need PTR record lookups and traceroutes on your network?
All of the code is on GitHub in &lt;a href="https://github.com/major/icanhaz"&gt;major/icanhaz&lt;/a&gt;.
To run it, simply execute the &lt;code&gt;icanhaz.py&lt;/code&gt; script on your machine.&lt;/p&gt;
&lt;p&gt;You can also use &lt;a href="https://gunicorn.org/"&gt;gunicorn&lt;/a&gt; with a command like this one:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;gunicorn icanhaz:app
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can also get very fancy with a systemd unit that exposes a UNIX socket:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;[Unit]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;Description&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;Gunicorn instance to serve icanhaz&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;After&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;network.target&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;[Service]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;User&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;nginx&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;Group&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;nginx&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;WorkingDirectory&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;/opt/icanhaz&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;ExecStart&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;/usr/bin/gunicorn --workers 4 --bind unix:icanhaz.sock -m 007 icanhaz:app&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;[Install]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="na"&gt;WantedBy&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s"&gt;multi-user.target&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And then configure &lt;a href="https://www.nginx.com/"&gt;nginx&lt;/a&gt; to serve traffic from the socket:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-nginx" data-lang="nginx"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;server&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	&lt;span class="kn"&gt;listen&lt;/span&gt; &lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	&lt;span class="kn"&gt;listen&lt;/span&gt; &lt;span class="s"&gt;[::]:80&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	&lt;span class="kn"&gt;server_name&lt;/span&gt; &lt;span class="s"&gt;_&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	&lt;span class="kn"&gt;root&lt;/span&gt; &lt;span class="s"&gt;/usr/share/nginx/html&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	&lt;span class="kn"&gt;location&lt;/span&gt; &lt;span class="s"&gt;/&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;		&lt;span class="kn"&gt;proxy_set_header&lt;/span&gt; &lt;span class="s"&gt;Host&lt;/span&gt; &lt;span class="nv"&gt;$http_host&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;		&lt;span class="kn"&gt;proxy_pass&lt;/span&gt; &lt;span class="s"&gt;http://unix:/opt/icanhaz/icanhaz.sock&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;	&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Thanks for all the support over the last 13 years! 🫂&lt;/p&gt;</description></item><item><title>icanhazip.com FAQ</title><link>https://major.io/icanhazip-com-faq/</link><pubDate>Mon, 05 Jul 2021 00:00:00 +0000</pubDate><author>major@mhtx.net (Major Hayden)</author><guid>https://major.io/icanhazip-com-faq/</guid><description>&lt;h2 id="icanhazipcom-has-a-new-owner"&gt;icanhazip.com has a new owner!&lt;/h2&gt;
&lt;p&gt;Starting in June 2021, icanhazip.com is now owned and operated by Cloudflare!
Read more about it in the blog post: &lt;a href="https://major.io/2021/06/06/a-new-future-for-icanhazip/"&gt;A new future for icanhazip&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>A new future for icanhazip</title><link>https://major.io/p/a-new-future-for-icanhazip/</link><pubDate>Sun, 06 Jun 2021 00:00:00 +0000</pubDate><author>major@mhtx.net (Major Hayden)</author><guid>https://major.io/p/a-new-future-for-icanhazip/</guid><description>&lt;p&gt;In the summer of 2009, I had an idea. My workdays were spent deploying tons of
cloud infrastructure as Rackspace acquired Slicehost and we rushed to keep up
with the constant demands for new infrastructure from our customers. Working
quickly led to challenges with hardware and networking.&lt;/p&gt;
&lt;p&gt;That was a time where the &lt;a href="https://en.wikipedia.org/wiki/I_Can_Has_Cheezburger%3F"&gt;I Can Has Cheeseburger&lt;/a&gt; meme was red hot just about
everywhere. We needed a way to quickly check the public-facing IP address of
lots of backend infrastructure and our customers sometimes needed that
information, too.&lt;/p&gt;
&lt;p&gt;That&amp;rsquo;s when &lt;a href="https://icanhazip.com"&gt;icanhazip.com&lt;/a&gt; was born.&lt;/p&gt;
&lt;p&gt;It has always been simple site that returns your external IP address and nothing
else. No ads. No trackers. No goofy requirements. Sure, if you looked hard
enough, you could spot my attempt at jokes in the HTTP headers. Other than that,
the site had a narrow use case and started out mainly as an internal tool.&lt;/p&gt;
&lt;h2 id="thats-when-things-got-a-little-crazy"&gt;That&amp;rsquo;s when things got a little crazy&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://www.lifehacker.com.au/2011/03/find-your-public-ip-anywhere-with-icanhazip-com/"&gt;Lifehacker&amp;rsquo;s Australian site&lt;/a&gt; featured a post about icanhazip.com and traffic
went through the roof. My little Slicehost instance was inundated and I quickly
realized my Apache and Python setup was not going to work long term.&lt;/p&gt;
&lt;p&gt;I migrated to nginx and set up nginx to answer the requests by itself and
removed the Python scripts. The load on my small cloud instances came down
quickly and I figured the issue would be resolved for a while.&lt;/p&gt;
&lt;p&gt;Fast forward to 2015 and icanhazip.com was serving well over 100M requests per
day. My cloud instances were getting crushed again, so I deployed more with
round robin DNS. &lt;em&gt;(My budget for icanhazip is tiny.)&lt;/em&gt; Once that was overloaded,
I moved to Hetzner in Germany since I could get physical servers there with
better network cards along with unlimited traffic.&lt;/p&gt;
&lt;p&gt;The Hetzner servers were not expensive, but I was paying almost $200/month to
keep the site afloat and the site made no money. I met some people who worked
for Packet.net (now Equinix Metal) and they offered to sponsor the site. This
brought my expenses down a lot and I deployed icanhazip.com on one server at
Packet.&lt;/p&gt;
&lt;p&gt;The site soon crossed 500M requests per day and I deployed a second server.
Traffic was still overloading the servers. I didn&amp;rsquo;t want to spin up more servers
at Packet since they were already helping me out quite a bit, so I decided to
look under the hood of the kernel and make some improvements.&lt;/p&gt;
&lt;p&gt;I learned more than I ever wanted to know about TCP backlogs, TCP/VLAN
offloading, packet coalescing, IRQ balancing, and a hundred other things. Some
Red Hat network experts helped me (before I joined the company) to continue
tweaking. The site was running well after that and I was thankful for the
support.&lt;/p&gt;
&lt;h2 id="even-crazier-still"&gt;Even crazier still&lt;/h2&gt;
&lt;p&gt;Soon the site exceeded 1B requests per day. I went back to the people who helped
me at Red Hat and after they looked through everything I sent, their response
was similar to the well-known line from Jaws: &lt;em&gt;&amp;ldquo;You&amp;rsquo;re gonna need a bigger
boat.&amp;rdquo;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;I languished on Twitter about how things were getting out of control and someone
from Cloudflare reached out to help. We configured Cloudflare to filter traffic
in front of the site and this reduced the impact from SYN floods, half-open TLS
connections, and other malicious clients that I couldn&amp;rsquo;t even see when I hosted
the site on my own.&lt;/p&gt;
&lt;p&gt;Later, Cloudflare launched workers and my contact there said I should consider
it since my responses were fairly simple and the workers product would handle it
well. The cost for workers looked horrifying at my traffic levels, but the folks
at Cloudflare offered to run my workers for free. Their new product was getting
bucket loads of traffic and I was able to scale the site even further.&lt;/p&gt;
&lt;p&gt;In 2021, the traffic I once received in a month started arriving in 24 hours.
The site went from 1B requests per day to 30-35B requests per day over a
weekend. Almost all of that traffic came from several network blocks in China.
Through all of this, Cloudflare&amp;rsquo;s workers kept chugging along and my response
times barely moved. I was grateful for the help.&lt;/p&gt;
&lt;p&gt;Cloudflare was doing a lot for me and I wanted to curb some of the malicious
traffic to reduce the load on their products. I tried many times to reach out to
the email addresses on the Chinese ASNs and couldn&amp;rsquo;t make contact with anyone.
Some former coworkers told me that my chances of changing that traffic or
getting a response to an abuse request was near zero.&lt;/p&gt;
&lt;h2 id="malware-almost-ended-everything"&gt;Malware almost ended everything&lt;/h2&gt;
&lt;p&gt;There was a phase for a few years where malware authors kept writing malware
that would call out to icanhazip.com to find out what they had infected. If they
could find out the external IP address of the systems they had compromised, they
could quickly assess the value of the target. Upatre was the first, but many
followed after that.&lt;/p&gt;
&lt;p&gt;I received emails from companies, US state governments, and even US three letter
agencies (TLA). Most were very friendly and they had lots of questions. I explained how the site worked and rarely heard a lot more communication after that.&lt;/p&gt;
&lt;p&gt;Not all of the interactions were positive, however. One CISO of a US state
emailed me and threatened all kinds of legal action claiming that icanhazip.com
was involved in a malware infection in his state&amp;rsquo;s computer systems. I tried
repeatedly to explain how the site worked and that the malware authors were
calling out to my site and I was powerless to stop it.&lt;/p&gt;
&lt;p&gt;Along the way, many of my hosting providers received abuse emails about the
site. I was using a colocation provider in Dallas for a while and the tech
called me about an abuse email:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;So we got another abuse email for you,&amp;rdquo; they said.&lt;/p&gt;
&lt;p&gt;&amp;ldquo;For icanhazip.com?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Yes. I didn&amp;rsquo;t know that was running here, I use it all the time!&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Thanks! What do we do?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Your site just returns IP addresses, right?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;Yes, that&amp;rsquo;s it.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;ldquo;You know what, I&amp;rsquo;ll write up a generic response and just start replying to
these idiots for you from now on.&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There were many times where I saw a big traffic jump and I realized the traffic
was coming from the same ASN, and likely from the same company. I tried reaching
out to these companies when I saw it but they rarely ever replied. Some even
became extremely hostile to my emails.&lt;/p&gt;
&lt;p&gt;The passion left in my passion project started shrinking by the day.&lt;/p&gt;
&lt;h2 id="the-fun-totally-dried-up"&gt;The fun totally dried up&lt;/h2&gt;
&lt;p&gt;Seeing that over 90% of my traffic load was malicious and abusive was
frustrating. Dealing with the abuse emails and complaints was worse.&lt;/p&gt;
&lt;p&gt;I built the site originally as just a utility for my team to use, but then it
grew and it was fun to find new ways to handle the load without increasing cost.
Seeing 2 petabytes of data flowing out per month and knowing that almost all of
it was garbage pushed me over the line. I knew I needed a change.&lt;/p&gt;
&lt;p&gt;I received a few small offers from various small companies ($5,000 or less), but
I realized that the money wasn&amp;rsquo;t what I was after. I wanted someone to run the
site and help the information security industry to stop some of these malicious
actors.&lt;/p&gt;
&lt;h2 id="icanhazipcom-lives-on-at-cloudflare"&gt;icanhazip.com lives on at Cloudflare&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;ve worked closely with my contacts at Cloudflare for a long time and they&amp;rsquo;ve
always jumped in to help me when something wasn&amp;rsquo;t working well. Their
sponsorship of icanhazip.com has saved me tens of thousands of dollars per
month. It has also managed to keep the site alive even under horrific traffic
load.&lt;/p&gt;
&lt;p&gt;I made this decision because Cloudflare has always done right by me and they&amp;rsquo;ve
pledged not only to keep the site running, but to work through the traffic load
and determine how to stop the malicious traffic. Their coordinated work with
other companies to stop compromised machines from degrading the performance of
so many sites was a great selling point for me.&lt;/p&gt;
&lt;p&gt;If you&amp;rsquo;re curious, Cloudflare did pay me for the site. We made a deal for them
to pay me $8.03; the cost of the domain registration. The goal was never to make
money from the site (although I did get about $75 in total donations from 2009 to
2021). The goal was to provide a service to the internet. Cloudflare has helped
me do that and they will continue to do it as the new owners and operators of
icanhazip.com.&lt;/p&gt;
&lt;h2 id="gratitude"&gt;Gratitude&lt;/h2&gt;
&lt;p&gt;I&amp;rsquo;d like to thank everyone who has helped me with icanhazip.com along the way.
Tons of people stepped up to help with hosting and server optimization. Hosting
providers helped me field an onslaught of abuse requests and DDoS attacks. Most
of all, thanks to the people who used the site and helped to promote it.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Photo credit: &lt;a href="https://unsplash.com/photos/6p6WDodvR2Y"&gt;Sebastien Gabriel on Unsplash&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</description></item><item><title>You have a problem and icanhazip.com isn’t one of them</title><link>https://major.io/p/you-have-a-problem-and-icanhazip-com-isnt-one-of-them/</link><pubDate>Wed, 20 May 2015 12:50:41 +0000</pubDate><author>major@mhtx.net (Major Hayden)</author><guid>https://major.io/p/you-have-a-problem-and-icanhazip-com-isnt-one-of-them/</guid><description>&lt;p&gt;&lt;img alt="1" loading="lazy" src="https://major.io/wp-content/uploads/2015/05/5662811240_d686e98683_b-e1432125864107.jpg"&gt;&lt;/p&gt;
&lt;p&gt;I really enjoy operating &lt;a href="https://icanhazip.com/"&gt;icanhazip.com&lt;/a&gt; and the &lt;a href="https://major.io/icanhazip-com-faq/"&gt;other domains&lt;/a&gt;. It&amp;rsquo;s fun to run some really busy services and find ways to reduce resource consumption and the overall cost of hosting.&lt;/p&gt;
&lt;p&gt;My brain has a knack for optimization and improving the site is quite fun for me. So much so that I&amp;rsquo;ve decided to host all of icanhazip.com out of my own pocket starting today.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;However, something seriously needs to change.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A complaint came in yesterday from someone who noticed that their machines were making quite a few requests to icanhazip.com. It turns out there was a problem with malware and the complaint implicated my site as part of the problem. One of my nodes was taken down as a precaution while I furiously worked to refute the claims within the complaint. Although the site stayed up on other nodes, it was an annoyance for some and I received a few tweets and emails about it.&lt;/p&gt;
&lt;p&gt;Long story short, if you&amp;rsquo;re sending me or my ISP a complaint about icanhazip.com, there&amp;rsquo;s one thing you need to know: &lt;strong&gt;the problem is on your end, not mine&lt;/strong&gt;. Either you have users making legitimate requests to my site or you have malware actively operating on your network.&lt;/p&gt;
&lt;p&gt;No, it&amp;rsquo;s not time to panic.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;You can actually use icanhazip.com as a tool to identify problems on your network.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;For example, add rules to your intrusion detection systems (IDS) to detect requests to the site in environments where you don&amp;rsquo;t expect those requests to take place. Members of your support team might use the site regularly to test things but your Active Directory server shouldn&amp;rsquo;t start spontaneously talking to my site overnight. That&amp;rsquo;s a red flag and you can detect it &lt;strong&gt;easily&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Also, don&amp;rsquo;t report the site as malicious or hosting malware when it&amp;rsquo;s not. I&amp;rsquo;ve been accused of distributing malware and participating in attacks but then, after further investigation, it was discovered that I was only returning an IPv4 address to a valid request. That hardly warrants the blind accusations that I often receive.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve taken some steps to ensure that there&amp;rsquo;s a way to contact me with any questions or concerns you might have. For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;You can email abuse, postmaster, and security at icanhazip.com anytime&lt;/li&gt;
&lt;li&gt;There&amp;rsquo;s a HTTP header with a link to the FAQ (which has been there for years)&lt;/li&gt;
&lt;li&gt;I monitor any tweets or blog posts that are written about the site&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As always, if you have questions or concerns, please reach out to me and read the &lt;a href="https://major.io/icanhazip-com-faq/"&gt;FAQ&lt;/a&gt;. Thanks to everyone for all the support!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Photo Credit: &lt;a href="https://www.flickr.com/photos/9813317@N08/5662811240/"&gt;Amir Kamran&lt;/a&gt; via &lt;a href="http://compfight.com"&gt;Compfight&lt;/a&gt; &lt;a href="https://www.flickr.com/help/general/#147"&gt;cc&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Docker, trusted builds, and Fedora 20</title><link>https://major.io/p/docker-trusted-builds-and-fedora-20/</link><pubDate>Wed, 26 Mar 2014 05:17:58 +0000</pubDate><author>major@mhtx.net (Major Hayden)</author><guid>https://major.io/p/docker-trusted-builds-and-fedora-20/</guid><description>&lt;p&gt;Docker is a hot topic in the Linux world at the moment and I decided to try out the new &lt;a href="http://blog.docker.io/2013/11/introducing-trusted-builds/"&gt;trusted build process&lt;/a&gt;. Long story short, you put your Dockerfile along with any additional content into your GitHub repository, link your GitHub account with Docker, and then fire off a build. The Docker index labels it as &amp;ldquo;trusted&amp;rdquo; since it was build from source files in your repository.&lt;/p&gt;
&lt;p&gt;I set off to build a Dockerfile to provision a container that would run all of the &lt;a href="https://major.io/icanhazip-com-faq/"&gt;icanhazip&lt;/a&gt; services. Getting httpd running was a little tricky, but I soon had a &lt;a href="https://github.com/major/icanhaz/blob/master/docker/Dockerfile"&gt;working Dockerfile&lt;/a&gt; that built and ran successfully on Fedora 20.&lt;/p&gt;
&lt;p&gt;The trusted build process kicked off without much fuss and I found myself waiting for a couple of hours for my job to start. I was sad to see an error after waiting so long:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;Installing : httpd-2.4.7-3.fc20.x86_64
error: unpacking of archive failed on file /usr/sbin/suexec: cpio: cap_set_file
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Well, that&amp;rsquo;s weird. It turns out that &lt;code&gt;cap_set_file&lt;/code&gt; is part of libcap that sets filesystem capabilities based on the POSIX.1e standards. You can read up on capabilities in the &lt;a href="https://www.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.2/capfaq-0.2.txt"&gt;Linux kernel capabilities FAQ&lt;/a&gt;. &lt;em&gt;(Special thanks to Andrew Clayton getting me pointed in the right direction there.)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://fedoraproject.org/wiki/User:Goldmann"&gt;Marek Goldmann&lt;/a&gt; ran into this problem back in September 2013 and opened a &lt;a href="https://bugzilla.redhat.com/show_bug.cgi?id=1012952"&gt;bug report&lt;/a&gt;. Marek &lt;a href="https://bugzilla.redhat.com/attachment.cgi?id=804061&amp;amp;action=diff"&gt;proposed a change&lt;/a&gt; to the Docker codebase that would remove setfcap from the list of banned capabilities in the LXC template used by docker. Another workaround would be to use the &lt;code&gt;-privileged&lt;/code&gt; option to perform a build in privileged mode (available in docker 0.6+).&lt;/p&gt;
&lt;p&gt;Both of those workarounds are unavailable when doing trusted builds with docker&amp;rsquo;s index. Sigh.&lt;/p&gt;
&lt;p&gt;I fired off an email to Docker&amp;rsquo;s support staff and received a quick reply:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Major,&lt;/p&gt;
&lt;p&gt;We are aware of this issue, and we are currently working on a fix, and we hope to have something we can start testing this week. I&amp;rsquo;m not sure when we will be able to roll out the fix, but we are hoping soon. Until then, there isn&amp;rsquo;t anything you can do to work around it. Sorry for the inconvenience.&lt;/p&gt;
&lt;p&gt;If anything changes, we will be sure to let you know.&lt;/p&gt;
&lt;p&gt;Ken&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It wasn&amp;rsquo;t the answer I wanted but it&amp;rsquo;s good to know that the issue is being worked. In the meantime, I&amp;rsquo;ll push an untrusted build of the icanhazip Docker container up to the index for everyone to enjoy.&lt;/p&gt;
&lt;p&gt;Stay tuned for updates.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;UPDATED 2014-08-08:&lt;/strong&gt; Per Thomas&amp;rsquo; comment below, this has been &lt;a href="https://github.com/docker/docker/pull/5930"&gt;fixed upstream&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>Puppy Linux, icanhazip, and tin foil hats</title><link>https://major.io/p/puppy-linux-icanhazip-and-tin-foil-hats/</link><pubDate>Mon, 10 Feb 2014 04:04:27 +0000</pubDate><author>major@mhtx.net (Major Hayden)</author><guid>https://major.io/p/puppy-linux-icanhazip-and-tin-foil-hats/</guid><description>&lt;p&gt;I figured that the Puppy Linux and icanhazip.com fiasco was over, but I was wrong:&lt;/p&gt;
&lt;blockquote class="twitter-tweet tw-align-center" width="500"&gt;
 &lt;p&gt;
 &lt;a href="https://twitter.com/majorhayden"&gt;@majorhayden&lt;/a&gt; you're in Puppy Linux controversy again &lt;a href="http://t.co/B21JPIx7Ob"&gt;http://t.co/B21JPIx7Ob&lt;/a&gt;&amp;#10;&lt;a href="https://twitter.com/search?q=%23Heat&amp;src=hash"&gt;#Heat&lt;/a&gt;
 &lt;/p&gt;
 &lt;p&gt;
 &amp;mdash; Michael Amadio (@01micko) &lt;a href="https://twitter.com/01micko/statuses/423213630406934528"&gt;January 14, 2014&lt;/a&gt;
 &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;After a quick visit to the forums, &lt;a href="http://murga-linux.com/puppy/viewtopic.php?t=90151"&gt;I found the debate stirred up again&lt;/a&gt;. Various users were wondering if their internet connections were somehow compromised or if a remote American network was somehow spying on their internet traffic. Others wondered if some secretive software was added to the Puppy Linux distribution that was calling out to the site.&lt;/p&gt;
&lt;p&gt;Fortunately, quite a few users on the forum showed up &lt;a href="http://murga-linux.com/puppy/viewtopic.php?p=748928#748928"&gt;to explain&lt;/a&gt; that Puppy Linux has a built-in feature to figure out a user&amp;rsquo;s external IP address to help them get started with their system after it boots. &lt;a href="http://murga-linux.com/puppy/viewtopic.php?p=749399#749399"&gt;Another user&lt;/a&gt; was kind enough to &lt;a href="http://lifehacker.com/5785602/find-your-public-ip-anywhere-with-icanhazipcom"&gt;dig up the Lifehacker post&lt;/a&gt; about icanhazip from 2011.&lt;/p&gt;
&lt;p&gt;Many users on the forum were still dissatisfied. Many of them turned their questions to maintainers of the distribution (which is where those questions should go), but many others felt that icanhazip was the source of the problem. Some of them felt so strongly that they called my hosting provider via telephone to curse at them. Here&amp;rsquo;s a snippet of an email I received from my colocation provider:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I had an interesting call from someone today said that 216.69.252.101 was showing up on his computer. Sounded kind of [omitted] and called me a &lt;em&gt;*\&lt;/em&gt;* ******…&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Let&amp;rsquo;s get three things straight:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I&amp;rsquo;m a huge supporter of everything Linux, including Puppy Linux. I don&amp;rsquo;t hold a grudge against the project for what a minority of their users do.&lt;/li&gt;
&lt;li&gt;I don&amp;rsquo;t collect data when users visit icanhazip.com other than standard Apache logs. No cookies are used.&lt;/li&gt;
&lt;li&gt;I run these applications on my own time, with my own money, and my own resources.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Before I forget, thanks to all of the folks who came forward in the forums to explain what was actually happening and defend the work I&amp;rsquo;ve done. I&amp;rsquo;m tremendously flattered to receive that kind of support.&lt;/p&gt;</description></item></channel></rss>