您的位置:首页 > 运维架构 > Linux

如何对CentOS防火墙进行配置

2012-05-29 14:33 344 查看
FTP安装配置参考:

CentOS5.4安装配置vsftpd

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

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

#/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT  
#/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 再查看是否已经有了:

[root@vcentos ~]# /etc/init.d/iptables status   
Table: filter   
Chain INPUT (policy ACCEPT)   
num  target     prot opt source               destination           
1    ACCEPT     udp  --  0.0.0.0/0            0.0.0.0/0           udp dpt:80   
2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80   
3    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0       
Chain FORWARD (policy ACCEPT)   
num  target     prot opt source               destination           
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 端口,我现在添加对应的规则。

[root@localhost root]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT

[root@localhost root]# iptables -A INPUT -p tcp --dport 20 -j ACCEPT

[root@localhost root]# iptables -A OUTPUT -p tcp --sport 21 -j ACCEPT

[root@localhost root]# iptables -A OUTPUT -p tcp --sport 20 -j ACCEPT

复制代码

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

所以我刚才说 ftp 是比较特殊的端口,它还有一些端口是 数据传输端口,

例如目录列表, 上传 ,下载 文件都要用到这些端口。

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

如果不指定什么一个端口范围, iptables 很难对任意端口开放的,

如果iptables允许任意端口访问, 那和不设置防火墙没什么区别,所以不现实的。

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

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

我这里使用vsftpd来修改演示,其他ftp我不知道哪里修改,大家可以找找资料。

[root@localhost root]# vi /etc/vsftpd.conf

复制代码

在配置文件的最下面 加入

pasv_min_port=30001

pasv_max_port=31000

复制代码

然后保存退出。

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

这样我们使用 iptables 就好办多了,我们就打开 30001到31000 这些端口。

[root@localhost root]# iptables -A INPUT -p tcp --dport 30001:31000 -j ACCEPT

[root@localhost root]# iptables -A OUTPUT -p tcp --sport 30001:31000 -j ACCEPT

[root@localhost root]# service iptables save

复制代码

最后进行保存, 然后我们再用浏览器范围下 ftp。可以正常访问
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息