A project to track all active financial blogs.
No question there are too many personal finance, early retirement, deb etc. related blogs out there. It is very difficult to keep track of all these blogs. Luckily there is a project by Rockstar Finance not only keeps track of these blogs but also updates the list on a daily basis. Here is the link to the personal finance blog directory.
Looking at the list the categories of these blogs is very diverse, as of today it includes these –
Budgeting
Debt
Early Retirement
Family
Frugality
General Finance
Investing
Lifestyle
Making Money
Military
Millennial
Minimalism
Real Estate
Traditional Retirement
The directory also allows you to easily filter the list by –
Category
Age
Sex
Race
City/State/Country
profession
I found this directory quite useful in filtering out the relevant blogs that I am interested in based on the category. If you manage a personal finance blog, you can also submit your blog to the directory admins so that they can post it there.
How to fake or spoof x-forwarded-for header
The x-forwarded-for header is a way of identifying the IP address of the original client when a web server is sitting behind a proxy or load-balancer. The load-balancer does get the actual client IP as it directly sets up the TCP session with the load-balancer. But the x-forwarded-for address might contain a list of comma separated IP addresses in addition to the immediate client IP. It is these extra IPs that we can spoof and the procedure is similar to modifying any HTTP header such as user agent.
1 2 3 4 5 | import requests
headers = { 'X-Forwarded-For' : '1.1.1.1' }
if r.ok:
print ( 'Success.' )
|
How the log likes like on an nginx access log –
1 2 3 | 1.1.1.1, 192.168.10.206 - - [19/Mar/2017:16:43:55 -0700] "GET /index.html HTTP/1.0" 200 1311 "-" "python-requests/2.2.1 CPython/2.7.6 Linux/3.13.0-121-generic"
1.1.1.1, 192.168.10.206 - - [19/Mar/2017:16:53:55 -0700] "GET /index.html HTTP/1.0" 200 1311 "-" "python-requests/2.2.1 CPython/2.7.6 Linux/3.13.0-121-generic"
1.1.1.1, 192.168.10.206 - - [19/Mar/2017:16:58:55 -0700] "GET /index.html HTTP/1.0" 200 1311 "-" "python-requests/2.2.1 CPython/2.7.6 Linux/3.13.0-121-generic"
|
The take away is not to trust any IPs in the x-forwarded-for list apart from the load balancer IP and the immediate client IP which made a direct call to the load balancer. If we trust our load balancer, we can also reliably identify the immediate client IP. The rest of the IPs in the x-forwarded-for list can be ignored.
References –
https://en.wikipedia.org/wiki/X-Forwarded-For
git – add local files to a git repository in local file system (bare git repo).
In this blow, I will show you how you can turn your local files into a github style repository. In my case I had files in `/etc/puppet` that I wanted to version control, but I wanted to push to a bare repository in the same machine or localhost. Here are the steps I followed –
Files to version control : /etc/puppet
Bare git repository that we will push changes in /etc/puppet : /var/lib/puppet/gitrepo/
1. Create a github style git repository in /var/lib/puppet/gitrepo
1 2 3 | root@linubuvmb:/
root@linubuvmb: /var/lib/puppet/gitrepo
Initialized empty Git repository in /var/lib/puppet/gitrepo/
|
2. Initialize files as git repository
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | root@linubuvmb:/
root@linubuvmb: /etc/puppet
Initialized empty Git repository in /etc/puppet/ .git/
root@linubuvmb: /etc/puppet
root@linubuvmb: /etc/puppet
[master (root-commit) b71ef42] First commit
50 files changed, 3913 insertions(+)
create mode 100644 auth.conf
create mode 100644 environments /example_env/README .environment
create mode 100755 etckeeper-commit-post
create mode 100755 etckeeper-commit-pre
create mode 100644 fileserver.conf
create mode 100644 manifests /base .pp
create mode 100644 manifests /nodes .pp
create mode 100644 manifests /site .pp
create mode 100644 modules /apache/manifests/init .pp
...
|
3. Add bare repo as remote
1 | root@linubuvmb: /etc/puppet
|
4. Push to local git repository
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | root@linubuvmb: /etc/puppet
Counting objects: 84, done .
Delta compression using up to 2 threads.
Compressing objects: 100% (70 /70 ), done .
Writing objects: 100% (84 /84 ), 129.33 KiB | 0 bytes /s , done .
Total 84 (delta 6), reused 0 (delta 0)
To file : ///var/lib/puppet/gitrepo/
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
root@linubuvmb: /etc/puppet
On branch master
Your branch is up-to- date with 'origin/master' .
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: puppet.conf
no changes added to commit (use "git add" and /or "git commit -a" )
root@linubuvmb: /etc/puppet
[master f57997d] test
1 file changed, 1 deletion(-)
root@linubuvmb: /etc/puppet
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
nothing to commit, working directory clean
|
Reference –
https://git-scm.com/documentation
Filed under:
How tos, Linux