Linux防火墙及端口策略设置(iptables&firewalld)

2023-05-16

防火墙设置

service firewalld stop
service firewalld start
service firewall restart
service firewalld status

开机禁用  : systemctl disable firewalld
开机启用  : systemctl enable firewalld
查看版本: 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
启动一个服务: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
调整默认策略(默认拒绝所有访问,改成允许所有访问):
firewall-cmd --permanent --zone=public --set-target=ACCEPT
firewall-cmd --reload
对某个IP开放多个端口:
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="10.159.60.29" port protocol="tcp" port="1:65535" accept"
firewall-cmd --reload
添加
firewall-cmd --zone=public --add-port=80/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd --reload
查看
firewall-cmd --zone= public --query-port=80/tcp
删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent

端口策略


iptables -L #查看现有防火墙所有策略
iptables -F #清除现有防火墙策略
只允许特定流量通过,禁用其他流量
#开放redis端口
iptables -A INPUT -p tcp -m tcp --dport 6379 -j ACCEPT

#开放MySql端口
iptables -A INPUT -p tcp -m tcp --dport 3306 -j ACCEPT

#开放WebServer端口
iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT

#开放SMTP端口
iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT

#开放ssh端口
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT

#允许本地回环接口(即允许本机访问本机)
iptables -A INPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT

#开放ping
iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

#允许已建立的或相关连的通行?这一行要加上,否则无法访问外网
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

#开放本机所有向外的访问
iptables -A OUTPUT -j ACCEPT
保存配置
service iptables save

重启
service iptables restart

端口与服务&如何检测端口开放

端口号与相应服务的对应关系存放在/etc/services文件中,这个文件中可以找到大部分端口。
1、nmap工具检测开放端口

  • nmap 127.0.0.1 查看本机开放的端口,会扫描所有端口。 也可以扫描其它服务器端口
rpm -ivh nmap-4.11-1.1.x86_64.rpm 

2、netstat 工具检测开放端口

[root@DB-Server Server]# netstat -anlp | grep 3306
tcp 0 0 :::3306 :::* LISTEN 7358/mysqld
[root@DB-Server Server]# netstat -anlp | grep 22
tcp 0 0 :::22 :::* LISTEN 4020/sshd
tcp 0 52 ::ffff:192.168.42.128:22 ::ffff:192.168.42.1:43561 ESTABLISHED 6198/2
[root@DB-Server Server]#
clip_image002

3、lsof 工具检测开放端口

[root@DB-Server Server]# lsof -i TCP| fgrep LISTEN
cupsd     3153    root    4u  IPv4   9115       TCP localhost.localdomain:ipp (LISTEN)
portmap   3761     rpc    4u  IPv4  10284       TCP *:sunrpc (LISTEN)
rpc.statd 3797 rpcuser    7u  IPv4  10489       TCP *:1011 (LISTEN)
sshd      4020    root    3u  IPv6  12791       TCP *:ssh (LISTEN)
sendmail  4042    root    4u  IPv4  12876       TCP localhost.localdomain:smtp (LISTEN)

4、使用telnet检测端口是否开放
安装

yum install telnet-server
yum install telnet
yum install -y xinetd
设置开机自启
[root@localhost ~]# systemctl enable xinetd.service
[root@localhost ~]# systemctl enable telnet.socket
重新启动xinetd 
[root@localhost ~]# systemctl restart xinetd.service

5、netcat工具检测端口是否开放。

[root@DB-Server ~]# nc -vv 192.168.42.128 1521
Connection to 192.168.42.128 1521 port [tcp/ncube-lm] succeeded!
[root@DB-Server ~]# nc -z 192.168.42.128 1521; echo $?
Connection to 192.168.42.128 1521 port [tcp/ncube-lm] succeeded!
0
[root@DB-Server ~]#  nc -vv 192.168.42.128 1433
nc: connect to 192.168.42.128 port 1433 (tcp) failed: No route to host
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux防火墙及端口策略设置(iptables&firewalld) 的相关文章

随机推荐