Linux系统——iptables网络安全服务:实现共享上网方法

实现共享上网方法

两台虚拟机服务器模拟测试:其中一台作为共享上网的服务器,需要可以连接网络,可以正常上网。另一台关闭外网网卡,只留下内网网卡,并且让内网网卡的网关设置为共享上网服务器的内网网卡地址。

  • 防火墙NAT表示配置说明

iptables NAT:(配置NAT表示就是配置以下两个链)01. postrouting02. prerouting

  • iptables实现共享上网方法

第一步:配置内网服务器,设置网关地址

/etc/init.d/iptables stop --- 内网服务器停止防火墙服务ifdown eth0 --- 模拟关闭内网服务器外网网卡setup --- 修改内网网卡网关和DNS地址信息

Linux系统——iptables网络安全服务:实现共享上网方法

说明:内网服务器网关地址指定为共享上网服务器内网网卡地址

Linux系统——iptables网络安全服务:实现共享上网方法

第二步:配置共享上网服务器,开启共享上网服务器路由转发功能

Linux系统——iptables网络安全服务:实现共享上网方法

第三步:配置共享上网服务器,实现内网访问外网的NAT映射

iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.200-s 172.16.1.0/24 --- 指定将哪些内网网段进行映射转换-o eth0 --- 指定在共享上网哪个网卡接口上做NAT地址转换-j SNAT --- 将源地址进行转换变更-j DNAT --- 将目标地址进行转换变更--to-source ip地址 --- 将源地址映射为IP地址--to-destination ip地址 --- 将目标地址映射为IP地址

Linux系统——iptables网络安全服务:实现共享上网方法

内网访问外网NAT映射

第四步:测试

Linux系统——iptables网络安全服务:实现共享上网方法

在无外网eth0的情况下可以上网,测试成功

扩展如果开启:forward默认drop策略,如果配置forward链iptables -A FORWARD -i eth1 -s 172.16.1.0/24 -j ACCEPTiptables -A FORWARD -o eth0 -s 172.16.1.0/24 -j ACCEPTiptables -A FORWARD -i eth0 -d 172.16.1.0/24 -j ACCEPTiptables -A FORWARD -o eth1 -d 172.16.1.0/24 -j ACCEPT

iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j MASQUERADE

配置映射方法

01. 指定哪些网段需要进行映射 -s 172.16.1.0/24 02. 指定在共享服务器哪个网口做映射 -o eth003. 用什么方法做映射 -j SNAT/DNAT04. 映射成什么地址 --to-source ip地址/--to-destination ip地址

  • iptables实现外网IP的端口映射到内网IP的端口

需求:将网关的IP和9000端口映射到内网服务器的22端口

端口映射 10.0.0.200:9000 -->172.16.1.200:22

实现命令:iptables -t nat -A PREROUTING -d 10.0.0.200 -i eth0 -p tcp --dport 9000 -j DNAT --to-destination 172.16.1.200:22(1)-d 10.0.0.200目标地址。(2)-j DNAT 目的地址改写

  • iptables项目案例:IP一对一映射 172.16.1.10 == 10.0.0.10

辅助IP:ip addr add 10.0.0.81/24 dev eth0 label eth0:0 #<==辅助IPiptables -t nat -I PREROUTING -d 10.0.0.81 -j DNAT --to-destination 172.16.1.51iptables -t nat -I POSTROUTING -s 172.16.1.51 -o eth0 -j SNAT --to-source 10.0.0.81#适合内网的机器访问NAT外网的IPiptables -t nat -I POSTROUTING -s 172.16.1.0/255.255.2550 -d 10.0.0.81 -j SNAT --to-source 172.16.1.8检查:ping 10.0.0.81 -ttcpdump|grep -i icmp(两台机器上分别监测)telnet 10.0.0.81 873(51上提前配好)

  • 映射多个外网IP上网

方法1:iptables -t nat -A POSTROUTING -s 10.0.1.0/255.255.240.0 -o eth0 -j SNAT --to-source 124.42.60.11-124.42.60.16三层交换机或路由器,划分VLAN。方法2:iptables -t nat -A POSTROUTING -s 10.0.1.0/22 -o eth0 -j SNAT --to-source 124.42.60.11iptables -t nat -A POSTROUTING -s 10.0.2.0/22 -o eth0 -j SNAT --to-source 124.42.60.12扩大子网,增加广播风暴。

  • 系统防火墙与网络内核优化标准参数

有关iptables的内核优化调整内核参数文件/etc/sysctl.conf生产环境的某个服务器的配置:------------解决time-wait过多
-------------net.ipv4.tcp_fin_timeout = 2net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_tw_recycle = 1net.ipv4.tcp_syncookies =
1net.ipv4.tcp_keepalive_time =
600net.ipv4.tcp_max_tw_buckets =
36000----------------------------------net.ipv4.ip_local_port_range = 4000
65000net.ipv4.tcp_max_syn_backlog =
16384net.ipv4.route.gc_timeout =
100net.ipv4.tcp_syn_retries =
1net.ipv4.tcp_synack_retries =
1----------------------------------#dmesg里面显示 ip_conntrack: table full, dropping packet.的错误提示,什么原因?如何解决?#iptables优化net.nf_conntrack_max =
25000000net.netfilter.nf_conntrack_max =
25000000net.netfilter.nf_conntrack_tcp_timeout_established =
180net.netfilter.nf_conntrack_tcp_timeout_time_wait =
120net.netfilter.nf_conntrack_tcp_timeout_close_wait =
60net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120

本次完,谢谢大家的支持 ——ke.ke


分享到:


相關文章: