iptables路由转换
iptables使用
- iptables簡(jiǎn)介
- iptables路由表
- 表(功能)<—— ——>鏈(鉤子)
- 處理動(dòng)作(target)
- iptables的幫助信息
- iptables路由轉(zhuǎn)發(fā)
- iptables端口轉(zhuǎn)發(fā)
iptables簡(jiǎn)介
iptables其實(shí)不是真正的防火墻,我們可以把它理解成一個(gè)客戶端代理,用戶通過iptables這個(gè)代理,將用戶的安全設(shè)定執(zhí)行到對(duì)應(yīng)的"安全框架"中,這個(gè)"安全框架"才是真正的防火墻,這個(gè)框架的名字叫netfilter
netfilter才是防火墻真正的安全框架(framework),netfilter位于內(nèi)核空間。
iptables其實(shí)是一個(gè)命令行工具,位于用戶空間,我們用這個(gè)工具操作真正的框架。
netfilter/iptables(下文中簡(jiǎn)稱為iptables)組成Linux平臺(tái)下的包過濾防火墻,與大多數(shù)的Linux軟件一樣,這個(gè)包過濾防火墻是免費(fèi)的,它可以代替昂貴的商業(yè)防火墻解決方案,完成封包過濾、封包重定向和網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)等功能。
Netfilter是Linux操作系統(tǒng)核心層內(nèi)部的一個(gè)數(shù)據(jù)包處理模塊,它具有如下功能:
網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translate)
數(shù)據(jù)包內(nèi)容修改
以及數(shù)據(jù)包過濾的防火墻功能
所以說,雖然我們使用service iptables start啟動(dòng)iptables"服務(wù)",但是其實(shí)準(zhǔn)確的來說,iptables并沒有一個(gè)守護(hù)進(jìn)程,所以并不能算是真正意義上的服務(wù),而應(yīng)該算是內(nèi)核提供的功能
iptables路由表
我們自定義的所有規(guī)則,都是這四種分類中的規(guī)則,所有規(guī)則都存在于這4張“表”中
表(功能)<—— ——>鏈(鉤子)
filter表中的規(guī)則可以被鏈:INPUT,FORWARD,OUTPUT 使用
nat表中的規(guī)則可以被鏈:PREROUTING,OUTPUT,POSTROUTING,INPUT 使用
mangle表中的規(guī)則可以被鏈:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING 使用
raw表中的規(guī)則可以被鏈:PREROUTING,OUTPUT使用
處理動(dòng)作(target)
ACCEPT:允許數(shù)據(jù)包通過
DROP:直接丟棄數(shù)據(jù)包,不給任何回應(yīng)信息
REJECT:拒絕數(shù)據(jù)包通過,必要時(shí)會(huì)給數(shù)據(jù)端發(fā)送一個(gè)響應(yīng)的信息,客戶端剛請(qǐng)求就會(huì)收到拒絕的信息
SNAT:源地址轉(zhuǎn)換,解決內(nèi)網(wǎng)用戶用同一個(gè)公網(wǎng)地址上網(wǎng)的問題
MASQUERADE:是SNAT的一種特殊形式,適用于動(dòng)態(tài)的,臨時(shí)會(huì)變的IP上
DNAT:目標(biāo)地址轉(zhuǎn)換
REDIRECT:在本機(jī)做端口映射
LOG:在/var/log/messages文件中記錄日志信息,然后將數(shù)據(jù)包傳遞給下一條規(guī)則,也就是說除了記錄以外不對(duì)數(shù)據(jù)包做任何其他操作,任然讓下一天規(guī)則去匹配
iptables的幫助信息
Usage: iptables -[AD] chain rule-specification [options]
iptables -I chain [rulenum] rule-specification [options]
iptables -R chain rulenum rule-specification [options]
iptables -D chain rulenum [options]
iptables -[LS] [chain [rulenum]] [options]
iptables -[FZ] [chain] [options]
iptables -[NX] chain
iptables -E old-chain-name new-chain-name
iptables -P chain target [options]
iptables -h (print this help information)
指令Commands:
Either long(單詞,以 – 做前導(dǎo)) or short(字母,區(qū)分大小寫,以 - 做前導(dǎo)) options are allowed.
–append -A chain Append to chain
–delete -D chain Delete matching rule from chain
–delete -D chain rulenum
Delete rule rulenum (1 = first) from chain
–insert -I chain [rulenum]
Insert in chain as rulenum (default 1=first)
–replace -R chain rulenum
Replace rule rulenum (1 = first) in chain
–list -L [chain [rulenum]]
List the rules in a chain or all chains
–list-rules -S [chain [rulenum]]
Print the rules in a chain or all chains
–flush -F [chain] Delete all rules in chain or all chains
–zero -Z [chain [rulenum]]
Zero counters in chain or all chains
–new -N chain Create a new user-defined chain
–delete-chain
-X [chain] Delete a user-defined chain
–policy -P chain target
Change policy on chain to target
–rename-chain
-E old-chain new-chain
Change chain name, (moving any references)
參數(shù)(選項(xiàng))Options:
[!] --proto -p proto protocol: by number or name, eg. `tcp’
[!] --source -s address[/mask][…]
source specification
[!] --destination -d address[/mask][…]
destination specification
[!] --in-interface -i input name[+]
network interface name ([+] for wildcard)
–jump -j target
target for rule (may load target extension)
–goto -g chain
jump to chain with no return
–match -m match
iptables路由轉(zhuǎn)發(fā)
需要轉(zhuǎn)發(fā)的主機(jī)修改網(wǎng)關(guān)為路由轉(zhuǎn)換主機(jī)IP地址
network:version: 2renderer: networkdethernets:eno1:addresses: [10.1.65.100/16]gateway4: 10.1.65.49 #此處修改路由主機(jī)IP地址nameservers:addresses: [10.1.1.1, 223.5.5.5]]# echo ‘net.ipv4.ip_forward = 1’ >> /etc/sysctl.conf
]# sysctl -p
net.ipv4.ip_forward = 1
]# iptables -t nat -A POSTROUTING -o 外網(wǎng)網(wǎng)卡 -s 內(nèi)網(wǎng)IP -j SNAT --to 外網(wǎng)IP地址
]# netplay apply
iptables端口轉(zhuǎn)發(fā)
]# iptables -t nat -A PREROUTING -p tcp --dport 8090 -j DNAT --to-destination 192.168.1.10:8080#8090為轉(zhuǎn)發(fā)后目標(biāo)主機(jī)的代理端口#192.168.1.10:8080為需要轉(zhuǎn)發(fā)的端口 ]# iptables -t nat -A POSTROUTING -p tcp -d 192.168.1.10 --dport 8080 -j SNAT --to-source 192.168.1.20#192.168.1.20為代理主機(jī)IP地址總結(jié)
以上是生活随笔為你收集整理的iptables路由转换的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 迎新:Apache IoTDB 喜迎 2
- 下一篇: .net ImageProcessor