iptables tcp wrappers
1.TCP Wrappers
1.1 tcp wrappers概述
tcp wrappers為由xinetd這支superdaemon管理的服務(wù)提供了安全性。由xinetd super daemon管理的服務(wù)以及支持libwrap模塊的服務(wù)都可以使用它tcp wrappers進(jìn)行安全控制。
可以通過(guò)使用tcp wrappers結(jié)合防火墻(iptables)提供更加安全的系統(tǒng)保護(hù)。
1.2tcp wrappers的配置文件
tcp wrappers的配置文件有兩個(gè),一個(gè)是/etc/hosts.allow,一個(gè)是/etc/hosts.deny。
/etc/hosts.allow:允許指定的客戶端對(duì)指定的服務(wù)訪問(wèn)。
/etc/hosts.deny:拒絕指定的客戶端對(duì)指定的服務(wù)訪問(wèn)。
1.3確認(rèn)服務(wù)是否支持tcp wrappers
在Linux系統(tǒng)下面并不是所有的服務(wù)都支持tcp wrappers,由xinetd管理的服務(wù)都支持tcp wrappers,其他的服務(wù)可以通過(guò)ldd指令來(lái)查看。ldd指令用于查看二進(jìn)制指令所需要的動(dòng)態(tài)鏈接庫(kù),如果服務(wù)有支持libwrap.so這個(gè)動(dòng)態(tài)鏈接庫(kù),則表示該服務(wù)支持TCP Wrappers。
[root@server1 ~]#ldd $(which sshd) | grep libwrap
? ? ? ?libwrap.so.0 => /lib64/libwrap.so.0(0x00002b5edee66000)
[root@server1 ~]#
上述表明sshd這個(gè)服務(wù)是支持tcp wrappers的。
如果沒(méi)有libwrap,則表示該服務(wù)不支持tcp wrappers。
1.4tcp wrappers的規(guī)則定義
/etc/hosts.allow:允許指定的客戶端對(duì)指定的服務(wù)訪問(wèn)。
/etc/hosts.deny:拒絕指定的客戶端對(duì)指定的服務(wù)訪問(wèn)。
修改完成之后,不需要重新啟動(dòng)服務(wù)經(jīng)會(huì)立即生效。
匹配規(guī)則如下:
1./etc/hosts.allow和/etc/hosts.deny無(wú)匹配記錄時(shí),訪問(wèn)可以通過(guò)。
2./etc/hosts.allow有匹配記錄時(shí)訪問(wèn)可以通過(guò)。
3./etc/hosts.allow和/etc/hosts.deny都匹配時(shí)訪問(wèn)可以通過(guò)。
總結(jié)起來(lái)就是:
1.默認(rèn)策略是允許,即沒(méi)有在hosts.allow和hosts.deny中出現(xiàn)的,允許通過(guò)。
2.先查看hosts.allow,在查看hosts.deny。
訪問(wèn)控制規(guī)則:
每一個(gè)控制文件都可以包含多行,按照定義的順序處理每一行,找到匹配后就跳出該規(guī)則。以#開始的表示注釋,如果一行寫不完可以使用反斜線(\),進(jìn)行脫跳,表示上一行的延續(xù)。
hosts.allow和hosts.deny定義格式如下:
daemon_list : client_list [ : shell_command ]:deny|allow
daemon_list:指定由TCP wrappers需要控制的服務(wù)名稱。如果該服務(wù)是由xinetd管理的服務(wù),要寫啟動(dòng)腳本的名稱,如/etc/xinetd.d/telnet,否則的話則直接寫服務(wù)名稱,如sshd。
下述為tftp服務(wù)的配置文件:/etc/xinetd.d/tftp
如果要想使用tcp wrappers控制tftp的話,需要在hosts.allow或hosts.deny文件中,寫上tftp的啟動(dòng)腳本:/use/sbin/in.tftpd
service tftp
{
? ? ? ?socket_type ? ? ? ? ? ? = dgram
? ? ? ?protocol ? ? ? ? ? ? ? ?= udp
? ? ? ?wait ? ? ? ? ? ? ? ? ? ?= yes
? ? ? ?user ? ? ? ? ? ? ? ? ? ?= root
server ? ? ? ? ? ? ? ? ?= /usr/sbin/in.tftpd
? ? ? ?server_args ? ? ? ? ? ? = -s /tftpboot
? ? ? ?disable ? ? ? ? ? ? ? ? = no
? ? ? ?per_source ? ? ? ? ? ? ?= 11
? ? ? ?cps ? ? ? ? ? ? ? ? ? ? = 100 2
? ? ? ?flags ? ? ? ? ? ? ? ? ? = IPv4
}
client_list:指定tcpwrappers需要控制哪些客戶端對(duì)哪些服務(wù)的訪問(wèn)。
可以用如下方法表示:
單一主機(jī):192.168.0.1,表示的是192.168.0.1這臺(tái)主機(jī)。
指定網(wǎng)段:192.168.0.或者是192.168.0.0/255.255.255.0表示的是192.168.0.0/24整個(gè)網(wǎng)段。
指定DNS后綴:.frame.com,所有DNS后綴為.frame.com的主機(jī)。
指定FQDN:server.frame.com ,表示的是FQDN為server.frame.com的主機(jī)。
所有客戶端:ALL
操作符:
EXCEPT:除……之外。如list1 EXCEPTlist2,匹配list1里面的機(jī)器,除了list2.
EXCEPT可以用在daemon_list和client_list中。
shell_command:
shell command最好使用絕對(duì)路徑。在執(zhí)行shellcommand時(shí),系統(tǒng)會(huì)啟動(dòng)一個(gè)/bin/sh的子進(jìn)程去執(zhí)行這些指令,所有的輸入、輸出、錯(cuò)誤輸出都被送到/dev/null里面。如果想在背景下執(zhí)行的話,可以加上&。
shell command中的變量:
%a (%A): The client (server)host address.
? ? ? %c: Client information: user@host,user@address, a host name, or just an address, ?depending ?on ?how ?much information is available.
? ? ? %d:The daemon process name
? ? ? %h (%H):The client (server) host name oraddress, if the host name is unavailable.
? ? ? %n (%N):The client (server) host name(or "unknown" or "paranoid").
? ? ? %p:The daemon process id.
? ? ? %s:Server ?information: daemon@host, daemon@address, or just a daemon name, depending on howmuch information is available.
? ? ? %u:The client user name (or"unknown").
? ? ? %%:Expands to a single ‘%′ character.
執(zhí)行外部指令:spawn
spawn的格式為:
spawn (shell command)
可以使用spawn執(zhí)行一些外部指令,可以實(shí)現(xiàn)日志的記錄以及其他的一些信息,如:
[root@server1 tmp]#cat /etc/hosts.allow
#
# hosts.allow ? This file describes the names of the hostswhich are
# ? ? ? ? ? ? ? allowed to use the local INETservices, as decided
# ? ? ? ? ? ? ? by the '/usr/sbin/tcpd' server.
#
sshd:172.17.100.1:spawn(/bin/echo %a from %h attempted to access %d >> /tmp/sshd.log ) :allow
[root@server1 tmp]#cat sshd.log
172.17.100.1from 172.17.100.1 attempted to access sshd
[root@server1 tmp]#
twist:使用 twist 選項(xiàng)發(fā)送消息給被拒絕的客戶端。twist 選項(xiàng)的基本格式是:
twist ?shell command
Twist 的實(shí)際動(dòng)作是拒絕訪問(wèn)。Twist 實(shí)際上使用指定的操作替換當(dāng)前服務(wù)。在以下示例中,使用 echo 命令將拒絕消息發(fā)送給被拒絕的客戶端。如果 IP 為 192.168.9.14 的客戶端試圖用 telnet 或 ssh 連接,那么該示例會(huì)發(fā)送消息給它。
sshd,telnetd:192.168.9.14:twist /bin/echo "Your connection has been refused\
\nAccess denied andthe event is logged"
注意:twist必須寫在最后,后面不能有allow或deny。
2.Iptables
2.1Iptables工作流程
iptables實(shí)現(xiàn)不同的功能,是通過(guò)不同的表來(lái)實(shí)現(xiàn)的。默認(rèn)情況下有3張表:filter表、nat表、mangle表,每一張表又包含若干鏈(chain)。
filter表:對(duì)經(jīng)過(guò)(進(jìn)出)防火墻的數(shù)據(jù)包進(jìn)行過(guò)濾。
nat表:進(jìn)行地址轉(zhuǎn)換。
mangle表:對(duì)數(shù)據(jù)包進(jìn)行修改。
每一個(gè)chain都是一個(gè)檢查清單,它會(huì)利用預(yù)先設(shè)置好的規(guī)則對(duì)數(shù)據(jù)包進(jìn)行檢查,如果判斷的結(jié)果與定義的結(jié)果不符合,則交由鏈中的下一個(gè)規(guī)則繼續(xù)判斷,如果判斷到最后都沒(méi)有與定義的規(guī)則進(jìn)行匹配的話,則與默認(rèn)的規(guī)則進(jìn)行匹配,從而決定是放行還是拒絕。通常情況下,默認(rèn)規(guī)則都是拒絕。
Iptables的工作流程如下:
NAT表的3條鏈:
PREROUTING:修改即將到來(lái)的數(shù)據(jù)包,路由判斷前,DNAT
OUTPUT:修改在路由之前本地生成的數(shù)據(jù)包,路由判斷前,DNAT
POSTROUTING:修改即將出去的數(shù)據(jù)包,路由判斷后,SNAT
2.2Iptables表和鏈的功能
1.filter表
filter表主要用于對(duì)數(shù)據(jù)包進(jìn)行過(guò)濾。可以進(jìn)行的動(dòng)作有:ACCEPT/REJECT/DROP/LOG/RETURN,filter表也是默認(rèn)操作的表。
INPUT鏈:過(guò)濾所有目標(biāo)地址是本機(jī)的數(shù)據(jù)包。
OUTPUT鏈:過(guò)濾所有由本地所產(chǎn)生的數(shù)據(jù)包,源地址是本地的數(shù)據(jù)包。
FORWARD鏈:過(guò)濾所有經(jīng)過(guò)本地的數(shù)據(jù)包。源地址和目的地址都不是本機(jī)的數(shù)據(jù)包。
2.nat表
nat表用于網(wǎng)絡(luò)地址轉(zhuǎn)換。屬于一個(gè)流的數(shù)據(jù)包只會(huì)經(jīng)過(guò)這個(gè)表一次,如果第一個(gè)數(shù)據(jù)包被允許進(jìn)行NAT或masquerade,那么其他的數(shù)據(jù)包都會(huì)自動(dòng)的進(jìn)行同樣的動(dòng)作。
DNAT:改變數(shù)據(jù)包的目的地址,使數(shù)據(jù)包重路由到某臺(tái)主機(jī)。
SNAT:改變數(shù)據(jù)包的源地址。
MASQUERADE:和SNAT一樣,只有一個(gè)可用的IP地址,端口復(fù)用。
3條鏈:
PREROUTING:路有前,做的是DNAT
POSTROUTING:路由后,做的是SNAT
OUTPUT:DNAT,改變本地產(chǎn)生數(shù)據(jù)包的目的地址。
3.mangle表
用于對(duì)數(shù)據(jù)包進(jìn)行修改,不常用。
2.3Iptables的狀態(tài)機(jī)制
四種狀態(tài):NEW、ESTABLISHED、RELATED、INVALID
INVALID意味著這個(gè)包沒(méi)有已知的流或連接與之關(guān)聯(lián),也可能是它包含的數(shù)據(jù)或包頭有問(wèn)題。
ESTABLISHED意思是包是完全有效的,而且屬于一個(gè)已建立的連接,這個(gè)連接的兩端都已經(jīng)有數(shù)據(jù)發(fā)送。
NEW表示包將要或已經(jīng)開始建立一個(gè)新的連接,或者是這個(gè)包和一個(gè)還沒(méi)有在兩端都有數(shù)據(jù)發(fā)送的連接有關(guān)。是防火墻收到的第一個(gè)數(shù)據(jù)包。
RELATED說(shuō)明包正在建立一個(gè)新的連接,這個(gè)連接是和一個(gè)已建立的連接相關(guān)的。比如,FTP data transfer,ICMP error 和一個(gè)TCP或UDP連接相關(guān)。注意NEW狀態(tài)并不在試圖建立新連接的TCP包里尋找SYN標(biāo)記,因此它不應(yīng)該不加修改地用在只有一個(gè)防火墻或在不同的防火墻之間沒(méi)有啟用負(fù)載平衡的地方。
2.4Iptables的配置
啟動(dòng)iptables:/etc/init.d/iptables start
[root@server1 ~]#/etc/init.d/iptables start
Flushing firewallrules: [ ?OK ?]
Setting chains topolicy ACCEPT: nat filter [ ?OK ?]
Unloading iptablesmodules: [ ?OK ?]
Applying iptablesfirewall rules: [ ?OK ?]
Loading additionaliptables modules: ip_conntrack_netbios_ns [ OK ?]
[root@server1 ~]#
設(shè)置開機(jī)自動(dòng)啟動(dòng):chkconfig iptables --level 35 on
[root@server1 ~]#chkconfig iptables --level 35 on
[root@server1 ~]#
定義iptables策略:
iptables [-t table] command [match][target|jump]
-t table:指明需要操作的表。默認(rèn)為filter表。
command:iptables所做的操作。比如新增一條規(guī)則、刪除一條規(guī)則等
match:詳細(xì)的描述一個(gè)數(shù)據(jù)包的特點(diǎn),五元組,協(xié)議、源IP、目標(biāo)IP、源端口、目標(biāo)端口
target|jump:對(duì)符合指定的數(shù)據(jù)包進(jìn)行的動(dòng)作,如ACCEPT、REJECT、DROP、LOG、RETURN。
默認(rèn)情況下,Linux系統(tǒng)是不允許進(jìn)行數(shù)據(jù)包的轉(zhuǎn)發(fā)的,如果要啟用該功能的話,可以用如下兩種方式:
1.echo 1 >/proc/sys/net/ipv4/ip_forward
這種方式設(shè)置的是臨時(shí)有效。
[root@server1 ~]#echo 1 > /proc/sys/net/ipv4/ip_forward
[root@server1 ~]#
2.vim /etc/sysctl.conf
這種方式設(shè)置的是永久有效。
將net.ipv4.ip_forward = 0改為net.ipv4.ip_forward= 1,保存退出,并使用sysctl –p使配置生效。
# Controls IPpacket forwarding
net.ipv4.ip_forward= 1
[root@server1 ~]#sysctl -p
net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter= 1
net.ipv4.conf.default.accept_source_route= 0
kernel.sysrq = 0
kernel.core_uses_pid= 1
net.ipv4.tcp_syncookies= 1
kernel.msgmnb =65536
kernel.msgmax =65536
kernel.shmmax =68719476736
kernel.shmall =4294967296
[root@server1 ~]#
iptables所做的操作:
-L:查看所選鏈的所有策略。如果沒(méi)有指定鏈,則顯示指定表中的所有鏈。如果沒(méi)有指定表,則查看filter表。
常用的是:iptables –L –n --line
-A 鏈名稱:在指定的表的指定鏈末尾增加一條新的規(guī)則。
[root@server1 ~]# iptables -t filter -A INPUT -ilo -j ACCEPT
[root@server1 ~]#iptables -t filter -L INPUT -n --line
Chain INPUT (policyACCEPT)
num ?target ? ?prot opt source ? ? ? ? ? ? ?destination ? ? ? ?
1 ? ?ACCEPT ? ?all ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ?
[root@server1 ~]#
-D 鏈名稱策略內(nèi)容|策略序號(hào):從所選表的指定鏈中刪除策略。
[root@server1 ~]#iptables -t filter -L INPUT -n --line
Chain INPUT (policyACCEPT)
num ?target ? ?prot opt source ? ? ? ? ? ? ?destination ? ? ? ?
1 ? ?ACCEPT ? ?all ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ?
[root@server1 ~]# iptables -D INPUT 1
[root@server1 ~]#iptables -t filter -L INPUT -n --line
Chain INPUT (policyACCEPT)
num ?target ? ?prot opt source ? ? ? ? ? ? ?destination ? ? ? ?
[root@server1 ~]#
-R 鏈名稱策略序號(hào):替換指定表中指定鏈中的某一條策略。
[root@server1 ~]#iptables -L INPUT -n --line
Chain INPUT (policyACCEPT)
num ?target ? ?prot opt source ? ? ? ? ? ? ?destination ? ? ? ?
1 ? ?ACCEPT ? ?all ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ?
[root@server1 ~]# iptables -R INPUT 1 -i lo -j REJECT
[root@server1 ~]#iptables -L INPUT -n --line
Chain INPUT (policyACCEPT)
num ?target ? ?prot opt source ? ? ? ? ? ? ?destination ? ? ? ?
1 ? ?REJECT ? ?all ?-- ?0.0.0.0/0 ? ? ? ? ? ?0.0.0.0/0 ? ? ? ? ? reject-with icmp-port-unreachable
[root@server1 ~]#
-I 鏈名稱策略序號(hào):在指定策略的前面插入一條策略,如果沒(méi)有指定策略序號(hào),則默認(rèn)為1,也就是插入在第一個(gè)策略的前面,新插入的策略稱為第一條策略。
[root@server1 ~]#iptables -I INPUT -i eth0 -j ACCEPT
-F 鏈名稱:清空指定鏈中的所有策略,如果沒(méi)有指定鏈名稱,則清空所選表中的所有鏈中的策略。
[root@server1 ~]# iptables -F
[root@server1 ~]#iptables -L INPUT -n --line
Chain INPUT (policyACCEPT)
num ?target ? ?prot opt source ? ? ? ? ? ? ?destination ? ? ? ?
[root@server1 ~]#
-Z 鏈名稱:將指定鏈的所有計(jì)數(shù)器值歸零,如果沒(méi)有指定鏈名,則為所選表的所有鏈。
-N 鏈名稱:創(chuàng)建一個(gè)新的鏈。新鏈的名字不能和已經(jīng)存在的鏈的名字相同。
用戶新定義的鏈會(huì)被優(yōu)先匹配。
[root@server1 ~]# iptables -N ZHANG
[root@server1 ~]#iptables-save
# Generated byiptables-save v1.3.5 on Fri Feb ?716:15:33 2014
*filter
:INPUT ACCEPT[919:74594]
:FORWARD ACCEPT[0:0]
:OUTPUT ACCEPT[1118:111592]
:ZHANG - [0:0]
COMMIT
# Completed on FriFeb ?7 16:15:33 2014
[root@server1 ~]#
-X 鏈名稱:刪除用戶自定義的鏈。如果沒(méi)有指定鏈名稱,則為所選表中所有自定義的鏈。
[root@server1 ~]#iptables -X
-E old-chain-name new-chain-name:對(duì)鏈進(jìn)行重命名。
[root@server1 ~]# iptables -N ZHANG
[root@server1 ~]# iptables -E ZHANG FRAME
[root@server1 ~]#iptables-save
# Generated byiptables-save v1.3.5 on Fri Feb ?716:18:25 2014
*filter
:INPUT ACCEPT[1025:83322]
:FORWARD ACCEPT[0:0]
:OUTPUT ACCEPT[1200:119484]
:FRAME - [0:0]
COMMIT
# Completed on FriFeb ?7 16:18:25 2014
[root@server1 ~]#
-P 鏈名稱:為鏈設(shè)置默認(rèn)策略。
[root@server1 ~]#iptables -P INPUT DROP
[root@server1 ~]#
match:詳細(xì)的描述數(shù)據(jù)包的特點(diǎn)。
-p tcp|udp|icmp……:匹配指定的協(xié)議,如果沒(méi)有指定-p,則表示匹配TCP/UDP/ICMP協(xié)議。
-p !tcp:!表示的是排除,除了tcp之外的所有協(xié)議。
-s:指定源IP地址。可以是192.168.0.0,192.168.0.0/24,192.168.0.0/255.255.255.0這種格式。
-d:指定目標(biāo)IP地址。和-s的格式一樣。
-i:指定進(jìn)來(lái)的網(wǎng)絡(luò)接口,可用在INPUT、PREROUTING、FORWARD鏈中。如lo表示loopback口,eth0,ppp0等,如果是eth+則表示的是所有的eth接口。
-o:出去的網(wǎng)絡(luò)接口。可以用在OUTPUT、POSTROUTING、FORWARD鏈中。
--sport:源端口。表示端口范圍:A:B,表示從A端口到B端口。:B表示從0到B端口。A:表示從A到65535端口.
--dport:指定目標(biāo)端口,格式和—sport一樣。
-m multiport --sport:指定多個(gè)不連續(xù)的源端口,最多15個(gè)。
-m multiport --dport:指定多個(gè)不連續(xù)的目標(biāo)端口,最多15個(gè)。
-m multiport --port:指定多個(gè)不連續(xù)的端口,源端口和目標(biāo)端口一樣,最多15個(gè)。
--tcp-flags 檢查標(biāo)記列表條件列表:對(duì)特定的TCP標(biāo)記進(jìn)行匹配。列表內(nèi)部用逗號(hào)隔開,列表之間用空格分開。第一個(gè)參數(shù)指定需要檢查的TCP標(biāo)記,第二個(gè)參數(shù)指定在第一個(gè)列表中出現(xiàn)過(guò)的,且必須為1的。可以識(shí)別SYN/ACK/FIN/RST/PSH/URG標(biāo)記。還可以用ALL和NONE,ALL表示匹配所有的標(biāo)記,NONE表示不匹配任何標(biāo)記。
--syn:匹配syn標(biāo)記被設(shè)置,而ACK和RST沒(méi)有設(shè)置的數(shù)據(jù)包。
--icmp-type 數(shù)值類型:根據(jù)icmp的類型進(jìn)行匹配。
--limit 匹配次數(shù)/時(shí)間:需要使用-mlimit。時(shí)間可以是/second、/minute、/day、/hour,默認(rèn)為3/hour。
--limit-burst 次數(shù):定義了—limit的峰值,默認(rèn)為5.也就是單位時(shí)間內(nèi)匹配的數(shù)據(jù)包的最大數(shù)量,每匹配一個(gè),數(shù)值就減去1,知道為0為止。新來(lái)的數(shù)據(jù)包將不會(huì)在匹配。
--mac-source:對(duì)數(shù)據(jù)包的源mac地址進(jìn)行過(guò)濾,需要使用-mmac
--uid-owner uid:按生成數(shù)據(jù)包的UID進(jìn)行過(guò)濾。需要-mowner
--gid-owner gid:按生成數(shù)據(jù)包的GID進(jìn)行過(guò)濾。需要-mowner
--pid-owner pid:按生成數(shù)據(jù)包的PID(進(jìn)程ID)進(jìn)行過(guò)濾。需要-mowner
--sid-owner sid:按生成數(shù)據(jù)包的SID(會(huì)話ID)進(jìn)行過(guò)濾。需要-mowner
--state 狀態(tài)列表,對(duì)數(shù)據(jù)包的狀態(tài)進(jìn)行過(guò)濾。有四種狀態(tài),NEW/RELATED/INVALID/ESTABLISHED,不同的狀態(tài)之間用逗號(hào)隔開。需要用-mstate
2.5 Iptables的可用動(dòng)作
ACCEPT:放行匹配的數(shù)據(jù)包。
DROP:丟棄匹配的數(shù)據(jù)包,不會(huì)產(chǎn)生任何信息。
REJECT:丟棄匹配的數(shù)據(jù)包,但是會(huì)返回錯(cuò)誤消息。可以用—reject-with控制返回錯(cuò)誤消息的類型。
DNAT:用在PREROUTING和OUTPUT鏈中。需要使用--to-dest指定轉(zhuǎn)換后的目標(biāo)地址。
如:iptables –t nat –A PREROUTING –p tcp –d 202.102.192.68 –dport 80 –jDNAT –to-dest 192.168.0.1-192.168.0.10
SNAT:用在POSTROUTING鏈中。修改數(shù)據(jù)包的源IP地址。需要使用—to-source
LOG:匹配的數(shù)據(jù)包記錄到日志中。有如下幾個(gè)參數(shù):
--log-level:指定日志等級(jí)。
--log-prefix:指定日志前綴,便于查看。
MASQUERADE:與SNAT相同,用于只有一個(gè)IP地址的情況下,為多端口復(fù)用。有一個(gè)選項(xiàng),--to-ports指定端口范圍,如:--to-ports 10000:20000.該選項(xiàng)不是必須的。
REDIRECT:重定向。比如把所有去往80端口的數(shù)據(jù)包去往HTTP代理。本地生成的數(shù)據(jù)包會(huì)被映射到127.0.0.1。只能用在PREROUTING和OUTPUT鏈中,只有一個(gè)選項(xiàng)—to-ports,指定端口,可以是一個(gè)端口,也可以是一個(gè)端口范圍。如—to-ports 8080
2.6Iptables策略配置方法
保存iptables規(guī)則:/etc/init.d/iptables save
另一種常用的是將所有的iptables規(guī)則寫入到腳本文件中,然后開機(jī)的時(shí)候,自動(dòng)執(zhí)行該腳本就可以了(/etc /rc.d/rc.local)。
如:/bin/bash ?iptables-scripts.sh
iptables策略的導(dǎo)入和導(dǎo)出:
導(dǎo)出:iptables-save –c > 文件名
-c:指定導(dǎo)出數(shù)據(jù)包和字節(jié)計(jì)數(shù)器的值。
導(dǎo)入:iptables-restore –c –n < 文件名
-c:指定導(dǎo)入數(shù)據(jù)包和字節(jié)計(jì)數(shù)器的值。
-n:指定在導(dǎo)入時(shí)不覆蓋已有的表或表內(nèi)的策略。
轉(zhuǎn)載于:https://blog.51cto.com/hezhang/1357197
超強(qiáng)干貨來(lái)襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的iptables tcp wrappers的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 欢迎您参加_ADT技术培训营
- 下一篇: 疯狂ios讲义之疯狂连连看游戏简介