Saturday, November 28, 2015

Convert all your jsp files to UTF-8 encoding



#Add this header to jsp
<%@ page contentType="text/html; charset=UTF-8" %>

#Command to convert all jsp files to UTF-8
find ./ -iname '*.jsp' -exec iconv -f ISO-8859-1 -t UTF-8

Saturday, November 14, 2015

Installing Android Studio on Ubuntu 14.04 Trusty via Ubuntu Make


# First add the Ubuntu Make ppa:
sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make


#Install umake
sudo apt-get update
sudo apt-get install ubuntu-make

#Install android studio
 umake android

Saturday, October 31, 2015

Fast DNS caching in Debian Jessie with dnsmasq-nocachelimit

Dnsmasq is a popular software to setup a caching nameserver.

The current packages on Debian have a hardcoded limit of 10K names. The software is meant for routers with low memory but servers nowdays have GBs of memory.

I created a personal fork for dnsmasq that removes the cache limit of 10000 names. Meant for modern servers with lots of RAM.

A cache size of 1M names uses about 100MB or RAM.


You can install my binary packages for Debian Jessie from

https://drive.google.com/folderview?id=0B38VG7HG0bZ2Z2d6YVl0MUNvVEk&usp=sharing

After installing, hold the package with

sudo apt-mark hold dnsmasq dnsmasq-base


To setup dnsmasq follow the Debian wiki

https://wiki.debian.org/HowTo/dnsmasq


Later increase the cache-size value to 1000000 in the file /etc/dnsmasq.conf

# Set the cachesize here.
cache-size=1000000



Automated script to transform Ubuntu Trusty into MacBuntu


Run the script here

https://drive.google.com/file/d/0B_TW7XwVogRYZkVldUJxMEFGejQ/view?usp=sharing

The only extra step is to go to 'Startup Applications' and add an item with the command 'docky' (for some reason the config script does not auto run docky).


This is the end result

https://lh5.googleusercontent.com/-RwMQYtS_p_M/VGdMSzOe8EI/AAAAAAAAKi0/dZeBHnFzzU0/s1600/mac-3.jpg

Wednesday, October 21, 2015

Joining Debian 8 Jessie to Active Directory, and sharing files with Samba + realmd

There are three different ways to join a Samba domain in Linux.
  1. Using pbis-open and samba interop 
    1. Pbis open latest (8.3) works on Jessie (download here) to make your Linux box into a Kerberos client to your AD domain
    2. Sadly Pbis Samba interop does not work with latest Samba 4.1 in Debian 8
  2. Using the classical way of Samba + Winbind pam (although this does not include Kerberos)
    1. https://wiki.samba.org/index.php/Setup_a_Samba_AD_Member_Server
  3. Using realmd as below (this is the most modern way I suppose)
    1. https://fedorahosted.org/sssd/wiki/Configuring_sssd_with_ad_server
    2. http://www.hexblot.com/blog/centos-7-active-directory-and-samba

Migrate Samba 4 Active Directory server to new hardware


I migrated my old Proxmox 3.0 KVM based Samba 4 server into a new Proxmox 4.0 LXC container. Luckily migrating Samba 4 is pretty straighforward.

  1. Backup the following directories
    1. sudo tar cvzf back.tgz /etc/samba /var/lib/samba
  2. Turn off the old VM (or computer)
  3. Create a new VM with the same IP and hostname in the new hardware host
  4. Move the backup.tgz to the new VM
  5. Extract on the root
    1. cd /
    2. sudo tar xvzf /home/user/backup.tgz
  6. Now install samba on top of it
    1. sudo apt-get install samba
  7. When prompted to keep your old smb.conf file choose 'keep'
  8. Restart 

Thursday, October 15, 2015

Join Debian Samba 4 Server as secondary (backup) PDC



In Debian 8.2 Jessie, install samba packages and Kerberos client packages

apt-get install samba krb5-user


Follow this guide

https://wiki.samba.org/index.php/Join_an_additional_Samba_DC_to_an_existing_Active_Directory


Lastly, setup dns forwarding for the internal Samba DNS

Add the following line in [global] section of /etc/samba/smb.conf

        dns forwarder = <your dns server ip eg. your router  192.168.100.1>

Tuesday, May 12, 2015

Install Squid 3.4 with ssl bump on Debian 8 (Jessie)

sudo apt-get install dpkg-dev
sudo apt-get build-dep squid3
sudo apt-get build-dep openssh
sudo apt-get install libssl-dev libcrypto++-dev
sudo apt-get build-dep openssl
sudo apt-get source squid3
sudo apt-get install devscripts build-essential fakeroot

sudo apt-get install squid-langpack apache2

cd squid3-3.4.8

vi debian/rules

# add the lines
#                --enable-ssl \
#                --enable-ssl-crtd \

./configure

fakeroot debian/rules binary


# install
cd ..
dpkg -i *.deb


/usr/lib/squid3/ssl_crtd -c -s /var/lib/ssl_db/
chown -R proxy /var/lib/ssl_db

#create ca certificate
openssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -keyout myCA.pem  -out myCA.pem

#copy the public part of pem file and create a der file
cp myCA.pem myCApublic.pem
# remove the private part of myCApublic.pem
openssl x509 -in myCApublic.pem -outform DER -out myCApublic.der


# make sure these lines are present in squid.conf
http_port 3128 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/home/proxy/ssl_cert/myCA.pem
http_port 3129  transparent
http_port 3130 transparent ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/home/proxy/ssl_cert/myCA.pem

acl bump_sites dstdomain .youtube.com .youtube.com.mx
ssl_bump none localhost
ssl_bump server-first bump_sites
ssl_bump none all
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER
always_direct allow all

#change firewall to redirect port 80 to 3129, port 443 to 3130

Wednesday, January 28, 2015

Keep http_proxy environment variable when using sudo

Add this in visudo

Defaults env_keep +="http_proxy"
Defaults env_keep +="https_proxy"
Defaults env_keep +="ftp_proxy"

Tuesday, January 20, 2015

Adding a proxy to maven3

Create the file ~/.m2/settings.xml with the contents


<settings>
  <proxies>
   <proxy>
      <active>true</active>
      <protocol>http</protocol>
      <host>fw1</host>
      <port>3128</port>
    </proxy>
  </proxies>
</settings>

Thursday, January 15, 2015

Use synapse to search in Lubuntu


First install Synapse


sudo add-apt-repository ppa:synapse-core/ppa
sudo apt-get update
sudo apt-get install synapse


Now bind Synapse to the Super_L key alone

First remove any super key bindings e.g. <super>+p is a common one for screen settings
Then close Synapse
In ~/.config/hotkeys/synapse.hotkeys
change
Signature=<Control>space
to
Signature=Super_L
Relaunch Synapse