CentOS下iptable常见设置介绍

基本格式

1.  iptable  [-t  表]  命令选项  [连名]   匹配条件   [-j 动作]
2.常用命令选项如下:
-A 【append】 在指定的连的结尾添加规则
-D 【delete】删除指定连中的规则,可以按规则号或规则内容匹配
-I 【insert】插入一条新规则,默认是在最前面
-R 【replace】 替换某一条规则
-L 【list】列出所有规则
-F 【flush】清空所有规则
-N 【new】自定义一条规则连
-X 【--delete-chain】 删除用户自定义规则连
-P 【policy】设置默认策略
-n 【numeric】以数字方式显示,如:显示ip,但不显示主机名
-v 【verbose】显示详细信息
-V 【version】查看iptable的版本信息
--line-number  查看规则连是,显示列表号
-Z   清空计数器值

举例

# iptable -t filter -F【清空filter表中所有规则】
# iptable -t filter -Z【清空filter表中的计数器值】
#iptable -t filter  -X 【清除filter表中自定义连】
# iptable -t filter -P INPUT DROP 【设置INPUT连默认策略为DROP】
# iptable -t filter -P OUTPUT DROP
# iptable -t filter -P FORWROD DROP
# iptable -t filter -A INPUT -p tcp -j ACCEPT 【在INPUT连最后添加一条允许tcp协议的数据包进入的规则】
# iptable -t filter -R INPUT 1 -p tcp -j DROP 【替换INPUT连的第1条规则为拒绝tcp数据包进入】
# iptable -t nat -vnL  --line-number  【以详细的、数字的格式列出nat表中的所有规则】
# iptable -t nat -D POSTROUTING 1  【删除nat表POSTROUTING 连中的第1条规则】

条件匹配

1. 协议匹配:用于检查数据包使用的协议,符合规则就允许,反之拒绝。允许使用的协议名在/etc/protocols文件中。
  常用的协议有tcp,udp,icmp,ip 和all。【  -p  协议名 】
# iptable -I INPUT -p icmp  -j REJECT 【拒绝进入防火墙本身的icmp数据包】
# iptable -A FORWARD -p udp -j ACCEPT  【允许转发udp的所有数据包】
2. 地址匹配:用于检查数据包的地址是否符合规则,包括源地址和目的地址。【-s  源地址, -d  目的地址】
# iptable -A FORWARD -s 10.0.0.0/8   -j DROP  【拒绝转发来自10.0.0.0/8 网段的数据包】

# iptable -A FORWARD -d 80.0.0.0/8   -j DROP  【 拒绝转发目的是80.0.0.0/8 网段的数据包】

3.端口匹配:用于检查数据包的tcp或udp端口,需要和 “-p 协议类型” 一起使用【-sport  源端口,-dport 目的端口】
# iptables -A FORWARD -s 10.0.0.0/8  -p tcp  --dport  80    -j ACCEPT 【允许转发来自10.0.0.0/8网段,目的端口是80的数据包】
# iptables -I FORWARD -s 10.0.0.0/8  -p tcp  --sport 21     -j ACCEPT【允许转发来自10.0.0.0/8网段,源端口是21的数据包】
4.接口匹配:用于检查数据包从防火墙那个接口进入或出去,来判断是否允许。
# iptables -A FORWARD  -i eth0 -s 10.0.0.0/8 -p tcp --dport 80  -j ACCEPT
【允许转发从eth0进入,来自10.0.0.0/8网段,使用tcp 协议,目的端口椒80的数据包】
# iptables -A INPUT -i eth0  -s 80.0.0.0/8  -j DORP 【拒绝从eth0进入,来自80.0.0.0/8的数据包】
5.SNAT转换:一般linux充当网关服务器时使用
SNAT只能用在nat表的POSTROUTING连,用于对源地址进行转换。要结合 --to 使用。
# iptables -t nat -A POSTROUTING -s 10.0.0.0/8  -j SNAT  --to 202.106.1.1
【将来自10.0.0.0/8网段的所有数据包的源地址转为202.106.1.1】
# iptables -t nat -A POSTROUTING  -i eth0  -s 80.0.0.0/8  -p tcp --dport 25 -j SNAT  --to 202.106.1.1

6.DNAT转换:只能用在nat表中的PREROUTING连,用于对目的地址或端口进行转换。
# iptables -t nat -A PREROUTING -i eth1 -d 202.106.1.1  -p tcp --dport  80 -j DNAT --to 10.0.0.10
【将从eth1 进入,目的地址是202.106.1.1,使用tcp 协议,目的端口是80的数据包的目的地址转为10.0.0.1】
7.MASQUERADE:伪装,是SNAT的特例。
# iptables  -t nat  -A POSTROUTING -s 10.0.0.0/8 -o eth1  -j MASQUERADE
【将来自10.0.0.0/8网段,从eth1出去的数据包的源地址伪装为eth1接口地址】

拓展模块

1.按来源MAC地址匹配
# iptables -t filter -A FORWARD -m --mac-source  00:02:b2:03:a5:f6  -j DROP
【拒绝转发来自该MAC地址的数据包】
2.按多端口或连续端口匹配
  20:      表示20以后的所有端口
  20:100   表示20到100的端口
  :20     表示20之前的所有端口
  -m  multiport [--prots, --sports,--dports]
#  iptables -A INPUT -p tcp -m  multiport  --dports 21,20,25,53,80  -j ACCEPT 【多端口匹配】
#  iptables -A INPUT -p tcp -dport  20:    -j ACCEPT
#  iptables -A INPUT -p tcp  -sport 20:80   -j ACCEPT
#  iptables -A INPUT -p tcp  -sport  :80    -j ACCEPT
3.还可以按数据包速率和状态匹配
-m  limit  --limit 匹配速率   如: -m  limit --limit 50/s  -j ACCEPT
-m  state  --state  状态     如: -m  state --state INVALID,RELATED  -j ACCEPT

其他常用操作

iptables -F /* 清除所有规则 */
iptables -A INPUT -p tcp --dport 22 -j ACCEPT /*允许包从22端口进入*/
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT /*允许从22端口进入的包返回*/
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT /* 域名解析端口,一般不开 */
iptables -A INPUT -p udp --sport 53 -j ACCEPT /* 域名解析端口,一般不开 */
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT /*允许本机访问本机*/
iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp -s 0/0 --dport 80 -j ACCEPT /*允许所有IP访问80端口*/
iptables -A OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
iptables-save > /etc/sysconfig/iptables /*保存配置*/
iptables -L /* 显示iptables列表 */

vi /etc/sysconfig/iptables

添加:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEPT

或者

CentOS 防火墙打开80,22,3306端口操作

/sbin/iptables -I INPUT -p tcp –dport 80 -j ACCEPT
/sbin/iptables -I INPUT -p tcp –dport 22 -j ACCEPT
/sbin/iptables -I INPUT -p tcp –dport 3306 -j ACCEPT
然后保存:
/etc/rc.d/init.d/iptables save

查看打开的端口:

/etc/init.d/iptables status

时间: 2024-11-09 00:59:33

CentOS下iptable常见设置介绍的相关文章

centos下mysql主从复制设置详解_Mysql

安装环境:centos 5.4 mysql版本:mysql 5.1.xx 采用rpm直接安装 所需软件: xtrabackup 1.2.22 采用rpm直接安装 1. Master:/etc/my.cnf  复制代码 代码如下: [mysqld] server-id = 1log-bin innodb_flush_log_at_trx_commit=1 sync_binlog=1 datadir=/var/lib/mysql character-set-server=utf8 init_conn

centos下vmware 桥接设置静态ip例子

使用bridge模式 桥接的时候选择桥接的网卡 设置centos静态ip 涉及到二个配置文件,分别是:/etc/sysconfig/network /etc/sysconfig/network-scripts/ifcfg-eth1 首先修改/etc/sysconfig/network如下:添加GATEWAY=192.168.0.1.指定网关地址 网关地址查看主机cmd ipconfig /all 然后修改/etc/sysconfig/network-scripts/ifcfg-eth1: vim

【OS】Linux下 /dev 常见特殊设备介绍与应用[loop]

[OS]Linux下 /dev 常见特殊设备介绍与应用[loop] 在这里详细介绍一下loop设备.在进行某些测试的时候,往往需要新建一些磁盘分区或者设备等,此时对硬盘进行重新划分往往不太方便.在这种情况下,可以通过loop伪设备来实现循环挂载,从而达到目的.在使用之前,循环设备必须与现存文件系统上的文件相关联.这种关联将提供给用户一个应用程序接口,接口将允许文件视为块特殊文件(参见设备文件系统)使用.因此,如果文件中包含一个完整的文件系统,那么这个文件就能如同磁盘设备一般被挂载.这种设备文件经

CentOS下设置中文编码设置和中文乱码解决

CentOS下设置中文编码设置: 1:安装支持中文: yum -y group install chinese-support 2:修改字符编码配置文件: 默认设置为英文: [root@Tony_ts_tian sysconfig]# pwd /etc/sysconfig [root@Tony_ts_tian sysconfig]# cat i18n LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16" 设置为中文: [roo

CentOS下MySQL安装后配置和设置

CentOS下MySQL安装后配置和设置: 1:安装完成路径: 1.数据库目录 /var/lib/mysql/ 2.配置文件 /usr/share/mysql(mysql.server命令及配置文件) 3.启动脚本 /etc/rc.d/init.d/(启动脚本文件mysql的目录) 4.相关命令 /usr/bin(mysqladmin mysqldump等命令) 注:1~3安装server安装后存在,4mysqladmin mysqldump在client安装后存在 查看数据库版本: m

Centos下IP与DNS设置方法详解_服务器其它

本文较为详细的讲述了Centos下IP与DNS设置方法.分享给大家供大家参考,具体如下: 1.CentOS 修改DNS 修改对应网卡的DNS的配置文件 # vi /etc/resolv.conf 修改以下内容 nameserver 8.8.8.8 #google域名服务器 nameserver 8.8.4.4 #google域名服务器 2.CentOS 修改网关 修改对应网卡的网关的配置文件 [root@centos]# vi /etc/sysconfig/network 修改以下内容 NETW

centos下安装redis服务详细节介绍_Linux

centos下安装redis服务 redis服务安装步骤如下: wget http://download.redis.io/releases/redis-3.2.3.tar.gz tar xzf redis-3.2.3.tar.gz cd redis-3.2.3 make make install 安装完成后对redis基本配置 在redis解压根目录中找到配置文件模板,复制到如下位置. cp redis.conf /etc/redis/6379.conf 通过vim命令修改 daemonize

在Centos下启动和关闭MySQL

现在主流的Unix系统有两种风格:System V和BSD,他们的区别如下: Linux作为类Unix,同样也存在这两种风格,其中Centos属于System V,本文主要介绍在Centos下(即System V风格 )如何启动和关闭MySQL,同时简单介绍BSD系统的情况. MySQL启动方式 1)直接调用mysqld.这是最不常见的方式,不推荐使用. 2)运行mysql.server脚本 mysql.server脚本通过调用mysqld_safe启动服务器,该脚本可以通过参数start和st

linux的ubuntu和centos下快速搭建LAMP环境

  在linux下安装lamp环境,下面为大家分别介绍在ubuntu和centos下面快速安装LAMP环境的方法. 首先,让我们了解一下什么是LAMP环境(一下摘自百度百科): Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台.随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成