linux拦截命令 linux拦截请求

linux下如何屏蔽端口

端口是linux下应用软件因需要而开启的socket套接字,具有唯一性。端口可以查看、启动关闭、设置防火墙规则等。

创新互联自2013年创立以来,是专业互联网技术服务公司,拥有项目网站建设、网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元新都做网站,已为上家服务,为新都各地企业和个人服务,联系电话:18982081108

1、端口查看

netstat -tln   //表示已数字形式查看,正在监听的端口

netstat -ap   //查看所有应用占用端口情况

2、启动停止

端口自己是不会停止和启动的,需要停止和启动的是端口对应的应用。

可以先找到端口,再对应PID,命令如下:

netstat -anp|grep 57069 //这个是要找的端口号

lsof -i:57069 //查找器PID信息

第三部杀死进程:图例里面没有在这里写上,kill -9 PID

3、屏蔽

linux下一般使用防火墙的filter规则 定义允许或者不允许进行屏蔽。对于filter一般只能做在3个链上:INPUT ,FORWARD ,OUTPUT。

例如设置在输入端屏蔽53端口:

iptables -A INPUT 1 -d 172.16.100.1 -p udp --dport 53 -j REJECT

-A 是增加规则,-d:表示匹配目标地址, -p udp表示UPD协议,--dPort 是端口53

这里表示在输入端目的地址是172.16.100.1的53端口被屏蔽

linux 使用一个命令屏蔽所有信息

/etc/sysconfig/iptables

文件中添加就可以了。

至于看不到这个文件,你可以先添加完规则后

执行下

service

iptables

save

试试,应该就可以看到了。

有这个文件后,可以直接编辑这个文件,添加你想要的规则。

LINUX对shell命令的拦截

楼主,shell 接收到一个 非内部命令 (如 ls, find)时,不是把命令提交给内核的,这个概念是错误的。 shell 应该是 fork 出一个进程,这个子进程调用 exec* 系列系统调用 (比如 execlp 等)来载入ls, find等可执行程序执行, 而此时的shell进程本身会 通过 wait 系统调用等待子进程完成。

由上可见,一个进行拦截的地方可以放在 exec 系列调用中,exec是实现在 glibc 里的,所以你只要下载 glibc (或者你们系统使用的 libc )的源码,在 exec 调用中加入你的拦截代码。 编译修改后的glibc,替换系统中的glibc即可。

另外要注意的是,除了shell,其他程序也可能使用 fork+exec 来执行某些命令,如果不想拦截这种情况,在拦截时需判断一下当前进程的父或祖进程,看看是否是shell进程。

最后,glibc实在是太重要了,是所有程序的基础,改动需小心。


分享文章:linux拦截命令 linux拦截请求
网页URL:http://scyanting.com/article/hgdjce.html