RedHat7.2下使用IPTABLES实现IP转发其实挺简单的,只要你按照下面文章一步一步走就行!
1.内核编译
一般来讲,透明代理所在机器往往是带动整个局域网联入互联网的入口,因此该机器往往需要配置防火墙规则以对内部网络进行防护。因此在编译内核时也许要考虑将防火墙支持选项编译进去。
rpm -q kernel-headers kernel-source make dev86 #检查RPM包,如果不齐的补齐。
cd /usr/src/linux-xxxx #进入内核所在目录
一般来说需要在使用make menuconfig命令配置时打开如下选项:
- [*]Networking support
- [*]Sysctl support
- [*]Network packet filtering
- [*]TCP/IP networking
- [*]/proc filesystem support
- [*] Kernel/User netlink socket
- [*] Netlink device emulation
上面的部原本上几乎不用改,以下部份在IP: Netfilter Configuration
- [*] Connection tracking (required for masq/NAT)
- [*] FTP protocol support
- [*] IP tables support (required for filtering/masq/NAT)
- <*> limit match support
- [*] MAC address match support
- [*] Netfilter MARK match support
- [*] Multiple port match support
- [*] TOS match support
- [*] Connection state match support
- [*] Packet filtering
- [*] REJECT target support
- [*] Full NAT
- [*] MASQUERADE target support
- [*] REDIRECT target support
- [*] Packet mangling
- [*] TOS target support
- [*] MARK target support
- [*] LOG target support
然后make dep ; make clean ;make bzImage命令来编译内核。如果使用到了模块,还需要使用下面命令生成和安装模块make modules;make modules-install。
安装新内核后重新起动
另:/etc/sysconfig/network 为:
NETWORKING=yes
HOSTNAME="gateway"
FORWARD_IPV4=true
GATEWAYDEV=eth1
#p#
2.iptables的设置
在/etc/rc.d/目录下用touch命令建立firewall文件,执行chmod u+x firewall以更改文件属性,编辑/etc/rc.d/rc.local文件,在末尾加上/etc/rc.d/firewall以确保开机时能自动执行该脚本。 firewall文件内容为:
#!/bin/sh
echo "Enabling IP Forwarding..."
echo 1 > /proc/sys/net/ipv4/ip_forward
echo "Starting iptables rules..."
#Refresh all chains
/sbin/rmmod ipchains
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprboe ip_nat_ftp
/sbin/iptables -F INPUT
/sbin/iptables -F FORWARD
/sbin/iptables -F POSTROUTING -t nat
/sbin/iptables -P FORWARD DROP
/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.0/24 -j MASQUERADE #eth1为接Internet的网卡
#/sbin/iptables –t nat –A POSTROUTING –o ppp0 –j MASQUERADE #用于ppp0拨号
/sbin/iptables -A FORWARD -i eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -A FORWARD -s 192.168.1.0/24 -j ACCEPT
通过正文的介绍和了解,大家都能在自己的RedHat7.2系统下使用IPTABLES来实现IP转发了,感兴趣的朋友可以试试!
【编辑推荐】
- iptables-restore中文手册
- 一些iptables的常用应用
- 动态iptables防火墙之dynfw
- Linux防火墙的IPtables设置与用法
- 巧用iptables建立Linux防火墙
- 使用iptables封杀内网的bt软件
- 用iptables来防止web服务器被CC攻击