Difference between revisions of "Netstat: melihat serangan dari netstat"
Onnowpurbo (talk | contribs) |
Onnowpurbo (talk | contribs) |
||
(8 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
sumber: https://www.cyberciti.biz/tips/netstat-command-tutorial-examples.html | sumber: https://www.cyberciti.biz/tips/netstat-command-tutorial-examples.html | ||
+ | |||
+ | ==Tanda-tanda server di serang== | ||
+ | |||
+ | Bisa dilihat menggunakan top | ||
+ | |||
+ | top | ||
+ | |||
+ | Misalnya | ||
+ | |||
+ | load average: 15.08, 18.30, 20.63 | ||
+ | |||
+ | Ini misalnya terlalu tinggi sekali untuk server kita yang cuma 4 core :) .. | ||
+ | |||
+ | |||
+ | |||
+ | ==Identifikasi IP penyerang== | ||
Fitur netstat dan fitur shell pipe bisa digunakan untuk menggali lebih banyak informasi tentang koneksi alamat IP tertentu. Anda dapat menemukan total koneksi yang sudah ada, koneksi penutupan, bit SYN dan FIN dan banyak lagi. Anda juga dapat menampilkan statistik ringkasan untuk setiap protokol menggunakan netstat. | Fitur netstat dan fitur shell pipe bisa digunakan untuk menggali lebih banyak informasi tentang koneksi alamat IP tertentu. Anda dapat menemukan total koneksi yang sudah ada, koneksi penutupan, bit SYN dan FIN dan banyak lagi. Anda juga dapat menampilkan statistik ringkasan untuk setiap protokol menggunakan netstat. | ||
− | + | Tampilkan semua sambungan Internet yang ada | |
+ | |||
+ | netstat -na | ||
+ | |||
+ | Tampilkan semua sambungan ke port 80, akan bermanfaat untuk melihat jika ada banyak sambungan dari satu buah IP penyerang, | ||
+ | |||
+ | netstat -an | grep :80 | sort | ||
+ | |||
+ | Perintah berikut, bermanfaat untuk melihat banyaknya SYNC_REC yang aktif di server. angkanya harusnya sekitar <5. Jika ada mailbom / DOS attack angkanya bisa naik lumayan tinggi, | ||
+ | |||
+ | netstat -n -p|grep SYN_REC | wc -l | ||
+ | |||
+ | Lihat daftar IP address yang terkait dengan SYNC_REC | ||
+ | |||
+ | netstat -n -p | grep SYN_REC | sort -u | ||
+ | |||
+ | Lihat daftar unik IP yang mengirimkan SYNC_REC status | ||
+ | |||
+ | netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}' | ||
+ | |||
+ | Hitung jumlah sambungan dari setiap IP yang mencapai server | ||
+ | |||
+ | netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n | ||
+ | |||
+ | Hitung jumlah sambungan IP yang tersambung ke server menggunakan TCP atau UDP | ||
+ | |||
+ | netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n | ||
+ | |||
+ | Cek sambungan yang ESTABLISHED saja, dan tampilkan jumlah dari setiap IP | ||
+ | |||
+ | netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | ||
+ | |||
+ | Tampilkan IP address dan jumlah sambungan ke port 80 (HTTP) | ||
+ | |||
+ | netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1 | ||
+ | netstat -tn 2>/dev/null | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head | ||
+ | |||
+ | Output (misalnya): | ||
+ | |||
+ | 215 122.163.226.243 | ||
+ | 189 114.198.236.100 | ||
+ | 156 120.63.179.245 | ||
+ | 38 141.0.9.20 | ||
+ | 37 49.248.0.2 | ||
+ | 37 153.100.131.12 | ||
+ | ... | ||
+ | ... | ||
+ | |||
+ | Tiga (3) IP pertama cukup mencurigakan :) ... | ||
+ | |||
+ | Perintah berikut berguna untuk mengetahui apakah server anda diserang atau tidak. Anda juga bisa mencantumkan alamat IP penyerang dengan menggunakan metode ini. | ||
netstat -nat | awk '{print $6}' | sort | uniq -c | sort -n | netstat -nat | awk '{print $6}' | sort | uniq -c | sort -n | ||
Line 80: | Line 146: | ||
Anda bisa memblokir semua IP penyerang menggunakan iptables atau hanya membatalkan rute mereka. | Anda bisa memblokir semua IP penyerang menggunakan iptables atau hanya membatalkan rute mereka. | ||
− | == | + | ==Live View dari TCP Connection== |
Anda dapat menggunakan perintah tcptrack untuk menampilkan status koneksi TCP yang dilihatnya pada antarmuka jaringan tertentu. Tcptrack memonitor keadaan mereka dan menampilkan informasi seperti alamat negara, sumber / tujuan dan penggunaan bandwidth dalam daftar yang diurutkan dan diperbarui sangat mirip dengan perintah teratas. | Anda dapat menggunakan perintah tcptrack untuk menampilkan status koneksi TCP yang dilihatnya pada antarmuka jaringan tertentu. Tcptrack memonitor keadaan mereka dan menampilkan informasi seperti alamat negara, sumber / tujuan dan penggunaan bandwidth dalam daftar yang diurutkan dan diperbarui sangat mirip dengan perintah teratas. | ||
+ | |||
+ | Instalasi | ||
+ | |||
+ | apt-get install tcptrack | ||
+ | |||
+ | Tracking | ||
+ | |||
+ | tcptrack -i <networkInterface> | ||
+ | |||
+ | Delete closed connection from screen | ||
+ | |||
+ | tcptrack -i eth0 -r 10 | ||
+ | |||
+ | Track port tertentu | ||
+ | |||
+ | tcptrack -i eth1 port 22 | ||
==Statistik Ringkasan Tampilan untuk Setiap Protokol== | ==Statistik Ringkasan Tampilan untuk Setiap Protokol== | ||
Line 174: | Line 256: | ||
==Display Interface Table== | ==Display Interface Table== | ||
− | + | Menampilkan drop & transmit paket dengan netstat untuk eth0: | |
netstat --interfaces eth0 | netstat --interfaces eth0 | ||
Line 184: | Line 266: | ||
eth0 1500 0 2040929 0 0 0 3850539 0 0 0 BMRU | eth0 1500 0 2040929 0 0 0 3850539 0 0 0 BMRU | ||
− | |||
− | + | ==Cara Menangani DOS attack== | |
− | + | ||
+ | Setelah memperoleh IP attacker $IPADDRESS, block menggunakan perintah | ||
+ | |||
+ | route add $IPADDRESS reject | ||
+ | route add $IPADDRESS gw 127.0.0.1 lo | ||
+ | |||
+ | cek | ||
− | + | route -n | |
+ | |||
+ | untuk membuang $IPADDRESS dari tabel routing | ||
+ | |||
+ | route delete $IPADDRESS | ||
+ | |||
+ | atau dengan iptables, | ||
+ | |||
+ | iptables -A INPUT 1 -s $IPADRESS -j DROP/REJECT | ||
+ | service iptables restart | ||
+ | service iptables save | ||
+ | |||
+ | Sesudah routing / iptables di aktifkan, kill semua sambungan http dan restart httpd | ||
+ | |||
+ | killall -KILL httpd | ||
+ | |||
+ | service httpd start | ||
+ | /etc/init/d/apache2 restart | ||
+ | |||
+ | ==Manual== | ||
+ | |||
+ | Kalau ada waktu baca-baca manual berikut, | ||
man netstat | man netstat | ||
Line 196: | Line 304: | ||
man sed | man sed | ||
man grep | man grep | ||
− | |||
− | |||
− | |||
==Referensi== | ==Referensi== | ||
* https://www.cyberciti.biz/tips/netstat-command-tutorial-examples.html | * https://www.cyberciti.biz/tips/netstat-command-tutorial-examples.html | ||
+ | * http://www.mkyong.com/linux/how-to-block-attackers-ip-with-null-route-command/ |
Latest revision as of 06:04, 11 June 2017
sumber: https://www.cyberciti.biz/tips/netstat-command-tutorial-examples.html
Tanda-tanda server di serang
Bisa dilihat menggunakan top
top
Misalnya
load average: 15.08, 18.30, 20.63
Ini misalnya terlalu tinggi sekali untuk server kita yang cuma 4 core :) ..
Identifikasi IP penyerang
Fitur netstat dan fitur shell pipe bisa digunakan untuk menggali lebih banyak informasi tentang koneksi alamat IP tertentu. Anda dapat menemukan total koneksi yang sudah ada, koneksi penutupan, bit SYN dan FIN dan banyak lagi. Anda juga dapat menampilkan statistik ringkasan untuk setiap protokol menggunakan netstat.
Tampilkan semua sambungan Internet yang ada
netstat -na
Tampilkan semua sambungan ke port 80, akan bermanfaat untuk melihat jika ada banyak sambungan dari satu buah IP penyerang,
netstat -an | grep :80 | sort
Perintah berikut, bermanfaat untuk melihat banyaknya SYNC_REC yang aktif di server. angkanya harusnya sekitar <5. Jika ada mailbom / DOS attack angkanya bisa naik lumayan tinggi,
netstat -n -p|grep SYN_REC | wc -l
Lihat daftar IP address yang terkait dengan SYNC_REC
netstat -n -p | grep SYN_REC | sort -u
Lihat daftar unik IP yang mengirimkan SYNC_REC status
netstat -n -p | grep SYN_REC | awk '{print $5}' | awk -F: '{print $1}'
Hitung jumlah sambungan dari setiap IP yang mencapai server
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
Hitung jumlah sambungan IP yang tersambung ke server menggunakan TCP atau UDP
netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
Cek sambungan yang ESTABLISHED saja, dan tampilkan jumlah dari setiap IP
netstat -ntu | grep ESTAB | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr
Tampilkan IP address dan jumlah sambungan ke port 80 (HTTP)
netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1 netstat -tn 2>/dev/null | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head
Output (misalnya):
215 122.163.226.243 189 114.198.236.100 156 120.63.179.245 38 141.0.9.20 37 49.248.0.2 37 153.100.131.12 ... ...
Tiga (3) IP pertama cukup mencurigakan :) ...
Perintah berikut berguna untuk mengetahui apakah server anda diserang atau tidak. Anda juga bisa mencantumkan alamat IP penyerang dengan menggunakan metode ini.
netstat -nat | awk '{print $6}' | sort | uniq -c | sort -n
Output:
1 CLOSE_WAIT 1 established) 1 Foreign 3 FIN_WAIT1 3 LAST_ACK 13 ESTABLISHED 17 LISTEN 154 FIN_WAIT2 327 TIME_WAIT
Menggali informasi lebih lanjut tentang alamat ip tertentu
netstat -nat |grep {IP-address} | awk '{print $6}' | sort | uniq -c | sort -n
2 LAST_ACK 2 LISTEN 4 FIN_WAIT1 14 ESTABLISHED 91 TIME_WAIT 130 FIN_WAIT2
Server yang sibuk dapat memberikan lebih banyak informasi
netstat -nat |grep 202.54.1.10 | awk '{print $6}' | sort | uniq -c | sort -n
Output:
15 CLOSE_WAIT 37 LAST_ACK 64 FIN_WAIT_1 65 FIN_WAIT_2 1251 TIME_WAIT 3597 SYN_SENT 5124 ESTABLISHED
Dapatkan Daftar Semua Alamat IP Unik
Untuk mencetak daftar semua alamat IP yang unik yang terhubung ke server, masukkan:
netstat -nat | awk '{ print $5}' | cut -d: -f1 | sed -e '/^$/d' | uniq
Untuk mencetak total semua alamat IP yang unik, masukkan:
netstat -nat | awk '{ print $5}' | cut -d: -f1 | sed -e '/^$/d' | uniq | wc -l
Contoh Output:
449
Cari tahu jika server kita dalam serangan DoS atau tidak
Jika Anda menganggap kotak Linux Anda diserang, cetaklah daftar koneksi terbuka di server anda dan urutkan menurut alamat IP, masukkan:
netstat -atun | awk '{print $5}' | cut -d: -f1 | sed -e '/^$/d' |sort | uniq -c | sort -n
Output:
1 10.0.77.52 2 10.1.11.3 4 12.109.42.21 6 12.191.136.3 ... ... ... 13 202.155.209.202 18 208.67.222.222 28 0.0.0.0 233 127.0.0.1
Anda bisa memblokir semua IP penyerang menggunakan iptables atau hanya membatalkan rute mereka.
Live View dari TCP Connection
Anda dapat menggunakan perintah tcptrack untuk menampilkan status koneksi TCP yang dilihatnya pada antarmuka jaringan tertentu. Tcptrack memonitor keadaan mereka dan menampilkan informasi seperti alamat negara, sumber / tujuan dan penggunaan bandwidth dalam daftar yang diurutkan dan diperbarui sangat mirip dengan perintah teratas.
Instalasi
apt-get install tcptrack
Tracking
tcptrack -i <networkInterface>
Delete closed connection from screen
tcptrack -i eth0 -r 10
Track port tertentu
tcptrack -i eth1 port 22
Statistik Ringkasan Tampilan untuk Setiap Protokol
Cukup menggunakan netstat -s:
netstat -s | less netstat -t -s | less netstat -u -s | less netstat -w -s | less netstat -s
Output:
Ip: 88354557 total packets received 0 forwarded 0 incoming packets discarded 88104061 incoming packets delivered 96037391 requests sent out 13 outgoing packets dropped 66 fragments dropped after timeout 295 reassemblies required 106 packets reassembled ok 66 packet reassembles failed 34 fragments failed Icmp: 18108 ICMP messages received 58 input ICMP message failed. ICMP input histogram: destination unreachable: 7173 timeout in transit: 472 redirects: 353 echo requests: 10096 28977 ICMP messages sent 0 ICMP messages failed ICMP output histogram: destination unreachable: 18881 echo replies: 10096 Tcp: 1202226 active connections openings 2706802 passive connection openings 7394 failed connection attempts 47018 connection resets received 23 connections established 87975383 segments received 95235730 segments send out 681174 segments retransmited 2044 bad segments received. 80805 resets sent Udp: 92689 packets received 14611 packets to unknown port received. 0 packet receive errors 96755 packets sent TcpExt: 48452 invalid SYN cookies received 7357 resets received for embryonic SYN_RECV sockets 43 ICMP packets dropped because they were out-of-window 5 ICMP packets dropped because socket was locked 2672073 TCP sockets finished time wait in fast timer 441 time wait sockets recycled by time stamp 368562 delayed acks sent 430 delayed acks further delayed because of locked socket Quick ack mode was activated 36127 times 32318597 packets directly queued to recvmsg prequeue. 741479256 packets directly received from backlog 1502338990 packets directly received from prequeue 18343750 packets header predicted 10220683 packets header predicted and directly queued to user 17516622 acknowledgments not containing data received 36549771 predicted acknowledgments 102672 times recovered from packet loss due to fast retransmit Detected reordering 1596 times using reno fast retransmit Detected reordering 1 times using time stamp 8 congestion windows fully recovered 32 congestion windows partially recovered using Hoe heuristic 19 congestion windows recovered after partial ack 0 TCP data loss events 39951 timeouts after reno fast retransmit 29653 timeouts in loss state 197005 fast retransmits 186937 retransmits in slow start 131433 other TCP timeouts TCPRenoRecoveryFail: 20217 147 times receiver scheduled too late for direct processing 29010 connections reset due to unexpected data 365 connections reset due to early user close 6979 connections aborted due to timeout
Display Interface Table
Menampilkan drop & transmit paket dengan netstat untuk eth0:
netstat --interfaces eth0
Output:
Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 2040929 0 0 0 3850539 0 0 0 BMRU
Cara Menangani DOS attack
Setelah memperoleh IP attacker $IPADDRESS, block menggunakan perintah
route add $IPADDRESS reject route add $IPADDRESS gw 127.0.0.1 lo
cek
route -n
untuk membuang $IPADDRESS dari tabel routing
route delete $IPADDRESS
atau dengan iptables,
iptables -A INPUT 1 -s $IPADRESS -j DROP/REJECT service iptables restart service iptables save
Sesudah routing / iptables di aktifkan, kill semua sambungan http dan restart httpd
killall -KILL httpd service httpd start /etc/init/d/apache2 restart
Manual
Kalau ada waktu baca-baca manual berikut,
man netstat man cut man awk man sed man grep