专业互联网培训机构——完成蜕变以后轻松拿高薪
电话+V:1599997-8052 ,欢迎咨询linuxtcp婁圈,[python实用课程],[C++单片机原理],[C#、PHP网站搭建],[Nodejs小程序开发],[ios游戏开发],[安卓游戏开发],[教会用大脑用想法赚钱实现阶层跨越]
一、linux查询tcp链接建立情况
Linux系统提供了多种命令行工具,用于深入了解TCP连接的状态。其中,`netstat`、`ss`和`lsof`是三种常用的选择:
`netstat-t`命令直接显示出所有当前的TCP连接,包括本地和远程的地址以及端口,以及连接的状态。
`ss-t`与`netstat`功能类似,它同样能展示TCP连接的详细信息。
`lsof-itcp`则更专注于进程和文件,专门针对TCP连接进行查看,这对于追踪哪些进程正在使用特定的TCP连接非常有用。
二、详细讲解Linux内核角度分析tcpdump原理(1)
tcpdump是Linux系统抓包工具,基于libpcap库,能根据定义对网络数据包进行截获。它支持过滤网络层、协议、主机、网络或端口,并使用逻辑语句去除无用信息。tcpdump能分析网络行为,如丢包重传、报文详细信息和TCP分组。通过保存捕获的数据包为pcap文件,使用wireshark打开,能更直观地分析问题。
tcpdump使用libpcap进行包捕获,使用bpf机制进行完美过滤。libpcap是Unix/Linux平台下的数据包捕获函数库,独立于系统用户层,提供链路层旁路处理。libpcap安装步骤包括库安装、测试、编译和错误处理。
在libpcap中,创建套接字使用AF_PACKET和SOCK_RAW,常用于抓包分析。socket函数调用__sock_create和packet_family_ops来创建socket,其中AF_PACKET模块对应创建函数packet_rcv,该函数用于接收链路层的包,然后根据应用层设置的过滤条件使用BPF进行过滤。
当网络包接收时,tcpdump创建PF_PACKET套接字,通过注册prot_hook完成准备工作。网络接收数据包时,会调用netif_receive_skb和__netif_receive_skb_core,其中后者会遍历ptype_all并执行deliver_skb函数,该函数调用packet_rcv进行过滤并添加到接收缓存。
当网络包发送时,Linux协议栈提供的报文发送函数会调用dev_queue_xmit或dev_hard_start_xmit,遍历ptype_all并执行deliver_skb和packet_rcv,将数据包发送给driver。最终,接收队列中的数据会copy给应用层,完成数据包的抓取。
Linux安全之TCP_Wrappers
2022-09-22 14:21·网络工程师-郭主任
TCP_Wrappers是一个工作在应用层的安全工具,它只能针对某些具体的应用或者服务起到一定的防护作用。比如说ssh、telnet、FTP等服务的请求,都会先受到TCP_Wrappers的拦截。TCP_Wrappers是基于库调用实现的,包名为tcp_wrappers-lib。Linux安全之TCP_Wrappers
[root@blog~]#rpm-qltcp_wrappers-libs/usr/lib64/libwrap.so.0/usr/lib64/libwrap.so.0.7.6[root@blog~]#ll/usr/lib64/libwrap.so.0*lrwxrwxrwx.1rootroot16Jul1020:22/usr/lib64/libwrap.so.0->libwrap.so.0.7.6-rwxr-xr-x.1rootroot42520Jun102014/usr/lib64/libwrap.so.0.7.6
1.机制介绍了解该功能的实际释放范围和对应配置文件!TCPWrappers是RHEL7系统中默认启用的一款流量监控程序,它能够根据来访主机的地址与本机的目标服务程序作出允许或拒绝的操作。换句话说,Linux系统中其实有两个层面的防火墙,第一种是前面讲到的基于TCP/IP协议的流量过滤工具,而TCPWrappers服务则是能允许或禁止Linux系统提供服务的防火墙,从而在更高层面保护了Linux系统的安全运行。Linux上防火墙分为,封包过滤机制的Netfilter和程序管控机制的TCPWrappers。简单来说,TCPWrappers就是通过调整和修改/etc/hosts.allow和/etc/hosts.deny这两个配置文件来管理控制服务的,但并非所有软件都可以使用。TCPWrappers服务的防火墙策略由两个控制列表文件所控制,用户可以编辑允许控制列表文件来放行对服务的请求流量,也可以编辑拒绝控制列表文件来阻止对服务的请求流量。控制列表文件修改后会立即生效,系统将会先检查允许控制列表文件(/etc/hosts.allow),如果匹配到相应的允许策略则放行流量;如果没有匹配,则去进一步匹配拒绝控制列表文件(/etc/hosts.deny),若找到匹配项则拒绝该流量。如果这两个文件全都没有匹配到,则默认放行流量。封包过滤机制:主要是设置软件的防火墙程序管控机制:并不是所有的服务都是受tcp_wrappers管理的,只用采用libwrap库的服务才受管理
#检查服务是否受管理$sudoldd$(whichdomainname)|greplibwrapdomainname=sshdhttpdsmbxinetd......
#sshd[root@blog~]#ldd`whichsshd`|greplibwrap.so.0libwrap.so.0=>/lib64/libwrap.so.0(0x00007fc777586000)#vsftpd[root@blog~]#ldd`whichvsftpd`|greplibwrap.so.0libwrap.so.0=>/lib64/libwrap.so.0(0x00007fdb8d276000)#xinetd[root@blog~]#ldd`whichxinetd`|greplibwrap.so.0libwrap.so.0=>/lib64/libwrap.so.0(0x00007f4ae8036000)
2.工作原理大致了解一下,其工作原理和使用技巧![1]当有请求从远程到达本机的时候首先检查/etc/hosts.allow文件的规则如有匹配到的话,就默认允许访问,跳过/etc/hosts.deny这个文件的检查如果没有匹配到,则去匹配/etc/hosts.deny文件,如果有匹配的,那么就拒绝这个访问[2]两个文件均为匹配到如果在这两个文件中,都没有匹配到,默认是允许访问的Linux安全之TCP_Wrappers
3.配置文件注意介绍,配置文件的编写格式和特点!文件编写格式
#服务列表:如果有多个服务,那么就用逗号隔开#地址列表:标准IP地址(192.168.1.100)、主机名称(www.baidu.com)、利用掩码(只支持长格式)服务列表:地址列表:选项daemon_list:client_list1[EXCEPTclient_list2][:options]【deamon_list】参数应用程序文件名称而非服务名应用程序文件名称列表彼此间使用逗号或空格分隔All表示所有服务【client_list1】参数IP地址主机名域名段
例如.escape.com,即可以匹配db1.escape.com``node1.web.escape.com等。网络段
CentOS6必须使用完整格式的掩码net/mask,如127.16.111.0/255.255.255.0,不能使用net/prefix,如127.16.111.0/24,从CentOS7开始,支持使用net/prefix短格式的网络段
如172.16.,相当于172.16.0.0/255.255.0.0ALL所有来源主机KNOW所有能解析到的主机UNKNOW所有未解析到的主机LOCAL主机名中不带.的PARANOID正反解析不匹配的地址【EXCEPTclient_list2】参数除了client_list2的主机之外,client_list1的都匹配【options】参数deny拒绝,主要用于hosts.allow文件中,实现deny功能allow允许,主要用在hosts.deny文件中,实现allow功能spawn启动额外应用程序,用的不多twist无论写在hosts.allow还是hosts.deny都是拒绝,并提示遵循两个原则编写拒绝策略规则时,填写的是服务名称,而非协议名称建议先编写拒绝策略规则,再编写允许策略规则,以便直观地看到相应的效果配置文件示例
#hosts.allowsshd:192.168.10.sshd:192.168.0.1:allow#hosts.denysshd:*sshd:ALLTCPWrappers服务的控制列表文件中常用的参数客户端类型示例满足示例的客户端列表单一主机192.168.10.10IP地址为192.168.10.10的主机指定网段192.168.10.IP段为192.168.10.0/24的主机指定网段192.168.10.0/255.255.255.0IP段为192.168.10.0/24的主机指定DNS后缀.escapelife.site所有DNS后缀为.escapelife.site的主机指定主机名称www.escapelife.site主机名称为www.escapelife.site的主机指定所有客户端ALL所有主机全部包括在内
4.实例演示展示常用的服务规则配置![1]不允许172.16.111.100的ftp访问
$vim/etc/hosts.denyvsftpd:172.16.111.100[2]仅允许172.16.111.网段的ftp访问
$vim/etc/hosts.allowvsftpd:172.16.111.$vim/etc/hosts.denyvsftpd:ALL[3]仅允许172.16.111.网段的ftp访问,除了172.16.111.100外
$vim/etc/hosts.allowvsftpd:172.16.111.EXCEPT172.16。111.100$vim/etc/hosts.denyvsftpd:ALL[4]不允许172.16.111.网段访问ftp,写在hosts.allow里
$vim/etc/hosts.allowvsftpd:172.16.111.:deny[5]不允许192.168.111.网段ssh来访问,尝试的访问记录,在/var/log/sshd.deny.log里
$vim/etc/hosts.denysshd:192.168.111.:spawnecho"`date`loginattemptfrom%cto%s,%d">>/var/log/sshd.deny.log#我们用一台192.168.111.网段的机器ssh访问,可以看到下面结果$cat/var/log/sshd.deny.logMonAug1417:25:08CST2017loginattemptfrom192.168.111.100tosshd@192.168.111.254,sshd#拒绝192.168.111.网段的ftp访问,并输出提示符。$vim/etc/hosts.deny或者vim/etc/hosts.allow均可vsftpd:192.168.111.:twist/bin/echo"connectionrefused!!!"
5.参考链接送人玫瑰,手有余香!Iptables与Firewalld防火墙。linux的安全–Selinux,tcp_wrappers,iptables使用
文章作者:Escape文章链接:
https://www.escapelife.site/posts/4674b7d.html【WINDRISES EMPLOYMENT PROGRAMMING】尊享对接老板
电话+V: 1599997-8052
机构由一批拥有10年以上开发管理经验,且来自互联网或研究机构的IT精英组成,负责研究、开发教学模式和课程内容。公司具有完善的课程研发体系,一直走在整个行业发展的前端,在行业内竖立起了良好的品质口碑。