Các rule hữu dụng Iptables dành cho các quản trị viên hệ thống

Thảo luận trong 'Infrastructure security' bắt đầu bởi DDos, 04/12/18, 04:12 PM.

  1. DDos

    DDos Super Moderator Thành viên BQT

    Tham gia: 22/10/13, 08:10 PM
    Bài viết: 1,531
    Đã được thích: 281
    Điểm thành tích:
    83
    Iptables là một ứng dụng firewall, được cài đặt mặc định trên hầu hết các phiên bản của các distro lõi Linux (ví dụ: Ubuntu, Kubuntu, Xubuntu, CentOS…) . Sau khi iptables được cài đặt mà chưa cấu hình, nó cũng mặc định cho phép tất cả các gói tin qua lại bình thường mà không cản trở gì cả. Thông thường, iptables được cài đặt ở usr/sbin/iptables, tuy nhiên, người dùng có thể gọi iptables lên bằng lệnh iptables. Iptables yêu cầu quyền root để có thể thực thi.
    iptables-packet-flow-ng.png
    Dưới đây là danh sách các rule thường được sử dụng bởi các quản trị viên hệ thống:

    Saving Rules
    Debian Based

    RedHat Based


    List out all of the active iptables rules with verbose


    List out all of the active iptables rules with numeric lines and verbose


    Print out all of the active iptables rules


    List Rules as Tables for INPUT chain


    Print all of the rule specifications in the INPUT chain


    Show Packet Counts and Aggregate Size


    To display INPUT or OUTPUT chain rules with numeric lines and verbose


    Delete Rule by Chain and Number


    Delete Rule by Specification


    Flush All Rules, Delete All Chains, and Accept All


    Flush All Chains


    Flush a Single Chain


    Insert Firewall Rules


    Allow Loopback Connections


    Allow Established and Related Incoming Connections


    Allow Established Outgoing Connections


    Internal to External


    Drop Invalid Packets


    Block an IP Address


    Block and IP Address and Reject


    Block Connections to a Network Interface


    Allow All Incoming SSH


    Allow Incoming SSH from Specific IP address or subnet


    Allow Outgoing SSH


    Allow Incoming Rsync from Specific IP Address or Subnet


    Allow All Incoming HTTP


    Allow All Incoming HTTPS


    Allow All Incoming HTTP and HTTPS


    Allow MySQL from Specific IP Address or Subnet


    Allow MySQL to Specific Network Interface


    PostgreSQL from Specific IP Address or Subnet


    Allow PostgreSQL to Specific Network Interface


    Block Outgoing SMTP Mail


    Allow All Incoming SMTP


    Allow All Incoming IMAP


    Allow All Incoming IMAPS


    Allow All Incoming POP3


    Allow All Incoming POP3S


    Drop Private Network Address On Public Interface


    Drop All Outgoing to Facebook Networks
    Mã:
    whois -h v4.whois.cymru.com " -v $(host facebook.com | grep "has address" | cut -d " " -f4)" | tail -n1 | awk '{print $1}'
    
    
    Drop:
    Mã:
    for i in $(whois -h whois.radb.net -- '-i origin AS32934' | grep "^route:" | cut -d ":" -f2 | sed -e 's/^[ \t]*//' | sort -n -t . -k 1,1 -k 2,2 -k 3,3 -k 4,4 | cut -d ":" -f2 | sed 's/$/;/') ; do
    
      iptables -A OUTPUT -s "$i" -j REJECT
    
    done

    Log and Drop Packets
    By default everything is logged to /var/log/messages file:


    Log and Drop Packets with Limited Number of Log Entries

    Drop or Accept Traffic From Mac Address

    Block or Allow ICMP Ping Request

    Specifying Multiple Ports with multiport

    Load Balancing with random* or nth*
    Mã:
    _ips=("172.31.250.10" "172.31.250.11" "172.31.250.12" "172.31.250.13")
    
    for ip in "${_ips[@]}" ; do
      iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m nth --counter 0 --every 4 --packet 0 \
        -j DNAT --to-destination ${ip}:80
    done
    hoặc
    Mã:
    _ips=("172.31.250.10" "172.31.250.11" "172.31.250.12" "172.31.250.13")
    
    for ip in "${_ips[@]}" ; do
      iptables -A PREROUTING -i eth0 -p tcp --dport 80 -m state --state NEW -m random --average 25 \
        -j DNAT --to-destination ${ip}:80
    done

    Restricting the Number of Connections with limit and iplimit*

    hoặc


    Maintaining a List of recent Connections to Match Against


    Matching Against a string* in a Packet's Data Payload


    Time-based Rules with time*


    Packet Matching Based on TTL Values


    Protection against port scanning


    SSH brute-force protection


    Syn-flood protection


    Mitigating SYN Floods With SYNPROXY

    Block New Packets That Are Not SYN

    hoặc


    Force Fragments packets check


    XMAS packets


    Drop all NULL packets


    Block Uncommon MSS Values


    Block Packets With Bogus TCP Flags


    Block Packets From Private Subnets (Spoofing)



     
    Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Tags: