iptables 梁山好汉 ^^^^^^^^^^^^^^^^^ - 作者:臭豆腐[trydofor.com] - 日期:2008-12-09 - 授权:署名-非商业-保持一致 1.0 协议 - 声明:拷贝、分发、呈现和表演本作品,请保留以上全部信息。 0. 文档目录 ^^^^^^^^^^ [[<=$INDEX]] 1. 午夜凶铃 ^^^^^^^^^^^ 通常,对重要资源公司都有一套成文的规定,并会进行严格的授权. 当然,我们也不例外,在硬件上授权于MAC地址和网段. 安全体系的确避免了不少隐患,但同时也让便捷性折了几扣. 午夜凶铃曾是我最大的噩梦. 酣梦中被运营电话惊醒 ---- 正式服务器出现状况, 需要30分钟内对应. 怎么办?必须到公司!必须要授权! ---- 但还没睁开眼睛... 2. 逼上梁山 ^^^^^^^^^^^ 公司提供了VPN,不过拨入的账户在一个隔离的网段. 需要跳板,但还要保证安全,还不能太复杂. ===================== bash :openjp.sh ============================ #!/bin/bash #check lock LOCKFILE=.lock if [ -f $LOCKFILE ]; then echo "maybe it is opening, or rm $LOCKFILE" exit fi # set port forward echo "1">/proc/sys/net/ipv4/ip_forward /sbin/iptables -F -t nat /sbin/iptables -F INPUT /sbin/iptables -t nat -A POSTROUTING -j MASQUERADE # /sbin/iptables -t nat -A PREROUTING -p tcp -m tcp --dport 55000 -j \ DNAT --to-destination 10.0.172.210:50000 /sbin/iptables -t nat -A PREROUTING -p tcp -m tcp --dport 55001 -j \ DNAT --to-destination 10.0.170.209:50000 /sbin/iptables -t nat -A PREROUTING -p tcp -m tcp --dport 55003 -j \ DNAT --to-destination 10.0.172.232:50000 # lock status touch $LOCKFILE ================================================================== ===================== bash :denyjp.sh ============================ #!/bin/bash # check lock LOCKFILE=.lock if [ -f $LOCKFILE ]; then rm -f $LOCKFILE fi echo "0">/proc/sys/net/ipv4/ip_forward /sbin/iptables -F -t nat /sbin/iptables -F INPUT /sbin/iptables -A INPUT -j REJECT -s 10.0.172.0/24 /sbin/iptables -A INPUT -j REJECT -s 10.0.170.0/24 ================================================================== 3. 安全举措 ^^^^^^^^^^^ 开了后门,自然舒坦,但安全举措那是必不可少. 大概做了这么基本几条. * root 不让远程登陆. * openjp.sh,denyjp.sh 改成 100 root:root. * 操作者使用sudo 进行open,结束后deny. * 操作者密码足够复杂. * 不告诉任何无关的人. 4. 走漏风声 ^^^^^^^^^^^ 一次偶然的突发事件,客户自己要在十万火急的情况下快速解决问题. 于是,就把秘诀传授给了他们,并告知这个是保密的. 问题得以及时解决,客户很是满意. 再后来,系统的网络结构更加复杂,出现的需要也越来越多, 前不久,还把iptables请到幕前,名正言顺的做起了转发.