集群IPtables转发与防火墙
子網集群通過接入公網的服務器Iptables轉發上網
1. 對iptables進行初始化工作
清空filter表
iptables -F
清空nat表
iptables -t nat -F
默認禁止所有傳入連接
iptables -P INPUT DROP
默認允許所有傳出連接
iptables -P OUTPUT ACCEPT
默認禁止路由轉發
iptables -P FORWARD DROP
2.打開系統的IP轉發功能
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
不用重啟,立即生效
sysctl -p
3. 配置iptables的傳入連接
允許環回接口的傳入連接
iptables -A INPUT -i lo -j ACCEPT
允許已建立的傳入連接
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
?
允許SSH傳入連接
iptables -A INPUT -i eno1? -p tcp –dport 22 -j ACCEPT ? ? ? 根據自己外網網卡配置
4. 配置iptables的NAT轉發---實現子網上網
允許來自內網的傳出連接
iptables -A FORWARD -s 192.168.10.0/24 -j ACCEPT
開啟源NAT功能
即將來自內網主機的IP轉換為外網IP。
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT –to 【公網ip】
5. 端口轉發
通過端口轉發實現子網內服務器特定端口對外服務功能
iptables -t nat -A PREROUTING -p tcp -m tcp --dport 【公網端口】 -j DNAT --to-destination 【內網IP】: 指定子網服務器端口
eg:iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8001 -j DNAT --to-destination 172.31.2.51:22? 將公網8001端口轉向子網特定服務器22端口
?
如上實現則為所有客戶端均可訪問,若要指定ip可以訪問則需要
iptables -t nat -A PREROUTING 【指定IP地址】-p tcp -m tcp --dport 【公網端口】 -j DNAT --to-destination 【內網IP】: 指定子網服務器端口
6.禁止訪問
如果需要禁止某些ip訪問端口則可以在filter中添加規則
iptables -I INPUT -p tcp --dport 8001 -j DROP ?? 禁止所有訪問該端口的請求
iptables -A INPUT -p tcp --dport 8001 -j ACCEPT? 開啟同理
允許特定ip訪問特定端口則可僅對特定IP開放端口
-A INPUT -s 【特定ip】 -p tcp -m tcp --dport 8001 -j ACCEPT
iptables注意事項
使用指令iptables +xxxxxx會將iptables規則寫入內存,重啟iptables失效
如果想要把配置保存起來,可以執行 service iptables save?
這樣就不會每次重啟 iptables 的時候配置就失效了。
當/etc/sysconfig/iptables 內容與內存中不一致時,重啟iptables會出現錯誤,需要先保存在重啟,重啟讀取的是/etc/sysconfig/iptables中的配置文件。
不要隨便禁用22端口,保證ssh可以正常運行,可以省去很多麻煩
?
轉載于:https://www.cnblogs.com/freedom314/p/9258730.html
總結
以上是生活随笔為你收集整理的集群IPtables转发与防火墙的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【ELK】之Kibana使用
- 下一篇: springBoot AOP环绕增强、自