zoukankan      html  css  js  c++  java
  • CentOS防火墙配置详解以及规则说明(转)

    公司的局域网服务器配置好网络之后,又折腾了下防火墙,才弄好,不过防火墙的规则有点奇葩,查了N多资料,总算弄清楚各个规则的意思了。

    防火墙的配置在 /etc/sysconfig/iptables文件内

    在防火墙中,来往的数据流被称为IP压缩(本文下面也称数据流为IP压缩)。防火墙有三条缺省规则链来过滤IP压缩,分别为:

    INPUT:所有以主机为目的地的IP压缩

    OUTPUT:所有以主机为源的IP压缩

    FORWARD:所有经过主机,但是既不是以主机为源,也不是以主机为目的地的压缩

    而我们最关注的是INPUT规则,这样可以屏蔽一些黑客行为,或者局域网共享。

    下面以centOS 6.4的默认规则为例子,讲解下各条规则大概的意思:

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

    这是担负起大部份工作的规则,这里我们利用 -m 选项来装入一个模块(state)。state 模块能够查看一个压缩并判断它的状态是 NEW、ESTABLISHED 还是 RELATED。NEW 指內进的压缩属于不是由主机主导的新增连接。ESTABLISHED 及 RELATED 指內进的压缩隶属于一条现存的连接,或者与现存的连接有关系。这条规则的意思是:以本主机为目的地的IP压缩,如果隶属于现有的连接,则接受(accept)

    -A INPUT -p icmp -j ACCEPT

    表示接受icmp协议的IP压缩,icmp协议主要是ping,很多同学在局域网能ping通一台机器,但是无法通过web访问,就是因为开启了icmp协议,但是http等协议没有开,后面会讲解如何解决这个问题

    -A INPUT -i lo -j ACCEPT

    这条规则表示接受那些来自本机(localhost或者127.0.0.1的IP压缩)

    -A INPUT -m state –state NEW -m tcp  -p tcp –dport 22 -j ACCEPT

    表示表示接受不是由本机引导的新增的,基于端口号22的连接(句子有点长,仔细体会哈)。22端口是ssh连接用的,所以如果你想远程操作机器,需要开启端口22

    -A INPUT -j REJECT –reject-with icmp-host-prohibited

    表示拒绝来自已经被禁止的主机的icmp的IP压缩

    -A FORWARD -j REJECTED –reject-with icmp-host-prohibited

    表示拒绝经过本机且源自那些已经被禁止的主机的icmp的IP压缩

    下面再详细说说各个参数的意思:

    -A:表示添加一条规则(add)

    相应的还有:-P(设置规则的缺省值,比如-P INPUT ACCEPT表示没有以本机为目的地的IP压缩默认是接受的)

    -F(清楚所有存在的规则,好添加新的规则)

    -j:表示满足规则执行的相应的操作,意为jump,比如 ……-j ACCEPT就表示满足相应的规则就接受

    -i:界面的意思(interface),lo是本机的意思(localhost)

    注意,编辑完iptables文件之后,使用service iptables restart重启防火墙,可以使用命令:iptables -L查看规则是否生效

    或者使用命令行

    (1)重启后永久性生效:

    开启:chkconfig iptables on

    关闭:chkconfig iptables off

    (2)即时生效,重启后失效:

    开启:service iptables start

    关闭:service iptables stop

    比如局域网中搭建了一台centOS作为服务器,并且建立了LAMP或者LNMP环境,想让局域网中的其他人都能通过web访问该机器,那么先得固定机器的IP地址,将BOOTPROTO改成static,然后将IPADDR设置一个固定的IP(比如192.168.1.22),在设置子网掩码NETMASK(比如255.255.255.0),NETWORK和GATAWAY和DNS等也设置好,然后就是信任来自本局域网的访问了,添加下面的规则到iptables中,再重启防火墙即可。具体如何配置网络看这里:CentOS网络配置详解

    -A INPUT -i eth0 -j ACCEPT                                       #eth0是你的网卡号,用ifconfig -a命令查看你自己的网卡号

    或者你想信任来自一系列IP的访问,可以用斜线记法规定IP的范围,比如:

    -A INPUT -s 192.168.1.0/24 -j ACCEPT                #即接受来自192.168.1.0-192.168.1.255的ip区段的IP压缩

    或者为每一个IP添加一条规则,但是当IP比较多时会很麻烦,比如

    -A INPUT -s 192.168.1.22 -j ACCEPT

    打开80端口的规则

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

  • 相关阅读:
    UARTRS232与RS485的关系
    RS-485总线通信协议
    【转】TCP(协议号6)的方方面面
    【转】Android 编程下的代码混淆
    【转】阻塞与非阻塞socket的优缺点
    【转】Socket状态变迁图
    【转】Spring中IoC的优点与缺点
    linux_UAPI_转
    数组初始化
    中兴被制裁:到底对谁说话 13亿人民中1人有话说
  • 原文地址:https://www.cnblogs.com/wenlove/p/3066035.html
Copyright © 2011-2022 走看看