Ads 468x60px

Saturday, April 5, 2014

Linux ss command

Bài viết sau đây mô tả về linux ss command. Dòng lệnh này hiện thị nhiều thông tin và nhanh hơn dòng lệnh netstat. Dòng lệnh netstat nhận thông tin từ các file khác nhau trong /proc nên rất chậm. Còn dòng lệnh ss lấy trực tiếp từ kernel space rất nhanh. Dòng lệnh ss-socket statistics, Trong ví dụ sau, dòng lệnh ss check kết nối và socket statisctis.

Links:
Dòng lệnh hữu ích trong linux
Umask và thiết lập umask trong linux
Centos 6.5 tạo User và Group Basic đến Advance
Linux ss command
linux ss command
Hình Ảnh "Linux ss command"

List tất cả các kết nối

whoami@whoami-K53E ~ $ ss | less
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
u_str ESTAB 0 0 * 14579 * 15563
u_str ESTAB 0 0 @/tmp/.X11-unix/X0 11637 * 14172
u_str ESTAB 0 0 @/tmp/dbus-GgD1mQVgda 11874 * 13129
u_str ESTAB 0 0 @/tmp/dbus-cJFLvX3o 13115 * 11856
u_str ESTAB 0 213504 @/tmp/.X11-unix/X0 14727 * 15821
u_str ESTAB 0 0 * 12994 * 14505
u_str ESTAB 0 0 * 17184 * 17634

Dòng lệnh phía trên list tất cả các kết nối tcp,udp và socket

Filter các kết nối tcp,udp và unix

Ta muốn view :)) kết nối tcp,udp or unix ta '-t','-u' or '-x'
whoami@whoami-K53E ~ $ ss -t
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 0 0 192.168.1.5:36180 173.252.107.18:https
CLOSE-WAIT 38 0 192.168.1.5:41617 118.214.83.51:https

Dòng lệnh phía trên list kết nối tcp với '-t' option. mặc định, thì nó list "established" hay CONNECTED" mà không list “Listen”, Ta thêm '-a' option list tất cả các kết nối. whoami@whoami-K53E ~ $ ss -t a

Hiển thị tên process và pid

whoami@whoami-K53E ~ $ ss -ltp

Hiện thị socket statistic

whoami@whoami-K53E ~ $ ss -s
Total: 546 (kernel 0)
TCP: 13 (estab 3, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0
Transport Total IP IPv6
* 0 - -
RAW 0 0 0
UDP 19 16 3
TCP 13 10 3
INET 32 26 6
FRAG 0 0 0

Chỉ hiển thị kết nối IPv4 or IPv6

show ipv4 :D whoami@whoami-K53E ~ $ ss -tl4
show ipv6 :D whoami@whoami-K53E ~ $ ss -tl6

Filter địa chỉ và số port

Cấu trúc:
$ ss [ OPTIONS ] [ STATE-FILTER ] [ ADDRESS-FILTER ]

whoami@whoami-K53E ~ $ ss -at '( dport = :ssh or sport = :ssh )'
# Filter by address
whoami@whoami-K53E ~$ ss -nt dst 192.168.1.34

More example:
whoami@whoami-K53E ~ $ ss -t4 state time-wait
whoami@whoami-K53E ~ $ ss -t4 state established
whoami@whoami-K53E ~ $ ss -nt dst :443 or dst :80
whoami@whoami-K53E ~ $ # source address is 127.0.0.1 and source port is greater than 5000
whoami@whoami-K53E ~ $ ss -nt src 127.0.0.1 sport gt :5000

Kết luận: “Linux ss command” :D rất hữu ích, rất nhanh :)).Biết thêm thông tin về dòng lệnh
$man ss
Muốn biết thêm thông tin filter ở đây là hệ thống ubuntu,debian ta install. file /usr/share/doc/iproute2-doc/ss.html chứa cấu trúc filter.
whoami@whoami-K53E ~ $ sudo apt-get install iproute2-doc

Read more

Tuesday, April 1, 2014

Dòng lệnh hữu ích trong linux

Bài viết sau đây hướng dẫn về các Dòng lệnh hữu ích trong linux. Cũng như các hệ thống unix,centos,ubuntu....

Links:
Dòng lệnh hữu ích trong linux
Umask và thiết lập umask trong linux
Linux sử dụng Openssl tạo CA
Centos 6.5 tạo User và Group Basic đến Advance
”Linux
Hình Ảnh:Terminal phía trên :)) một số Dòng lệnh hữu ích trong linux

Các dòng lệnh File
$ ls : list danh sách trong thư mục
$ ls -al : list tất cả danh sách và file ẩn trong thư mục
$ mkdir dir : lệnh tạo thư mục
$ mkdir -p /A/B : lệnh tao thư mục có dạng /A/B :)
$ rm file : xóa file
$ rm -rf dir : xóa thư mục
$ cp file1 file1 : copy file1 đến file 2
$ cp -r dir1 dir2 : copy thư mục dir1 đến dir2 nếu thư mục dir2 không có
$ mv file1 file2 : di chuyển file1 đến file2
$ ln -s file link : tạo symbolic link link đến file
$ touch file : tạo và update file
$ more file : output nội dung của file
$ head file : output 10 dòng đầu tiên của file
$ tail file : output 10 dòng cuối của file

Network
$ arp-scan -I interface -l : scan IP address confict
$ ping host : kiểm tra mạng của host
$ whois domain : nhận thông tin whois của domain
$ dig domain : nhận thông tin DNS của domain
$ dig -x host : reverse lookup host
$ wget file : download file
$ ifconfig -a : show thông tin tất cả các cổng và địa chỉ IP
$ ifconfig eth0 mtu 9000 up : set mtu đến 9000
$ ifconfig -a | grep HWaddr : hiển thị địa chỉ MAC
$ ethtool eth0 : show trạng thái ethernet ( set full deplex)
$ netstat -tupl : list các port (tcp,udp,pid) active listing

Install Package
$ dpkg -i dkg.deb : install gói debian
$ dpkg -r dkg.deb: remove gói debian
$ sudo apt-get update ; sudo apt-get upgrade : update và upgrade
$ sudo apt-get install package : install package
$ sudo apt-get remove package : remove package
$ rpm -Uvh dkg.rpm : install gói RPM
$ rpm -e dkgname : remove gói RPM
install từ source $ ./configure
$ make
$ make install

Statistic và Analyze
$ top : hiển thị và update cpu process
$ vmstat 2 : hiển thị thống kê virtual memory
$ tcpdump -i eth0 : capture tất cả các packet trên interface eth0
$ watch df -h : xem dữ liệu thay đổi liên tục
$ ps : Hiển thị các active process
$ ps -aux | grep “iptables” : tìm tất cả các process id liên quan iptables
$ kill -9 “name” : kill process tên “name”

SSH
$ ssh user@host : kết nối ssh như user
$ ssh -p user@host : kết nối ssh sử dụng port

comperssion
$ gzip file : nén file và file có đuôi file.gz
$ gzip -d file.gz : giải nén file.gz
$ tar cf file.tar file : tạo file.tar chứ nội dung file
$ tar xf file.tar : extract file từ file.tar
$ tar czf file.tar.gz file : tạo file tar với nén gzip
$ tar xzf file.tar.gz : extract file tar sử dụng gzip
$ tar cjf file.tar.bz2 : tạo file tar với nén bzip2
$ tar xjf file.tar.bz2 : extract file tar sử dụng bzip2

File permission
$ ls -lFa
drwxr-xr-x 2 whoami whoami 4096 Th03 24 09:38 abc/
-rw-r--r-- 1 whoami whoami 15222 Th03 24 09:14 lenh co ban linux.odt

Note: 'd' là thư mục. '-' là file :) .ví dụ ở trên thư mục abc drwxr-xr-x gồm user:whoami có quyền rwx và group:whoami r-x và other r-x. Sử dụng dòng lệnh chmod để permission.
chmod octal files
octal : 4 -read (r)
2 -write (w)
1 -excute (x)
ví dụ : chmod 777 file : read, write, excute cho tất cả :)

system info
$ cat /etc/lsb-release : xem version bản distro
$ cat /proc/cpuinfo : thông tin cpu
$ cat /proc/meminfo : thông tin memory
$ df -h : show disk theo kb,MB,GB
$ du : show không gian thư mục sử dụng
$ free -h : hiển thị số lượng sử dụng memory trong hệ thống
$ whereis command : locate binary, source, trang manual dòng lệnh
$ which command : locate dòng lệnh
$ w : display thông tin user đang online
$ finger user : display thông tin về user
$ uname -a : show thông tin về kernel
$ last reboot: show lịch sử hệ thống reboot
$ uptime: show system running+load bao lâu.

Kết Luận:Phía trên một số dòng lênh hữu ích trong linux. Sẽ update thêm sau :))


Read more

Monday, March 31, 2014

Haproxy 1.5 Protect Web Server Chống lại Slowloric DOS Attack

Slowloric là gì???
Slowloric là một script mở kết nối TCP và gửi HTTP request header rất chậm đến web server để giữ kết kết.
slowloris attack
Như hình trên, Slowloric Attack gửi HTTP request header không đầy đủ đến web server. Làm server chờ đợi HTPP request đầy đủ và normal user chờ đợi HTTP relay của server. do đó. Normal user bị lỗi 503 service unavailable. Slowloric là attack ở layer 7.

Configuration
defaults
  mode http
  maxconn 19500
  timeout client 60s  
  timeout server 60s
  timeout queue 60s
  timeout connect 4s
  timeout http-request 5s
  option httpclose
  option abortonclose
  balance roundrobin
  option forwardfor #  Biết client's IP trong X-Forwarded-For.
  retries 2
frontend www
  bind :80
  default_backend apache
backend app
  server app1 192.168.1.2:8080 maxconn 1000
Read more

Linux Sử dụng OpenSSL tạo Certificate Authority ( CA )


1.Tạo Private key 
# openssl genrsa -des3 -out www.pvhuu.blogspot.com.key 1024 
2.Tạo Certificate Signing Request ( CSR )
# openssl req -new -key www.pvhuu.blogspot.com.key -out www.pvhuu.blogspot.com.csr

3. Tạo a Self-Signed SSL Certificate
Ví dụ: Tạo một a Self-Signed SSL Certificate hợp lệ 1 năm như sau.
# openssl x509 -req -days 365 -in www.pvhuu.blogspot.com.csr -signkey www.pvhuu.blogspot.com.key -out www.pvhuu.blogspot.com.crt


Read more

Linux Sử dụng Nginx như HTTP Load Balancer

Bài viết sau đây, mô tả các ví dụ và khái niệm liên quan nginx hoạt động như Load Balancer trong hệ thống Linux. Load Blancer thường được sử dụng qua nhiều các application giúp tối ưu resource utilization, maximizing throughput, giảm latency, và đảm bảo fault-tolerant.

Links:
Sử dụng Nginx như HTTP Load Balancer
Hướng dẫn cài đặt nginx 1.5.10
Hướng dẫn cơ bản nginx 1.5.10

Các phương pháp Load Blancer trong Nginx

  • least-connected :Request tiếp theo đến các server với số lượng ít các active connection nhất.
  • ip-hash :một hash-function sử dụng để xác định server nào lựa chọn request tiếp theo (dựa trên client’s IP address).
  • round-robin : các request đến các application server sẽ được distributed trong round-robin.

Hình Ảnh dưới đây Load Balancer trong nginx

Cấu hình mặc định nginx load blancer
http {
    upstream app1 {
        server srv1.example.com;
        server srv2.example.com;
        server srv3.example.com;
    }
    server {
        listen 80;
        location / {
            proxy_pass http://app1;
        }
    }
}

Cấu hình phía trên,có 3 trường hợp application giống nhau chạy trong srv1-srv3. Nếu ta không cấu hình phương thức rõ ràng, mặc định là round-robin

Least connected load balancing

Nginx sẽ cố gắng không để quá tải một ứng dụng máy chủ busy với quá nhiều yêu cầu, distributing request mới đến server ít busy hơn

upstream app1 {
        least_conn;
        server srv1.example.com;
        server srv2.example.com;
        server srv3.example.com;
    }

Session persistence

Với round-robin hay least-connected load balancing, mỗi request của client có thể distributing đến các server khác nhau. với ip-hash, địa chỉ client sử dụng hashing key để xác định server nào trong server group lựa chọn cho request clients.

upstream app1 {
    ip_hash;
    server srv1.example.com;
    server srv2.example.com;
    server srv3.example.com;
}

Weighted load balancing
upstream app1 {
        server srv1.example.com weight=3;
        server srv2.example.com;
    }

Cấu hình phía trên, giả sử có 5 request mới sẽ distributed qua các ứng dụng như sau: 3 requests sẽ trực tiếp đến srv1, 2 request đến srv2.

Kết Luận
Nginx là một web server cấu hình phức tạp
Read more