CentOS 6 iptables 防火墙设置

CentOS 6 防火墙

 本人使用的是CentOS 6.5 64bit 版本,如果是CentOS 7 以上版本请查看:

      https://blog.csdn.net/dling8/article/details/87359821


一、设置防火墙


1.防火墙配置文件
  a 编辑配置文件    

vim /etc/sysconfig/iptables

  b 文件内容,可在文件中添加相应的配置,开放一些端口,以及端口转发等
    ----------------------------------中间为iptables文件内容-------------------------------------------

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8000:20000 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT


    ----------------------------------中间为iptables文件内容-------------------------------------------

2.常用命令
    

开机启动:chkconfig iptables on
开机关闭:chkconfig iptables off
查看防火墙状态:service iptables status
启动防火墙服务:service iptables start
关闭防火墙服务:service iptables stop
重启防火墙服务:service iptables restart
保存配置:service iptables save  //在使用iptables命令添加/删除时,需要用到此命令。若直接编辑/etc/sysconfig/iptables文件,则不需要。

3.开放端口
  a 修改配置文件 /etc/sysconfig/iptables
    开放80端口:        

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

    开放8000-20000范围内的端口:        

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8000:20000 -j ACCEPT

  b 使用命令添加(添加使用 -A 插入使用 -I 删除使用 -D)
    开放80端口:        

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

    开放8000-20000范围内的端口:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8000:20000 -j ACCEPT

   注意:使用命令修改时需要保存        

service iptables save

  注意:修改后需要重启防火墙    

service iptables restart


二、端口转发


 a 同端口转发:

 iptables -t nat -A PREROUTING -p tcp --dport [端口号] -j DNAT --to-destination [目标IP]
 iptables -t nat -A PREROUTING -p udp --dport [端口号] -j DNAT --to-destination [目标IP]
 iptables -t nat -A POSTROUTING -p tcp -d [目标IP] --dport [端口号] -j SNAT --to-source [本地服务器IP]
 iptables -t nat -A POSTROUTING -p udp -d [目标IP] --dport [端口号] -j SNAT --to-source [本地服务器IP]

 b 非同端口转发:使用本地服务器的 8001 端口来转发目标 IP 为 目标服务器 的 9001 端口(其中/32可以不加)    

iptables -t nat -A PREROUTING -p tcp --dport 8001 -j DNAT --to-destination [目标服务器IP]:9001
iptables -t nat -A PREROUTING -p udp --dport 8001 -j DNAT --to-destination [目标服务器IP]:9001
iptables -t nat -A POSTROUTING -d [目标服务器IP]/32 -p tcp -m tcp --dport 9001 -j SNAT --to-source [本地服务器IP]
iptables -t nat -A POSTROUTING -d [目标服务器IP]/32 -p udp -m udp --dport 9001 -j SNAT --to-source [本地服务器IP]

 c 多端口转发:将本地服务器的 8000~9000 转发至目标 IP 为 目标服务器 的 8000~9000 端口    

iptables -t nat -A PREROUTING -p tcp --dport 8000:9000 -j DNAT --to-destination [目标服务器IP]
iptables -t nat -A PREROUTING -p udp --dport 8000:9000 -j DNAT --to-destination [目标服务器IP]
iptables -t nat -A POSTROUTING -d [目标服务器IP] -p tcp --dport 8000:9000 -j SNAT --to-source [本地服务器IP]
iptables -t nat -A POSTROUTING -d [目标服务器IP] -p udp --dport 8000:9000 -j SNAT --to-source [本地服务器IP]

 d 本机端口转发     

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080

  其中 -t nat 必须加上,否则报错:iptables: No chain/target/match by that name.

  加上 -t nat 后,添加的规则并不在文件 /etc/sysconfig/iptables 中,所以如果你发现该文件中没有刚添加的配置,不用担心。

  保存,重启服务    

service iptables save
service iptables restart

例如:本机172.16.0.4的10080端口 转发到 121.196.223.183的80端口
    先使用命令:ifconfig,找到本机的ip地址(内网):172.16.0.4,然后执行下面的命令:    

iptables -t nat -A PREROUTING -p tcp --dport 10080 -j DNAT --to-destination 121.196.223.183:80
iptables -t nat -A POSTROUTING -p tcp -d 121.196.223.183 --dport 80 -j SNAT --to-source 172.16.0.4
service iptables save        //保存,如果不保存,重启防火墙后还是没有添加上
service iptables restart    //重启防火墙
service iptables status        //查看防火墙状态


 如果添加错误了,可以使用删除或替换命令,二者选一:
  1.删除第1条,删除后重新添加就可以了    

iptables -t nat -D PREROUTING 1

  2.替换第1条    

iptables -t nat -R POSTROUTING 1 -p tcp -d 121.196.223.183 --dport 10869 -j SNAT --to-source 172.16.0.4

 

以下是在 CentOS 上安装 iptables 防火墙的步骤: 1. 首先,使用 root 用户登录您的 CentOS 服务器。 2. 打开终端,执行以下命令安装 iptables: ``` yum install iptables-services ``` 3. 安装完成后,启动 iptables 服务: ``` systemctl start iptables ``` 4. 接着,将 iptables 服务设置为开机自启动: ``` systemctl enable iptables ``` 5. 确认 iptables 服务已经启动: ``` systemctl status iptables ``` 如果状态为 active(运行中),则表示 iptables 服务已经成功启动。 6. 配置 iptables 规则: 在 CentOS配置 iptables 规则有两种方式,一种是手动配置,另一种是使用防火墙配置工具。 手动配置: 编辑 /etc/sysconfig/iptables 文件,添加相应的规则。例如,开放 SSH 连接的端口: ``` -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT ``` 配置完毕后,保存文件并重启 iptables 服务使配置生效: ``` systemctl restart iptables ``` 防火墙配置工具: CentOS 提供了防火墙配置工具 firewalld,您可以使用以下命令安装: ``` yum install firewalld ``` 安装完成后,启动 firewalld 服务并设置开机自启动: ``` systemctl start firewalld systemctl enable firewalld ``` 然后,使用 firewall-cmd 命令添加防火墙规则。例如,开放 SSH 连接的端口: ``` firewall-cmd --zone=public --add-port=22/tcp --permanent ``` 配置完毕后,重新加载防火墙规则使其生效: ``` firewall-cmd --reload ``` 以上就是在 CentOS 上安装 iptables 防火墙的步骤,您可以根据需要进行配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值