• WAP手机版 保存到桌面加入收藏设为首页
服务器类

Centos下配置iptables防火墙

时间:2014-10-13 16:27:30   作者:哎丫丫   阅读:1564   评论:0
内容摘要:iptables的基本操作:serviceiptablesstartserviceiptablesstopserviceiptablesrestartserviceiptablesstatus#如果没有启动,将提示没有启动,否则将会显示已经添加的过滤规则serviceiptabl...
iptables的基本操作:
service iptables start
service iptables stop
service iptables restart
service iptables status  #如果没有启动,将提示没有c动,否则将会显示已经添加的过滤规则
service iptables save    #保存添加的规则,记得每次更改规则以后这样保存一下
 
清除iptables已有规则
iptables -F  
iptables -X 
iptables -Z
 
 查看已经添加的规则:
iptables -L -n       
将所有iptables以序号标记显示,执行:
iptables -L -n --line-numbers
比如要删除INPUT里序号为8的规则,执行:
iptables -D INPUT 8
 
 
好了,接下来就是添加各种过滤规则了,先看一下执行service iptables status显示已经添加完以后的过滤规则表:
Txt代码  
表格:filter  
Chain INPUT (policy ACCEPT)  
num  target     prot opt source               destination  
1    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:21  
2    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:20  
3    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED  
4    ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0  
5    ACCEPT     all  --  127.0.0.1            127.0.0.1  
6    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80  
7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22  
8    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable  
  
Chain FORWARD (policy ACCEPT)  
num  target     prot opt source               destination  
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable  
  
Chain OUTPUT (policy ACCEPT)  
num  target     prot opt source               destination  
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0  
 现在服务器上主要就apache和ftp,apache端口是80,vsftpd需要20,21号端口。然后还有就是必须要ssh能登录(端口号22)。
好了,接下来就看怎么一步一步添加这些规则的。
首先要让SSH能登录进系统,因为我进行这些操作都是通过ssh远程登录的服务器,如果22端口被过滤掉,那就完了:
Shell代码  
iptables -A INPUT -p tcp --dport 22 -j ACCEPT  
 向INPUT的chain里添加(-A是添加到末尾,-I是添加到首部)规则,对协议是tcp源端口是22的数据都接收。本来考虑OUTPUT的chain里执行添加:
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
后来考虑还是:所有往外的数据都开放吧,不然服务器里的其它未知端口的程序就没法正常工作了,所以:
Shell代码  
iptables -A OUTPUT -j ACCEPT  
 对于FORWARD这个链路没有特殊的情况全部都拒绝就行了:
Shell代码  
iptables -A FORWARD -j REJECT  
因为添加规则的顺序很重要,对于所有的INPUT的数据,默认也拒绝,后面再添加特殊的端口,由于开始添加了一个开发22号端口的规则,所以默认的拒绝的规则加到INPUT的最后:
Shell代码  
iptables -A INPUT -j REJECT  
 接下来添加apache的80端口,允许请求进入服务器:
Shell代码  
iptables -I INPUT -p tcp --dport 80 -j ACCEPT  
允许本地回环接口(即运行本机访问本机) :
Shell代码  
iptables -I INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT  
 开放ping允许,让别的机器能ping通这台服务器(由于所有的OUTPUT都accept了,所以它自己当然也能ping通别的机器),ping使用的是icmp协议,没有端口号,所以添加方法如下:
Shell代码  
iptables -I INPUT -p icmp  -j ACCEPT  
 允许所有已建立的或相关连的通行:
Shell代码  
iptables -I INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT  
 好了,接下来添加ftp需要的端口20和21: 
Shell代码  
iptables -I INPUT -p tcp --dport 20 -j ACCEPT;  
iptables -I INPUT -p tcp --dport 21 -j ACCEPT;  
 所有的规则都添加完毕,通过service iptables status就能看见最开始那个过滤列表了。接下来测试一下。SSH登录和WEB访问apache都没有问题,但是ftp就连不上了,太诡异了,不是都添加了20和21端口了的吗。
网上搜了一下,说法是iptables控制ftp还需要加载系统的模块,主要就是ip_nat_ftp。
#lsmod | grep ftp (查看是否加载ftp模块)
#modprobe ip_nat_ftp(加载ftp模块)
#lsmod | grep ftp (查看模块是否被加载)
执行modprobe ip_nat_ftp以后,确实ftp能正常访问了。但是后来发现每次service iptables save以后,lsmod | grep ftp 查看一下又没有了,真是恼火。解决办法:
vim打开/etc/sysconfig/iptables-config,这个是iptables的配置文件,显示内容如下:
 
写道
 
# Space separated list of nat helpers (e.g. 'ip_nat_ftp ip_nat_irc'), which 
# are loaded after the firewall rules are applied. Options for the helpers are 
# stored in /etc/modprobe.conf. 
IPTABLES_MODULES="" 
 
# Unload modules on restart and stop 
# Value: yes|no, default: yes 
# This option has to be 'yes' to get to a sane state for a firewall 
# restart or stop. Only set to 'no' if there are problems unloading netfilter 
# modules. 
IPTABLES_MODULES_UNLOAD="yes"
 当然这个文件后面还有一下参数,看到的这两个参数,第二个IPTABLES_MODULES_UNLOAD="yes",什么意思注释里已经很清楚了,每次iptables停止或者重启都会Unload modules。再看看第一个参数IPTABLES_MODULES="" ,注释里说是每次防火墙规则应用以后加载的模块。好了,将它改成IPTABLES_MODULES="ip_nat_ftp" 问题就解决了。
   版权声明,所有转载都有注明出处,本站不负责承担任何法律责往。若有侵权,请联系我。我会及时删除。

电脑维护,系统安装,软 、硬件维修,电脑配件,零售业务,网站建设,路由器安装设置 服务器维护,电脑、网络维护,智能手机刷机,安装WIFI 调试!郴州网站建设 小程序搭建 郴州电脑维修

        咨询电话:18175576644  点击这里给我发消 息
   扫描二维码。关注公众号,小程序
       享受星级服务   

手机点击二维码关注
      


手机点击打开小程序
      


相关评论
免责申明:本站部分资料来源互联网,如果侵犯了您的版权,请作者速来电或QQ与本站联系,我们将第一时间给予以改正或删除。

Copyright © 2020 哎丫丫电脑 All Rights Reserved 
 工信部备案:湘ICP备14010293号-1