linux 用SSH怎么查看哪些IP正在访问服务器

linux 用SSH怎么查看哪些IP正在访问服务器,第1张

1、首先连接到Linux主机并进入命令行状态。

2、在命令行状态下,输入命令:netstat -ntu | awk'{print $ 5}'| cut -d:-f1 |排序| uniq -c | sort -n,按Enter键。

3、打印出访问服务器的IP列表。

扩展资料

1、实现此的技术原理:在内网通过域名绑定服务器,外网SSH访问连接时,通过域名的访问,实现访问内网LINUX。

2、具体的实现过程如下:明确LINUX服务器内网访问地址端口,确保LINUX服务器正常开启SSH服务,在内网SSH可以正常访问连接。如图所示:

3、被访问端的Linux主机上使用nat123动态域名解析Linux版本。在被访问端的Linux服务器安装nat123客户端,并登录使用它。

4、登录网页,左侧用户中心,添加域名解析,选择动态域名解析并添加确认。选择动态域名解析记录,使用二级域名,或自己的域名。鼠标放在输入框有向导提示。如不理解负载均衡,不要勾选多点登录。

5、新添加动态解析后,等待几分钟生效。解析生效后,动态解析域名与本地公网IP是保持对应的。可以通过ping下域名核实,返回结果IP地址为本地公网IP地址时,表示动态解析生效正常。

6、路由器端口映射,路由映射SSH访问22端口。因为公网IP是在路由器上的,外网访问时,需要经过路由,需要在路由器上做端口映射,将内网LINUX服务器访问22端口打通。路由器端口映射位置:转发规则/虚拟服务器/添加允许外网访问端口和协议。我的LINUX服务器SSH服务端口是默认的22,我内网对应LINUX服务器主机的内网IP地址是192168129。

Linux系统中,如果需要禁止特定ip地址访问来保证系统的安全,只需通过操作iptalbes来实现,下面就给绍下Linux如何禁止某个ip地址访问。

一、概述

这两个文件是tcpd服务器的配置文件,tcpd服务器可以控制外部IP对本机服务的访问。这两个配置文件的格式如下:

#服务进程名:主机列表:当规则匹配时可选的命令操作

server_name:hosts-list[:command]

/etc/hostsallow控制可以访问本机的IP地址,/etc/hostsdeny控制禁止访问本机的IP。如果两个文件的配置有冲突,以/etc/hostsdeny为准。

/etc/hostsallow和/etc/hostsdeny两个文件是控制远程访问设置的,可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务。

比如SSH服务,通常只对管理员开放,那就可以禁用不必要的IP,而只开放管理员可能使用到的IP段。

二、配置

1、修改/etc/hostsallow文件

#

# hostsallow This file describes the names of the hosts which are

# allowed to use the local INET services, as decided

# by the ‘/usr/sbin/tcpd’ server

#

sshd:21013218:allow

sshd:2227715:allow

all:21824129110 #表示接受110这个ip的所有请求!

intelnetd:140116440/2552552550

intelnetd:140116790/2552552550

intelnetd:14011614199

intelnetd:LOCAL

smbd:19216800/2552552550 #允许1921680网段的IP访问smbd服务

#sendmail:19216810/2552552550

#pop3d:19216810/2552552550

#swat:19216810/2552552550

pptpd:all EXCEPT 19216800/2552552550

httpd:all

vsftpd:all

以上写法表示允许210和222两个ip段连接sshd服务(这必然需要hostsdeny这个文件配合使用),当然:allow完全可以省略的。

ALL要害字匹配所有情况,EXCEPT匹配除了某些项之外的情况,PARANOID匹配你想控制的IP地址和它的域名不匹配时(域名伪装)的情况。

2、修改/etc/hostsdeny文件

#

# hostsdeny This file describes the names of the hosts which are

# not allowed to use the local INET services, as decided

# by the ‘/usr/sbin/tcpd’ server

#

# The portmap line is redundant, but it is left to remind you that

# the new secure portmap uses hostsdeny and hostsallow In particular

# you should know that NFS uses portmap!

sshd:all:deny

intelnet:ALL

ALL:ALL EXCEPT 19216801/2552552550,192168121,

2021050/2552552550

注意看:sshd:all:deny表示拒绝了所有sshd远程连接。:deny可以省略。

3、启动服务。

注意修改完后:

#service xinetd restart

才能让刚才的更改生效。

/etc/hostsallow和/etc/hostsdeny两个文件是控制远程访问设置的,通过设置这个文件可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务。

如果请求访问的主机名或IP不包含在/etc/hostsallow中,那么tcpd进程就检查/etc/hostsdeny。看请求访问的主机名或IP有没有包含在hostsdeny文件中。如果包含,那么访问就被拒绝;如果既不包含在/etc/hostsallow中,又不包含在/etc/hostsdeny中,那么此访问也被允许。

文件的格式为:<daemon list>:<client list>[:<option>:<option>:]

daemon list:服务进程名列表,如telnet的服务进程名为intelnetd

client list:访问控制的客户端列表,可以写域名、主机名或网段,如pythonorg或者1921681

option:可选选项,这里可以是某些命令,也可以是指定的日志文件

文件示例:hostsdeny文件

Linux防火墙Iptable如何设置只允许某个ip访问80端口,只允许特定ip访问某端口?参考下面命令,只允许4616615022访问本机的80端口。如果要设置其他ip或端口,改改即可。

iptables -I INPUT -p TCP --dport 80 -j DROP

iptables -I INPUT -s 4616615022 -p TCP --dport 80 -j ACCEPT

在root用户下执行上面2行命令后,重启iptables, service iptables restart

查看iptables是否生效:

[root@xxxx]# iptables -L

Chain INPUT (policy ACCEPT)

target prot opt source destination

ACCEPT tcp -- 4616615022 anywhere tcp dpt:http

DROP tcp -- anywhere anywhere tcp dpt:http

Chain FORWARD (policy ACCEPT)

target prot opt source destination

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

上面命令是针对整个服务器(全部ip)禁止80端口,如果只是需要禁止服务器上某个ip地址的80端口,怎么办?

下面的命令是只允许来自1741403190的ip访问服务器上216991216的80端口

iptables -A FORWARD -s 1741403190 -d 216991216 -p tcp -m tcp --dport 80 -j ACCEPT

iptables -A FORWARD -d 216991216 -p tcp -m tcp --dport 80 -j DROP

如果您不熟悉linux的ssh命令,那么可以在webmin/virtualmin面板中设置,达到相同效果。参考:webmin面板怎样设置允许特定ip访问80端口,禁止80端口

更多iptables参考命令如下:

1先备份iptables

# cp /etc/sysconfig/iptables /var/tmp

需要开80端口,指定IP和局域网

下面三行的意思:

先关闭所有的80端口

开启ip段19216810/24端的80口

开启ip段21112316123/24端ip段的80口

# iptables -I INPUT -p tcp --dport 80 -j DROP

# iptables -I INPUT -s 19216810/24 -p tcp --dport 80 -j ACCEPT

# iptables -I INPUT -s 21112316123/24 -p tcp --dport 80 -j ACCEPT

以上是临时设置。

2然后保存iptables

# service iptables save

3重启防火墙

#service iptables restart

在服务器上进行如下命令操作进行规则设置即可:

#iptables -A INPUT -s ip段/网络位数 -j DROP

例如:禁止1721610/24网段访问服务器,直接在服务器上用命令就可以实现

#iptables -A INPUT -s 1721610/24 -j DROP (添加规则,所有来自这个网段的数据都丢弃)

#/etc/rcd/initd/iptables save (保存规则)

#service iptables restart (重启iptables服务以便生效)

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » linux 用SSH怎么查看哪些IP正在访问服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情