CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙步骤:

  1.先检查是否安装了: iptables service iptables status

  2.安装iptables: yum install -y iptables

  3.升级iptables(安装的最新版本则不需要): yum update iptables

  4.安装iptables-services: yum install iptables-services

  5.禁用/停止自带的firewalld服务

      (1).查看firewalld运行状态: systemctl start firewalld

      (2).停止firewalld服务: systemctl stop firewalld

      (3).禁用firewalld服务 systemctl mask firewalld

  6.设置现有规则

      (1).查看iptables现有规则: iptables -L -n

      (2).先允许所有,不然有可能会杯具: iptables -P INPUT ACCEPT

      (3).清空所有默认规则 iptables -F

      (4).清空所有自定义规则 iptables -X

      (5).所有计数器归0 iptables -Z

      (6).允许来自于lo接口的数据包

      (本地访问)iptables -A INPUT -i lo -j ACCEPT 

      开放22端口iptables -A INPUT -p tcp --dport 22 -j ACCEPT 

      开放21端口(FTP): iptables -A INPUT -p tcp --dport 21 -j ACCEPT

      开放80端口(HTTP):iptables -A INPUT -p tcp --dport 80 -j ACCEPT

      开放443端口(HTTPS)iptables -A INPUT -p tcp --dport 443 -j ACCEPT

      允许pingiptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT

      允许接受本机请求之后的返回数据 RELATED,是为FTP设置的iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#

      其他入站一律丢弃iptables -P INPUT DROP

      所有出站一律绿灯: iptables -P OUTPUT ACCEPT
:

      所有转发一律丢弃: iptables -P FORWARD DROP

    其他参考规则如下:

      如果要添加内网ip信任(接受其所有TCP请求)
iptables -A INPUT -p tcp -s 45.96.174.68 -j ACCEPT

      过滤所有非以上规则的请求
iptables -P INPUT DROP

      要封停一个IP,使用下面这条命令:
iptables -I INPUT -s ***.***.***.*** -j DROP

      要解封一个IP,使用下面这条命令:
iptables -D INPUT -s ***.***.***.*** -j DROP

  7.保存规则设定,将会在/etc/sysconfig/路径下生产iptables文件。

    保存上述规则: service iptables save

  8.开启iptables服务

    (1).注册iptables服务,相当于以前的chkconfig: iptables on
systemctl enable iptables.service

    (2).开启服务
systemctl start iptables.service

    (3).查看状态
systemctl status iptables.service

参考iptables完整配置如下:

CentOS 7.0 firewall防火墙关闭firewall作为防火墙,这里改为iptables防火墙-LMLPHP

/**********下面是systemctl的一些命令*******************************/

        观察iptables和firewalld使用的两组命令,发现三个常用的命令:service、chkconfig、systemctl。

        systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起。

任务:

旧指令:

新指令:

1.使某服务自动启动

  chkconfig --level 3 httpd on

  systemctl enable httpd.service

2.使某服务不自动启动

  chkconfig --level 3 httpd off

  systemctl disable httpd.service

3.检查服务状态

  service httpd status

  systemctl status httpd.service(服务详细信息) 

  systemctl is-active httpd.service(仅显示是否 Active)

4.显示所有已启动的服务

  chkconfig --list

  systemctl list-units --type=service

5.启动某服务

  service httpd start

  systemctl start httpd.service

6.停止某服务

  service httpd stop

  systemctl stop httpd.service

7.重启某服务

  service httpd restart

  systemctl restart httpd.service

05-11 22:04