Alex的博客

本博客的文章均为原创,是本人从事行业多年来所遇见一些小问题的解决心得,希望可以帮助到大家!



iptables 常用命令集

一段时间不用linux命令后就容易忘记,唉!今天用iptables开80端口我都给忘记了!悲哉!我好像记得在网上搜索到的都是老版本的,带-i参数的,好像带这个参数的都是老版本的,在新版本里面是没有这个参数的!

好了不墨迹!

直接贴代码:

可以用iptables -v

看一下版本:

[root@free-wind ~]# iptables -v
iptables v1.3.5: no command specified
Try `iptables -h' or 'iptables --help' for more information.

是这个版本的就说明一下的命令是可用的!

代码:

0,清除已有iptables规则

iptables -F

iptables -X

iptables -Z

1,开放指定的端口

iptables -A 表名  规则  处理方法

iptables -D 表名  序号

 

允许本地回环接口(即运行本机访问本机)(注:如果你清除了所有的规则的话,你最好把下面列出的规则都写进去,否者使用过程中会出问题的,当然如果你是老鸟了那就不用看这个了哈哈!)

iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

 

允许已建立的或相关连的通行

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

 

允许所有本机向外的访问(注:这个其实还可以更严格点儿,你对以针对你服务器上的应用需求来开通,这样是最好的!当然如果你不知道你的服务器到底要使用那些端口向外请求数据的话那就乖乖的把这条贴进去吧!挖嘎嘎!)

iptables -A OUTPUT -j ACCEPT

 

开放外向内的端口(列:开放80 )(注:这只是一个实例,希望你能举一反三,挖嘎嘎!其他端口都是一样的开法)

iptables -A INPUT -p tcp --dport 80 -j ACCEPT

 

2,禁止其他未允许的规则访问 (注:这如果你已经清理过策略了得话这两条最后一定要写,否则防火墙基本就没用了,就是凡是没有在策略里面规定的都放行不管了o.o!)

iptables -A INPUT -j REJECT

iptables -A FORWARD -j REJECT

 

3,屏蔽IP (注:这个还是用的比较多的呵呵!如果有单点小攻击的话还是非常有用的!)

单IP屏蔽

iptables -I INPUT -s 192.168.1.120 -j DROP

 

网段屏蔽 (例:屏蔽192.169.1.1~192.168.1.254的Ip)

iptables -I INPUT -s 192.168.1.0/24 -j DROP

 

4,查看已添加的iptables规则

iptables -L -n


5,允许某个ip访问某个端口

-A INPUT -s 192.168.1.1 -p tcp --dport 3306 -j ACCEPT

 

下面是参数解释咯!

v:显示详细信息,包括每条规则的匹配包数量和匹配字节数
 
x:在 v 的基础上,禁止自动单位换算(K、M) vps侦探
 
n:只显示IP地址和端口号,不将ip解析为域名
 


5,删除已添加的iptables规则

首先要把序号列出来,否则就没办法指定删除的条数咯!挖嘎嘎!(注:其实后面的-numbers 不要也是可以的!哇哈哈!)

iptables -L -n --line-numbers

 

例:删除序号2的策略;

iptables -D INPUT 2

 

查看nat表中的条目 

iptables -t nat -L -n --line-numbers

删除nat表中的条目

iptables -t nat -D PREROUTING 1     //  PREROUTING 具体看是那一个类型里面的

 

6,开启启动与规则保存(注:这个是非常重要的,上面操作的天衣无缝,这一步不做的话都是做无用功啦!哇咔咔!)

开机启动:

chkconfig --level 345 iptables on

 

保存策略:(注:在centos里面如果不敲下面的命令的话策略是不保持生效的,所以一定要回写!哇咔咔!)

service iptables save

 

备注:Debian/Ubuntu上iptables是不会保存规则的。所以呢,哇咔咔!

要让网卡关闭是保存iptables规则,启动时加载iptables规则:

创建:

/etc/network/if-post-down.d/iptables

然后添加下面的代码保存:

#!/bin/bash
iptables-save > /etc/iptables.rules

 

然后添加执行权限:

chmod +x /etc/network/if-post-down.d/iptables

创建:

/etc/network/if-pre-up.d/iptables

添加内容:

#!/bin/bash
iptables-save < /etc/iptables.rules

 

添加执行权限:

chmod +x /etc/network/if-pre-up.d/iptables

好了就好这里吧!打完收工!

NND累死了!

 

 

 气死了!

第一遍补充的居然没有保存起来

 

现在新版本的centos好像直接添加规则是不能生效的。

为什么呢?

哈哈!

哥告诉你,是因为默认规则的最后一条是拒绝所有,!

防火墙匹配规则是从上到下的,到这里就直接拒绝了!

那要怎么办呢?

当然是在他匹配到拒绝所有这一条之前就让他把允许的给匹配到。

哈哈!

咋办呢?

vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

保存重启 iptables 服务

搞定

注意一定要在

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

的上面

 好了顺便再把关闭SELINUX的方法写出来吧做个备忘

哇嘎嘎!

关闭SELINUX
vi /etc/selinux/config
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
:wq!#保存退出

 

 

 

 

浏览1624  评论0  Alex于 2012-11-19 7:29
发言