FreeTstar

loving Freedom + + loving Linux

  • 首页
  • Archive
  • 关于
  • 杂七杂八
  • 留言板
Twitter Sina RSS

iptables 小笔记

发布于 2010年11月15日 由 freetstar
23 条评论发表评论

Iptables 介绍

对于Internet上的系统,不管是什么情况都要明确一点:网络是不安全的。因此,虽然创建一个防火墙并不能保证系统100%安全,但却是绝对必要的。Linux提供了一个非常优秀的防火墙工具—netfilter/iptables。它完全免费、功能强大、使用灵活、可以对流入和流出的信息进行细化控制,且可以在一台低配置机器上很好地运行。netfilter/iptabels应用程序,被认为是Linux中实现包过滤功能的第四代应用程序。netfilter/iptables包含在2.4以后的内核中,也就是在2.6的内核中开始应用,它可以实现防火墙、NAT(网络地址转换)(自己搭建VPN服务器的同学都知道是怎么回事吧 )和数据包的分割等功能。
netfilter工作在内核内部,而iptables则是让用户定义规则集的表结构。
iptables的使用前提你是root用户,iptables的前身是ipchains,在2.6内核版本中,ipables取代了ipchains作为内核的过滤墙

如果你自建过VPN翻墙的话,你一定记得这两行代码:

echo "1" > /proc/sys/net/ipv4/ip_forward
//开启ipv4数据转发,即本机路由转发功能
iptables -t nat -A POSTROUTING -s 10.10.10.0/24 -o eth0 -j SNAT --to-source XXX.XXX.XXX.XXX
//就是将本地vpn对应的网卡的ip地址转换到服务器对外的ip地址

Iptables求助

查看帮助:man iptables

iptables中文手册:Iptables 指南 1.1.19

Iptables语法

一般语法如下:

iptables [-t table] command [match] [target] 

table:表,包含仅处理特定类型信息包的规则和链的信息包过滤。表是由许多链组成的,链是有顺序的
一般有3个表

filter:缺省的表,用于一般的信息包过滤,包含INPUT,OUTPUT,FORWARD
nat:用于要转发的信息包,包含PREROUTING,OUTPUT,POSTROUTING链
mangle:包含一些规则用于标记高级路由的信息包。。属于高级用法的表哈,我也不太熟悉,就不介绍了

command:当然是命令了

-A --append:该命令将一条规则附加到链的末尾
-D --delete:删除特定链接
-P --policy:设置链的缺醒目标
-N --newchain:用命令中所指定的名称创建一个新链
-F --flush:如果指定联名,则删除链中的所有规则;否则,删除所有链中的所有规则
-L --list 列出指定链中的所有规则

match:匹配。指定信息包与规则匹配所具有的特征:如源地址,目的地止,协议。

-p --protocol 可以匹配tcp,udp,icmp,还有ALL是默认阿
-s --source 根据源IP来匹配,源ip还可以是一个范围
-d --destination ip目的地址,当然也可以是一个范围

target:目标

ACCEPT:接受呗
DROP:阻塞呗
REJECT:与DROP稍微不太一样的地方是,REJECT不会在服务器和客户机上留下死套接字

iptables安装:

现在大多数linux发行伴在安装时会默认安装iptables
ubuntu查看是否安装dpkg -l|grep iptables 安装: sudo apt-get install iptables
redhat查看是否安装rpm -qa|grep iptables 安装:yum install iptables

iptables开机启动:

redhat:ntsys设置开机启动
iptables:可以用一些第三方的工具 //你有没有啥更好的方法

iptables实例:

1 阻止网络上已知的主机攻击我的机器

wget -qO - http://infiltrated.net/blacklisted|awk '!/#|[a-z]/&&/./{print "iptables -A INPUT -s "$1" -j DROP"}'
//blacklisted是网络上一份肮脏主机的黑名单,几小时更新一次。 如果想自动执行上边的iptables命令,在后边添加|sh &

2 将一个大号端口转换到80号端口

iptables -t nat -A PREROUTING -p tcp –dport 80 -j REDIRECT –to-port 9001
//允许普通用户以高端口号运行一个守护进程,但是看起来却是以低端口进行的。比如说用户可以用80号端口使用网站,而apache却是在监听9001

3 使用代理

iptables -t nat -A OUTPUT -d 10.0.0.0/8 -p tcp --dport 80 -j DNAT --to-destination 10.1.1.123:3128
将传送到子网10.0.0.0/8的封包的目的地址改为代理的地址

4 设置只能同时有10个ssh链接

/sbin/iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 10 -j REJECT
//将ssh链接限制在10个,再多的将会被reject

5 限制ssh每隔15秒才能重连

iptables -A INPUT -p tcp -i eth0 -m state --state NEW --dport 22 -m recent --update --seconds 15 -j DROP
iptables -A INPUT -p tcp -i eth0 -m state --state NEW --dport 22 -m recent --set -j ACCEPT

6 允许访问多个端口

iptables -A INPUT -p tcp -m multiport --dports 22,80,143,6000:6003 -j ACCEPT
//运行同时访问多个端口,单个端口可以独立写出,范围可以用“:”表示 ”

7 封杀BT

/sbin/iptables -A FORWARD -i eth0 -p tcp –dport 6881:6890 -j DROP

8 使自己不能ping 通自己

iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP

iptables-save和iptables-resume:
iptables-save命令:
iptables-save把当前规则放进一个文件以备iptables-restore使用

语法:iptables-save [-c] [-t table]
-c的作用是保存包和字节计数器的值。这可以使我们在重启防火墙后不丢失对包和字节的统计。这个参数默认是不使用的。
参数-t指定要保存的表,默认是保存所有的表。下面给出未装载任何规则的情况下iptables-save的输出。

iptables-restore用来装载由iptables-save保存的规则集。不幸的是,它只能从标准输入接受输入,而不能从文件接受。下面是它的事方法:

语法:iptables-restore [-c] [-n]
参数-c要求装入包和字节计数器。如果你用iptables-save保存了计数器,现在想重新装入,就必须用这个参数。它的另一种较长的形式是–counters。
参数-n告诉iptables-restore不要覆盖已有的表或表内的规则。默认情况是清除所有已存的规则。这个参数的长形式是–noflush。

参考:

http://www.ibm.com/developerworks/cn/linux/network/s-netip/

http://www.phpfans.net/article/htmls/200608/MjE2OTcy.html

http://forum.ubuntu.org.cn/viewtopic.php?t=478

http://www.vsharp.cn/post/28.html

http://linux.ccidnet.com/art/737/20040317/96576_1.html

分类:服务器
近况
老男孩儿,永远的老男孩儿

23 则回应给 “iptables 小笔记”

  1. Don CHINA Google Chrome Linux 说道:
    2010年11月21日 11:37 上午

    这个主题错版,换了吧 8-O (果然……你是主题控……)

    [回复]

    freetstar CHINA Google Chrome Windows 回复:
    十一月 21st, 2010 at 1:22 下午

    @Don,那个是宽屏的的主题,所以。。。右上角有那个窄屏显示的

    [回复]

    Don CHINA Google Chrome Linux 回复:
    十一月 21st, 2010 at 2:17 下午

    @freetstar, = =b点了宅屏变得更宽了……

    [回复]

  2. dorole Internet Explorer Windows 说道:
    2010年11月21日 2:38 上午

    :twisted: 主题换的挺勤快的,我的也换了哈哈。还不错。。

    [回复]

    freetstar CHINA Google Chrome Windows 回复:
    十一月 21st, 2010 at 9:46 上午

    @dorole, 嘿嘿,我也换了 :twisted: 都不错

    [回复]

  3. 傻东 CHINA Google Chrome Windows 说道:
    2010年11月20日 7:12 下午

    楼主的运维跟我的不大一样,我就没要碰到iptables这样的东西,楼主加油~

    [回复]

    freetstar CHINA Google Chrome Linux 回复:
    十一月 20th, 2010 at 7:17 下午

    @傻东, 我的运维基本上每天就是服务器巡检,一般都没事,这是我瞎看的,,

    [回复]

  4. 凡尘飞扬 CHINA Google Chrome Windows 说道:
    2010年11月20日 9:04 上午

    学习一下,先订阅收藏了。

    [回复]

    freetstar CHINA Google Chrome Linux 回复:
    十一月 20th, 2010 at 9:44 上午

    @凡尘飞扬, 欢迎欢迎

    [回复]

  5. jiechic UNITED STATES Google Chrome Ubuntu Linux 说道:
    2010年11月19日 1:03 下午

    好像很麻烦,有空研究一下,最近被arp攻击,想把那个错误的ip给屏蔽拉,不然ubuntu老是断线。

    [回复]

    freetstar CHINA Google Chrome Windows 回复:
    十一月 19th, 2010 at 1:23 下午

    @jiechic, 这个用iptables -A INPUT -s “你的ip” -j drop就行了

    [回复]

    jiechic UNITED STATES Google Chrome Windows 回复:
    十一月 25th, 2010 at 12:35 上午

    @freetstar, 针对你这个方法,我想问一下,本地连接eth0之后有一个ip,然后pppoe拨号后又有一个ip,而拨号后,eth0的ip消失了,这时这个命令使用哪个ip进行设置。因为我这里属于在局域网拨号,而不是完全使用局域网网关上网。拨号后由于处在局域网,还是收到了arp的捣乱。

    [回复]

    freetstar CHINA Google Chrome Windows 回复:
    十一月 25th, 2010 at 8:52 上午

    @jiechic, 貌似是ppp走的eth0 的网卡的

    [回复]

    jiechic Google Chrome Windows 回复:
    十一月 25th, 2010 at 12:46 下午

    @freetstar, 嗯。ppp走的是eth0。但是,不知道用eth0的ip还是ppp的ip,而且在ppp拨号之后,eth0的ip没了。。

    [回复]

    freetstar CHINA Google Chrome Linux 回复:
    十一月 25th, 2010 at 7:10 下午

    应该是ppp有自己的ip吧,走的是eth0的网卡。。

    [回复]

  6. OSMSG CHINA Mozilla Firefox Fedora Linux 说道:
    2010年11月18日 11:09 下午

    这可是一款神器阿。。。 而且具有配置极端行 极端简单与极端复杂…

    [回复]

    freetstar CHINA Google Chrome Windows 回复:
    十一月 19th, 2010 at 8:57 上午

    @OSMSG, 恩!神器,大神器啊

    [回复]

  7. 奶牛 CHINA Mozilla Firefox Windows 说道:
    2010年11月16日 8:41 下午

    还是限制下好,至少出了问题自己也好找根源~~~

    [回复]

    freetstar CHINA Google Chrome Linux 回复:
    十一月 16th, 2010 at 8:45 下午

    @奶牛, 8) 这个iptables还是很牛x的

    [回复]

  8. Mucid UNITED STATES Mozilla Firefox Ubuntu Linux 说道:
    2010年11月16日 12:08 下午

    我一般都把这个关闭了,反正linux安全性强,关闭了节省资源啊………… :twisted:

    [回复]

    freetstar CHINA Google Chrome Windows 回复:
    十一月 16th, 2010 at 12:11 下午

    @Mucid, 其实开了也不怎么耗资源的

    [回复]

  9. 婉秋 CHINA Mozilla Firefox Windows 说道:
    2010年11月15日 11:32 下午

    哎,这个学起来相当困难,主要还是对网络的一些东西不了解,尽管以前曾经尝试学了一些网络工程师的内容,不过基本都忘记了…… :-?

    [回复]

    freetstar CHINA Google Chrome Windows 回复:
    十一月 16th, 2010 at 8:47 上午

    @婉秋, 这个把基本的tcp/ip认识下就好,基本的入门应该就可以了 8-O

    [回复]

发表评论 取消回复

电子邮件地址不会被公开。 必填项已用 * 标注

*

*


疑问 开心 悲伤 邪恶 惊叹 微笑 脸红 笑 惊讶 惊奇 迷惑 酷 憨笑 生气 阴险 转眼球 眨眼 主意 箭头 中立 哭 大笑

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*
To prove you're a person (not a spam script), type the security word shown in the picture.
Anti-spam image

点击取消回复
第 1 页,共 1 页1
  • 欢迎订阅

  • Github

  • 近期评论

    • freetstar CHINA Mozilla Firefox Linux 发表在《留言板》
    • _Fly CHINA Google Chrome Linux 发表在《使用e4rat加速你的linux启动速度(ext4文件系统专用)》
    • walfred Mozilla Firefox Windows 发表在《留言板》
    • freetstar CHINA Mozilla Firefox Windows 发表在《用landslide创建html5 slide》
  • Spread Firefox Affiliate Button
  • 我的豆瓣

  • 链接表

    • 51开源社区
    • Adam's
    • delectate's blog
    • Don's
    • fl
    • ghostunix
    • Jasey Wang
    • Jerry's Blog
    • Moolight@Ericyue
    • OSMSG
    • panda
    • Pity is the Bomp
    • PT ubuntu
    • Tao Zhu
    • ubuntuhome
    • WOW!ubuntu
    • zhangzhfang
    • 丕字的blog
    • 傻东の学习笔记
    • 奶牛的blog
    • 孤风颠影
    • 弯柚博客
    • 熊猫党军委主席
    • 靖 轩
    • 马力哥
    • 黑孩儿
  • 我的支付宝

  • 功能

    • 登录
    • 文章 RSS
    • 评论 RSS
    • WordPress.org
© FreeTstar. WordPress 强力驱动 | Nest Theme by YChong