Thursday, 7 April 2016

Detection and Prevention SSH Brute Force Attacks with Logstash and iptables

This topic talking about alternative way to "Detect and Prevent ssh brute force" 
for Linux Server with logstash ipset and iptables on CentOS7


First Step: Create Preventive Mechanism 
Create a preventive mechanism with iptable and ipset for blocking an attack source 
with brute force's source ip.



install and config ipset: 
 yum -y install ipset  
 ipset create block hash:ip  




config iptables rule:
iptables -A INPUT -p tcp -m set --match-set block src -j DROP  


Second Step: Create Detection Mechanism
Install and config Logstash for analyze sshd log (/var/log/secure) to identify 
source ip address of ssh brute force

enable logstash on boot:
systemctl enable logstash  



config logstash: copy this configuration and replace in to file "/etc/logstash/conf.d/logstash"
 input{  
      file{  
           path => ["/var/log/secure"]  
      }  
 }  
 output{  
      #push output to file  
      file {path => "/var/log/blacklist"}  
 #     stdout { codec => json_lines }  
 }  
 filter{  
      grok {  
           match => ["message","%{MONTH:month}(?: | )%{MONTHDAY:day} %{TIME:time} %{WORD} %
{WORD:prog}\[%{DATA}: %{DATA:detail}(?: logname=(?:%{WORD:logname}|)|)(?: uid=(?:%{WORD:uid}|)|)(?: euid=(?:%{WORD:euid}|)|)(?: tty=(?:%{WORD:tty}|)|)(?: ruser=(?:%{WORD:ruser}|)|) rhost=%{IP:remoteIP}(?: user=%{DATA:remoteUser}|)"]  
           remove_field => ["message"]  
      }  
      #drop event if remoteIP is missing.  
      if ![remoteIP] {  
           drop { }  
      }  
      # block remoteIP when authentication fail 3 time.  
      throttle {  
           before_count => 0  
           after_count => 3  
           period => 30  
           key => "%{remoteIP}"  
           add_field => { "block" => "true"}  
      }  
      if [remoteIP] and [block] == "true"{  
           ruby {  
                code => "  
                      `/usr/sbin/ipset add block #{event['remoteIP']} timeout 86400 `  
                "  
           }  
      }  
 }  



restart logstash service: 

systemctl restart logstash

optional : You can send event data form logstash to elasticsearch for long-term analyze 

Tuesday, 13 May 2014

Install Network Manager Plugin for OpenVPN on Ubuntu

1. Install Network Manager Ubuntu
# apt-get install network-manager-openvpn

2. Config OpenVPN Connection

2.1 Open "Network Connection" then Click "Add" button

2.2 Choose a Connection Type "OpenVPN"

2.3 Edit VPN Connection

Gateway: VPN Server Name
Authentication Type: Password with Certificates (TLS)
Username: VPN Username
Password: VPN Password
User Certificate:  xxx.crt
CA Certificate: ca.crt
Private Key: xxx.key
then click "Advanced Option"

2.4 Edit Advanced Option

Select Option
- Use LZO data compression
- Use a TAP device

Monday, 9 September 2013

วิธีแก้ใข rsyslog เพื่อคัดแยก DHCPACK log ให้จัดเก็บใน file เฉพาะ


  1. เปิด Configuration File ด้วย #vim  /etc/rsyslog.conf
  2. เพิ่ม Code ด้านล้างใน Configuration File
if $syslogfacility-text == 'local7' and $msg contains 'DHCPACK' and $msg contains 'on'  then  /var/log/dhcpack

Thursday, 11 July 2013

Netdot Installation

  1. Install dependencies packet
    • sudo apt-get install rrdtool mysql-client mysq-server
  2. Install Netdot
    • make install

Friday, 28 June 2013

ทำยังไงไม่ให้ MacBook หลับตอนพับจอ

มีโปรแกรมตัวนึงบน Google Code ที่ทำให้เราสามารถกำหนดได้่ว่าจะให้ MacBook ไม่หลับตอนพับจอ โดยแยกได้สองกรณีคือ เวลาเสียบอแดปเตอร์แล้วพับจอ กับเวลาไม่เสียบอแดปเตอร์แล้วพับจอ (หมายเหตุ blogนี้บันไว้เพื่ออ่านเองนะครับ)

Sunday, 23 June 2013

การติดตั้ง Bird Internet Routing Daemon

Bird เป็น Routing Daemon ที่ทำงานบน Linux (CentOS)

การติดตั้ง Bird ทำได้โดยการ Compile และ Install จาก Source Code

  1. Install readline Library
  2. Install Bird
    1. ./configure
    2. make
    3. make install

การใช้งาน Bird Daemon
  1. การใช้งาน Bird Daemon 
    • เริ่มทำงานโดยพิมพ์ "sudo bird" โดยปกติ Bird Daemon จะใช้ Configuration ที่ path: /usr/local/etc/bird.conf
    • ในกรณีต้องการ Debug สามารถทำได้โดยผ่าน birdc (ต้องเริ่มการทำงานของ bird ก่อน)

Import SSH Private Key to Yubikey (PIV) for SSH Authentication

Introduction: This guide will walk you through the process of importing your SSH private key to a Yubikey (PIV) for SSH authentication on y...