如何对CentOS防火墙进行配置

FTP安装配置参考:

CentOS5.4安装配置vsftpd


对CentOS防火墙的设置问题,有很多的网友一直存在着不少的疑问,下面,就是我找到设置CentOS防火墙的方法,给大家展示一下。

看了好几个页面CentOS防火墙内容都有错,下面是正确方法:

   
   
   
   
  1. #/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT  
  2. #/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT  

然后保存:#/etc/rc.d/init.d/iptables save 这样重启计算机后,防火墙默认已经开放了80和22端口

对CentOS防火墙设置已经完成了很重要的部分

这里应该也可以不重启计算机:#/etc/init.d/iptables restart防火墙的关闭,关闭其服务即可:查看防火墙信息:#/etc/init.d/iptables status关闭防火墙服务:#/etc/init.d/iptables stop永久关闭?

不知道怎么个永久法:#chkconfig –level 35 iptables off 再查看是否已经有了:

   
   
   
   
  1. [root@vcentos ~]# /etc/init.d/iptables status   
  2. Table: filter   
  3. Chain INPUT (policy ACCEPT)   
  4. num  target     prot opt source               destination           
  5. 1    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:80   
  6. 2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80   
  7. 3    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0       
  8. Chain FORWARD (policy ACCEPT)   
  9. num  target     prot opt source               destination           
  10. 1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0  

以后大家就可以这样设置CentOS防火墙了。

 

 

在我们使用CentOS系统的时候,CentOS防火墙有时是需要改变设置的。CentOS防火墙默认是打开的,设置CentOS防火墙开放端口方法如下:

打开iptables的配置文件:
vi /etc/sysconfig/iptables
修改CentOS防火墙时注意:一定要给自己留好后路,留VNC一个管理端口和SSh的管理端口

下面是一个iptables的示例:

# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp –icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited
COMMIT

修改CentOS防火墙需要注意的是,你必须根据自己服务器的情况来修改这个文件。

举例来说,如果你不希望开放80端口提供web服务,那么应该相应的删除这一行:
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT

全部修改完之后重启iptables:
service iptables restart

你可以验证一下是否规则都已经生效:iptables -L

这样,我们就完成了CentOS防火墙的设置修改。



###############FTP无法显示列表####################################

Linux服务器上安装ftp提供用户上传下载,是很方便的事情,但是如果你的服务器

开启了iptables防火墙,就要对ftp端口做一些设置。

我之前也做过iptables允许某个端口访问的视频,为什么还要做ftp端口这个演示?

因为ftp端口真的比较特殊,并不像80,22这些端口。

它分为连接用的端口,还有当你上传下载文件的传输数据用的端口。

好下面我边演示,边讲下它如何的特别。

netstat -tnl 命令可以看到,我们现在运行了ftp服务。

tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN

================
[root@localhost root]# iptables -L -n
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0          tcp dpt:22

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0          tcp spt:22

我这里现在只允许 22 端口的访问。

现在我开始对ftp端口的设置,按照我们以前的视频,添加需要开放的端口
ftp连接端口有2个 21 和 20 端口,我现在添加对应的规则。

  1. [root@localhost root]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT
  2. [root@localhost root]# iptables -A INPUT -p tcp --dport 20 -j ACCEPT
  3. [root@localhost root]# iptables -A OUTPUT -p tcp --sport 21 -j ACCEPT
  4. [root@localhost root]# iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT
复制代码




好,这样就添加完了,我们用浏览器访问一下ftp,出现超时。

所以我刚才说 ftp 是比较特殊的端口,它还有一些端口是 数据传输端口,
例如目录列表, 上传 ,下载 文件都要用到这些端口。

而这些端口是 任意 端口。。。 这个 任意 真的比较特殊。

如果不指定什么一个端口范围, iptables 很难对任意端口开放的,
如果iptables允许任意端口访问, 那和不设置防火墙没什么区别,所以不现实的。

那么我们的解决办法就是 指定这个数据传输端口的一个范围。

下面我们修改一下ftp配置文件。

我这里使用vsftpd来修改演示,其他ftp我不知道哪里修改,大家可以找找资料。
  1. [root@localhost root]# vi /etc/vsftpd.conf
复制代码

在配置文件的最下面 加入
  1. pasv_min_port=30001
  2. pasv_max_port=31000
复制代码

然后保存退出。

这两句话的意思告诉vsftpd, 要传输数据的端口范围就在30001到31000 这个范围内传送。

这样我们使用 iptables 就好办多了,我们就打开 30001到31000 这些端口。
  1. [root@localhost root]# iptables -A INPUT -p tcp --dport 30001:31000 -j ACCEPT
  2. [root@localhost root]# iptables -A OUTPUT -p tcp --sport 30001:31000 -j ACCEPT

  3. [root@localhost root]# service iptables save
复制代码

最后进行保存, 然后我们再用浏览器范围下 ftp。可以正常访问


你可能感兴趣的:(centos,tcp,防火墙,filter,input,output)