Linux下iptables防火墙简单配置

Linux下防火墙简单配置

作为一个网站服务器,只需要开放80端口和22端口即可。80用于web访问,22用于远程登录管理,可以把22端口改成其他的端口,这样更安全。一般来说 在创建访问规则时 都会将原有的规则清零 这是一个比较好的习惯,因为某些规则的存在会影响你建的规则.

基本语法:
iptables [-t filter] [-AI INPUT,OUTPUT,FORWARD] [-io interface]
         [-p tcp,udp.icmp,all] [-s ip/nerwork] [--sport ports]
         [-d ip/netword] [--dport ports] [-j ACCEPT DROP]
以上是iptables的基本语法
A 是添加的意思
I 是播入的意思
io 指的是数据要进入或出去所要经过的端口 如eth1 eth0 pppoe等 
p 你所要指定的协议
-s 指源地址 可是单个IP如192.168.2.6 也可以是一个网络 192.168.2.0/24 还可以 是一个域名 如163.com 如果你填写的域名系统会自动解析出他的IP并在iptables里 显示
--sport 来源端口
-d 同-s相似 只不过他指的是目标地址 也可以是IP 域名 和网络
--dport 目标端口
-j 执行参数 ACCEPT DROP
注意:如果以有参数存在 则说明全部接受
1 如我要来自己l0接口的数据全部接受,我们可以写成这样:
    iptables -A INPUT -i lo -j ACCEPT
2 如果我们想接受192.168.2.6这个IP地址传来的数据我们可以这样写
    iptablse -A INPUT -i eth1 -p tcp -s 192.168.2.6 -j ACCEPT
3 如果我们要拒绝来自己192.168.2.0/24这个网的telnet连接
    iptablse -A INPUT -i eth1 -p udp -s 192.168.2.0/24 
    --sport 23 -j DROP

查看现有的防火墙规则

[[email protected]~]# iptables -L -n

iptables的默认设置为 三条链都是ACCEPT 如下:
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

查看防火墙状态

[[email protected]~]# service iptables status

修改防火墙默认配置

[[email protected]~]# iptables -P INPUT ACCEPT

清空默认防火墙规则

[[email protected] ~]# iptables -F
[[email protected] ~]# iptables -t nat -F

简单的配置防火墙

[[email protected]~]# iptables -A INPUT -i lo -j ACCEPT 
[[email protected]~]# iptables -A INPUT -m state –state ESTABLISH,RELATED -j ACCEPT
[[email protected]~]# iptables -A INPUT -p tcp –dport 80 -j ACCEPT
[[email protected]~]# iptables -A INPUT -p tcp –dport 22 -j ACCEPT
[[email protected]~]# iptables -A INPUT -p icmp -j ACCEPT
[[email protected]~]# iptables -P INPUT DROP
[[email protected]~]# iptables -P FORWARD DROP
[[email protected]~]# iptables -P OUTPUT ACCEPT

保存防火墙配置

[[email protected]~]# service iptables save

设置开机启动

[[email protected]~]# chkconfig iptables on

重启防火墙
[[email protected]~]# service iptables restart

查看防火墙

[[email protected]~]# iptables -L -n -v

命令解释

iptables -P INPUTACCEPT 假如利用远程连接,我们必须临时将 INPUT 链的缺省政策改为 ACCEPT,否则当我们清除现有的规则集时,便会将自己封锁在服务器之外。
iptables -F 我们利用 -F 选项来清除一切现存的规则,好让我们能够在崭新的状态下加入的规则。
iptables -A INPUT -i lo -j ACCEPT 现在是时候加入一些规则了。我们利用 -A 选项来附加(新增)规则到某条链,而这里所指的是 INPUT 链。接著我们利用 -i 选项(interface「界面」之意)来指定那些符合或来自 lo(localhost、127.0.0.1)界面的封包。最后我们 -j(jump「跳至」)符合这条规则的目标动作:在这里是 ACCEPT。所以这条规则会导致所有转至localhost 界面的对内封包获得接纳。一般来说这是必须的,因为很多软件预期能够与 localhost 适配器沟通。
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT 这是担负起大部份工作的规则,而我们再一次将它加进(-A)INPUT 链内。这里我们利用 -m 选项来装入一个模块(state)。state 模块能够查看一个封包并判断它的状态是 NEW、ESTABLISHED 抑或 RELATED。NEW 指进入的封包属于不是由主机初始化的新增连接。ESTABLISHED 及 RELATED 指进入的封包
隶属于一条现存的连接,或者与现存的连接有关系。
iptables -A INPUT -p tcp –dport 22 -j ACCEPT 现在我们加入一条规则来容许 SSH 通过 tcp 端口 22 来连接。这样做是要防止我们连接到远程系统的 SSH 连接意外地被封销。我们稍后会更详细解释这条规则。
iptables -P INPUT DROP 这个 -P 选项设置某条规则链上的缺省政策。我们现在可以将 INPUT 链的缺省政策改为 DROP。意思就是,不符合任何一条规则的对内封包将会被丢弃。要是我们通过 SSH 远程连接而没有加入上一条规则,此刻我们便会被封锁于系统之外。
iptables -P FORWARD DROP 同样地,在这里我们将 FORWARD 链的缺省政策设为 DROP,因为我们并不是用计算机作为路由器,所以理应没有任何封包路经它。
iptables -P OUTPUT ACCEPT 而最后,我们将 OUTPUT 链的缺省政策设为 ACCEPT,因为我们想容许所有对外的流量(由于我们信任我们的用户)。
iptables -L -v 最后,我们可以列出(-L)刚加入的规则,并检查它们是否被正确地装入。

时间: 2024-07-30 13:50:51

Linux下iptables防火墙简单配置的相关文章

RedHat Linux下iptables防火墙设置

一般情况下iptables已经包含在Linux发行版中.运行 # iptables --version 来查看系统是否安装iptables 启动iptables: # service iptables start 查看iptables规则集 # iptables --list 下面是没有定义规划时iptables的样子: Chain INPUT (policy ACCEPT) target    prot opt source              destination Chain FOR

linux下iptables防火墙详解

Linux网络防火墙基础知识 工作在主机或网络的边缘,对于进出的数据报文按照事先定义好的规则中的匹配标准进行检查,并做出对应的处理办法的机制称作防火墙. IP报文首部:主要包含源IP,目标IP TCP报文首部:主要包含源端口,目标端口,标志位SYN,ACK,RST,FIN 匹配标准解释: IP: 源IP,目标IP TCP: 源端口,目标端口 TCP三次握手三个阶段表示: 第一阶段:  SYN=1,FIN=0,RST=0,ACK=0; 第二阶段: SYN=1,ACK=1,FIN=0,RST=0;

Linux下 iptables防火墙 放开相关port 拒绝相关port 及查看已放开port

我用的是fedora 14 1. 查看iptables 防火墙已经开启的port:/etc/init.d/iptables status [[email protected] ~]#/etc/rc.d/init.d/iptables status             或者 service iptables status Table: filter Chain INPUT (policy ACCEPT) num  target     prot opt source              

linux下IPTABLES的一些配置

如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [[email protected] ~]# iptables -L -nChain INPUT (policy ACCEPT)target       prot opt source                 destination Chain FORWARD (policy ACCEPT)target       prot opt s

linux下mysql的简单配置

1.设置字符编码 输入命令: [root@localhost ~]# vi /etc/my.cnf 最后一行加入:default-character-set=utf8,保存! 2.启动mysql服务: 输入命令: [root@localhost ~]# service mysqld start 返回一下信息则表示已经启动成功 Initializing MySQL database: Installing MySQL system tables- OK Filling help tables- O

linux 下zabbix 监控简单配置

一.搭建环境介绍 hostname IP zabbix版本 系统版本 服务端 webserver 192.168.1.20 zabbix2.2 CentOS 6.6 客户端 hpf-linux 192.168.1.110 zabbix2.2 CentOS 6.6 二.zabbix的常用配置 1.更改浏览器下zabbix的显示语言 由于默认的浏览器下zabbix是英文,我们可以更改zabbix为中文:点击右上角的profile-->在language栏选择中文-->点击save保存: 查看zab

Linux下SVN的简单配置

1.安装svn sudo yum install subversion 2.查看是否安装成功 svnserve --version 3.创建svn目录 svnadmin create 目录名 例如:svnadmin create   /data/svn/qconnnet 4.修改配置文件 svn目录下 conf/svnserve.conf 修改:去掉以下三行前面的注释 anon-access = readauth-access = write password-db = passwd 5.设置用

linux下IPTABLES配置详解 (防火墙命令)

linux下IPTABLES配置详解 -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 24000 -j ACCEPT-A RH-Firewall-1-INPUT -s 121.10.120.24 -p tcp -m tcp --dport 18612 -j ACCEPT 如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的

LInux下iptables配置

linux下IPTABLES配置详解 如果你的IPTABLES基础知识还不了解,建议先去看看. 开始配置 我们来配置一个filter表的防火墙. (1)查看本机关于IPTABLES的设置情况 [[email protected] ~]# iptables -L -nChain INPUT (policy ACCEPT)target       prot opt source                 destination Chain FORWARD (policy ACCEPT)targ