1.1 iptables防火墻簡(jiǎn)介Netfilter/Iptables(以下簡(jiǎn)稱Iptables)是unix/linux自帶的一款優(yōu)秀且開(kāi)放源代碼的安全自由的**基于包過(guò)濾的防火墻工具**,它的功能十分強(qiáng)大,使用非常靈活,可以對(duì)流入和流出服務(wù)器的數(shù)據(jù)包進(jìn)行很精細(xì)的控制。特別是它可以在一臺(tái)非常低的硬件配置下跑的非常好 Iptables是Linux2.4及2.6內(nèi)核中集成的服務(wù)。其功能與安全性比其**ipfwadm,ipchains**強(qiáng)大的多,iptables主要工作在OSI七層的二、三、四層,如果重新編譯內(nèi)核,iptables也可以支持**7層控制**(squid代理+iptables) 1.2 iptables 名詞和術(shù)語(yǔ)容器:包含和被包含的關(guān)系 iptables是表的容器 iptables包含表 (4張表)表是鏈的容器,每個(gè)表都包含若干個(gè)鏈 鏈?zhǔn)且?guī)則的容器,真正過(guò)濾規(guī)則是屬于鏈里面的 級(jí)別介紹 iptables 國(guó)家 表 省 鏈 市 規(guī)則 縣 1.3 iptables工作流程iptables是采用數(shù)據(jù)包過(guò)濾機(jī)制工作的,所以它會(huì)對(duì)請(qǐng)求的數(shù)據(jù)包的包頭數(shù)據(jù)進(jìn)行分析,并根據(jù)我們預(yù)先設(shè)定的規(guī)則來(lái)進(jìn)行匹配是否可以進(jìn)入到主機(jī)。 iptables工作流程小結(jié)
1.4 iptables表(tables)和鏈(chains)iptables根據(jù)功能和表的定義劃分包含三個(gè)表,filter,nat,mangle,其每個(gè)表又包含不同的操作鏈(Chains) Filter表 是真正的防火墻功能 INPUT 進(jìn)服務(wù)器 OUTPUT出服務(wù)器 FORWARD 流經(jīng)服務(wù)器 Nat 表 負(fù)責(zé)數(shù)據(jù)包改寫(xiě) 網(wǎng)關(guān)共享上網(wǎng)、IP和端口映射 OUTPUT PREROUTING POSTROUTING Mangle表 路由標(biāo)記 用的不多 ####所有鏈全有 RAW 表 用處很少和Mangle一樣 我們可以通過(guò)man iptables 來(lái)獲取 1.5 表介紹對(duì)于filter表的控制是我們實(shí)現(xiàn)本機(jī)防火墻的重要手段,特別是對(duì)INPUT鏈的控制 1.6 iptables表和鏈工作流程圖提示: iptables主要由2個(gè)作用,第一是防火墻,第二是路由。 NAT功能:企業(yè)案例:1)局域網(wǎng)上網(wǎng)共享(路由和網(wǎng)關(guān))NAT POSTROUTING 2)外部IP和端口映射為內(nèi)部IP和端口(DMZ功能),NAT PREROUTING Filter功能:即防火墻FILTER INPUT FORWARD 企業(yè)案例:主要應(yīng)用于服務(wù)器防火墻 2.1 配置iptablesiptables默認(rèn)已經(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) 表示針對(duì)input鏈 ACCEPT是默認(rèn)規(guī)則,默認(rèn)是運(yùn)行通過(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 如果沒(méi)有指定表,默認(rèn)就是filfer表 iptables默認(rèn)加載的內(nèi)核模塊 [root@web02 ~]# lsmod |egrep "nat|filter|ipt" ipt_REJECT 2351 2 iptable_filter 2793 1 ip_tables 17831 1 iptable_filter 加載如下模塊到linux內(nèi)核 modprobe ip_tables modprobe iptable_filter modprobe iptable_nat modprobe ip_conntrack 連接跟蹤 modprobe ip_conntrack_ftp 連接跟蹤 modprobe ip_nat_ftp modprobe ipt_state 再次過(guò)濾,查看生效情況 [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ī)則,只留下默認(rèn)規(guī)則 [root@web02 ~]# iptables -F [root@web02 ~]# iptables -X [root@web02 ~]# iptables -Z iptables -F 清除所有規(guī)則 iptables -X 刪除用戶自定義規(guī)則 iptables -Z 鏈的計(jì)數(shù)器清零 2.2 禁止規(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ī)則到指定鏈的結(jié)尾,最后一條 -I 添加規(guī)則到指定鏈的開(kāi)頭,第一條 -t 指定表,也可以不指定默認(rèn)是filter -p 指定協(xié)議(all.tcp,udp.icmp)默認(rèn)all --dport 指定端口 -j 處理的行為 ACCPET接收、DROP丟棄、REJECT拒絕 最好使用ACCPET和DROP,因?yàn)榫芙^會(huì)返回給用戶信息。 清除規(guī)則可以使用iptables -F 還可以使用iptables -D INPUT 1 -D指定刪除的鏈 --line-number 顯示序列號(hào) iptables -nl --line-number 提示:需要寫(xiě)上鏈和序列號(hào) 溫馨提示:恢復(fù)剛才斷掉的SSH連接 1)去機(jī)房重啟系統(tǒng)或登錄服務(wù)器刪除剛才的禁止規(guī)則 2)讓機(jī)房人員重啟服務(wù)器或者讓機(jī)房人員拿用戶密碼登錄進(jìn)去 3)通過(guò)服務(wù)器的遠(yuǎn)程管理卡管理(推薦) 4)先寫(xiě)一個(gè)定時(shí)任務(wù),每5分鐘就停止防火墻 5)測(cè)試環(huán)境測(cè)試好,寫(xiě)成腳本,批量執(zhí)行 企業(yè)案例3.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ī)則,首先會(huì)先匹配第一行,依次向下。這樣設(shè)置拒絕就沒(méi)有用 如果想在中間插入可以指定插入行號(hào) [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 還可以通過(guò)序列號(hào)插入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 小結(jié):總結(jié)下刪除規(guī)則的方法1. iptables -D INPUT -p tcp --dport 8080 -j DROP 2. iptables -F 刪所有規(guī)則 3. /etc/init.d/iptables restart (用iptables命令行配置的命令都是臨時(shí)生效) 4. iptables -D INPUT 規(guī)則序號(hào) 3.2:禁止10.0.0.0網(wǎng)段接入基于客戶端網(wǎng)段控制 [root@web02 ~]# iptables -A INPUT -s 10.0.0.0/24 -j DROP -s指定源地址 還可以使用不是這個(gè)網(wǎng)段的進(jìn)行操作 [root@web02 ~]# iptables -A INPUT ! -s 10.0.0.0/24 -j DROP 案例:控制22端口 eth0網(wǎng)卡進(jìn)來(lái)的數(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---->錯(cuò)誤語(yǔ)法 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 因?yàn)閕cmp類型很多可以使用any,icmp的所有類型全禁 iptables -A INPUT -s 192.168.1.0/24 -p icmp -m icmp --icmp-type any -j ACCEPT 企業(yè)場(chǎng)景禁ping iptables -A INPUT -p icmp --icmp-type 8 -s 10.0.0.0/24 -j ACCEPT 匹配網(wǎng)絡(luò)狀態(tài) -m state --state NEW:已經(jīng)或啟動(dòng)新的連接 ESTABLISHED:已建立的連接 RELATED:正在啟動(dòng)的新連接 INVALID:非法或無(wú)法識(shí)別的 FTP服務(wù)是特殊的,需要配狀態(tài)連接 允許關(guān)聯(lián)的狀態(tài)包通過(guò)(Web服務(wù)不要使用FTP服務(wù)) iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 限制指定時(shí)間包的允許通過(guò)數(shù)量及并發(fā)數(shù) -m limit --limit n/{second/minute/hour} 指定時(shí)間內(nèi)的請(qǐng)求速率“n”為速率,后面為時(shí)間分別為:秒、分、時(shí) --limit-burst [n] 在同一時(shí)間內(nèi)允許通過(guò)的請(qǐng)求“n”為數(shù)字,不指定默認(rèn)為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 手動(dòng)執(zhí)行iptables命令配置企業(yè)生產(chǎn)環(huán)境防火墻生產(chǎn)環(huán)境配置主機(jī)防火墻的兩種模式 1. 允許所有程序,對(duì)操作傷害的進(jìn)行拒絕操縱 應(yīng)用場(chǎng)景:企業(yè)配置上網(wǎng)網(wǎng)關(guān)路由 2. 拒絕所有操作,允許指定的操作 應(yīng)用場(chǎng)景:服務(wù)器主機(jī)防火墻 配置企業(yè)主機(jī)防火墻[root@web02 ~]# iptables -F [root@web02 ~]# iptables -X [root@web02 ~]# iptables -Z 1.設(shè)置允許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.設(shè)置允許本機(jī)lo通信規(guī)則 [root@web02 ~]# iptables -A INPUT -i lo -j ACCEPT [root@web02 ~]# iptables -A OUTPUT -o lo -j ACCEPT 3.設(shè)置默認(rèn)規(guī)則 [root@web02 ~]# iptables -P INPUT DROP [root@web02 ~]# iptables -P OUTPUT ACCEPT [root@web02 ~]# iptables -P FORWARD DROP 查看規(guī)則(現(xiàn)在的服務(wù)器是最安全的) [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.開(kāi)啟信任的IP網(wǎng)段 允許IDC LAN/WAN 和辦公網(wǎng)IP的訪問(wèn),及對(duì)外合作機(jī)構(gòu)訪問(wèn) 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機(jī)房的內(nèi)網(wǎng)網(wǎng)段 iptables -A INPUT -s 10.0.0.0/24 -p all -j ACCEPT #其他機(jī)房的內(nèi)網(wǎng)網(wǎng)段 iptables -A INPUT -s 203.82.24.0/24 -p all -j ACCEPT #IDC機(jī)房的外網(wǎng)網(wǎng)段 iptables -A INPUT -s 203.82.23.0/24 -p all -j ACCEPT #其他IDC機(jī)房的外網(wǎng)網(wǎng)段 現(xiàn)在還只是我們可以訪問(wèn),對(duì)外還無(wú)法訪問(wèn) 5.允許icmp類型協(xié)議通過(guò) iptables -A INPUT -p icmp -m icmp-type any -j ACCEPT 提示:如果不想開(kāi),就不執(zhí)行此命令 iptables -A INPUT -p icmp -s 10.0.0.0/24 -m icmp --icmp-type any -j ACCEPT 6.允許關(guān)聯(lián)的狀態(tài)包通過(guò)(Web服務(wù)不要使用FTP服務(wù)) iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 提示:以上配置就是合格服務(wù)器應(yīng)該配置的 保存默認(rèn)使用iptables并沒(méi)有永久保存,重啟失效。 第一種方法: /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 推薦使用第一種方式 測(cè)試:我通過(guò)其他服務(wù)器掃描我們配置的防火墻 使用nmap工具進(jìn)行分析,此工具需要安裝 [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)維護(hù)(1)確定的規(guī)則; 編輯/etc/sysconfig/iptables 加入想要的規(guī)則:例如 -A INPUT -p tcp -m tcp --dport 873 -j ACCEPT /etc/init.d/iptables reload 或者改配置的同時(shí)命令在執(zhí)行,也是永久生效。 (2)命令試錯(cuò),沒(méi)問(wèn)題了,然后放配置文件,這時(shí)不需要重啟了 惡意IP封殺封IP,在第一行封。10.0.0.1 這個(gè)機(jī)器攻擊我們服務(wù)器或者在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 #細(xì),范圍小。內(nèi)部 自動(dòng)封IP:分析Web或應(yīng)用日志或者網(wǎng)絡(luò)連接狀態(tài)封掉垃圾IP 腳本: #!/bin/bash #this is a server firewall created by oldboy 17:03 2006-7-26 # e_mail:[email protected] # 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 ##下面的是重復(fù)的,作為知識(shí)點(diǎn)保留,單個(gè)服務(wù)的配置 #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è)案例:寫(xiě)一個(gè)腳本解決DOS攻擊生產(chǎn)案例 提示:根據(jù)web日志或者或者網(wǎng)絡(luò)連接數(shù),監(jiān)控當(dāng)某個(gè)IP并發(fā)連接數(shù)或者短時(shí)內(nèi)PV達(dá)到100,即調(diào)用防火墻命令封掉對(duì)應(yīng)的IP,監(jiān)控頻率每隔3分鐘。防火墻命令為:iptables -I INPUT -s 10.0.1.10 -j DROP 本腳本使用測(cè)試文件進(jìn)行編寫(xiě) [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的服務(wù)器不對(duì)外的服務(wù)最好要做源地址限制。對(duì)外提供的服務(wù),不能做源地址限制,例如:80 端口 問(wèn)題:企業(yè)硬件防火墻和IPTABLES防火墻是否要同時(shí)用。 解決:可以同時(shí)使用企業(yè)硬件防火墻一般放在網(wǎng)關(guān)位置,相當(dāng)于大廈的保安,但是樓里的每個(gè)屋子還是需要有人鎖門的iptables 問(wèn)題: IDC機(jī)房部署了硬件防火墻,我們的服務(wù)器可以不開(kāi)防火墻嗎? 解答:絕對(duì)不可以,大廈有了保安,你的辦公室門就不鎖了嗎? NAT表設(shè)置共享上網(wǎng)設(shè)置 linux網(wǎng)關(guān)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內(nèi)網(wǎng)網(wǎng)段。 (2)-oeth0 為網(wǎng)關(guān)的外網(wǎng)卡接口。 (3)-jSNAT --to-source 10.0.0.7 是網(wǎng)關(guān)外網(wǎng)卡IP地址。 方法2:適合變化外網(wǎng)地址(ADSL): iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE #偽裝。 配置如下 第一步:外網(wǎng)服務(wù)器配置 [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 開(kāi)啟內(nèi)核轉(zhuǎn)發(fā) net.ipv4.ip_forward = 1 vim /etc/sysctl.conf sysctl -p #生效 需要上網(wǎng)服務(wù)器設(shè)置 添加路由 route add default gw 172.16.1.5#此處寫(xiě)提供外網(wǎng)的IP地址 vim /etc/resolv.conf 添加 nameserver 223.5.5.5 route -n 檢查 案例2:實(shí)現(xiàn)把訪問(wèn)10.0.0.5:80的請(qǐng)求轉(zhuǎn)到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主機(jī)防火墻(表:FILTER 控制鏈:INPUT) 2、局域網(wǎng)機(jī)器共享上網(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、外部地址和端口,映射為內(nèi)部地址和端口(表: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è)案例:實(shí)現(xiàn)外部IP 124.42.34.112 一對(duì)一映射到內(nèi)部server 10.0.0.8 網(wǎng)關(guān)Ip:eth0:124.42.60.109 eth1:10.0.0.254 首先在路由網(wǎng)關(guān)上綁定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 iptables 生產(chǎn)應(yīng)用場(chǎng)景1)局域網(wǎng)共享上網(wǎng)(適合做企業(yè)內(nèi)部局域網(wǎng)上網(wǎng)網(wǎng)關(guān),以及IDC機(jī)房?jī)?nèi)網(wǎng)的上網(wǎng)網(wǎng)關(guān)[nat POSTROUTING]) 2)服務(wù)器防火墻功能(適合IDC機(jī)房具有外網(wǎng)IP的服務(wù)器)(主要是filter INPUT的控制) 3)把外部IP及端口映射到局域網(wǎng)內(nèi)部(可以一對(duì)一IP映射,也可以針對(duì)某一個(gè)端口映射)也可能是IDC把網(wǎng)站的外網(wǎng)VIP及網(wǎng)站端口映射到負(fù)載均衡器上(硬件防火墻)。(nat PREROUTING) 4)辦公路由器+網(wǎng)關(guān)功能(zebra路由+iptables過(guò)濾及NAT+squid正向透明代理)80+ntop/iftop/iptraf流量查看+tc/cbq流量控制限速 5)郵件的網(wǎng)關(guān) iptables防火墻的應(yīng)用1)主機(jī)防火墻 2)網(wǎng)關(guān)的應(yīng)用(IP映射,端口映射) 3)過(guò)濾信息,監(jiān)控限制流量及員工上網(wǎng)行為(squid(正向代理緩存加過(guò)濾)+ntop(圖形流量監(jiān)控)+通常(流量限制)+iptraf/iftop(流量查看)) 如果IPTABLES的服務(wù)器升級(jí)內(nèi)核可以實(shí)現(xiàn)類似squid的過(guò)濾功能 4)網(wǎng)關(guān)裝殺毒軟件監(jiān)聽(tīng)9999端口,(網(wǎng)關(guān)殺毒) 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)結(jié)合zebra配置企業(yè)級(jí)路由器 映射多個(gè)外網(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 問(wèn)題: 1、2000人被封 2、可用65535端口資源有限 企業(yè)案例: ip_conntrack: table full, dropping packet.的錯(cuò)誤提示 以下是我的生產(chǎn)環(huán)境的某個(gè)服務(wù)器的配置: 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.的錯(cuò)誤提示.如何解決。 #以下參數(shù)是對(duì)iptables防火墻的優(yōu)化,防火墻不開(kāi)會(huì)提示,可以忽略不理。 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 調(diào)整內(nèi)核參數(shù)/etc/sysctl.conf后,需執(zhí)行/sbin/sysctl -p使得修改生效。 強(qiáng)調(diào):如果并發(fā)比較大,或者日PV多的情況下,開(kāi)啟防火墻要注意,很可能導(dǎo)致網(wǎng)站訪問(wèn)緩慢 大并發(fā)(并發(fā)1萬(wàn),PV日3000萬(wàn))要么購(gòu)買硬件防火墻,要么不開(kāi)iptables防火墻 iptables 參數(shù)簡(jiǎn)介-n 數(shù)字 -L 列表 -F 清除所有規(guī)則,不會(huì)處理默認(rèn)規(guī)則 -X 刪除用戶自定義的鏈 -Z鏈的計(jì)數(shù)器清零 -A 添加規(guī)則到指定鏈的結(jié)尾,最后一條 -I 添加規(guī)則到指定鏈的開(kāi)頭,第一條 -t指定表,也可以不指定默認(rèn)是filter -p 指定協(xié)議(all.tcp,udp.icmp)默認(rèn)all -P 設(shè)置默認(rèn)規(guī)則 -s指定源地址 -d 目的地址 --dport 指定端口 -j處理的行為 ACCPET接收、DROP丟棄、REJECT拒絕 -iinput 匹配進(jìn)入的網(wǎng)卡接口 -ooutput 匹配出去的網(wǎng)卡接口 -m state --state 匹配網(wǎng)絡(luò)狀態(tài) 以上linux防火墻iptables的詳細(xì)介紹和配置方法就是小編為大家收集整理的全部?jī)?nèi)容了,希望對(duì)大家有所幫助。如果您喜歡這篇文章,可以收藏或分享給您的小伙伴們吧!歡迎持續(xù)關(guān)注我們的后續(xù)更新。 |
免責(zé)聲明:本站部分文章和圖片均來(lái)自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識(shí),文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請(qǐng)勿用于商業(yè)用途,如果損害了您的權(quán)利,請(qǐng)聯(lián)系我們及時(shí)修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長(zhǎng)、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長(zhǎng)轉(zhuǎn)型升級(jí),為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營(yíng)銷服務(wù),與站長(zhǎng)一起進(jìn)步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨(dú)!
掃一掃,關(guān)注站長(zhǎng)網(wǎng)微信
當(dāng)我們?cè)诠蚕砭W(wǎng)絡(luò)訪問(wèn)的時(shí)候,可能會(huì)遇到提示指定的網(wǎng)絡(luò)名不再可用的問(wèn)題,這可能是由于我們的共享網(wǎng)絡(luò)出現(xiàn)了錯(cuò)誤,也可能是被共享的對(duì)象所拒絕了。指定的網(wǎng)絡(luò)名 ......
文/曹楊 原標(biāo)題:誰(shuí)還看電視? 爸爸戴一副老花鏡,媽媽戴一副近視鏡,一人坐在沙發(fā),一人躺在床上,各自刷著自己關(guān)注的博主更新的短視頻。電視也許開(kāi)著,但只是背景。 這樣的畫(huà)面,幾乎成了洛奇家的常 ...
1、首先進(jìn)入到“百度”軟件中, 2、然后在其中輸入“百度識(shí)圖”, 3、之后點(diǎn)擊圖中的“開(kāi)始使用”按鈕, 4、緊接著點(diǎn)擊右下角的“相冊(cè)”功能, 5、在相冊(cè)下 ......
圖片來(lái)源于簡(jiǎn)書(shū) 文/郭開(kāi)森 楊帆 陸玖財(cái)經(jīng)準(zhǔn)備開(kāi)新欄目了,每周一創(chuàng)始人郭開(kāi)森和楊帆合體郭德帆,對(duì)行業(yè)進(jìn)行一些觀察和評(píng)論,第一篇我們?nèi)允谴蛩銓?xiě)社區(qū)團(tuán)購(gòu),這是當(dāng)下最火的話題。 來(lái)過(guò)陸玖財(cái)經(jīng)做客的朋友們...
一、軟件沖突1、首先確認(rèn)是否是應(yīng)用程序沖突導(dǎo)致的。2、查看是否只有特定幾個(gè)游戲或應(yīng)用會(huì)導(dǎo)致該問(wèn)題。3、如果是應(yīng)用沖突,那么只要卸載這些app就可以解決了。二 ......
電腦端:1、大家可以點(diǎn)擊右邊鏈接進(jìn)入網(wǎng)頁(yè)版的百度網(wǎng)盤(pán),進(jìn)入之后點(diǎn)擊“去登錄”。https://pan.baidu.com/2、之后正確的輸入賬號(hào)密碼進(jìn)行登錄就好啦。手機(jī)端:1 ......
一、N100對(duì)比intel i3 1、N100的跑分達(dá)到了147210分,這個(gè)數(shù)據(jù)可以達(dá)到i3的七代級(jí)別。 2、在跑分上也是超越了大部分的I3七代CPU,不過(guò)比I3八代要弱勢(shì)一些。 3 ......
8月15日消息 上周,有媒體報(bào)道前身為百度圖片的“榴蓮”APP含有大量不雅視頻內(nèi)容被用戶舉報(bào)。對(duì)此,百度圖片官方進(jìn)行了回應(yīng),百度圖片表示已經(jīng)對(duì)報(bào)道中所涉及的“生吃旋風(fēng)哥”等爭(zhēng)議內(nèi)容進(jìn)行了下線處理。 此外,百度...
在填寫(xiě)一些項(xiàng)目申請(qǐng)書(shū)中,總是免不了要選擇一些數(shù)字,但是在方框中如何插入數(shù)字,該怎么辦呢?那么下面就由學(xué)習(xí)啦小編給大家分享下word在方框里輸入數(shù)字的技巧, ......
WPS Office手機(jī)版怎么加橫線?很多用戶還不知道WPS Office手機(jī)版怎么加橫線,WPS Office手機(jī)版怎么加橫線,WPS Office手機(jī)版怎么打橫線,WPS Office手機(jī)版怎么弄 ......
迅雷前綴是什么 答:迅雷前綴是(magnet:?xt=urn:btih:)括號(hào)里的就是了。 我們只要在這段文字之后輸入后續(xù)的內(nèi)容,就可以創(chuàng)建下載鏈接了。 1、磁力鏈接不基于文 ......
一、內(nèi)容特權(quán)。 1、半價(jià)點(diǎn)播。 許多站內(nèi)視頻都需要付費(fèi)觀看,而大會(huì)員用戶可以直接半價(jià)享受; 購(gòu)買成功后的48h內(nèi)無(wú)限次觀看。有部分的內(nèi)容是只限在中國(guó)大陸內(nèi)觀 ......
1、首先打開(kāi)小米運(yùn)動(dòng)的“實(shí)驗(yàn)室功能”。 2、接著點(diǎn)擊“門卡模擬”。 3、然后點(diǎn)擊“我知道了”。 4、最后貼近就可以刷卡成功了。...
1、打開(kāi)手機(jī)輕顏相機(jī)app,點(diǎn)擊“我的”,點(diǎn)擊“設(shè)置”,2、點(diǎn)擊“幫助與反饋”,3、點(diǎn)擊右下角“在線咨詢”即可聯(lián)系客服,詢問(wèn)自己的問(wèn)題啦!...
答:華為P系列: 華為p40,華為p40plus,華為p50,華為p50e,華為p60 華為mate系列: 華為mate40,華為mate50,華為mate50e,華為mate60 華為nova系列: 華為n ......
近期有用戶反映,電腦在更新Windows 11 Insider Preview 25252.1000后,出現(xiàn)了應(yīng)用和已壓縮的文件點(diǎn)擊毫無(wú)反應(yīng),拖拽都不行,只能從開(kāi)始菜單打開(kāi)的情況,這是怎 ......
可見(jiàn)單元格就是不包括隱藏或者篩選篩選后隱藏起來(lái)的單元格區(qū)域。方法:篩選或隱藏?cái)?shù)據(jù),復(fù)制需要粘貼的值,在目標(biāo)單元格區(qū)域左上角的第一個(gè)單元格處右擊,選擇【 ......
答:驍龍8+更好。 驍龍7+gen2實(shí)際上就是驍龍8+的低配版本。 在一些其他的核心架構(gòu)方面都是保持一致的,比如說(shuō)CPU的架構(gòu)、GPU的架構(gòu)等等。 驍龍7+和驍龍8+具體 ......
文/黎明 一場(chǎng)針對(duì)中國(guó)互聯(lián)網(wǎng)巨頭的反壟斷風(fēng)暴正在醞釀,而且這次動(dòng)真格了。 11月10日,國(guó)家市場(chǎng)監(jiān)管總局發(fā)布《關(guān)于平臺(tái)經(jīng)濟(jì)領(lǐng)域的反壟斷指南(征求意見(jiàn)稿)》,要加大對(duì)互聯(lián)網(wǎng)巨頭涉嫌壟斷的調(diào)查和監(jiān)管。 ...
文件被win10系統(tǒng)誤報(bào)病毒自動(dòng)刪除了如何進(jìn)行恢復(fù)?有用戶下載了某些破解軟件卻被Win10系統(tǒng)誤認(rèn)為是病毒文件而自動(dòng)刪除,當(dāng)然系統(tǒng)自帶殺毒軟件其實(shí)挺不錯(cuò)的,就是有時(shí)候會(huì)誤報(bào),大家遇到這種情況的時(shí)候就希望把誤刪的...
win11系統(tǒng)如何釋放掉系統(tǒng)默認(rèn)保留的存儲(chǔ)空間?一般情況下,Windows會(huì)保留一些存儲(chǔ)空間,以便設(shè)備獲得良好性能和成功更新。但是當(dāng)出現(xiàn)系統(tǒng)盤(pán)儲(chǔ)存空間不足時(shí),我們會(huì)將幾個(gè)G的保留空間釋放出來(lái),以解燃眉之急。本期教...
1、先打開(kāi)機(jī)頂盒進(jìn)入主界面,并且使用遙控器打開(kāi)設(shè)置。 2、然后選擇“賬號(hào)與安全”,并且進(jìn)入。 3、最后往下面翻就可以看到“ADB調(diào)試”的選項(xiàng),直接開(kāi)啟就行了 ......
答:在3DMark壓力測(cè)試當(dāng)中,顯卡需要超高97%才能夠算合格,證明顯卡的穩(wěn)定性是過(guò)關(guān)的。 1、一般的默認(rèn)情況下在2500~3000分就算很正常的了。 2、分?jǐn)?shù)越高說(shuō)明顯卡 ......
羅技g304dpi燈顏色代表什么:1、藍(lán)色:這種情況是正常工作的顯示,如果說(shuō)是常亮或者閃爍,那都沒(méi)有問(wèn)題這是在正常工作呢。2、紅色:如果說(shuō)是紅燈閃爍的話那就是 ......
win11系統(tǒng)快速跳過(guò)聯(lián)網(wǎng)創(chuàng)建本地管理賬戶3種方法?現(xiàn)在市面上銷售的品牌筆記本和臺(tái)式機(jī)基本上都預(yù)裝Windows11家庭中文版正版操作系統(tǒng),聯(lián)網(wǎng)后系統(tǒng)會(huì)自動(dòng)激活。當(dāng)用戶拿到新機(jī)器后還需要按照cortana(小娜)的提示一步...
我們經(jīng)常用WPS的時(shí)候,如果需要輸入波浪號(hào)~,會(huì)發(fā)現(xiàn)鍵盤(pán)上的波浪號(hào)輸入之后在最上面,但是為了美觀,我們希望波浪號(hào)顯示在中間。這里總結(jié)了三個(gè)方法分享給大家 ......
答:中高端水平 i513500hx在處理器當(dāng)中是處于一個(gè)中高端的水平。 i513500hx是第十一代酷睿處理器系列的一員,基礎(chǔ)頻率為2.4GHz,表現(xiàn)十分的不錯(cuò)。 i513500hx介 ......
相信有非常多使用過(guò)筆記本的用戶都聽(tīng)說(shuō)過(guò)獨(dú)顯直連這個(gè)詞,但很多用戶并不了解獨(dú)顯直連是什么,又有什么用處,那么下面就和小編一起來(lái)看看什么是獨(dú)顯直連和開(kāi)啟這 ......
打開(kāi)軟件,直接填寫(xiě)就可以。 1、下載安裝easyconnect軟件, 2、打開(kāi)easyconnect應(yīng)用,在如圖所示的“服務(wù)器地址”一欄輸入如圖所示網(wǎng)址,點(diǎn)擊“連接”, 3、等 ......
win11系統(tǒng)開(kāi)機(jī)總是自動(dòng)登錄OneDrive如何關(guān)閉?win11系統(tǒng)開(kāi)機(jī)的時(shí)候,會(huì)自動(dòng)啟動(dòng)OneDrive,不想要啟動(dòng),該怎么操作呢?下面我們就來(lái)看看詳細(xì)的教程。 在OneDrive界面點(diǎn)小齒輪按鈕,下拉菜單中點(diǎn)【設(shè)置】。 單擊【...