搭建防火墙,配置防火墙。 - - 系统centos7 .

centos7自带firewalld,由于看firewalld命令行没有接触过,所以安装iptables防火墙。

1:禁用firewalld

  firewall-cmd --state 查看系统自带防火墙状态。

  用systemctl stop firewalld.service   禁止立即生效,

   systemctl disable firewalld.service  永久关闭firewalld。执行完再看一下防火墙状态, 显示为not runing即可。

2:安装iptables

  我用yum安装的,首先 yum info iptables 查看是否已安装。

  用命令yum install iptables-services,安装完成后,rpm -q iptables , lsmod |grep iptables都可以查看安装结果。


3:安装完成后,配置防火墙规则

  配置命令顺序: iptables -P INPUT ACCEPT ,然后清空规则 iptables -F ,iptables -X ,iptables -Z 

ESTABLISHED 状态,别人的解释是,本机对外请求,接收返回的数据包。依次输入如下:

iptables -A INPUT -i lo -j ACCEPT
  iptables -A INPUT -m state --stateESTABLISHED -j ACCEPT
  iptables -A INPUT -p icmp -m icmp--icmp-type 8 -j ACCEPT

  iptables -A INPUT -p tcp --dport 22 -jACCEPT
  iptables -A INPUT -p tcp --dport 80 -jACCEPT

确定22端口命令配置生效,查看cat /etc/sysconfig/iptables,22端口配置存在

  将除去以上开放的端口,其他进的数据包统一设置为DROP,丢弃。


说明:iptables防火墙有三种模式,INPUT,OUTPUT,FORWARD。防火墙的原理其实就是对数据包进行操作。INPUT表示进服务器的数据包,OUTPUT表示向外发送的数据包,FORWARD表示转发的数据包


 上面博主只设置了INPUT的限制,对于OUTPUT和FORWARD都没有设置,按网上别人说的,OUTPUT是本服务器对外发送数据包,除非被抓肉鸡,一般服务器不会限制OUTPUT(我就碰到过一次,服务器向外DDOS***)。

 

 最后说一点,有些服务传输采用的模式比较特殊,防火墙需要做一些其他的调整。

 比如说FTP服务器搭建过程中,

 我碰到的问题是,防火墙开放了20,21端口但是FTP服务仍然无法连接。

 由于FTP有两种模式传输,而FTP默认采用被动模式,

 生动一点解释,被动模式就是当客户端向FTP的21端口发送连接请求时,服务器接受连接,建立一条命令链路,当需要传输数据时,服务器在命令链路上用PASV命令告诉客户端:我打开了XX端口,你过来链接我。 于是客户端向服务器XXX端口发送连接请求(XXX端口是任意1024以上端口),当防火墙只开放20,21端口时,果断是不能连接的。

 添加一条命令:

iptables -A INPUT -p tcp --dport 1024: -m state --state ESTABLISHED,RELATED -j ACCEPT

  以上命令如果还是不行,再加载FTP额外模块:

  

modprobe ip_nat_ftp
   modprobe ip_conntrack
   modprobe ip_conntrack_ftp

  其他的配置大家多研究研究。比如添加内网信任IP,以及限制IP访问都可以实现。。。