Linux-查看防火墙状态和命令
·
1、centos7
1.1、开启防火墙
systemctl start firewalld.service
1.2、关闭防火墙
# 一般情况
systemctl stop firewalld.service
# 上述方法不行采用此方法
先用:systemctl unmask firewalld.service
然后:systemctl start firewalld.service
1.3、开启防火墙开机启动
systemctl enable firewalld.service
1.4、关闭防火墙开机启动
systemctl disable firewalld.service
1.5、查看防火墙状态
# 方法1
systemctl status firewalld
# 方法2
firewall-cmd --state
1.6、开启端口
#注:可以是一个端口范围,如1000-2000/tcp
firewall-cmd --zone=public --add-port=80/tcp --permanent
1.7、移除端口
# 方法1
firewall-cmd --zone=public --remove-port=80/tcp --permanent
# 方法2
firewall-cmd --permanent --remove-port=123/tcp
1.8、重启防火墙
firewall-cmd --reload
1.9、查看某个端口是否开启
firewall-cmd --query-port=80/tcp
1.10、查询开放列表
firewall-cmd --list-port
1.11、systemctl常用命令
systemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体。
# 启动一个服务:
systemctl start firewalld.service
# 关闭一个服务:
systemctl stop firewalld.service
# 重启一个服务:
systemctl restart firewalld.service
# 显示一个服务的状态:
systemctl status firewalld.service
# 在开机时启用一个服务:
systemctl enable firewalld.service
# 在开机时禁用一个服务:
systemctl disable firewalld.service
# 查看服务是否开机启动:
systemctl is-enabled firewalld.service
# 查看已启动的服务列表:
systemctl list-unit-files|grep enabled
# 查看启动失败的服务列表:
systemctl --failed
1.12、firewalld-cmd配置
# 查看版本:
firewall-cmd --version
# 查看帮助:
firewall-cmd --help
# 显示状态:
firewall-cmd --state
# 查看所有打开的端口:
firewall-cmd --zone=public --list-ports
# 更新防火墙规则:
firewall-cmd --reload
# 查看区域信息:
firewall-cmd --get-active-zones
# 查看指定接口所属区域:
firewall-cmd --get-zone-of-interface=eth0
# 拒绝所有包:
firewall-cmd --panic-on
# 取消拒绝状态:
firewall-cmd --panic-off
# 查看是否拒绝:
firewall-cmd --query-panic
2、centos6
2.1、防火墙配置文件
# 编辑配置文件
vim /etc/sysconfig/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
2.2、service方式
# 开机启动:
chkconfig iptables on
# 开机关闭:
chkconfig iptables off
# 查看防火墙状态:
service iptables status
# 启动防火墙服务:
service iptables start
# 关闭防火墙服务:
service iptables stop
# 重启防火墙服务:
service iptables restart
# 在使用iptables命令添加/删除时,需要用到此命令。若直接编辑/etc/sysconfig/iptables文件,则不需要
保存配置:service iptables save
2.2、iptables方式
# 防火墙的配置信息均在此路径下
cd /etc/init.d/
# 查看防火墙的状态:
/etc/init.d/iptables status
# 开启防火墙:
/etc/init.d/iptables start
# 临时关闭防火墙:
/etc/init.d/iptables stop
# 重启防火墙:
/etc/init.d/iptables restart
2.3、添加端口
# 修改配置文件
##修改配置文件开放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
# 命令操作
##使用命令添加3307端口 (添加使用 -A 插入使用 -I 删除使用 -D)
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 3307 -j ACCEPT
iptables -D INPUT -m state --state NEW -m tcp -p tcp --dport 3307 -j ACCEPT
##使用命令添加8000:20000端口 (添加使用 -A 插入使用 -I 删除使用 -D)
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8000:20000 -j ACCEPT
2.4、设置端口转发
# 同端口转发
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]
# 非同端口转发:使用本地服务器的 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]
# 多端口转发:将本地服务器的 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]
# 本机端口转发
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
3、Ubuntu
3.1、安装UFW防火墙
sudo apt-get install ufw
# 安装完成之后初始化UFW防火墙
安装防火墙:sudo apt-get install ufw
开启防火墙:sudo ufw enable
sudo ufw default deny
3.2、开启防火墙
sudo ufw enable
sudo ufw default deny
3.3、防火墙常用命令
# 允许所有的外部IP访问本机的25/tcp (smtp)端口:
sudo ufw allow smtp
# 允许所有的外部IP访问本机的22/tcp (ssh)端口:
sudo ufw allow 22/tcp
# 允许外部访问53端口(tcp/udp):
sudo ufw allow 53
# 允许此IP访问所有的本机端口:
sudo ufw allow from 192.168.1.100
sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2 port 53
# 禁止外部访问smtp服务:
sudo ufw deny smtp
# 删除上面建立的某条规则:
sudo ufw delete allow smtp
# 查看防火墙状态:
sudo ufw status
# 开启/关闭防火墙 (默认设置是’disable’):
ufw enable|disable
# 转换日志状态:
ufw logging on|off
# 设置默认策略 (比如 “mostly open” vs “mostly closed”):
ufw default allow|deny
更多推荐
所有评论(0)