iptables开放指定端口
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iptables开放指定端口相关的知识,希望对你有一定的参考价值。
参考技术A由于业务的需要, MySQL,Redis,mongodb等应用的端口需要我们手动操作开启
下面以 MySQL 为例,开启 3306 端口的远程访问,其他端口类似。
添加如下一行配置:
注意:如果已经存在该端口的配置,修改 DROP 为 ACCEPT:
如果操作比较频繁或者命令的方式比较繁琐,我这里提供一个简单的设置脚本,可以上传到服务器的对应目录,直接运行输入端口号即可
假设我们使用xshell通过test账号进行ssh登录
注意:如果需要通过公网访问,请与对应的云服务器提供商的控制台设置安全组放行(阿里云、腾讯云等)
Linux笔记-iptables开放指定端口,开放ICMP协议,其他端口禁止访问
下面实现3个规则:
①对所有的地址开放本机的tcp(80、22、10~21)端口的访问。
②运行对所有地址开放本机的基于ICMP协议的数据包访问。
③其他未允许的端口则禁止访问。
#查看本机开放的端口
netstat -luntp
[root@bogon ~]# netstat -luntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:6000 0.0.0.0:* LISTEN 9215/X
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 9106/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 8591/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 8587/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 9024/master
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 20030/sshd: root@pt
tcp 0 0 127.0.0.1:6011 0.0.0.0:* LISTEN 20313/sshd: root@pt
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::6000 :::* LISTEN 9215/X
tcp6 0 0 :::22 :::* LISTEN 8591/sshd
tcp6 0 0 ::1:631 :::* LISTEN 8587/cupsd
tcp6 0 0 ::1:25 :::* LISTEN 9024/master
tcp6 0 0 ::1:6010 :::* LISTEN 20030/sshd: root@pt
tcp6 0 0 ::1:6011 :::* LISTEN 20313/sshd: root@pt
udp 0 0 0.0.0.0:50213 0.0.0.0:* 8206/avahi-daemon:
udp 0 0 0.0.0.0:5353 0.0.0.0:* 8206/avahi-daemon:
udp 0 0 192.168.122.1:53 0.0.0.0:* 9106/dnsmasq
udp 0 0 0.0.0.0:67 0.0.0.0:* 9106/dnsmasq
udp 0 0 0.0.0.0:68 0.0.0.0:* 20242/dhclient
udp 0 0 0.0.0.0:111 0.0.0.0:* 1/systemd
udp 0 0 127.0.0.1:323 0.0.0.0:* 8237/chronyd
udp 0 0 0.0.0.0:693 0.0.0.0:* 8158/rpcbind
udp6 0 0 :::111 :::* 1/systemd
udp6 0 0 ::1:323 :::* 8237/chronyd
udp6 0 0 :::693 :::* 8158/rpcbind
[root@bogon ~]#
查看iptables版本
iptables -v
[root@bogon ~]# iptables -v
iptables v1.4.21: no command specified
Try `iptables -h' or 'iptables --help' for more information.
[root@bogon ~]#
查看iptables配置的链,-n是让主机名等不显示
iptable -nL
[root@bogon ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@bogon ~]#
设置80端口可以访问,设置22端口可以访问,不然ssh就不能登录了,设置10~21都允许访问。
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -p tcp --dport 10:21 -j ACCEPT
此时配置的策略有:
[root@bogon ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:10:21
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
再支持ICMP协议,然后-A,在最后添加一条拒绝所有的规则。
iptables -I INPUT -p icmp -j ACCEPT
iptables -A INPUT -j REJECT
这里就实现了上面的3个规则,对应的策略是这样的。
[root@bogon ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:10:21
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
以上是关于iptables开放指定端口的主要内容,如果未能解决你的问题,请参考以下文章