红联Linux门户
Linux帮助

RedHat 9上用iptables做NAT网关+远程使用kiwisyslog记录日志

发布时间:2006-10-02 00:46:41来源:红联作者:phpjava
RedHat 9上用iptables做NAT网关- -我使用中的配置

一、将下列内容加入/etc/rc.local文件中:eth0绑内网IP eth1绑外网IP
################
[root@RHNAT01 root]# vi /etc/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
route add -net 0.0.0.0 gw 外网网关 netmask 0.0.0.0 dev eth1
route add -net 内网网段A gw 内网网关 netmask 255.255.240.0 dev eth2
route add -net 220.114.128.0 gw 211.162.0.129 netmask 255.255.224.0 dev eth2
route add -net 内网网段B gw 内网网关 netmask 255.255.255.0 dev eth2
route add -net 内网网段C gw 内网网关 netmask 255.255.255.0 dev eth2
route add -net 内网网段D gw 内网网关 netmask 255.255.0.0 dev eth2
route add -net 内网网段E gw 内网网关 netmask 255.255.0.0 dev eth2
####NAT#####
echo 1048576 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=1800
echo "1" > /proc/sys/net/ipv4/tcp_syncookies
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo 268435456 >/proc/sys/kernel/shmall
echo 268435456 >/proc/sys/kernel/shmmax
echo "1024 65000" > /proc/sys/net/ipv4/ip_local_port_range
#####
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/iptables --flush INPUT
/sbin/iptables --flush FORWARD
/sbin/iptables --flush POSTROUTING --table nat
/sbin/iptables --policy FORWARD DROP
/sbin/iptables --table nat --append POSTROUTING --out-interface eth1 --source 内网网段A/19 --jump MASQUERADE
/sbin/iptables --table nat --append POSTROUTING --out-interface eth1 --source 内网网段B/18 --jump MASQUERADE
/sbin/iptables --table nat --append POSTROUTING --out-interface eth1 --source 内网网段C/24 --jump MASQUERADE
/sbin/iptables --table nat --append POSTROUTING --out-interface eth1 --source 内网网段D/24 --jump MASQUERADE
/sbin/iptables --append FORWARD --in-interface eth1 --match state --state ESTABLISHED,RELATED --jump ACCEPT
/sbin/iptables --append FORWARD --source 内网网段A/19 --jump ACCEPT
/sbin/iptables --append FORWARD --source 内网网段B/18 --jump ACCEPT
/sbin/iptables --append FORWARD --source 内网网段C/24 --jump ACCEPT
/sbin/iptables --append FORWARD --source 内网网段D/24 --jump ACCEPT
/sbin/iptables iptables -I FORWARD -m state --state NEW -j LOG --log-level debug
二、日志保存
vi /etc/syslog.conf
在原来不动的基础上添加
#remote net recevie stepup

kern.=debug @*.*.*.X #保存本地就用此句 -/var/log/iptables.log
*.* @*.*.*.X

至此完成Iptables Nat的配置和远程日志发送设置

几个命令

################
service syslog restart
Syslog服务重新载入
iptables -L
这个命令会尽可能地以易读的形式显示当前正在使用的规则集。比如,它会尽量用文件/etc/services里相应的名字表示端口号,用相应的DNS记录表示IP地址。
但后者可能会导致一些问题,例如,它想尽力把LAN的IP地址(如192.168.1.1)解析成相应的名字。但192.168.0.0/16这个网段是私有的,也就是说,它只能
用在局域网里,而不能在Internet里使用,所以它不会被Internet上的DNS服务器解析。因此,当解析这个地址时,命令就好像停在那儿了。为了避免这种情况
的发生,我们就要使用选项:
iptables -L -n
如果你想看看每个策略或每条规则、每条链的简单流量统计,可以在上面的命令后再加一个verbose标志,如下:
iptables -L -n -v
不要忘了,iptables -L命令还可以查看nat表和mangle表的内容哦(更不要忘了,默认的表是filter),只需要使用-t选项,比如我们只想看nat表的规则,就
用下面的命令:
iptables -L -t nat
在/proc里,可能还有一些文件你会感兴趣。比如,你可以在连接跟踪记录表里看到当前有哪些连接。这个表包含了当前的所有连接,你还可以通过它了解到每个
连接处于什么状态。要注意,这个表是不能编辑的,即使可以,也不应该更改它。可以用下面的命令查看这个表:
cat /proc/net/ip_conntrack | less
此命令会显示当前所有被跟踪的连接,但要读懂那些记录可是有些难度哦。
修正和清空iptables的命令 iptables -D INPUT 10
iptables -F INPUT
iptables --list查看过滤表
文章评论

共有 56 条评论

  1. 218.253.90.* 于 2007-07-17 16:54:55发表:

    http://607f1efafc66fb74d39a2a12e1ca5bdd-t.xkktxb.org 607f1efafc66fb74d39a2a12e1ca5bdd http://607f1efafc66fb74d39a2a12e1ca5bdd-b1.xkktxb.org 607f1efafc66fb74d39a2a12e1ca5bdd http://607f1efafc66fb74d39a2a12e1ca5bdd-b3.xkktxb.org 8d1f2bfe3cbc5359328d95464cab8b7c