Port Knocking Iptables
Port Knocking adalah metode pengamanan jalur komunikasi komputer yang
tidak punya port terbuka (opened), bukan berarti port tersebut tidak
dapat di akases, tetapi si pengakses port harus melalui beberapa
rangkaian untuk membuka firewall dari port tersebut. Port Knocking
merupakan suatu metedo berangkas.
Log yang di dapat pada komp2
Simulasi
3 sec port 2222 port 22
komp1 -----------> pintu ---------> ssh ---------> komp2
2 tcp firewall
komp1 -----------> hapus log ---------> ssh komp2 closed
tcp port 4444
komp1 -----------> pintu ---------> ssh ---------> komp2
2 tcp firewall
komp1 -----------> hapus log ---------> ssh komp2 closed
tcp port 4444
- Komp1 mengirim 3 packet tcp dalam waktu kurang dari sama dengan 3 detik ke port 2222
- Jika jumlah ketukan dan waktu terpenuhi maka pintu (firewall) akan terbuka
- Setelah pintu (firewall) terbuka, maka port 22 akan terbuka untuk ip komp1
- Ip dari komp1 dapat mengakses ssh dari komp2
- Untuk menghapus log dari ip komp1 , si komp1 mengirim 1 paket tcp ke port 4444
Konfigurasi
#!/bin/bash
iptables -F &&
iptables -X &&
iptables -Z &&
iptables -P INPUT DROP &&
iptables -P OUTPUT ACCEPT &&
iptables -P FORWARD ACCEPT &&
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT &&
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -m recent --rcheck --name sshknock --
hitcount 2 --seconds 3 -j ACCEPT &&
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -m recent --set --name sshknock -j
LOG &&
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 4444 -m recent --remove --name sshknock -j
LOG
iptables -F &&
iptables -X &&
iptables -Z &&
iptables -P INPUT DROP &&
iptables -P OUTPUT ACCEPT &&
iptables -P FORWARD ACCEPT &&
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT &&
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -m recent --rcheck --name sshknock --
hitcount 2 --seconds 3 -j ACCEPT &&
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -m recent --set --name sshknock -j
LOG &&
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 4444 -m recent --remove --name sshknock -j
LOG
Testing
$ ssh rndc@192.168.56.101
ssh: connect to host 192.168.56.101 port 22: Connection timed out
$ nc -w 2 192.168.56.101 2222 || ssh rndc@192.168.56.101
(UNKNOWN) [192.168.56.101] 2222 (?) : Connection timed out
rndc@192.168.56.101's password:
Last login: Tue Mar 12 05:26:40 2013 from 192.168.56.1
[rndc@localhost ~]$
ssh: connect to host 192.168.56.101 port 22: Connection timed out
$ nc -w 2 192.168.56.101 2222 || ssh rndc@192.168.56.101
(UNKNOWN) [192.168.56.101] 2222 (?) : Connection timed out
rndc@192.168.56.101's password:
Last login: Tue Mar 12 05:26:40 2013 from 192.168.56.1
[rndc@localhost ~]$
Log yang di dapat pada komp2
[rndc@localhost ~]$ cat /proc/net/xt_recent/sshknock
src=192.168.56.1 ttl: 64 last_seen: 11508961 oldest_pkt: 2 11507963, 11508961
[rndc@localhost ~]$
src=192.168.56.1 ttl: 64 last_seen: 11508961 oldest_pkt: 2 11507963, 11508961
[rndc@localhost ~]$
#Referensi:
- http://www.linuxri.org/articles/portknockingwithiptables
- http://digilib.ittelkom.ac.id/index.php?option=com_repository&Itemid=34&task=detail&nim=111990110
- http://google.co.id
Tidak ada komentar:
Posting Komentar