大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、关闭所有的 INPUT FORWARD OUTPUT 只对某些端口开放。
站在用户的角度思考问题,与客户深入沟通,找到新乡网站设计与新乡网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、网站制作、企业官网、英文网站、手机端网站、网站推广、域名与空间、网站空间、企业邮箱。业务覆盖新乡地区。
下面是命令实现:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
再用命令 iptables -L -n 查看 是否设置好, 好看到全部 DROP 了
这样的设置好了,我们只是临时的, 重启服务器还是会恢复原来没有设置的状态
还要使用 service iptables save 进行保存
看到信息 firewall rules 防火墙的规则 其实就是保存在 /etc/sysconfig/iptables
可以打开文件查看 vi /etc/sysconfig/iptables
2、下面我只打开22端口,看我是如何操作的,就是下面2个语句
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
再查看下 iptables -L -n 是否添加上去, 看到添加了
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:22
现在Linux服务器只打开了22端口,用putty.exe测试一下是否可以链接上去。
可以链接上去了,说明没有问题。
最后别忘记了保存 对防火墙的设置
通过命令:service iptables save 进行保存
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT
针对这2条命令进行一些讲解吧
-A 参数就看成是添加一条 INPUT 的规则
-p 指定是什么协议 我们常用的tcp 协议,当然也有udp 例如53端口的DNS
到时我们要配置DNS用到53端口 大家就会发现使用udp协议的
而 --dport 就是目标端口 当数据从外部进入服务器为目标端口
反之 数据从服务器出去 则为数据源端口 使用 --sport
-j 就是指定是 ACCEPT 接收 或者 DROP 不接收
不太明白你要做什么。在这儿说一下我所了解的你所说的关闭端口的几个方法,不对之处请纠正:
1、完全关闭端口的话,关掉开启这个端口的服务。用netstat、ps、kill等命令可以实现;
2、限制对端口的访问的话可以通过防火墙实现,防火墙有软防和硬防。软防就是想iptables这类的软件防火墙,在linux系统中配置iptables规则限制端口访问。硬防就是硬件防火墙,单独的一台设备,一般挂在服务器所在网络的外层,起到保护的作用。硬防上面也是来配置相应的规则来放开或者关闭某IP地址的某端口。
还有手动开启关闭端口的命令,可能不在你问的范围之内。
Linux下面没有什么直接开启或者关闭端口的命令,因为若仅仅只是开启了端口而不把它与进程相联系的话,端口的开启与关闭就显得毫无意义了(开了端口却没有程序处理进来的数据)。也就是说,Linux里面端口的活动与进程是紧密相连的,如果想要关闭某个端口,那么只要杀掉它对应的进程就可以了。
例如要关闭22号端口:
$ netstat -anp | grep :22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1666/sshd
# -a 显示所有活动的TCP连接,以及正在监听的TCP和UDP端口
# -n 以数字形式表示地址和端口号,不试图去解析其名称(number)
# -p 列出与端口监听或连接相关的进程(有个地方需要注意,下面会提到)(pid)
知道了22号端口对应的进程ID 1666,只要:
$ kill 1666
即可。
其中“-p”选项需要注意一个权限的问题,如果在普通用户登录的shell里面执行netstat命令,那么只能列出拥有该普通用户权限的相关进程,如果想要看到所有的端口情况,最好还是切到root。
附带几个netstat常用选项用法:
$ netstat -tn # 列出所有TCP协议的连接状态
# -t 只显示与TCP协议相关的连接和端口监听状态,注意和-a有区别(tcp)
$ netstat -tuln # 列出所有inet地址类的端口监听状态
Linux系统和Windows系统有很大的不同,不仅仅是它本身的操作界面和操作方式,系统的运行机制也不一样。因此我们在使用Linux系统的时候可以使用netstat命令来进行端口命令的查询。它和各个参数相互配合就能够帮助我们查询到Linux系统计算机的很多端口状态。比如,如果我们要在Linux系统中查看Mysql的默认端口3306是否已经被计算机启动了,那么就可以使用命令“netstat -ntlp”进行查询。
Linux系统的各个不同的端口命令参数分别是:netstat -t查询的是当前计算机网络的TCP端口信息;netstat -u则是能够帮助我们显示出当前计算机UDP端口的信息;netstat -l显示监听套接字的断就信息(所谓的套接字指的是能够使用应用程序进行相互通信的通信协议);netstat -p命令能够显示进程的相关标识符和程序的名称,当前每一个套接字和端口都可以被算作是一个程序;netstat -n命令操作之后不会进行网络DNS的轮询,但是它能够显示出IP。除去以上的命令之外,netstat -ntlp|grep 80能够帮助我们查看计算机相关的80端口的使用情况,若数字变成3306,则能够帮助我们查看3306端口的使用情况。
您还有什么不知道的请询问我们的运维客服:互联数据如果能帮到你不胜荣幸,如果打扰您了请多见谅。