tcptraceroute sample.com 80
Friday, December 06, 2013
When ping does not work use tcptraceroute
WARNING: Make sure you own the machine you are troubleshooting. Port probing might be considered illegal where you live.
Monday, November 25, 2013
JIRA Agile Extended Kanban Board
JIRA Agile does not keep the column width as you add more columns resulting on unusable boards when the number of columns reach certain point and your display device is not big enough.
Here are a couple of hacks I have tried so far until JIRA Agile provides a fix for this issue. All credits here for Jose Garcia who helped me tweak the JIRA standard Kanban Board with javascript plus CSS hacks.
Here are a couple of hacks I have tried so far until JIRA Agile provides a fix for this issue. All credits here for Jose Garcia who helped me tweak the JIRA standard Kanban Board with javascript plus CSS hacks.
TamperMonkey script
This is our preferred option so far. I have built a Chrome Tampermonkey JIRA Extended Rapidboard plugin. A similar plugin could be tested and released for Firefox GreaseMonkey plugin.Javascript Injector add-on
I started using this at the beginning but it was buggy in chrome for windows (In a MAC it worked kind of OK)- Install Javascript Injector chrome plugin
- Set url as http://your.jira.url/secure/RapidBoard.jspa
- Paste the snippet in “script”:
var clone = $("#ghx-column-header-group").clone(); clone.attr("id", "newHeader").css("background", "#FFF").css("position", "absolute").css("width", "1465px").css("margin-top", "-90px"); $("#ghx-column-header-group").remove(); $("#ghx-rabid").append(clone); $("#ghx-pool").css("width", "1500px"); $("body").removeClass("ghx-scroll-columns").css("overflow-y", "hidden !important"); $("#ghx-work").attr("id", "ghx-work1").css("overflow-x", "scroll").css("overflow-y", "hidden").width("2000px"); - Hit “Inject Now”. You have some options there like unchecking "autorun" or using regex for "url" so most likely you will be able to introduce some more customization for your own needs like when needing something different depending on the specific board.
Other approaches
You can certainly build your own extension. For example it would make sense to have the width for the whole board available for setup as well as turning the script ON/OFF. These features are available via TamperMonkey or GreaseMonkey but I have to agree the interfaces might be a little bit scary for non Javascript programmers.Friday, November 22, 2013
When the SSL certificate expires one liner
echo | openssl s_client -connect ${host}:${port} 2>/dev/null | openssl x509 -text | grep "Not After"
Wednesday, November 20, 2013
Got OWASP? Tomcat.tomdept vulnerability or bad hardening?
We have known this rule for ages: Do not run services you do not need. Hardening servers is mainstream already, and yet malware gets through those services that should not be running.
Why would someone run the Tomcat "manager" application? It is just one of the first things you should remove when you install your brand new tomcat.
Not doing so will only increase your chances to get compromise with malware like Tomcat.tomdept.
Why would someone run the Tomcat "manager" application? It is just one of the first things you should remove when you install your brand new tomcat.
Not doing so will only increase your chances to get compromise with malware like Tomcat.tomdept.
Monday, November 18, 2013
Disk full, beyond resource leaking it could lead to increased business risk
We do our best to identify big files and directories, delete them and so on. But is that enough? We live in a world of abundance and think that pouring more hardware resources is the way to go when we get that "Disk full" error or alike. As a consequence you get developers using better hardware than what a server might have.
This combined with the lack of performance and stress testing ends up hiding important code problems which lead to resource leaking (memory, file system, CPU) and pop up in the servers at a latest phase.
If you constraint resources in developer machines on purpose then you might be able to find some of those problems quicker.
In a developer machine you will see the disk full:
$ ssh dev@desktop.sample.com df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 34G 32G 4.0K 100% /
Time to use lsof to find out the open files:
$ ssh dev@desktop.sample.com lsof >~/lsof.txt
After a reboot I got back 25% of the file resources:
$ ssh dev@desktop.sample.com df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 34G 23G 8.9G 73% /
Now it is time to analyze lsof:
$ sort -n -k 7 ~/lsof.txt | tail -1
java 1645 dev 202w REG 8,1 9086951424 530660 /home/dev/.local/share/Trash/expunged/555119177 (deleted)
The 7th column gives us the size so we sort by its numeric value and get the last record which contains the biggest consumer. It tells us there is a 9GB file which was deleted but it is still use by tomcat (process 1645). Most likely there is a resource leak.
How can we find it? Stop any automated processes in charge of deleting files and run lsof when you run out of HDD space again. It should tell you exactly which file is that and you should be able to look into your source code for the resource not being closed. In Java 7 try-with-resources should be used, previously we used to use libraries or simply those of us coming from C would be way more careful when operating with resources. In anyway look into your IDE or compiler options that could help identifying not closed streams. Java developers should turn on their warnings in their IDEs and cleanup the classes they touch. If this leak is not picked by compiler or IDE warnings then reach the community to find out why. Probably findbugs could help and if not reach them out, they will be more than happy to help as far as I can tell.
I have found in my years as developer that we get "overwhelmed" by alerts, compiler warnings and many other "inconveniences" and as a result we ignore them all. All this happens until the team faces the challenge from IT arguing that the software they have built is not efficient.
Quality of code is important and as in any other business defines it's mere future. Code quality is about Risk management and such as a developer you should not ignore warnings.
Happy (and responsible) coding!
Friday, November 15, 2013
Apache and Tomcat mod_proxy [warn] Proxy client certificate callback: (sample.com:443) downstream server wanted client certificate but none are configured
This warning was coming up un apache logs:
[Fri Nov 15 16:03:13 2013] [warn] Proxy client certificate callback: (sample.com:443) downstream server wanted client certificate but none are configured
Expired or not currently valid Certificate
The certificate might be expired or it could have been issued for a date in the future. You can check the validity using:openssl s_client -connect sample.com:443 | openssl x509 -noout -dates depth=0 /C=Argentina/ST=FL/L=Buenos Aires/O=My Company, LLC/OU=Operations/CN=sample.com/emailAddress=it@sample.com verify error:num=18:self signed certificate verify return:1 depth=0 /C=Argentina/ST=FL/L=Buenos Aires/O=My Company, LLC/OU=Operations/CN=sample.com/emailAddress=it@sample.com verify return:1 notBefore=Jan 24 13:29:12 2012 GMT notAfter=Jan 21 13:29:12 2024 GMTRecreating the certificate resolved the issue.
Tomcat miss configuration
The SSL Connector was having the below configuration set to "optional" but when using apache as a reverse proxy for load balancing this configuration is not needed. We should use the default which is "none":SSLVerifyClient="none"
Wednesday, November 13, 2013
Updating Ubuntu Packages through PPA Ubuntu 12.04 with SVN 1.7 svn status -u svn: The path '.' appears to be part of a Subversion 1.7 or greater working copy. Please upgrade your Subversion client to use this working copy.
Personal Package Archives are not trusted however if you know the pusblisher you could at least manage the risk. Subversion 1.7 is not available for Ubuntu 12.04 so you need to trust the svn PPA if you want to install it in your Ubuntu desktop and avoid:
$ svn status -u svn: The path '.' appears to be part of a Subversion 1.7 or greater working copy. Please upgrade your Subversion client to use this working copy.I see a lot of posts encouraging to modify /etc/apt/sources.list. Make sure if you do so you revert the changes after the installation. you should never have to edit manually sources.list. To install a particular package out of a PPA:
sudo add-apt-repository -y ppa:svn/ppa sudo apt-get update sudo apt-get -y install subversionNote that this will add some files:
$ ls -al /etc/apt/sources.list.d/ -rw-r--r-- 1 root root 238 Dec 6 14:29 svn-ppa-saucy.listTo remove the ppa repos:
sudo add-apt-repository --remove -y ppa:svn/ppaYou will notice the list files has now size=0
$ ls -al /etc/apt/sources.list.d/ -rw-r--r-- 1 root root 0 Dec 6 14:33 svn-ppa-saucy.list
Subscribe to:
Posts (Atom)