AD

Linux防火墙iptables基本使用方法

iptables是Linux上常用的防火墙软件,一般VPS系统里面默认都有集成。

1、安装iptables防火墙

如果没有安装iptables需要先安装,CentOS执行:
yum install iptables

Debian/Ubuntu执行:
apt-get install iptables
2、清除已有iptables规则
iptables -F
iptables -X
iptables -Z

3、开放指定的端口
#允许本地回环接口(即运行本机访问本机)
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
# 允许访问22端口
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
#允许访问80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
#允许FTP服务的21和20端口
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT

#如果有其他端口的话,规则也类似,稍微修改上述语句就行
#禁止其他未允许的规则访问(注意:如果22端口未加入允许规则,SSH链接会直接断开。)
1).用DROP方法
iptables -A INPUT -p tcp -j DROP
2).用REJECT方法
iptables -A INPUT -j REJECT
iptables -A FORWARD -j REJECT

4、屏蔽IP
#如果只是想屏蔽IP的话“3、开放指定的端口”可以直接跳过。
#屏蔽单个IP的命令是
iptables -I INPUT -s 123.45.6.7 -j DROP
#封整个段即从123.0.0.1到123.255.255.254的命令
iptables -I INPUT -s 123.0.0.0/8 -j DROP
#封IP段即从123.45.0.1到123.45.255.254的命令
iptables -I INPUT -s 124.45.0.0/16 -j DROP
#封IP段即从123.45.6.1到123.45.6.254的命令是
iptables -I INPUT -s 123.45.6.0/24 -j DROP
4、查看已添加的iptables规则
iptables -L -n

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

5、删除已添加的iptables规则

将所有iptables以序号标记显示,执行:
iptables -L -n --line-numbers

比如要删除INPUT里序号为8的规则,执行:
iptables -D INPUT 8
6、iptables的开机启动及规则保存

CentOS上可能会存在安装好iptables后,iptables并不开机自启动,可以执行一下:
chkconfig --level 345 iptables on

将其加入开机启动。

CentOS上可以执行:service iptables save保存规则。

Debian/Ubuntu上iptables是不会保存规则的。

需要按如下步骤进行,让网卡关闭是保存iptables规则,启动时加载iptables规则。
如果当前用户不是root,即使使用了sudo,也会提示你没有权限,无法保存,所以执行本命令,你必须使用root用户.
可以使用sudo -i快速转到root,使用完成,请及时使用su username切换到普通帐户.
为了重启服务器后,规则自动加载,我们创建如下文件:
sudo vim /etc/network/if-pre-up.d/iptables#!/bin/bash
iptables-save > /etc/iptables.rules

添加执行权限。
chmod +x /etc/network/if-pre-up.d/iptables

附上基础规则:
*filter
:INPUT ACCEPT [106:85568]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [188:168166]
:RH-Firewall-1-INPUT - [0:0]
#允许本地回环接口(即运行本机访问本机)
-A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT
#允许已建立的或相关连的通行
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#允许所有本机向外的访问
-A OUTPUT -j ACCEPT
#允许PPTP拨号到外网
-A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
#仅特定主机访问Rsync数据同步服务
-A INPUT -s 8.8.8.8/32 -p tcp -m tcp --dport 873 -j ACCEPT
#仅特定主机访问WDCP管理系统
-A INPUT -s 6.6.6.6/32 -p tcp -m tcp --dport 8080 -j ACCEPT
#允许访问SSH
-A INPUT -p tcp -m tcp --dport 1622 -j ACCEPT
#允许访问FTP
-A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 20 -j ACCEPT
#允许访问网站服务
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
#禁止所有未经允许的连接
-A INPUT -p tcp -j DROP
#注意:如果22端口未加入允许规则,SSH链接会直接断开。
#-A INPUT -j REJECT
#-A FORWARD -j REJECT
COMMIT

可以使用一下方法直接载入:
1、复制上面的规则粘贴到这里,保存本文件
sudo vim /etc/iptables.test.rules
2、把本规则加载,使之生效,注意,iptables不需要重启,加载一次规则就成了
sudo iptables-restore < /etc/iptables.test.rules
3、查看最新的配置,应该所有的设置都生效了.
sudo iptables -L -n
4、保存生效的配置,让系统重启的时候自动加载有效配置(iptables提供了保存当前运行的规则功能)
iptables-save > /etc/iptables.rules

标签: iptables, linux防火墙
分类: 工作日志
时间: 2012-10-09

相关文章

  1. Linux上iptables防火墙的基本应用教程

    iptables是Linux上常用的防火墙软件,下面vps侦探给大家说一下iptables的安装.清除iptables规则.iptables只开放指定端口.iptables屏蔽指定ip.ip段及解封.删除已添加的ipta ...
  2. Linux上iptables防火墙的基本应用教程 - 少即是多 - 专注

    iptables是Linux上常用的防火墙软件,下面vps侦探给大家说一下iptables的安装.清除iptables规则.iptables只开放指定端口.iptables屏蔽指定ip.ip段及解封.删除已添加的ipta ...
  3. linux增加iptables防火墙规则的示例

    这篇文章主要介绍了linux增加iptables防火墙规则的示例,大家在使用的时候要把规则后的中文注释去掉 以下是我的iptables设置 *filter :INPUT DROP [0:0] :FORWARD ACCEP ...
  4. linux系统上的防火墙iptables

    Linux防火墙的功能是由linux的内核所提供,直接通过内核来处理,因此性能非常好,不过,不同内核版本防火墙软件是不一样的,因为内核支持的防火墙是不断演变的 #Version 2.0 :使用ipfwadm这个防火墙机制 ...
  5. Linux知识总结复习2:Linux防火墙的基本概念和使用方法(未完待续)

    要理解Linux防火墙,先记住下面两张图(未完待续): 图1 Netfilter packet flow 图2 详细处理
  6. VMware中Linux共享mysql数据库的方法

    VMware中Linux共享mysql数据库的方法,需要的朋友可以参考下. win7 +Navicat Lite 9+ VMware7 在VMware中安装openSUSE11.x mysql5 Navicat Lite ...
  7. linux下IPTABLES配置详解

    linux下IPTABLES配置详解 如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [[email protected] ~]# i ...
  8. linux下IPTABLES配置详解 [[转]]

    linux下IPTABLES配置详解 转自:http://www.cnblogs.com/JemBai/archive/2009/03/19/1416364.html iptables的参数学习参考:http://www ...
  9. Linux防火墙之FirewallD简介

    FirewallD提供了支持网络/防火墙区域定义网络链接以及接口安全等级的动态防火墙管理工具.它支持IPv4,IPv6防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项.它也支持允许服务或者应用程序直接添加防火墙 ...
  10. Linux firewall (iptables) on and off

    Linux firewall (iptables) on and off In Linux iptables firewall mainly on the setup and management. 1. Linux F ...
  11. Linux防火墙 Firestarter

    Firestarter 网站 : http://www.fs-security.com/ Firestarter是一个非常好用的防火墙图形化配置工具,作者和开发者是芬兰人. 首先肯定的说Firestarter防火墙是一款 ...
  12. Ruby中执行Linux shell命令的六种方法详解

    这篇文章主要介绍了Ruby中执行Linux shell命令的六种方法详解,这些方法包括exec.system.反引号.IO.Open3.Open4等命令,需要的朋友可以参考下 在Ruby中,执行shell命令是一件不奇怪 ...
  13. 在Linux上运行C#的方法

    这篇文章主要介绍了在Linux上运行C#的方法,实例分析了Linux平台下Mono软件包的应用技巧,以及在此基础之上的C#运行方法,具有一定的参考借鉴价值,需要的朋友可以参考下 本文实例讲述了在Linux上运行C#的方法 ...
  14. Python执行Linux系统命令的4种方法

    这篇文章主要介绍了Python执行Linux系统命令的4种方法,即在Python脚本中调用Shell命令,需要的朋友可以参考下 (1) os.system 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息 s ...
  15. Linux操作系统添加新硬盘方法

    linux下添加硬盘的方法 #fdisk /dev/sdb 进入fdisk模式: Command (m for help):p //查看新硬盘的分区 Command (m for help):n //创建新分区 Comm ...
  16. linux设置tomcat自启动的方法

    这篇文章主要介绍了linux设置tomcat自启动的方法,需要的朋友可以参考下 linux设置tomcat自动启动在centos下,开机后会自动执行/etc/rc.local中的命令,平时启动tomcat的命令为tomc ...
  17. Erlang中执行linux命令的两种方法

    这篇文章主要介绍了Erlang中执行linux命令的两种方法,本文着重讲解了erlang:open_port的使用,需要的朋友可以参考下 os.cmd(Cmd) os模块提供了cmd函数可以执行linux系统shell命 ...
  18. PHP调用Linux命令权限不足问题解决方法

    这篇文章主要介绍了PHP调用Linux命令权限不足问题解决方法,本文是解决项目问题总结而来,通过修改sudo配置文件解决无权限执行命令问题,需要的朋友可以参考下 业务背景: yourcmd为我的linux程序,它对权限要 ...
  19. linux杀进程的多种方法

    这篇文章主要介绍了linux杀进程的多种方法,需要的朋友可以参考下 常规篇: 首先,用ps查看进程,方法如下: $ ps -ef $ ps -ef -- smx 1822 1 0 11:38 ? 00:00:49 gno ...