免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1711 | 回复: 6
打印 上一主题 下一主题

[网络管理] 请教:单机上作iptables是否需要启动nat模块? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-16 16:39 |只看该作者 |倒序浏览
想了解一下,我想自己写一个适合单机上网的脚本
通过电信LAN上网,就一台机子。该怎么设,我的机子也没有一个服务器
我希望尽量简洁
iptables.rule如下

#[root@test root]# mkdir -p /usr/local/virus/iptables
#[root@test root]# cd /usr/local/virus/iptables
#[root@test iptables]# vi iptables.rule
#!/bin/bash

# 0.0 var define
EXTIF="ppp0"
INIF="eth0"
INNET="192.168.0.0/24"

# 1.0 test kernal version
  kver=`uname -r | cut -c 1-3`
  if [ "$kver" != "2.4" ] && [ "$kver" != "2.5" ] && [ "$kver" != "2.6" ]; then
        echo "Your Linux Kernel Version may not be suported by this script!"
        echo "This scripts will not be runing"
        exit
  fi
  ipchains=`lsmod | grep ipchains`
  if [ "$ipchains" != "" ]; then
        echo "unload ipchains in your system"
        rmmod ipchains 2> /dev/null
  fi

# 2.0 load moudles
  PATH=/sbin:/bin:/usr/sbin:/usr/bin
  export PATH EXTIF INIF INNET EXTADDR WEBSERVADDR GATEWAY
  modprobe ip_tables            > /dev/null 2>&1
  modprobe iptable_nat          > /dev/null 2>&1
  modprobe ip_nat_ftp           > /dev/null 2>&1
  modprobe ip_nat_irc           > /dev/null 2>&1
  modprobe ip_conntrack         > /dev/null 2>&1
  modprobe ip_conntrack_ftp     > /dev/null 2>&1
  modprobe ip_conntrack_irc     > /dev/null 2>&1

# 3.0 first clear all iptable rules
  /sbin/iptables -F
  /sbin/iptables -X
  /sbin/iptables -Z
  /sbin/iptables -F -t nat
  /sbin/iptables -X -t nat
  /sbin/iptables -Z -t nat
#  /sbin/iptables -P INPUT   ACCEPT
  /sbin/iptables -P INPUT   DROP
  /sbin/iptables -P OUTPUT  ACCEPT
  /sbin/iptables -P FORWARD ACCEPT
  /sbin/iptables -t nat -P PREROUTING  ACCEPT
  /sbin/iptables -t nat -P POSTROUTING ACCEPT
  /sbin/iptables -t nat -P OUTPUT      ACCEPT

# 4.0 NAT
  /sbin/iptables -A INPUT -i lo -j ACCEPT
  if [ "$INIF" != "" ]; then
        /sbin/iptables -A INPUT -i $INIF -j ACCEPT
        echo "1" > /proc/sys/net/ipv4/ip_forward
        /sbin/iptables -t nat -A POSTROUTING -s $INNET -o $EXTIF -j MASQUERADE
  fi

# 5.0 allow icmp and established
  /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  AICMP="0 3 3/4 4 11 12 14 16 18"
  for tyicmp in $AICMP
  do
        /sbin/iptables -A INPUT -i $EXTIF -p icmp --icmp-type $tyicmp -j ACCEPT
  done

# 6.0 Allow services
  /sbin/iptables -A INPUT -p TCP -i $EXTIF --dport  22 -j ACCEPT        # SSH
  /sbin/iptables -A INPUT -p TCP -i $EXTIF --dport  25 -j ACCEPT        # SMTP
  /sbin/iptables -A INPUT -p UDP -i $EXTIF --dport  53 -j ACCEPT        # DNS
  /sbin/iptables -A INPUT -p TCP -i $EXTIF --dport  53 -j ACCEPT        # DNS
  /sbin/iptables -A INPUT -p TCP -i $EXTIF --dport  80 -j ACCEPT        # WWW
  /sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 110 -j ACCEPT        # POP3
  /sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 113 -j ACCEPT        # auth

各位看看,能用不,哪些还可以不用
我的linux是FC4,因为想稍微研究下,所以不用系统自己的设置工具,谢谢指教

论坛徽章:
0
2 [报告]
发表于 2006-05-16 16:57 |只看该作者
不同的需求,不同的脚本,遗憾的是我不知道你的需求
这个脚本写的很规矩很严谨,且里面还有内核版本判断机制,好似出自某为高人的手
其实如果要读懂了每句话,需要什么不需要什么自然而然就明了了

论坛徽章:
0
3 [报告]
发表于 2006-05-16 17:14 |只看该作者
呵呵,版主见笑了
这个脚本是一个小公司实际的脚本里我改的,但它的不是单机是个局域网的
至于需求嘛,我说了没有服务器,只是用来上网,家里用的那种,就一台机子,ftp都不用
ssh用不用都无所谓,DNS需要开吗?那个auth是什么?
我刚装的fc4,没升级内核,但也是2.6的确不用检验模块
我最想搞清楚的是,通过ppp0协议上网机子是否需要启动nat,概念还不是很清楚。我想虽然在同一机子上,但对应着不同的网络  有点拿不准,请高手再帮帮忙
如果不载入nat
那么脚本文件这样行不?
#!/bin/bash

# 0.0 var define
EXTIF="ppp0"
INIF="eth0"
INNET="192.168.0.0/24"
# 2.0 load moudles
  PATH=/sbin:/bin:/usr/sbin:/usr/bin
  export PATH EXTIF INIF INNET EXTADDR WEBSERVADDR GATEWAY
  modprobe ip_tables            > /dev/null 2>&1
  modprobe ip_conntrack         > /dev/null 2>&1
# 3.0 first clear all iptable rules
  /sbin/iptables -F
  /sbin/iptables -X
  /sbin/iptables -Z
  /sbin/iptables -F -t nat
  /sbin/iptables -X -t nat
  /sbin/iptables -Z -t nat
  /sbin/iptables -P INPUT   DROP
  /sbin/iptables -P OUTPUT  ACCEPT
  /sbin/iptables -P FORWARD ACCEPT
# 4.0 NAT
  /sbin/iptables -A INPUT -i lo -j ACCEPT
  if [ "$INIF" != "" ]; then
        /sbin/iptables -A INPUT -i $INIF -j ACCEPT
        echo "1" > /proc/sys/net/ipv4/ip_forward
        /sbin/iptables -t nat -A POSTROUTING -s $INNET -o $EXTIF -j MASQUERADE
  fi

# 5.0 allow icmp and established
  /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
  AICMP="0 3 3/4 4 11 12 14 16 18"
  for tyicmp in $AICMP
  do
        /sbin/iptables -A INPUT -i $EXTIF -p icmp --icmp-type $tyicmp -j ACCEPT
  done

# 6.0 Allow services
    /sbin/iptables -A INPUT -p TCP -i $EXTIF --dport  25 -j ACCEPT        # SMTP
  /sbin/iptables -A INPUT -p UDP -i $EXTIF --dport  53 -j ACCEPT        # DNS
  /sbin/iptables -A INPUT -p TCP -i $EXTIF --dport  53 -j ACCEPT        # DNS
  /sbin/iptables -A INPUT -p TCP -i $EXTIF --dport  80 -j ACCEPT        # WWW
  /sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 110 -j ACCEPT        # POP3
  /sbin/iptables -A INPUT -p TCP -i $EXTIF --dport 113 -j ACCEPT        # auth

论坛徽章:
0
4 [报告]
发表于 2006-05-16 17:19 |只看该作者
明白了,仅仅是对本机上网的防火墙设置吗?那这样就可以了

  1. #! /bin/bash
  2. service iptables stop
  3. iptables -P INPUT DROP
  4. iptables -A INPUT -i lo -j ACCEPT
  5. iptables -m state --state RELATED,ESTABLISHED -j ACCEPT
复制代码

论坛徽章:
0
5 [报告]
发表于 2006-05-16 17:35 |只看该作者
这样简单??
但是这样设置,端口好像没有限定啊
我只想开80和邮件的端口

我是想作个设计,不一定要用。所以我想严谨点,呵呵
谢谢版主,能在看看?
还有就是
我最想搞清楚的是,通过ppp0协议上网机子是否需要启动nat,概念还不是很清楚。我想虽然在同一机子上,但对应着不同的网络  有点拿不准,

为什么不用nat呢,连接口那些都不写吗

论坛徽章:
0
6 [报告]
发表于 2006-05-16 17:44 |只看该作者
NAT 是 Network Address Translator 的意思,用于做网关的情况下,单机不需要
若想打开什么端口,需要知道
1、要打开什么端口
2、该端口使用什么协议
3、是打开本机的还是打开 NAT 用户的
4、数据包从什么设备接口进来

针对你的 ADSL 情况,针对做 WEB 和 SMTP 服务器的情况,可以改为

  1. #! /bin/bash
  2. service iptables stop
  3. iptables -P INPUT DROP
  4. iptables -A INPUT -i lo -j ACCEPT
  5. iptables -A INPUT -i ppp0 -p tcp -m multiport --dports 25,80,110 -j ACCEPT
  6. iptables -m state --state RELATED,ESTABLISHED -j ACCEPT
复制代码


有这方面兴趣可以看一下这个东西
http://bbs.chinaunix.net/viewthr ... &extra=page%3D1

论坛徽章:
0
7 [报告]
发表于 2006-05-16 17:57 |只看该作者
非常感谢,你的ppt我看过,现在去下mp3来听下
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP