在来一个IPTables

  • iptables 端口映射

    [Linux]
    post by Johnson / 2010-8-30 9:25 Monday

     一、环境和要实现功能
       PC1的网络设置如下:

       eth0 192.168.0.29 内网

       eth1 219.239.11.22 外网

      PC2的网络设置则为:192.168.0.21 内网

      我们要实现的功能就是将PC1的8080端口映射到PC2的80端口,也即访问http://219.239.11.22:8080即可访问到PC2上的WEB服务。

      二、实现步骤

      1、 首先应该做的是/etc/sysctl.conf配置文件的 net.ipv4.ip_forward = 1 默认是0

    这样允许iptalbes FORWARD。

      2、 在/etc/rc.d/init.d目录下有iptables 文件,使用格式如下

      Usage: ./iptables {start|stop|restart|condrestart|status|panic|save}

      相当与service iptables {….}

      把iptables 服务停止,清除以前的规则,存盘

      到/etc/rc.d/init.d目录下,运行

      ./iptables stop

      iptalbes -F

      iptalbes -X

      iptalbes -Z

      ./iptables save

      3、 重新配置规则

      iptables -t nat -A PREROUTING -d 219.239.11.22 -p tcp -m tcp --dport 8080 -j DNAT --to-destination 192.168.0.21:80

      iptables -t nat -A POSTROUTING -d 192.168.0.21 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.0.29

      iptables -A FORWARD -o eth0 -d 192.168.0.21 -p tcp –dport 80 -j ACCEPT

      iptables -A FORWARD -i eth0 -s 192.168.0.21 -p tcp –sport 80 -j ACCEPT

      DNAT SNAT 的请参考帮助,这里不再陈述。

      4、 新的规则存盘

      ./iptables save

      规则存盘后在/etc/sysconfig/iptables这个文件里面,若你对这个文件很熟悉

      直接修改这里的内容也等于命令行方式输入规则。

      5、 启动iptables 服务

      ./iptables start

      在/proc/net/ip_conntrack文件里有包的流向,如下面

      tcp 6 53 TIME_WAIT src=http://www.cnblogs.com/221.122.59.2 dst=219.239.11.22 sport=7958 dport=8080 packets=9 bytes=1753

    src=http://www.cnblogs.com/172.18.10.205 dst=172.18.10.212 sport=80 dport=7958 packets=9 bytes=5777 [ASSURED] use=1

  • iptables多端口设置方法

    [Linux]
    post by Johnson / 2010-6-10 0:49 Thursday

    iptables匹配多目的端口

    iptables -A INPUT -p tcp -m multiport --destination-port 21,80,22 -j ACCEPT

    iptables匹配多源地址端口

    iptables -A OUTPUT -p tcp -m multiport --source-port 80 -j ACCEPT

    注意:

    -m multiport必须要指定协议-p tcp 或者 -p udp

     

  • 屏蔽so.118114.cn劫持行为

    [Linux]
    post by Johnson / 2010-5-12 9:10 Wednesday

    昨天测试我的网站,因为网站代码出现问题,导致打开网站后没有任何信息显示,在调试的时候发现网站跳转到了so.118114.cn,无论我的网站是否显示正常都显示的118114的网页,让我很恼火

    这电信的流氓行为太可耻了,决定用防火墙屏蔽118114,让他给我get out my net world!

    通过ping so.118114.cn得知他的ip是116.228.55.51

    所以开始工作

    iptables -I INPUT 1 -s 116.228.55.51 -j DROP

    iptables -I OUTPUT 1 -d 116.228.55.51 -j DROP

    这样就把流氓拒之门外了

     

    因为我是nat服务器,所以我也让我的内网用户把流氓拒之门外

    iptables -A FORWARD -d 116.228.55.51 -j DROP

    iptables -A FORWARD -s 116.228.55.51 -j DROP

  • 改变iptables的日志记录文件

    [Linux]
    post by Johnson / 2010-5-12 8:18 Wednesday

    今天在百度上有个提问是关于iptables的日志记录,以前没有具体实际过,今天晚上自己在家里面实际了下,把结果贴出来,为以后提供查阅方便。

    iptables可以对某些规则进行记录,比如

    我们记录192.168.1.100进来的数据

    iptables -A INPUT -s 192.168.1.100 -j LOG --log-level 4 --log-prefix '192.168.1.100 come in'

    阅读全文>>

  • iptables设置ping

    [Linux]
    post by Johnson / 2010-4-26 4:45 Monday

    以root进入Linux系统,然后编辑文件icmp_echo_ignore_all

    vi /proc/sys/net/ipv4/icmp_echo_ignore_all
    将其值改为1后为禁止PING
    将其值改为0后为解除禁止PING

    上面的可以禁ping 但是你自己也无法ping别人

    完美方法 用iptables禁止

    如果要自己能ping人家,而人家不能ping你,可以:
    iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP
    iptables -A INPUT -p icmp --icmp-type 0 -s 0/0 -j ACCEPT
    iptables -A OUTPUT -p icmp --icmp-type 0 -s localip -j DROP
    iptables -A OUTPUT -p icmp --icmp-type 8 -s localip -j DROP

    别忘了把localip改成你外网IP哦

posted @ 2012-05-11 10:02  规格严格-功夫到家  阅读(241)  评论(0编辑  收藏  举报