日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

服务器安全之iptables iptables

發(fā)布時間:2025/3/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 服务器安全之iptables iptables 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

服務器安全之iptables

感謝老男孩老師為我們講解iptables?
優(yōu)化之路


iptables防火墻簡介

Netfilter/Iptables(以下簡稱Iptables)是unix/linux自帶的一款優(yōu)秀且開放源代碼的安全自由的**基于包過濾的防火墻工具**,它的功能十分強大,使用非常靈活,可以對流入和流出服務器的數(shù)據(jù)包進行很精細的控制。特別是它可以在一臺非常低的硬件配置下跑的非常好 Iptables是Linux2.4及2.6內核中集成的服務。其功能與安全性比其**ipfwadm,ipchains**強大的多,iptables主要工作在OSI七層的二、三、四層,如果重新編譯內核,iptables也可以支持**7層控制**(squid代理+iptables)

iptables 名詞和術語

容器:包含和被包含的關系?
iptables是表的容器?
iptables包含表 (4張表)表是鏈的容器,每個表都包含若干個鏈?
鏈是規(guī)則的容器,真正過濾規(guī)則是屬于鏈里面的?
級別介紹

iptables國家?
表省?
鏈 市?
規(guī)則 縣

iptables工作流程

iptables是采用數(shù)據(jù)包過濾機制工作的,所以它會對請求的數(shù)據(jù)包的包頭數(shù)據(jù)進行分析,并根據(jù)我們預先設定的規(guī)則來進行匹配是否可以進入到主機。

iptables工作流程小結

1.防火墻是一層層過濾的。實際是按照配置規(guī)則的順序從上到下,從前到后進行過濾的。?
2.如果匹配上規(guī)則,即明確表是阻止還是通過,此時數(shù)據(jù)包就不在向下匹配新規(guī)則了。?
3.如果所有規(guī)則中沒有明確是阻止還是通過這個數(shù)據(jù)包,也就是么有匹配上新規(guī)則,向下進行匹配,直到匹配默認規(guī)則得到明確的組織還是通過?
4.防火墻的默認規(guī)則是對應鏈的所有規(guī)則執(zhí)行完才會執(zhí)行的。

iptables表(tables)和鏈(chains)

iptables根據(jù)功能和表的定義劃分包含三個表,filter,nat,mangle,其每個表又包含不同的操作鏈(Chains)

Filter表?是真正的防火墻功能?
INPUT?進服務器 OUTPUT出服務器 FORWARD 流經(jīng)服務器?
Nat?表 負責數(shù)據(jù)包改寫 網(wǎng)關共享上網(wǎng)、IP和端口映射?
OUTPUT?
PREROUTING?
POSTROUTING?
Mangle表 路由標記 用的不多?
####所有鏈全有?
RAW 表 用處很少和Mangle一樣?
我們可以通過man iptables 來獲取

表介紹

對于filter表的控制是我們實現(xiàn)本機防火墻的重要手段,特別是對INPUT鏈的控制?



iptables表和鏈工作流程圖


提示:?iptables主要由2個作用,第一是防火墻,第二是路由。?
NAT功能:?
企業(yè)案例:1)局域網(wǎng)上網(wǎng)共享(路由和網(wǎng)關)NAT POSTROUTING?
2)外部IP和端口映射為內部IP和端口(DMZ功能),NAT PREROUTING?
Filter功能,即防火墻FILTER INPUT FORWARD?
企業(yè)案例:主要應用于服務器防火墻

配置iptables

iptables默認已經(jīng)安裝

  • [root@web02 ~]# iptables -V
  • iptables v1.4.7
  • [root@web02 ~]# rpm -qa iptables
  • iptables-1.4.7-16.el6.x86_64
  • [root@web02 ~]# /etc/init.d/iptables status
  • iptables: Firewall is not running.
  • 查看iptables規(guī)則

  • [root@web02 ~]# iptables -nL
  • Chain INPUT (policy ACCEPT)
  • 表示針對input鏈 ACCEPT是默認規(guī)則,默認是運行通過的

  • target prot opt source destination
  • input鏈下面具體的規(guī)則
  • ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
  • ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
  • ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
  • ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
  • REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
  • Chain FORWARD (policy ACCEPT)
  • target prot opt source destination
  • REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
  • Chain OUTPUT (policy ACCEPT)
  • target prot opt source destination
  • 如果沒有指定表,默認就是filfer表

    iptables默認加載的內核模塊

  • [root@web02 ~]# lsmod |egrep "nat|filter|ipt"
  • ipt_REJECT 2351 2
  • iptable_filter 2793 1
  • ip_tables 17831 1 iptable_filter
  • 加載如下模塊到linux內核

  • modprobe ip_tables
  • modprobe iptable_filter
  • modprobe iptable_nat
  • modprobe ip_conntrack 連接跟蹤
  • modprobe ip_conntrack_ftp 連接跟蹤
  • modprobe ip_nat_ftp
  • modprobe ipt_state
  • 再次過濾,查看生效情況

  • [root@web02 ~]# lsmod |egrep "nat|filter|ipt"
  • nf_nat_ftp 3443 0
  • nf_conntrack_ftp 11953 1 nf_nat_ftp
  • iptable_nat 5923 0
  • nf_nat 22676 2 nf_nat_ftp,iptable_nat
  • ipt_REJECT 2351 2
  • nf_conntrack_ipv4 9154 5 iptable_nat,nf_nat
  • nf_conntrack 79206 6 nf_nat_ftp,nf_conntrack_ftp,iptable_nat,nf_nat,nf_conntrack_ipv4,xt_state
  • iptable_filter 2793 1
  • ip_tables 17831 2 iptable_nat,iptable_filter
  • 清空所有的規(guī)則,只留下默認規(guī)則

  • [root@web02 ~]# iptables -F
  • [root@web02 ~]# iptables -X
  • [root@web02 ~]# iptables -Z
  • iptables -F 清除所有規(guī)則?
    iptables -X 刪除用戶自定義規(guī)則?
    iptables -Z 鏈的計數(shù)器清零


    禁止規(guī)則

    查看端口

  • [root@web02 ~]# netstat -lntup|grep ssh
  • tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1329/sshd
  • tcp 0 0 :::22 :::* LISTEN 1329/sshd
  • 命令如下:

  • iptables -t filter -A INPUT -p tcp --dport 22 -j DROP
  • -A?添加規(guī)則到指定鏈的結尾,最后一條?
    -I?添加規(guī)則到指定鏈的開頭,第一條?
    -t?指定表,也可以不指定默認是filter?
    -p?指定協(xié)議(all.tcp,udp.icmp)默認all?
    --dport?指定端口?
    -j?處理的行為?
    ACCPET接收、DROP丟棄、REJECT拒絕

    最好使用ACCPET和DROP,因為拒絕會返回給用戶信息。?

    清除規(guī)則可以使用iptables -F?
    還可以使用iptables -D INPUT 1?
    -D指定刪除的鏈?
    --line-number?顯示序列號?
    iptables -nl --line-number?

    提示:需要寫上鏈和序列號

    溫馨提示:恢復剛才斷掉的SSH連接?
    1)去機房重啟系統(tǒng)或登錄服務器刪除剛才的禁止規(guī)則?
    2)讓機房人員重啟服務器或者讓機房人員拿用戶密碼登錄進去?
    3)通過服務器的遠程管理卡管理(推薦)?
    4)先寫一個定時任務,每5分鐘就停止防火墻?
    5)測試環(huán)境測試好,寫成腳本,批量執(zhí)行


    企業(yè)案例

    案例1: 加-A和-I的區(qū)別

  • [root@web02 ~]# iptables -A INPUT -p tcp --dport 80 -j DROP
  • [root@web02 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
  • 按照iptables匹配規(guī)則,首先會先匹配第一行,依次向下。這樣設置拒絕就沒有用?
    如果想在中間插入可以指定插入行號

  • [root@web02 ~]# iptables -nL
  • Chain INPUT (policy ACCEPT)
  • target prot opt source destination
  • ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
  • DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
  • Chain FORWARD (policy ACCEPT)
  • target prot opt source destination
  • Chain OUTPUT (policy ACCEPT)
  • target prot opt source destination
  • 還可以通過序列號插入iptables?命令

  • [root@web02 ~]# iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT
  • [root@web02 ~]# iptables -nL --line-number
  • Chain INPUT (policy ACCEPT)
  • num target prot opt source destination
  • 1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
  • 2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
  • 3 DROP tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
  • Chain FORWARD (policy ACCEPT)
  • num target prot opt source destination
  • Chain OUTPUT (policy ACCEPT)
  • num target prot opt source destination
  • 小結:總結下刪除規(guī)則的方法?
    1. iptables -D INPUT -p tcp –dport 8080 -j DROP?
    2. iptables -F 刪所有規(guī)則?
    3. /etc/init.d/iptables restart (用iptables命令行配置的命令都是臨時生效)?
    4. iptables -D INPUT 規(guī)則序號

    案例:禁止10.0.0.0網(wǎng)段接入?
    基于客戶端網(wǎng)段控制

  • [root@web02 ~]# iptables -A INPUT -s 10.0.0.0/24 -j DROP
  • -s指定源地址?
    還可以使用不是這個網(wǎng)段的進行操作

  • [root@web02 ~]# iptables -A INPUT ! -s 10.0.0.0/24 -j DROP
  • 案例:控制22端口 eth0網(wǎng)卡進來的數(shù)據(jù)

  • iptables -A INPUT -p tcp --dport 22 -i eth0 ! -s 10.0.0.0/24 -j DROP
  • iptables -A INPUT -p tcp --dport 22 -i eth0 ! -s 192.168.1.1 -j DROP
  • 封掉3306端口

  • iptables -A INPUT -p tcp --dport 3306 -j DROP
  • 匹配指定的協(xié)議

  • iptables -A INPUT -p tcp
  • iptables -A INPUT -p udp
  • 匹配指定協(xié)議外的所有協(xié)議

  • iptables -A INPUT ! -p tcp
  • “匹配單一端口**

  • iptables -A INPUT -p tcp --sport 22 源端口
  • iptables -A INPUT -p udp --dport 22 目的端口
  • 匹配端口范圍:

  • iptables -A INPUT -p tcp --sport 22:80
  • iptables -A INPUT -p tcp --dport 21,22,23 -j DROP---->錯誤語法
  • iptables -I INPUT -p tcp -m multiport --dport 22,23,24,25 -j DROP
  • iptables -I INPUT -p tcp -m multiport ! --dport 22,23,24,25 -j DROP
  • iptables -I INPUT -p tcp --dport 3306:8809 -j ACCEPT
  • iptables -I INPUT -p tcp --dport 18:80 -j DROP <----最佳方法
  • 匹配ICMP類型

  • iptables -A INPUT -p icmp-type 8
  • icmp中有很多類型,其中8代表ping?
    例:

  • iptables -A INPUT -p icmp --icmp-type 8 -j DROP
  • iptables -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
  • 因為icmp類型很多可以使用any,icmp的所有類型全禁

  • iptables -A INPUT -s 192.168.1.0/24 -p icmp -m icmp --icmp-type any -j ACCEPT
  • 企業(yè)場景禁ping

  • iptables -A INPUT -p icmp --icmp-type 8 -s 10.0.0.0/24 -j ACCEPT
  • 根據(jù)需求來設定

    匹配網(wǎng)絡狀態(tài)

  • -m state --state
  • NEW:已經(jīng)或啟動新的連接
  • ESTABLISHED:已建立的連接
  • RELATED:正在啟動的新連接
  • INVALID:非法或無法識別的
  • FTP服務是特殊的,需要配狀態(tài)連接
  • 允許關聯(lián)的狀態(tài)包通過(Web服務不要使用FTP服務)?
    允許關聯(lián)的狀態(tài)包

  • iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  • iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  • 限制指定時間包的允許通過數(shù)量及并發(fā)數(shù)

  • -m limit --limit n/{second/minute/hour}
  • 指定時間內的請求速率“n”為速率,后面為時間分別為:秒、分、時

  • --limit-burst [n]
  • 在同一時間內允許通過的請求“n”為數(shù)字,不指定默認為5

  • iptables -I INPUT -s 10.0.1.0/24 -p icmp --icmp-type 8 -m limit --limit 5/min --limit-burst 2 -j ACCEPT
  • 手動執(zhí)行iptables命令配置企業(yè)生產(chǎn)環(huán)境防火墻

    生產(chǎn)環(huán)境配置主機防火墻的兩種模式?
    1. 允許所有程序,對操作傷害的進行拒絕操縱 應用場景:企業(yè)配置上網(wǎng)網(wǎng)關路由?
    2. 拒絕所有操作,允許指定的操作 應用場景:服務器主機防火墻


    配置企業(yè)主機防火墻

  • [root@web02 ~]# iptables -F
  • [root@web02 ~]# iptables -X
  • [root@web02 ~]# iptables -Z
  • 1.設置允許SSH登錄端口

  • [root@web02 ~]# iptables -A INPUT -p tcp --dport 22 -j ACCETP
  • [root@web02 ~]# iptables -A INPUT -p tcp -s 10.0.0.1/24 -j ACCEPT
  • 2.設置允許本機lo通信規(guī)則

  • [root@web02 ~]# iptables -A INPUT -i lo -j ACCEPT
  • [root@web02 ~]# iptables -A OUTPUT -o lo -j ACCEPT
  • 3.設置默認規(guī)則

  • [root@web02 ~]# iptables -P INPUT DROP
  • [root@web02 ~]# iptables -P OUTPUT ACCEPT
  • [root@web02 ~]# iptables -P FORWARD DROP
  • 輕松應對IDC機房帶寬突然暴漲問題?
    查看規(guī)則(現(xiàn)在的服務器是最安全的)

  • [root@web02 ~]# iptables -nL --line-number
  • Chain INPUT (policy DROP)
  • num target prot opt source destination
  • 1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
  • 2 ACCEPT tcp -- 10.0.0.0/24 0.0.0.0/0
  • 3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
  • Chain FORWARD (policy DROP)
  • num target prot opt source destination
  • Chain OUTPUT (policy ACCEPT)
  • num target prot opt source destination
  • 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
  • 4.開啟信任的IP網(wǎng)段?
    允許IDC LAN/WAN?和辦公網(wǎng)IP的訪問,及對外合作機構訪問

  • iptables -A INPUT -s 124.23.62.96/27 -p all -j ACCEPT #辦公室固定IP段
  • iptables -A INPUT -s 192.168.2.0/24 -p all -j ACCEPT #IDC機房的內網(wǎng)網(wǎng)段
  • iptables -A INPUT -s 10.0.0.0/24 -p all -j ACCEPT #其他機房的內網(wǎng)網(wǎng)段
  • iptables -A INPUT -s 203.82.24.0/24 -p all -j ACCEPT #IDC機房的外網(wǎng)網(wǎng)段
  • iptables -A INPUT -s 203.82.23.0/24 -p all -j ACCEPT #其他IDC機房的外網(wǎng)網(wǎng)段
  • 現(xiàn)在還只是我們可以訪問,對外還無法訪問?
    5.允許icmp類型協(xié)議通過

  • iptables -A INPUT -p icmp -m icmp-type any -j ACCEPT
  • 提示:如果不想開,就不執(zhí)行此命令

  • iptables -A INPUT -p icmp -s 10.0.0.0/24 -m icmp --icmp-type any -j ACCEPT
  • 6.允許關聯(lián)的狀態(tài)包通過(Web服務不要使用FTP服務)

  • iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  • iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  • 提示:以上配置就是合格服務器應該配置的

    保存

    默認使用iptables并沒有永久保存,重啟失效。?
    第一種方法:

  • /etc/init.d/iptables save 保存到/etc/sysconfig/iptables 下面
  • 顯示如下格式

  • [root@web02 ~]# cat /etc/sysconfig/iptables
  • # Generated by iptables-save v1.4.7 on Mon Aug 15 01:33:44 2016
  • *nat
  • :PREROUTING ACCEPT [1413:153792]
  • :POSTROUTING ACCEPT [132:8834]
  • :OUTPUT ACCEPT [132:8834]
  • COMMIT
  • # Completed on Mon Aug 15 01:33:44 2016
  • # Generated by iptables-save v1.4.7 on Mon Aug 15 01:33:44 2016
  • *filter
  • :INPUT DROP [1798:662465]
  • :FORWARD DROP [0:0]
  • :OUTPUT ACCEPT [288:21100]
  • -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
  • -A INPUT -s 10.0.0.0/24 -p tcp -j ACCEPT
  • -A INPUT -i lo -j ACCEPT
  • -A OUTPUT -o lo -j ACCEPT
  • COMMIT
  • # Completed on Mon Aug 15 01:33:44 2016
  • 第二種方法:

  • [root@web02 ~]# iptables-save >/etc/sysconfig/iptables
  • 推薦使用第一種方式


    測試:我通過其他服務器掃描我們配置的防火墻?
    使用nmap工具進行分析,此工具需要安裝

  • [root@web02 ~]# yum -y install nmap
  • 使用如下:更多可以使用nmap –help

  • [root@web02 ~]# nmap 10.0.0.8 -p 1-65535
  • Starting Nmap 5.51 ( http://nmap.org ) at 2016-08-15 04:28 CST
  • Nmap scan report for 10.0.0.8
  • Host is up (0.0000070s latency).
  • Not shown: 65532 closed ports
  • PORT STATE SERVICE
  • 22/tcp open ssh
  • 80/tcp open http
  • 3306/tcp open mysql
  • Nmap done: 1 IP address (1 host up) scanned in 14.21 seconds
  • 生產(chǎn)維護

    (1)確定的規(guī)則;?
    編輯/etc/sysconfig/iptables?
    加入想要的規(guī)則:例如

  • -A INPUT -p tcp -m tcp --dport 873 -j ACCEPT
  • /etc/init.d/iptables reload
  • 或者改配置的同時命令在執(zhí)行,也是永久生效。?
    (2)命令試錯,沒問題了,然后放配置文件,這時不需要重啟了


    惡意IP封殺

    封IP,在第一行封。10.0.0.1 這個機器攻擊我們服務器或者在BBS里發(fā)垃圾帖子?
    手工封IP:

  • iptables -I INPUT -s 10.0.0.1 -j DROP #粗,范圍大,外部攻擊者
  • Iptables -I INPUT -s 10.0.0.1 -j DROP
  • iptables -I INPUT -p tcp -s 10.0.0.1 --dport 80 -j DROP #細,范圍小。內部
  • 自動封IP:分析Web或應用日志或者網(wǎng)絡連接狀態(tài)封掉垃圾IP?
    腳本:

  • #!/bin/bash
  • #this is a server firewall created by oldboy 17:03 2006-7-26
  • # e_mail:31333741@qq.com
  • # qqinfo:49000448
  • # function: a server firewall
  • # version:1.1
  • ################################################
  • # oldboy trainning info.
  • # QQ 1986787350 70271111
  • # site: http://www.etiantian.org
  • # blog: http://oldboy.blog.51cto.com
  • # oldboy trainning QQ group: 208160987 45039636
  • ################################################
  • #define variable PATH
  • IPT=/sbin/iptables
  • #Remove any existing rules
  • $IPT -F
  • $IPT -X
  • $IPT -Z
  • #setting default firewall policy
  • $IPT --policy OUTPUT ACCEPT
  • $IPT --policy FORWARD DROP
  • $IPT -P INPUT DROP
  • #setting for loopback interface
  • $IPT -A INPUT -i lo -j ACCEPT
  • $IPT -A OUTPUT -o lo -j ACCEPT
  • #setting access rules
  • #one,ip access rules,allow all the ips of
  • $IPT -A INPUT -s 10.0.10.0/24 -p all -j ACCEPT
  • $IPT -A INPUT -s 10.0.0.0/24 -p all -j ACCEPT
  • ##下面的是重復的,作為知識點保留,單個服務的配置

  • #second,port access rules
  • #nagios
  • $IPT -A INPUT -s 10.0.10.0/24 -p tcp --dport 5666 -j ACCEPT
  • $IPT -A INPUT -s 10.0.0.0/24 -p tcp --dport 5666 -j ACCEPT
  • #db
  • $IPT -A INPUT -s 10.0.0.0/24 -p tcp --dport 3306 -j ACCEPT
  • $IPT -A INPUT -s 10.0.0.0/24 -p tcp --dport 3307 -j ACCEPT
  • $IPT -A INPUT -s 10.0.10.0/24 -p tcp --dport 3306 -j ACCEPT
  • $IPT -A INPUT -s 10.0.10.0/24 -p tcp --dport 3307 -j ACCEPT
  • #ssh difference from other servers here.>>
  • $IPT -A INPUT -s 10.0.0.0/24 -p tcp --dport 52113 -j ACCEPT
  • $IPT -A INPUT -s 10.0.10.0/24 -p tcp --dport 52113 -j ACCEPT
  • $IPT -A INPUT -p tcp --dport 22 -j ACCEPT
  • #http
  • $IPT -A INPUT -p tcp --dport 80 -j ACCEPT
  • #snmp
  • $IPT -A INPUT -s 10.0.0.0/24 -p UDP --dport 161 -j ACCEPT
  • $IPT -A INPUT -s 10.0.10.0/24 -p UDP --dport 161 -j ACCEPT
  • #rsync
  • $IPT -A INPUT -s 10.0.0.0/24 -p tcp -m tcp --dport 873 -j ACCEPT
  • $IPT -A INPUT -s 10.0.10.0/24 -p tcp -m tcp --dport 873 -j ACCEPT
  • #icmp
  • #$IPT -A INPUT -p icmp -m icmp --icmp-type any -j ACCEPT
  • #others RELATED
  • $IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  • $IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  • 企業(yè)案例:寫一個腳本解決DOS攻擊生產(chǎn)案例?
    提示:根據(jù)web日志或者或者網(wǎng)絡連接數(shù),監(jiān)控當某個IP并發(fā)連接數(shù)或者短時內PV達到100,即調用防火墻命令封掉對應的IP,監(jiān)控頻率每隔3分鐘。防火墻命令為:iptables -I INPUT -s 10.0.1.10 -j DROP
    本腳本使用測試文件進行編寫?
    相關博文:答案見博客shell板塊

  • [root@db02 scripts]# cat test_6.sh
  • #!/bin/sh
  • #
  • [ -f /etc/init.d/functions ] && . /etc/init.d/functions
  • IP_file="/server/scripts/ddos.txt"
  • IP_filter_command="iptables -I INPUT -j DROP -s"
  • IP_recover_command="iptables -D INPUT -j DROP -s"
  • function IP_check(){
  • grep "EST" ${IP_file}|awk -F "[ |:]+" '{print $6}'|sort |uniq -c|sort -rn -k1 > /server/scripts/ip.txt
  • }
  • function IP_filter(){
  • exec < /server/scripts/ip.txt
  • while read line
  • do
  • IP_count=`echo $line|awk '{print $1}'`
  • IP=`echo $line|awk '{print $2}'`
  • IP_fil=`iptables -L -n|grep "\b${IP}\b"|wc -l`
  • if [ ${IP_count} -gt 25 -a ${IP_fil} -eq 0 ];then
  • ${IP_filter_command} ${IP}
  • echo "${IP}" >> /server/scripts/ip_filtered.txt
  • action "Filter ${IP}" /bin/true
  • fi
  • done
  • }
  • function IP_recover(){
  • exec < /server/scripts/ip.txt
  • while read line
  • do
  • IP_count=`echo $line|awk '{print $1}'`
  • IP=`echo $line|awk '{print $2}'`
  • IP_fil=`iptables -L -n|grep "\b${IP}\b"|wc -l`
  • if [ ${IP_count} -le 25 -a ${IP_fil} -eq 1 ];then
  • ${IP_recover_command} ${IP}
  • echo "${IP}" >> /server/scripts/ip_filtered.txt
  • action "Recover ${IP}" /bin/true
  • fi
  • done
  • }
  • function main(){
  • case "$1" in
  • filter)
  • IP_check
  • echo "$(date +%F-%H:%M:%S) filtered by $(whoami)" >> /server/scripts/ip_filtered.txt
  • IP_filter
  • ;;
  • recover)
  • IP_check
  • echo "$(date +%F-%H:%M:%S) recovered by $(whoami)" >> /server/scripts/ip_filtered.txt
  • IP_recover
  • ;;
  • *)
  • echo "USAGE:$0 {filter|recover}"
  • exit 1
  • esac
  • }
  • main $*
  • 生產(chǎn)環(huán)境iptables腳本講解

    技巧:具備外網(wǎng)IP的服務器不對外的服務最好要做源地址限制。對外提供的服務,不能做源地址限制,例如:80 端口?
    問題:企業(yè)硬件防火墻和IPTABLES防火墻是否要同時用。?
    解決:可以同時使用企業(yè)硬件防火墻一般放在網(wǎng)關位置,相當于大廈的保安,但是樓里的每個屋子還是需要有人鎖門的iptables

    問題: IDC機房部署了硬件防火墻,我們的服務器可以不開防火墻嗎??
    解答:絕對不可以,大廈有了保安,你的辦公室門就不鎖了嗎?


    NAT表設置

    共享上網(wǎng)設置?
    linux網(wǎng)關B:?
    局域網(wǎng)共享的兩條命令方法:

    方法1:適合于有固定外網(wǎng)地址的:

  • iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.7
  • (1)-s192.168.1.0/24 辦公室或IDC內網(wǎng)網(wǎng)段。?
    (2)-oeth0 為網(wǎng)關的外網(wǎng)卡接口。?
    (3)-jSNAT –to-source 10.0.0.7 是網(wǎng)關外網(wǎng)卡IP地址。?
    方法2:適合變化外網(wǎng)地址(ADSL):

  • iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE ?偽裝。
  • 配置如下

    第一步:外網(wǎng)服務器配置

  • [root@lb01 ~]# iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j SNAT --to-source 10.0.0.5
  • [root@lb01 ~]# iptables -t nat -L -n
  • 開啟內核轉發(fā)

  • net.ipv4.ip_forward = 1
  • vim /etc/sysctl.conf
  • sysctl -p?生效?
    需要上網(wǎng)服務器設置?
    添加路由

  • route add default gw 172.16.1.5
  • #此處寫提供外網(wǎng)的IP地址

  • vim /etc/resolv.conf
  • 添加?nameserver 223.5.5.5?

    route -n?檢查


    案例2:實現(xiàn)把訪問10.0.0.5:80的請求轉到172.16.1.8:80

  • [root@web02 ~]# iptables -t nat -A PREROUTING -d 10.0.0.5 -p tcp --dport 80 -j DNAT --to-destination 172.16.1.8:80
  • [root@web02 ~]# iptables -P FORWARD DROP
  • iptables常用企業(yè)案例:

    1、Linux主機防火墻(表:FILTER?控制鏈:INPUT)?
    2、局域網(wǎng)機器共享上網(wǎng)(表:NAT?控制鏈:POSTROUTING)

  • iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.7
  • 3、外部地址和端口,映射為內部地址和端口(表:NAT?控制的鏈:PREROUTING)

  • iptables -t nat -A PREROUTING -d 10.0.0.7 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.8:9000
  • 企業(yè)案例:實現(xiàn)外部IP 124.42.34.112 一對一映射到內部server 10.0.0.8?
    網(wǎng)關Ip:eth0:124.42.60.109 eth1:10.0.0.254?
    首先在路由網(wǎng)關上綁定VIP?124.42.34.112,可以是別名或輔助IP的方式。

  • -A POSTROUTING -s 10.0.0.0/255.255.240.0 -d 124.42.34.112 -j SNAT --to-source 10.0.0.254
  • -A PREROUTING -d 124.42.34.112 -j DNAT --to-destination 10.0.0.8
  • -A POSTROUTING -s 10.0.0.8 -o eth0 -j SNAT --to-source 124.42.34.112
  • 相關文章?
    (1)生產(chǎn)環(huán)境大于254臺機器網(wǎng)段劃分及路由解決方案詳解01?
    (2) linux route命令深入淺出與實戰(zhàn)案例精講[1]?
    (3) linux route命令深入淺出與實戰(zhàn)案例精講[2]


    iptables 生產(chǎn)應用場景

    1)局域網(wǎng)共享上網(wǎng)(適合做企業(yè)內部局域網(wǎng)上網(wǎng)網(wǎng)關,以及IDC機房內網(wǎng)的上網(wǎng)網(wǎng)關[nat POSTROUTING])?
    2)服務器防火墻功能(適合IDC機房具有外網(wǎng)IP的服務器)(主要是filter INPUT的控制)?
    3)把外部IP及端口映射到局域網(wǎng)內部(可以一對一IP映射,也可以針對某一個端口映射)也可能是IDC把網(wǎng)站的外網(wǎng)VIP及網(wǎng)站端口映射到負載均衡器上(硬件防火墻)。(nat PREROUTING)?
    4)辦公路由器+網(wǎng)關功能(zebra路由+iptables過濾及NAT+squid正向透明代理)80+ntop/iftop/iptraf流量查看+tc/cbq流量控制限速?
    5)郵件的網(wǎng)關

    iptables防火墻的應用

    1)主機防火墻?
    2)網(wǎng)關的應用(IP映射,端口映射)?
    3)過濾信息,監(jiān)控限制流量及員工上網(wǎng)行為(squid(正向代理緩存加過濾)+ntop(圖形流量監(jiān)控)+通常(流量限制)+iptraf/iftop(流量查看))?
    如果IPTABLES的服務器升級內核可以實現(xiàn)類似squid的過濾功能?
    4)網(wǎng)關裝殺毒軟件監(jiān)聽9999端口,(網(wǎng)關殺毒)

  • iptables -A PREROUTING -i eth0 -d 211.167.253.109 -p tcp -m tcp --dport 25 -j DNAT --to-destination 192.168.10.6:9025
  • 5)結合zebra配置企業(yè)級路由器

    映射多個外網(wǎng)IP上網(wǎng)

  • iptables -t nat -A POSTROUTING -s 10.0.0.1/255.255.255.0 -o eth0 -j SNAT --to-source 124.42.60.11-124.42.60.16
  • iptables -t nat -A POSTROUTING -s 172.16.1.0/255.255.255.0 -o eth0 -j SNAT --to-source 124.42.60.103-124.42.60.106
  • #iptables -t nat -A postrouting -S 192.168.1.0/22 -o eth0 -j SNAT --to-source 10.0.0.241-10.0.0.249
  • 問題:?
    1、2000人被封?
    2、可用65535端口資源有限


    企業(yè)案例:?ip_conntrack: table full, dropping packet.的錯誤提示?
    以下是我的生產(chǎn)環(huán)境的某個服務器的配置:

  • net.ipv4.tcp_fin_timeout = 2
  • net.ipv4.tcp_tw_reuse = 1
  • net.ipv4.tcp_tw_recycle = 1
  • net.ipv4.tcp_syncookies = 1
  • net.ipv4.tcp_keepalive_time = 600
  • net.ipv4.ip_local_port_range = 4000 65000
  • net.ipv4.tcp_max_syn_backlog = 16384
  • net.ipv4.tcp_max_tw_buckets = 36000
  • net.ipv4.route.gc_timeout = 100
  • net.ipv4.tcp_syn_retries = 1
  • net.ipv4.tcp_synack_retries = 1
  • #5、dmesg里面顯示ip_conntrack: table full, dropping packet.的錯誤提示.如何解決。?
    #以下參數(shù)是對iptables防火墻的優(yōu)化,防火墻不開會提示,可以忽略不理。?
    c58:

  • net.ipv4.ip_conntrack_max = 25000000
  • net.ipv4.netfilter.ip_conntrack_max=25000000
  • net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=180
  • net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=120
  • net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=60
  • net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=120
  • ################################################################?
    C64:

  • net.nf_conntrack_max = 25000000
  • net.netfilter.nf_conntrack_max = 25000000
  • net.netfilter.nf_conntrack_tcp_timeout_established = 180
  • net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
  • net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
  • net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
  • 調整內核參數(shù)/etc/sysctl.conf后,需執(zhí)行/sbin/sysctl -p使得修改生效。?
    強調:如果并發(fā)比較大,或者日PV多的情況下,開啟防火墻要注意,很可能導致網(wǎng)站訪問緩慢?
    大并發(fā)(并發(fā)1萬,PV日3000萬)要么購買硬件防火墻,要么不開iptables防火墻


    iptables 參數(shù)簡介

    -n?數(shù)字?
    -L?列表?
    -F?清除所有規(guī)則,不會處理默認規(guī)則?
    -X?刪除用戶自定義的鏈?
    -Z鏈的計數(shù)器清零?
    -A?添加規(guī)則到指定鏈的結尾,最后一條?
    -I?添加規(guī)則到指定鏈的開頭,第一條?
    -t指定表,也可以不指定默認是filter?
    -p?指定協(xié)議(all.tcp,udp.icmp)默認all?
    -P?設置默認規(guī)則?
    -s指定源地址?
    -d?目的地址?
    --dport?指定端口?
    -j處理的行為?ACCPET接收、DROP丟棄、REJECT拒絕?
    -iinput 匹配進入的網(wǎng)卡接口?
    -ooutput 匹配出去的網(wǎng)卡接口?
    -m?state –state 匹配網(wǎng)絡狀態(tài)?
    -mlimit –limit?n/{second/minute/hour}限制限定時間包的允許通過數(shù)量及并發(fā)數(shù)

    更多命令可以使用man iptables?或iptables -h

    總結

    以上是生活随笔為你收集整理的服务器安全之iptables iptables的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 手机av观看| 男女网站免费 | www.亚色 | 亚洲一级片av | a视频免费 | 亚洲乱码中文字幕久久孕妇黑人 | 日韩午夜在线播放 | 天堂va蜜桃一区二区三区 | 97国产精品人人爽人人做 | 欧美在线激情视频 | 成人羞羞国产免费游戏 | www亚洲| 打开每日更新在线观看 | 国产艳情片 | av影片在线观看 | 欧洲做受高潮免费看 | 波多野结衣视频网址 | 日韩高清不卡在线 | 亚洲精品人 | 日韩欧美一区二区在线观看 | 在线免费观看一区二区 | 视频污在线观看 | 午夜老司机福利 | 美女高潮网站 | 久久久久久久久网站 | 色婷婷狠狠爱 | 国产精品伦理一区二区 | 波多野结衣www | 日韩久久av| 超碰女| 99在线观看精品视频 | 国产午夜福利片 | 少妇免费看| 欧洲三级在线 | 亚洲免费播放 | 久草精品视频在线观看 | 亚洲精品一线二线三线 | 91黄色影视| 51国产偷自视频区视频 | 精品一区二区免费视频 | 激情久久中文字幕 | 中文字幕一二 | 超碰97久久 | 一级毛片基地 | 天天干夜夜艹 | 啪啪亚洲| 欧美午夜激情影院 | 无码人妻精品中文字幕 | 99国产精品人妻噜啊噜 | 午夜理伦三级理论 | 国内自拍xxxx18| 国产精品12页| 青草视屏 | 一级黄色短视频 | 少妇在线观看 | www.人人草 | 成人做爰www看视频软件 | 色婷婷av一区二区三区麻豆综合 | 欧美一区二区三区在线 | 影音先锋黑人 | 成人涩涩网站 | 97超碰国产精品无码蜜芽 | 丝袜人妻一区二区三区 | 免费在线视频观看 | 久草网在线观看 | 99一区二区三区 | 射一射 | 特级黄毛片 | 国产精品自拍一区 | 丁香花完整视频在线观看 | 日韩欧美不卡 | 亚洲精品国产精品国自产网站 | 成人亚洲网| 男生和女生差差的视频 | 国产美女黄网站 | 国产精品扒开做爽爽爽的视频 | 免费毛片av | 性色视频网站 | 精品丰满人妻无套内射 | 国产激情视频一区 | 午夜在线免费观看视频 | 国产麻豆剧传媒精品国产 | 亚洲天堂手机 | 色视频在线看 | 日韩无砖 | 日韩精品极品 | 欧美福利网 | www.com捏胸挤出奶 | 少妇淫片| 手机看黄色 | 手机在线观看av网站 | 99免费在线 | 一级久久 | 中文字幕精品久久久久人妻红杏1 | 极品色av影院 | 老熟女重囗味hdxx69 | 美女国产一区 | 成人网导航 | 国产精品主播在线 |