LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 515|回复: 5

关于iptables[已解结]

[复制链接]
发表于 2009-10-1 20:20:39 | 显示全部楼层 |阅读模式
关于iptables想问下
iptables -A INPUT -p TCP -i $EXTIF --dport  4665  -j ACCEPT
iptables -A INPUT -p TCP -i $EXTIF --sport    25  -j ACCEPT
中的sport 与 dport是什么意思含义?

搜索到一个帖子说
sport, source port    源端口
dport, destination port 目的端口
但是我想问下
那个源端口指的是什么?

比如gmail
"服务器设置"标签:
服务器类型:         POP 邮件服务器
服务器名称:         pop.gmail.com
端口:         995
用户名:         (您的 Gmail 用户名)
使用安全连接:         SSL
将邮件留在服务器上:         禁用

"发送邮件服务器 (SMTP)"标签:
服务器名称:         smtp.gmail.com
端口:         25
用户名:         (您的 Gmail 用户名)
安全连接:         TLS(如果可用)

能说下gmail的端口设置应该用sport还是dport?
恩,不是很理解sport,与dport的区别,麻烦解释清除点,用上面的gmail端口解释下谢谢。
发表于 2009-10-1 21:04:40 | 显示全部楼层
这个问题同iptables 内的 chain 都有点关联,我给个chain 图你参考一下吧。
在你这问题:
如果你是客户,在 OUTPUT 链,995 和 25 是 dport;
 在 INPUT 链,995 和 25 是 sport。
如果你是 Gmail 服务器,在 OUTPUT 链,995 和 25 是 sport,
 在 INPUT 链,995 和 25 是 dport。

我的理解大约是这样,有不对的地方,还望后来者指正,谢谢  :thank

附iptables中要经过的链(chain)图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-1 21:10:45 | 显示全部楼层
恩,看了网站发现众说纷纭啊,

两条是不一样的
iptables -A OUTPUT -o eth1 -p udp --dport 53 -j ACCEPT
意思是允许发往外网53端口的包可以通过
iptables -A INPUT -i eth1 -p udp -sport 53 -j ACCEPT
意思是允许外网DNS发的回应包可以进入本机

比如,你想吃份快餐,让机器人出去买,就需要它可以出门,买到快餐后,就必须允许它进门。
缺少任何一个必须,你都不要想吃到!
而端口的限制,就是让机器人必须是买快餐才可以出门,买到的是快餐,才可以进门,买其他的不允许!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-1 21:36:48 | 显示全部楼层
Post by wecoh;2032317
这个问题同iptables 内的 chain 都有点关联,我给个chain 图你参考一下吧。
这儿,如果在 OUTPUT 链的话,995 和 25 是你的 dport。

附iptables中要经过的链(chain)图:


恩,你说output 就是dport那

我想问下tunderbird用的是dport还是sport?
电驴的话是不是就是两个都要呢?既要dport 又要sport?
  1. [
  2. root@linux ~]# mkdir -p /usr/local/virus/iptables
  3. [root@linux ~]# cd /usr/local/virus/iptables
  4. [root@linux iptables]# vi iptables.rule
  5. #!/bin/bash

  6. # 請先輸入您的相關參數,不要輸入錯誤了!
  7.   EXTIF="eth1"              # 這個是可以連上 Public IP 的網路介面
  8.   INIF="eth0"               # 內部 LAN 的連接介面;若無請填 ""
  9.   INNET="192.168.1.0/24"    # 內部 LAN 的網域,若沒有內部 LAN 請設定為 ""
  10.   export EXTIF INIF INNET

  11. # 第一部份,針對本機的防火牆設定!###########################
  12. # 1. 先設定好核心的網路功能:
  13.   echo "1" > /proc/sys/net/ipv4/tcp_syncookies
  14.   echo "1" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
  15.   for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
  16.         echo "1" > $i
  17.   done
  18.   for i in /proc/sys/net/ipv4/conf/*/log_martians; do
  19.         echo "1" > $i
  20.   done
  21.   for i in /proc/sys/net/ipv4/conf/*/accept_source_route; do
  22.         echo "0" > $i
  23.   done
  24.   for i in /proc/sys/net/ipv4/conf/*/accept_redirects; do
  25.         echo "0" > $i
  26.   done
  27.   for i in /proc/sys/net/ipv4/conf/*/send_redirects; do
  28.         echo "0" > $i
  29.   done

  30. # 2. 清除規則、設定預設政策及開放 lo 與相關的設定值
  31.   PATH=/sbin:/usr/sbin:/bin:/usr/bin; export PATH
  32.   iptables -F
  33.   iptables -X
  34.   iptables -Z
  35.   iptables -P INPUT   DROP
  36.   iptables -P OUTPUT  ACCEPT
  37.   iptables -P FORWARD ACCEPT
  38.   iptables -A INPUT -i lo -j ACCEPT
  39.   iptables -A INPUT -m state --state RELATED -j ACCEPT

  40. # 3. 啟動額外的防火牆 script 模組
  41.   if [ -f /usr/local/virus/iptables/iptables.deny ]; then
  42.         sh /usr/local/virus/iptables/iptables.deny
  43.   fi
  44.   if [ -f /usr/local/virus/iptables/iptables.allow ]; then
  45.         sh /usr/local/virus/iptables/iptables.allow
  46.   fi
  47.   if [ -f /usr/local/virus/httpd-err/iptables.http ]; then
  48.         sh /usr/local/virus/httpd-err/iptables.http
  49.   fi
  50.   iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT

  51. # 4. 允許某些類型的 ICMP 封包進入
  52.   AICMP="0 3 3/4 4 11 12 14 16 18"
  53.   for tyicmp in $AICMP
  54.   do
  55.      iptables -A INPUT -i $EXTIF -p icmp --icmp-type $tyicmp -j ACCEPT
  56.   done

  57. # 5. 允許某些服務的進入,請依照您自己的環境開啟
  58. # iptables -A INPUT -p TCP -i $EXTIF --dport  22  -j ACCEPT   # SSH
  59. # iptables -A INPUT -p TCP -i $EXTIF --dport  25  -j ACCEPT   # SMTP
  60. # iptables -A INPUT -p UDP -i $EXTIF --sport  53  -j ACCEPT   # DNS
  61. # iptables -A INPUT -p TCP -i $EXTIF --sport  53  -j ACCEPT   # DNS
  62. # iptables -A INPUT -p TCP -i $EXTIF --dport  80  -j ACCEPT   # WWW
  63. # iptables -A INPUT -p TCP -i $EXTIF --dport 110  -j ACCEPT   # POP3
  64. # iptables -A INPUT -p TCP -i $EXTIF --dport 443  -j ACCEPT   # HTTPS

  65. # 第二部份,針對後端主機的防火牆設定!##############################
  66. # 1. 先載入一些有用的模組
  67.   modules="ip_tables iptable_nat ip_nat_ftp ip_nat_irc ip_conntrack
  68. ip_conntrack_ftp ip_conntrack_irc"
  69.   for mod in $modules
  70.   do
  71.         testmod=`lsmod | grep "${mod} "`
  72.         if [ "$testmod" == "" ]; then
  73.                 modprobe $mod
  74.         fi
  75.   done

  76. # 2. 清除 NAT table 的規則吧!
  77.   iptables -F -t nat
  78.   iptables -X -t nat
  79.   iptables -Z -t nat
  80.   iptables -t nat -P PREROUTING  ACCEPT
  81.   iptables -t nat -P POSTROUTING ACCEPT
  82.   iptables -t nat -P OUTPUT      ACCEPT

  83. # 3. 開放成為路由器,且為 IP 分享器!
  84.   if [ "$INIF" != "" ]; then
  85.     iptables -A INPUT -i $INIF -j ACCEPT
  86.     echo "1" > /proc/sys/net/ipv4/ip_forward
  87.     if [ "$INNET" != "" ]; then
  88.       for innet in $INNET
  89.       do
  90.         iptables -t nat -A POSTROUTING -s $innet -o $EXTIF -j MASQUERADE
  91.       done
  92.     fi
  93.   fi
  94.   # 如果你的 MSN 一直無法連線,或者是某些網站 OK 某些網站不 OK,
  95.   # 可能是 MTU 的問題,那你可以將底下這一行給他取消註解來啟動 MTU 限制範圍
  96.   # iptables -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss \
  97.   #          --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu

  98. # 4. 內部伺服器的設定:
  99. # iptables -t nat -A PREROUTING -p tcp -i $EXTIF --dport 80  \
  100. #          -j DNAT --to 192.168.1.210:80
复制代码

上面是鸟哥的一个脚本,
他的一部分中input部分也使用了sport

  1. # 5. 允許某些服務的進入,請依照您自己的環境開啟
  2. # iptables -A INPUT -p TCP -i $EXTIF --dport  22  -j ACCEPT   # SSH
  3. # iptables -A INPUT -p TCP -i $EXTIF --dport  25  -j ACCEPT   # SMTP
  4. # iptables -A INPUT -p UDP -i $EXTIF --sport  53  -j ACCEPT   # DNS
  5. # iptables -A INPUT -p TCP -i $EXTIF --sport  53  -j ACCEPT   # DNS
  6. # iptables -A INPUT -p TCP -i $EXTIF --dport  80  -j ACCEPT   # WWW
  7. # iptables -A INPUT -p TCP -i $EXTIF --dport 110  -j ACCEPT   # POP3
  8. # iptables -A INPUT -p TCP -i $EXTIF --dport 443  -j ACCEPT   # HTTPS
复制代码

顺便问下你画图软件是什么?
回复 支持 反对

使用道具 举报

发表于 2009-10-1 21:52:22 | 显示全部楼层
那个图是我以前在网上找的,你可以GG一下 “iptables中DNAT与SNAT的理解”。
我现在没空,最小要2个小时后才回来,我传我一部分的 iptabls 你参考下啦,我那儿都是提供了几个向外服务的端口,一直都正常。
-A INPUT -i ppp0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -i ppp0 -p tcp -m tcp --dport 6881:6889 -j ACCEPT
-A INPUT -i ppp0 -p tcp -m tcp --dport 6891:6899 -j ACCEPT
-A INPUT -i ppp0 -p udp -m udp --dport 1194 -j ACCEPT
-A INPUT -i ppp0 -p tcp -m tcp --dport 3724 -j ACCEPT
-A INPUT -i ppp0 -p tcp -m tcp --dport 8085 -j ACCEPT
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-10-1 22:01:04 | 显示全部楼层
Post by wecoh;2032329
那个图是我以前在网上找的,你可以GG一下 “iptables中DNAT与SNAT的理解”。
我现在没空,最小要2个小时后才回来,我传我一部分的 iptabls 你参考下啦,我那儿都是提供了几个向外服务的端口,一直都正常。


恩,谢谢你大概知道了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表