CentOS/Linux 开放80、8080端口或者开放某个端口

iptables是linux系统自带的防火墙,功能强大,学习起来需要一段时间,下面是一些习iptables的时候的记录。如果iptables不熟悉的话可以用apf,是一款基于iptables的防火墙,挺好用的。请参考:linux apf 防火墙 安装 配置

一,安装并启动防火墙

  1. [root@linux ~]# /etc/init.d/iptables start  

当我们用iptables添加规则,保存后,这些规则以文件的形势存在磁盘上的,以centos为例,文件地址是/etc/sysconfig/iptables,我们可以通过命令的方式去添加,修改,删除规则,也可以直接修改/etc/sysconfig/iptables这个文件就行了。

二,添加防火墙规则

1,添加filter表

查看 复制 打印 ?
  1. [root@linux ~]# iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT  //开放21端口  

出口我都是开放的iptables -P OUTPUT ACCEPT,所以出口就没必要在去开放端口了。

2,添加nat表

  1. [root@linux ~]# iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j MASQUERADE  

将源地址是 192.168.10.0/24 的数据包进行地址伪装

3,-A默认是插入到尾部的,可以-I来插入到指定位置

查看 复制 打印 ?
  1. [root@linux ~]# iptables -I INPUT 3 -p tcp -m tcp --dport 20 -j ACCEPT  
  2.   
  3. [root@linux ~]# iptables -L -n --line-number  
  4. Chain INPUT (policy DROP)  
  5. num  target     prot opt source               destination  
  6. 1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0  
  7. 2    DROP       icmp --  0.0.0.0/0            0.0.0.0/0           icmp type 8  
  8. 3    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:20                //-I指定位置插的  
  9. 4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22  
  10. 5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80  
  11. 6    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED  
  12. 7    DROP       all  --  0.0.0.0/0            0.0.0.0/0           state INVALID,NEW  
  13. 8    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:21                //-A默认插到最后  
  14.   
  15. Chain FORWARD (policy ACCEPT)  
  16. num  target     prot opt source               destination           
  17.   
  18. Chain OUTPUT (policy ACCEPT)  
  19. num  target     prot opt source               destination  

三,查下iptable规则

1,查看filter表

查看 复制 打印 ?
  1. [root@linux ~]# iptables -L -n --line-number |grep 21 //--line-number可以显示规则序号,在删除的时候比较方便  
  2. 5    ACCEPT     tcp  --  192.168.1.0/24       0.0.0.0/0           tcp dpt:21  

如果不加-t的话,默认就是filter表,查看,添加,删除都是的

2,查看nat表

  1. [root@linux ~]# iptables -t nat -vnL POSTROUTING --line-number  
  2. Chain POSTROUTING (policy ACCEPT 38 packets, 2297 bytes)  
  3. num   pkts bytes target     prot opt in     out     source               destination  
  4. 1        0     0 MASQUERADE  all  --  *      *       192.168.10.0/24      0.0.0.0/0  

四,修改规则

查看 复制 打印 ?
  1. [root@linux ~]# iptables -R INPUT 3 -j DROP    //将规则3改成DROP  

五,删除iptables规则

查看 复制 打印 ?
  1. [root@linux ~]# iptables -D INPUT 3  //删除input的第3条规则  
  2.   
  3. [root@linux ~]# iptables -t nat -D POSTROUTING 1  //删除nat表中postrouting的第一条规则  
  4.   
  5. [root@linux ~]# iptables -F INPUT   //清空 filter表INPUT所有规则  
  6.   
  7. [root@linux ~]# iptables -F    //清空所有规则  
  8.   
  9. [root@linux ~]# iptables -t nat -F POSTROUTING   //清空nat表POSTROUTING所有规则  

六,设置默认规则

查看 复制 打印 ?
  1. [root@linux ~]# iptables -P INPUT DROP  //设置filter表INPUT默认规则是 DROP  




装载系统的时候只开启了22端口。结果再装完Nginx+php+mysql 后不能访问网站。

iptables -L -n 

查看防火墙设置发现没开启80端口

由于Linux防火墙默认是关闭的。可以用两种方式,一个是关闭防火墙,另一个就是让防火墙开放这个端口。

关闭防火墙命名:

service iptables stop (不推荐)

  开放8080端口的解决步骤如下:

  1、修改/etc/sysconfig/iptables 文件,增加如下一行:

  -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

       重启iptables


       service iptables restart
 

  2、重启防火墙,这里有两种方式重启防火墙

  a) 重启后生效
  开启: chkconfig iptables on
  关闭: chkconfig iptables off

  b) 即时生效,重启后失效
  开启: service iptables start
  关闭: service iptables stop

开放一个范围的端口3000到5000

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3000:5000 -j ACCEPT


所有添加,删除,修改后都要保存起来,/etc/init.d/iptables save.上面只是一些最基本的操作,要想灵活运用,还要一定时间的实际操作。





你可能感兴趣的:(CentOS/Linux 开放80、8080端口或者开放某个端口)