CentOS中防火墙iptables配置详解
2022-05-31Linux
iptables命令是Linux上常用的防火墙软件,iptables是与Linux内核集成的IP信息包过滤系统,其自带防火墙功能,我们在配置完服务器的角色功能(如Redis、ftp或svn等)后,需要修改iptables的配置。配置CentOS等Linux服务器时经常需要对服务器的iptables进行配置
iptables命令是Linux上常用的防火墙软件,iptables是与Linux内核集成的IP信息包过滤系统,其自带防火墙功能,我们在配置完服务器的角色功能(如Redis、ftp或svn等)后,需要修改iptables的配置。配置CentOS等Linux服务器时经常需要对服务器的iptables进行配置
一、防火墙和iptables命令说明
防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种。无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP、数据进行检测
iptables [-t 表名] 选项 [链名] [条件] [-j 控制类型] 参数 -P 设置默认策略:iptables -P INPUT (DROP|ACCEPT) -F 清空规则链 -L 查看规则链 -A 在规则链的末尾加入新规则 -I num 在规则链的头部加入新规则 -D num 删除某一条规则 -s 匹配来源地址IP/MASK,加叹号"!"表示除这个IP外。 -d 匹配目标地址 -i 网卡名称 匹配从这块网卡流入的数据 -o 网卡名称 匹配从这块网卡流出的数据 -p 匹配协议,如tcp,udp,icmp --dport num 匹配目标端口号 --sport num 匹配来源端口号
二、查看当前CentOS服务器中所有的iptables配置
$ iptables -L -n
二、安装iptables
一般CentOS都安装了iptables,cd到/etc/sysconfig目录下看一下有没有防火墙"iptables",如果没有安装或已经被你卸载,请执行下面命令(yum命令需要联网)进行安装
$ yum install iptables
三、添加允许INPUT访问规则
$ vi /etc/sysconfig/iptables
以下时常见服务的端口设置,如果需要拒绝访问,则将ACCEPT改为DROP即可
# SSH -A INPUT -p tcp --dport 22 -j ACCEPT # HTTP -A INPUT -p tcp --dport 80 -j ACCEPT -A INPUT -p tcp --dport 8080 -j ACCEPT # HTTPS -A INPUT -p tcp --dport 443 -j ACCEPT # mysql -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT # POP3 -A INPUT -p tcp --dport 110 -j ACCEPT # SMTP -A INPUT -p tcp --dport 25 -j ACCEPT # FTP -A INPUT -p tcp --dport 21 -j ACCEPT -A INPUT -p tcp --dport 20 -j ACCEPT # DNS -A INPUT -p tcp --dport 53 -j ACCEPT # svn -A INPUT -p tcp --dport 3690 -j ACCEPT # redis -A INPUT -p tcp -m tcp --dport 6379 -j DROP
四、添加使用IP限制INPUT访问规则
这里拿SSH为例,192.168.31.99 为允许的IP
# DELETE -D INPUT -p tcp --dport 3690 -j ACCEPT # ADD -A INPUT -s 192.168.31.99 -p tcp --dport 3690 -j ACCEPT
五、关闭/开启/重启防火墙
# restart 重启 $ /etc/init.d/iptables restart # start 开启 $ /etc/init.d/iptables start # stop 关闭 $ /etc/init.d/iptables stop
六、永久性关闭防火墙(一般不建议)
$ chkconfig --level 35 iptables off $ /etc/init.d/iptables stop $ iptables -P INPUT DROP
七、注意点
1、一定要给自己留好后路,留VNC一个管理端口和ssh的管理端口
2、最需要注意的是,你必须根据自己服务器的情况来修改这个文件,不要随意修改
八、示例(这是我虚拟机的CentOS防火墙配置)
# Generated by iptables-save v1.4.7 on Fri Dec 22 20:34:28 2017 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [1:156] -A INPUT -i lo -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT -A INPUT -p tcp --dport 3690 -j ACCEPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A INPUT -p tcp -m tcp --dport 6379 -j DROP -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT # Completed on Fri Dec 22 20:34:28 2017
九、清除已有iptables规则
iptables -F iptables -X iptables -Z
很赞哦! ()