Skip to main content

Firewall with iptables

This post is how to set iptables rule as a linux firewall to avoid brute force attack. Few days ago on my old fedora core4 server, When I monitored in /var/log/messages to verify does my cronjob still running? I found something like..
May 23 15:04:18 fedev sshd(pam_unix)[6037]: check pass; user unknown
May 23 15:04:18 fedev sshd(pam_unix)[6037]: authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=adsl-70-248-31-102.dsl.snantx.swbell.net
May 23 15:04:23 fedev sshd(pam_unix)[6040]: check pass; user unknown
May 23 15:04:23 fedev sshd(pam_unix)[6040]: authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=adsl-70-248-31-102.dsl.snantx.swbell.net
May 23 15:04:29 fedev sshd(pam_unix)[6043]: check pass; user unknown
May 23 15:04:29 fedev sshd(pam_unix)[6043]: authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=adsl-70-248-31-102.dsl.snantx.swbell.net

and in /var/log/secure
May 23 15:04:15 fedev sshd[6035]: Failed password for invalid user develop from ::ffff:70.248.31.102 port 47109 ssh2
May 23 15:04:18 fedev sshd[6037]: Invalid user webdeveloper from ::ffff:70.248.31.102
May 23 15:04:20 fedev sshd[6037]: Failed password for invalid user webdeveloper from ::ffff:70.248.31.102 port 47529 ssh2
May 23 15:04:23 fedev sshd[6040]: Invalid user services from ::ffff:70.248.31.102
May 23 15:04:26 fedev sshd[6040]: Failed password for invalid user services from ::ffff:70.248.31.102 port 47941 ssh2
May 23 15:04:29 fedev sshd[6043]: Invalid user ircd from ::ffff:70.248.31.102

uhh.. look like I'm under attack.

Many one who use the public ip address server always face with this problem. These two iptables command will reject any request that make more than 3 new connection from same address every 5 mins.
[root@fedev ~]# iptables -I INPUT -p tcp -i eth+ --dport 22 -m state --state NEW -m recent --set
[root@fedev ~]# iptables -I INPUT -p tcp -i eth+ --dport 22 -m state --state NEW -m recent --update --seconds 300 --hitcount 3 -j DROP

However, the rules that I just apply will lost after restart. To make it permanent you can put above commands into /etc/rc.local or use command "service iptables save" that will save rules to /etc/sysconfig/iptables
[root@fedev ~]# service iptables save
Saving firewall rules to /etc/sysconfig/iptables: [ OK ]
[root@fedev ~]#

Note:
iptables-saves and iptables-restore command are used to save and restore iptables rules to STDIN and from STDOUT[we can redirect to file]. Following are examples.
[root@fedev ~]# mkdir /backup
[root@fedev ~]# iptables-save > /backup/iptables.nobrute
[root@fedev ~]# cat /backup/iptables.nobrute
# Generated by iptables-save v1.2.11 on Fri May 25 18:24:00 2007
*filter
:INPUT ACCEPT [1923:874178]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1380:533607]
-A INPUT -i eth+ -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 300 --hitcount 3 --name DEFAULT --rsource -j DROP
-A INPUT -i eth+ -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
COMMIT
# Completed on Fri May 25 18:24:00 2007
[root@fedev ~]# iptables-restore < /backup/iptables.backup


Note: In ubuntu I'm not see iptables service in /etc/init.d so we need to manually create script file to run those two commands.

Comments

Popular posts from this blog

Fixing sendmail take a long time to start

I notice that my database box[FC6+Oracle10.2] take along time to startup. Sendmail and sm-client very very slow to start[ about 5 minutes ]. There's something wrong in /etc/hosts file. 'newalises' command take long time to update and finish with error below. [root@ora10g ~]# newaliases WARNING: local host name (ora10g) is not qualified; see cf/README: WHO AM I? /etc/aliases: 76 aliases, longest 10 bytes, 765 bytes total [root@ora10g ~]# cat /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost 192.168.1.55 ora10g [root@ora10g ~]# To fix this, custom hostname[ora10g] need to append to localhost line in /etc/hosts. [root@ora10g ~]# cat /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost ora10g 192.168.1.55 ora10g [root@ora10g ~]# newaliases /etc/alia

using Class.getResource() load resource file in Eclipse

There are many ways to load resource file in java app. What sun recommended is using Class.getResource(" resource_name ") or Class.getResourceAsStream(" resource_name ") then you will get URL and InputStream respectively. If resource_name is specified without "/", it will be prepend with Class package. So resource file must be in same place[folder structure] as the Class. What I love to do is call getResource() with "/" and put resource file at the root of package. This way i can have separate resource folder. below is in Eclipse, 1. From Package explorer right click src folder->click import 2. In import dialog, Choose General->File System ->next 3. from directory:->Browse to your resource folder. 4. to folder:-> I add "resource" as a folder name under src folder. then click "Finish". In the code, load resource with this.getClass().getResource("/resource/buttons1.png") or this.getClass().getResourceAs

Converting dat to mpeg file, to burn vcd on ubuntu

Creating vcd [from dat file] on WinXP, I use "Nero Burning Rom". It can burn dat file to vcd directly. On ubuntu, AFAIK, No burning cd software to burn dat to vcd. I use k3b but it can't burn dat file. It support only mpeg-1 and mpeg-2 format. Dat file need to convert to mpeg first. Thist post will show how I install and use vcdgear to convert dat file to mpeg file. pnix@pnix-a7n:~/progdl$ wget http://www.vcdgear.com/files/vcdgear176-040415_linux.tar.gz --04:21:14-- http://www.vcdgear.com/files/vcdgear176-040415_linux.tar.gz => `vcdgear176-040415_linux.tar.gz' Resolving www.vcdgear.com... 66.98.192.104 Connecting to www.vcdgear.com|66.98.192.104|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 442,937 (433K) [application/x-tar] 100%[====================================>] 442,937 105.23K/s ETA 00:00 04:21:20 (87.02 KB/s) - `vcdgear176-040415_linux.tar.gz' saved [442937/442937] pnix@pnix-a7n:~/progdl$ tar xzf vcdgear