Chinaunix首页 | 论坛 | 博客
  • 博客访问: 570371
  • 博文数量: 201
  • 博客积分: 7734
  • 博客等级: 少将
  • 技术积分: 1994
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-09 19:18
文章分类

全部博文(201)

文章存档

2011年(28)

2010年(173)

分类: LINUX

2010-06-17 23:47:00

uroute -n 查看路由表
TCP_wrapper
ALL: [::1]
netfilter 模块对ISO的2\3\4层做过滤。只对包头过滤。
cd /lib/modules/2.6.18-53.el5xen/kernel/net/ipv4/netfilter
使用就加载。不使用则不加载。
如:lsmod |grep ntfs
 我们是通过iptables这个接口来管理netfilter这个模块。
防火墙的过滤是内核中集成的。
防火墙是通一netfliter这个模块控制的。
mangle 透明代理
Prerouting :在路由判断这前做的判断

iptables -A INPUT -i eth+ -p tcp --dport 80 -j LOG --log-prefix "iptables_80_alert" --log_level info
iptables -A IPNUT -s 192.168.0.1 -j DROP
2.168.0.0/24 -j REJECT
-t  表的名称
-A  append(追加)链的名称  是表里面的一个元素
-s  表示源地址
-d  表示目的地址
-j   最后的动作
-L   查看iptables表内容
-vL  详细内容
iptables -t nat -L 查看nat表
iptables -L --line-numbers 为条目编号
iptables -I INPUT 9 -s 192.168.0.200 -j REJECT
-I 插入
eth+ 所有的接口
eth1+  eth1的所有子接口
-i eth0 -s '!' 192.168.0.0/24 反向选择
iptables -A FORWARD -s 192.168.2.1 -d 192.168.1.1
--p tcp --port 25 -j REJCEP
iptables -t nat PREPOSTING -i eth0
iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 25 -j ACCEPT
iptalbes -S OUTPUT -d 192.168.0.0/24 -p tcp --sport 25 -j ACCEPT
                                            --dport 1024:65535  1024到65535端口
                                                    1024:  大于1024号端口
                                                    :1024  小于1024号端口
1、要求允许192.168.0.0/24通过eth0访问本机的smtp协议:
iptables -A INPUT -i eth0 -s 192.168.0.0/24 -p tcp --dport 25 -j ACCEPT
iptables -A OUTPUT -o eth0 -d 192.168.0.0/24 -p tcp --sport 25 -j ACCEPT
2、允许192.168.0.0/24可以通过pop3协议接收本机邮件
iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 100 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/24 -p tcp --sport 100 -j ACCEPT
1 iptables -P INPUT DROP 默认策略 是最后执行的。
iptables -A INPUT -j REJECT  这条一定要写在最后面
iptables -F  刷新所有的策略  不能清空默认策略
iptables -Z  计数器清零
iptables -t nat -F  清除所有的nat策略
iptables -X  清除自定义链
iptables -N RHCE  自定链
iptables -A INPUT -j RHCE  把它加到最后面。
iptables -A RHCE -s 192.168.1.0/24 -p tcp -dport 25 -j REJECT
iptables -F RHCE
iptables -X
iptables -L
service iptalbes stop  关闭了防火墙
状态跟踪防火墙
NEW : 第一次发起请求的数据包
ESTABLISHED: 己建立连接的数据包
RELATED: server 回应 client 的数据包
INVALID : 无效的数据包
状态跟踪的实验:
iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 5900 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/24 -p tcp --sport 5900 -j ACCEPT
iptables -P INPUT DROP 位置放到哪个地方无所谓
iptables -P OUTPUT DROP
iptables -A INPUT -j DROP  这两一定要放在最后面
iptalbes -A OUTPUT -j DROP
iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 21 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/24 -p tcp --sport 21 -j ACCEPT
iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 20 -j ACCEPT
iptables -A OUTPUT -p 192.168.0.0/24 -p tcp --sport 20 -j ACCEPT
iptables -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state NEW -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -m state --state NEW -j DROP

iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
加载模块:
modprobe ip_conntrack_ftp
modprobe ip_conntrack_tfpt
modprobe ip_nat_ftp
modprobe ip_nat_tftp
iptables -P 不能用REJECT
默认策略不管怎么样都是在最后匹配。
iptables -p INPUT -j DROP
iptables -P OUTPUT -j DROP
iptables -A INPUT -s 192.168.0.15 -p tcp --dport 5900 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.15 -p tcp --sport 5900 -j ACCEPT
iptables -I INPUT -j RHEL  把INPUT链丢到RHEL链
默认策略不能清空
service iptables save 把iptables的策略放入/etc/sysconfig/iptables 这样
下次重启才会生效。
vim /etc/sysconfig/iptables-config
Network Address Translation (NAT)
DNAT  外网用户访问内网时使用。
SNAT
INBOUND
iptalbes -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-dest 192.168.0.20
访问这里的80端口就转到192.168.0.20这台主机
OUTBOUND
iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-dest 192.168.0.200:3128
把往外发的80端口转到我们内网的192.168.0.200的3128端口去。
iptables -t nat -A PROTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTOUTING -j SNAT --to-source 1.2.3.4
 
远程管理iptables:
at  恢复最后一次好的配置:
实验Server1 firewall/iptables.doc 
============================================================================
允许本网络的计算机可以访问到本防火墙的SSH服务,并且允许防火墙可以连接到网络中的其他任何计算机:
#SSH Server:
iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 22 -j ACCEPT  从192.168.0.0/24这个网段进来的。
iptables -A OUTPUT -d 192.168.0.0.24 -p tcp --sport 22 -j ACCEPT 出去到192.168.0.0/24这个网段的。
#SSH Client:
iptables -A OUTPUT -s 192.168.0.15 -p tcp --dport 22 -j ACCEPT 从我们本机出去的,对方端口为22号,我方随机
iptables -A INPUT -d 192.168.0.15 -p tcp --sport 22 -j ACCEPT  从我们本机进来的。对方端口为22号,我方随机
========================================================================================
允许本网络的计算机可以访问到本防火墙的SSH服务,并且允许防火墙可以连接到网络中的其他任何计算机:
iptables -A INPUT -s 192.168.0.0/24 -p icmp --icmp-type echo-request -j ACCEPT  外来的
iptables -A OUTPUT -s 192.168.0.0/24 -p icmp --icmp-type echo-reply -j ACCEPT   本机出的
==========================================================================================
#icmp request:
iptables -A INPUT -s 192.168.0.0/24 -p icmp --icmp-type 8 (echo-request) -j ACCEPT
iptalbes -A OUTPUT -d 192.168.0.0/24 -p icmp --icmp-type 0 (echo-reply) -j ACCEPT
#icmp echo:
  iptables -A OUTPUT -d 192.168.0.0/24 -p icmp --icmp-type 8 (echo-request) -j ACCEPT
==iptables -A OUTPUT -s 192.168.0.0/24 -p icmp --icmp-type 0 (echo-reply) -j ACCEPT
iptables -A INPUT -s 192.168.0.0/24 -p icmp --icmp-type 0 (echo-reply) -j ACCEPT
========================================================================
ping通127.0.0.1:
iptables -A INPUT -d 127.0.0.1 -p icmp --icmp-type echo-reply -j ACCEPT    允许来自本机的回应 (进)
iptables -A INPUT -d 127.0.0.1 -p icmp --icmp-type echo-request -j ACCEPT  允许来自本机的请求
iptables -A OUTPUT -s 127.0.0.1 -p icmp --icmp-type echo-reply -j ACCEPT   允许自由本机出的回应 (出)
iptables -A OUTPUT -s 127.0.0.1 -p ICMP --icmp-type echo-request -j ACCEPT 允许自由本机出的请求
ping通127.0.0.1的另一种方法:
iptables -A INPUT -s 127.0.0.1 -p icmp --icmp-type echo-reply -j ACCEPT    允许来自本机的回应   (进)
iptables -A INPUT -s 127.0.0.1 -p icmp --icmp-type echo-request -j ACCEPT  允许来自本机的请求
iptables -A OUTPUT -d 127.0.0.1 -p icmp --icmp-type echo-reply -j ACCEPT   允许去ping127.0.0.1这台主机   (出)
iptables -A OUTPUT -d 127.0.0.1 -p icmp --icmp-type echo-request -j ACCEPT 允许去ping127.0.0.1这台主机的请求
=========================================================================
主机192.168.0.15:
  service iptables start (iptables -P INPUT DROP;iptables -P OUTPUT DROP):
 service iptables stop
以下操作都在192.168.0.15上做:
一、只可以192.168.0.30ping通192.168.0.15,不可以192.168.0.15ping通192.168.0.30.用两种方法:
 1、iptables -A INPUT -s 192.168.0.30 -p icmp --icmp-type echo-request -j ACCEPT
     iptables -A OUTPUT -d 192.168.0.30 -p icmp --icmp-type echo-reply -j ACCEPT
 2、iptables -A OUTPUT -s 192.168.0.15 -p icmp --icmp-type echo-reply -j ACCEPT
      iptables -A INPUT -d 192.168.0.15 -p icmp --icmp-type echo-request -j ACCEPT
二、只可以192.168.0.15ping通192.168.0.30,不可以192.168.0.30ping通192.168.0.15.用两种方法:
 1、iptables -A OUTPUT -s 192.168.0.15 -p icmp --icmp-type echo-request -j ACCEPT
      iptables -A INPUT -d 192.168.0.15 -p icmp --icmp-type echo-reply -j ACCEPT
 2、iptables -A INPUT -s 192.168.0.30 -p icmp --icmp-type echo-reply -j ACCEPT
     iptables -A OUTPUT -d 192.168.0.30 -p icmp --icmp-type echo-request -j ACCEPT
request:请求 8
reply :回应 0
==========================================================================
iptables -A OUTPUT -s 192.168.0.15 -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -d 192.168.0.15 -p tcp --sport 22 -j ACCEPT==iptable -A INPUT -s 192.168.0.30 -p tcp --dport 22 -j ACCEPT
 
环境:192.168.0.30 (service iptables stop)  ftp_client
      192.168.0.15 (service iptables start;iptables -P INPUT DROP;iptables -P OUTPUT DROP)  ftp_server
要求:ftp_client > ftp_server
 iptables -A INPUT -d 192.168.0.30 -p tcp -j ACCEPT
  iptables -A INPUT -s 192.168.0.30 -p tcp -j ACCEPT
 iptables -A OUTPUT -d 192.168.0.30 -p tcp -j ACCEPT  
 iptables -A OUTPUT -s 192.168.0.15 -p tcp -j ACCEPT
 
iptables -A INPUT -s 192.168.0.30 -d 192.168.0.15 -p tcp --dport 21 --sport 1024: -j ACCEPT
iptables -A OUTPUT -s 192.168.0.15 -d 192.168.0.30 -p tcp --dport 1024: --sport 21 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.30 -s 192.168.0.15 -p tcp --sport 1024: --dport 1024: -j ACCEPT
iptables -A INPUT -s 192.168.0.15 -d 192.168.0.30 -p tcp --dport 1024: --sport 1024: -j ACCEPT
建立起命令通道:
iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 21 -j ACCEPT 
iptables -A OUTPUT -d 192.168.0.0/24 -p tcp --sport 21 -j ACCEPT
用主动模式建立数据通道:
iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 20 -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/24 -p tcp --dport 20 -j ACCEPT
建立被动通道:
iptables -A INPUT -s 192.168.0.0/24 -p tcp --dport 1024: -j ACCEPT
iptables -A OUTPUT -d 192.168.0.0/24 -p tcp --sport 1024: -j ACCEPT
状态跟踪:
iptables -A INPUT  -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

当internet的计算机访问eth0接口SSH服务时自动转发到内网计算机192.168.0.X:
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-dest 192.168.0.234

双网卡转发:
外网进内网:
iptables -t nat -A PREROUTING -i eth0 -j DNAT --to-dest 192.168.0.4
内网出外网:
iptables -t nat -A POSTROUTING -j SNAT --to-source 202.101.23.34
阅读(1110) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~