• 几种常用方法下面一一介绍: 1 telnet方法 2 wget方法 3 ssh方法 ...(1) telnet连接不存在的端口 telnet 1.1.1.1 8 Trying 1.1.1.1... telnet: connect to address 1.1.1.1: Connection timed out (2

    几种常用方法

    下面一一介绍:

    • 1 telnet方法
    • 2 wget方法
    • 3 ssh方法
    • 4 curl方法

    1 telnet

    用法: telnet ip port
    (1) telnet连接不存在的端口  
    telnet 1.1.1.1 8
        Trying 1.1.1.1...
        telnet: connect to address 1.1.1.1: Connection timed out
    (2) telnet 链接存在端口
    telnet 1.1.1.1 8000
        Trying 1.1.1.1...
        Connected to 1.1.1.1.
        Escape character is '^]'.
        Connection closed by foreign host.
    

    2 wget

    用法: wget ip:port
    (1) 不存在端口
     wget 1.1.1.1:8  
        --2017-01-24 11:38:34-- http://1.1.1.1:8/   Connecting to 1.1.1.1:8... 
        failed: Connection timed out. Retrying.
    
    (2) 存在端口
     wget 1.1.1.1:8000
        --2017-01-24 11:39:03--  http://1.1.1.1:8000/
        Connecting to 1.1.1.1:8000... connected.
        HTTP request sent, awaiting response... 200 OK
    

    3 ssh

    用法: ssh -v -p port username@ip
    -v 调试模式(会打印日志).
    -p 指定端口
    这里没有给出测试,留给读者自己测试
    

    4 curl

    用法: curl ip:port
    (1) 不存在端口
        获取不到结果
    (2) 存在端口
        curl  1.1.1.1:8000
        <!DOCTYPE html>
        <html>
            <head>xxx</head>
            <body>
                ......
            </body>
        </html>
    

    展开全文
  • telnet使用的是tcp协议,换句话说telnet只能检测tcp的这个端口打开了没 telnet 127.0.0.1 80 nc nc(netcat)也可查看端口是否打开。 查看tcp 端口是否打开 nc -z 127.0.0.1 80 查看udp端口是否打开 nc -z ...

    telnet

    telnet使用的是tcp协议,换句话说telnet只能检测tcp的这个端口打开了没

    telnet 127.0.0.1 80
    

    nc

    nc(netcat)也可查看端口是否打开。

    查看tcp 端口是否打开

    nc  -z 127.0.0.1 80
    

    查看udp端口是否打开

    nc  -z 127.0.0.1 80
    

    一次查看多个端口信息

    nc -vz 127.0.0.1 20-30
    

    结束

    最后友情链接有我的博客和github地址,欢迎相互沟通学习!

    展开全文
  • 1.你可以使用 lsof 命令来查看某一端口是否开放。查看端口可以这样来使用,我就以80端口为例: lsof -i:80 如果有显示说明已经开放了,如果没有显示说明没有开放 2.netstat -aptn执行看看,是否监听在0.0.0.0:3306 3...
    1.你可以使用 lsof 命令来查看某一端口是否开放。查看端口可以这样来使用,我就以80端口为例:
    lsof -i:80
    如果有显示说明已经开放了,如果没有显示说明没有开放
    2.netstat -aptn执行看看,是否监听在0.0.0.0:3306
    3.
    netstat -nupl (UDP类型的端口)
    netstat -ntpl (TCP类型的端口)
    例如
    4.telnet ip  端口号   方式测试远程主机端口是否打开
    展开全文
  • Linux 端口信息查看  大家都知道,端口不是独立存在的,它是依附于进程的。某个进程开启,那么它对应的端口就开启了,进程关闭,则该端口也就关闭了。下次若某个进程再次开启,则相应的端口也再次开启。而不要...

    Linux 端口信息查看

     大家都知道,端口不是独立存在的,它是依附于进程的。某个进程开启,那么它对应的端口就开启了,进程关闭,则该端口也就关闭了。下次若某个进程再次开启,则相应的端口也再次开启。而不要纯粹的理解为关闭掉某个端口,不过可以禁用某个端口。

    1. 查看端口

    Command

    netstat -anp

          注:加参数'-n'会将应用程序转为端口显示,即数字格式的地址,如:nfs->2049, ftp->21,因此可以开启两个终端,一一对应一下程序所对应的端口号)

    netstat -tunlp |grep 端口号,用于查看指定的端口号的进程情况,如查看8000端口的情况,netstat -tunlp |grep 8000

    netstat命令各个参数说明如下:

      -t : (tcp)仅显示TCP相关选项

      -u :(UDP)仅显示UDP相关选项 

      -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)

      -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。

      -n : 不进行DNS轮询,显示IP(可以加速操作),拒绝显示别名,能显示数字的全部转化为数字

    即可显示当前服务器上所有端口及进程服务,于grep结合可查看某个具体端口及服务情况··

    netstat -ntlp   //查看当前所有tcp端口·

    netstat -ntulp |grep 80   //查看所有80端口使用情况·

    netstat -an | grep 3306   //查看所有3306端口使用情况·

    查看一台服务器上面哪些服务及端口

    netstat  -lanp

    查看一个服务有几个端口。比如要查看mysqld

    ps -ef |grep mysqld

    查看某一端口的连接数量,比如3306端口

    netstat -pnt |grep :3306 |wc

    查看某一端口的连接客户端IP 比如3306端口

    netstat -anp |grep 3306

    netstat -an 查看网络端口 
    
    lsof -i :port,使用lsof -i :port就能看见所指定端口运行的程序,同时还有当前连接。 
    
    nmap 端口扫描
    netstat -nupl  (UDP类型的端口)
    netstat -ntpl  (TCP类型的端口)
    netstat -anp 显示系统端口使用情况

    //参数结果说明

    # netstat -tunlp 
    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      4814/rpcbind        
    tcp        0      0 0.0.0.0:5908                0.0.0.0:*                   LISTEN      25492/qemu-kvm      
    tcp        0      0 0.0.0.0:6996                0.0.0.0:*                   LISTEN      22065/lwfs          
    tcp        0      0 192.168.122.1:53            0.0.0.0:*                   LISTEN      38296/dnsmasq       
    tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      5278/sshd           
    tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      5013/cupsd          
    tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      5962/master         
    tcp        0      0 0.0.0.0:8666                0.0.0.0:*                   LISTEN      44868/lwfs          
    tcp        0      0 0.0.0.0:8000                0.0.0.0:*                   LISTEN      22065/lwfs        
    # netstat -tunlp | grep 8000
    tcp        0      0 0.0.0.0:8000                0.0.0.0:*                   LISTEN      22065/lwfs     

    查询的有Local、Address、Foregin、Program name。
    Local :访问端口的方式,0.0.0.0 是对外开放端口,说明8000端口外面可以访问;127.0.0.1 说明只能对本机访问,外面访问不了此端口。
    Address:端口。
    Foregin Address:对外开放,一般都为0.0.0.0:* 。
    Program name:此端口是那个程序在用,程序挂载此端口。

    0.0.0.0 是对外开放,通过服务域名、ip可以访问的端口。
    127.0.0.1 只能对本机 localhost访问,也是保护此端口安全性。

    ::: 这三个: 的前两个”::“,是“0:0:0:0:0:0:0:0”的缩写,相当于IPv6的“0.0.0.0”,
    就是本机的所有IPv6地址,第三个:是IP和端口的分隔符。

     

    Linux 查看端口对应的应用程序

    Command

    lsof -i:xxx

        (xxx指对应的端口号)。或者你也可以查看文件/etc/services,从里面可以找出端口所对应的服务。
    (注:有些端口通过netstat查不出来,更可靠的方法是"~$ sudo nmap -sT -O localhost")

    //查看方法
    ①lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000

    lsof -i 用以显示符合条件的进程情况,
    lsof(list open files)是一个列出当前系统打开文件的工具。

    参数说明:

    1、lsof -i:端口号 用于查看某一端口的占用情况,比如查看8000端口使用情况,lsof -i:8000

    # lsof -i:8000
    COMMAND   PID USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
    lwfs    22065 root    6u  IPv4 4395053      0t0  TCP *:irdmi (LISTEN)

    可以看到8000端口已经被轻量级文件系统转发服务lwfs占用

    Command:进程的名称
    PID:进程标识符
    USER:进程所有者
    FD:文件描述符,应用程序通过文件描述符识别文件。如txt等。
    TYPE:文件类型。
    DEVICE:指定磁盘的名称。
    SIZE:文件的大小。
    NODE:索引节点(文件在磁盘上的标示)
    NAME:打开文件的确切名称。 

         命令详解:https://www.cnblogs.com/sparkbj/p/7161669.html

    或    

    lsof是系统管理/安全的尤伯工具。我大多数时候用它来从系统获得与网络连接相关的信息,但那只是这个强大而又鲜为人知的应用的第一步。将这个工具称之为lsof真实名副其实,因为它是指“列出打开文件(lists openfiles)”。而有一点要切记,在Unix中一切(包括网络套接口)都是文件。

    有趣的是,lsof也是有着最多开关的Linux/Unix命令之一。它有那么多的开关,它有许多选项支持使用-和+前缀。

    
     
    1. usage: [-?abhlnNoOPRstUvV] [+|-c c] [+|-d s] [+D D] [+|-f[cgG]]
    2. [-F [f]] [-g [s]] [-i [i]] [+|-L [l]] [+|-M] [-o [o]]
    3. [-p s] [+|-r [t]] [-S [t]] [-T [t]] [-u s] [+|-w] [-x [fl]] [--] [names]

    正如你所见,lsof有着实在是令人惊讶的选项数量。你可以使用它来获得你系统上设备的信息,你能通过它了解到指定的用户在指定的地点正在碰什么东西,或者甚至是一个进程正在使用什么文件或网络连接。

    对于我,lsof替代了netstat和ps的全部工作。它可以带来那些工具所能带来的一切,而且要比那些工具多得多。那么,让我们来看看它的一些基本能力吧:

    关键选项

    理解一些关于lsof如何工作的关键性东西是很重要的。最重要的是,当你给它传递选项时,默认行为是对结果进行“或”运算。因此,如果你正是用-i来拉出一个端口列表,同时又用-p来拉出一个进程列表,那么默认情况下你会获得两者的结果。

    下面的一些其它东西需要牢记:

    • 默认 : 没有选项,lsof列出活跃进程的所有打开文件
    • 组合 : 可以将选项组合到一起,如-abc,但要当心哪些选项需要参数
    • -a : 结果进行“与”运算(而不是“或”)
    • -l : 在输出显示用户ID而不是用户名
    • -h : 获得帮助
    • -t : 仅获取进程ID
    • -U : 获取UNIX套接口地址
    • -F : 格式化输出结果,用于其它命令。可以通过多种方式格式化,如-F pcfn(用于进程id、命令名、文件描述符、文件名,并以空终止)

    获取网络信息

    正如我所说的,我主要将lsof用于获取关于系统怎么和网络交互的信息。这里提供了关于此信息的一些主题:

    使用-i显示所有连接

    有些人喜欢用netstat来获取网络连接,但是我更喜欢使用lsof来进行此项工作。结果以对我来说很直观的方式呈现,我仅仅只需改变我的语法,就可以通过同样的命令来获取更多信息。

    
     
    1. # lsof -i
    2.  
    3. COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
    4. dhcpcd 6061 root 4u IPv4 4510 UDP *:bootpc
    5. sshd 7703 root 3u IPv6 6499 TCP *:ssh (LISTEN)
    6. sshd 7892 root 3u IPv6 6757 TCP 10.10.1.5:ssh->192.168.1.5:49901 (ESTABLISHED)

    使用-i 6仅获取IPv6流量

    
     
    1. # lsof -i 6

    仅显示TCP连接(同理可获得UDP连接)

    你也可以通过在-i后提供对应的协议来仅仅显示TCP或者UDP连接信息。

    
     
    1. # lsof -iTCP
    2.  
    3. COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
    4. sshd 7703 root 3u IPv6 6499 TCP *:ssh (LISTEN)
    5. sshd 7892 root 3u IPv6 6757 TCP 10.10.1.5:ssh->192.168.1.5:49901 (ESTABLISHED)

    使用-i:port来显示与指定端口相关的网络信息

    或者,你也可以通过端口搜索,这对于要找出什么阻止了另外一个应用绑定到指定端口实在是太棒了。

    
     
    1. # lsof -i :22
    2.  
    3. COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
    4. sshd 7703 root 3u IPv6 6499 TCP *:ssh (LISTEN)
    5. sshd 7892 root 3u IPv6 6757 TCP 10.10.1.5:ssh->192.168.1.5:49901 (ESTABLISHED)

    使用@host来显示指定到指定主机的连接

    这对于你在检查是否开放连接到网络中或互联网上某个指定主机的连接时十分有用。

    
     
    1. # lsof -i@172.16.12.5
    2.  
    3. sshd 7892 root 3u IPv6 6757 TCP 10.10.1.5:ssh->172.16.12.5:49901 (ESTABLISHED)

    使用@host:port显示基于主机与端口的连接

    你也可以组合主机与端口的显示信息。

    
     
    1. # lsof -i@172.16.12.5:22
    2.  
    3. sshd 7892 root 3u IPv6 6757 TCP 10.10.1.5:ssh->172.16.12.5:49901 (ESTABLISHED)

    找出监听端口

    找出正等候连接的端口。

    
     
    1. # lsof -i -sTCP:LISTEN

    你也可以grep “LISTEN”来完成该任务。

    
     
    1. # lsof -i | grep -i LISTEN
    2.  
    3. iTunes 400 daniel 16u IPv4 0x4575228 0t0 TCP *:daap (LISTEN)

    找出已建立的连接

    你也可以显示任何已经连接的连接。

    
     
    1. # lsof -i -sTCP:ESTABLISHED

    你也可以通过grep搜索“ESTABLISHED”来完成该任务。

    
     
    1. # lsof -i | grep -i ESTABLISHED
    2.  
    3. firefox-b 169 daniel 49u IPv4 0t0 TCP 1.2.3.3:1863->1.2.3.4:http (ESTABLISHED)

     

    Linux 关闭端口

    iptable

    sudo iptables -A INPUT -p tcp --dport $PORT -j DROP"
    sudo iptables -A OUTPUT -p tcp --dport $PORT -j DROP"   
    kill
    kill -9 PID" (PID:进程号)

         1)通过iptables工具将该端口禁掉,如:  
         2)或者关掉对应的应用程序,则端口就自然关闭了

       命令详解;

    Linux iptables命令详解

    https://www.cnblogs.com/alimac/p/5848372.html 或

    iptables -F
    iptables -X
    iptables -F -t mangle
    iptables -t mangle -X
    iptables -F -t nat
    iptables -t nat -X
    首先,把三个表清空,把自建的规则清空。

    iptables -P INPUT DROP
    iptables -P OUTPUT DROP
    iptables -P FORWARD ACCEPT
    设定INPUT、OUTPUT的默认策略为DROP,FORWARD为ACCEPT。

    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT
    先把“回环”打开,以免有不必要的麻烦。

    iptables -A INPUT -i eth+ -p icmp --icmp-type 8 -j ACCEPT
    iptables -A OUTPUT -o eth+ -p icmp --icmp-type 0 -j ACCEPT
    在所有网卡上打开ping功能,便于维护和检测。

    iptables -A INPUT -i eth0 -s 192.168.100.250 -d 192.168.100.1 -p tcp --dport 22 -j ACCEPT
    iptables -A OUTPUT -o eth0 -d 192.168.100.250 -s 192.168.100.1 -p tcp --sport 22 -j ACCEPT
    打开22端口,允许远程管理。(设定了很多的附加条件:管理机器IP必须是250,并且必须从eth0网卡进入)

    iptables -A INPUT -i eth0 -s 192.168.100.0/24 -p tcp --dport 3128 -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -o eth0 -d 192.168.100.0/24 -p tcp --sport 3128 -m state --state ESTABLISHED -j ACCEPT
    iptables -A INPUT -i eth1 -s 192.168.168.0/24 -p tcp --dport 3128 -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -o eth1 -d 192.168.168.0/24 -p tcp --sport 3128 -m state --state ESTABLISHED -j ACCEPT
    iptables -A INPUT -i eth2 -p tcp --dport 32768:61000 -m state --state ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -o eth2 -p tcp --sport 32768:61000 -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -o eth2 -p udp --dport 53 -j ACCEPT
    iptables -A INPUT -i eth2 -p udp --sport 53 -j ACCEPT
    上面这几句是比较头痛的,我做逐一解释。

    iptables -A INPUT -i eth0 -s 192.168.100.0/24 -p tcp --dport 3128 -m state --state NEW,ESTABLISHED -j ACCEPT
    允许192.168.100.0/24网段的机器发送数据包从eth0网卡进入。如果数据包是tcp协议,而且目的端口是3128(因为REDIRECT已经把80改为3128了。nat表的PREROUTING是在filter表的INPUT前面的。)的,再而且,数据包的状态必须是NEW或者ESTABLISHED的(NEW代表tcp三段式握手的“第一握”,换句话说就是,允许客户端机器向服务器发出链接申请。ESTABLISHED表示通过握手已经建立起链接),通过。

    iptables -A OUTPUT -o eth2 -p tcp --sport 32768:61000 -m state --state NEW,ESTABLISHED -j ACCEPT
    我们先来看这一句。现在你的数据包已经进入到linux服务器防火墙上来了。squid需要代替你去访问,所以这时,服务器就成了客户端的角色,所以它要使用32768到61000的私有端口进行访问。(大家会奇怪应该是1024到65535吧。其实CentOS版的linux所定义的私有端口是32768到61000的,你可以通过cat /proc/sys/net/ipv4/ip_local_port_range,查看一下。)再次声明:这里是squid以客户端的身份去访问其他的服务器,所以这里的源端口是32768:61000,而不是3128!

    iptables -A INPUT -i eth2 -p tcp --dport 32768:61000 -m state --state ESTABLISHED -j ACCEPT
    当然了,数据有去就有回。

    iptables -A OUTPUT -o eth0 -d 192.168.100.0/24 -p tcp --sport 3128 -m state --state ESTABLISHED -j ACCEPT
    数据包还得通过服务器,转到内网网卡上。请注意,这里,是squid帮你去访问了你想要访问的网站。所以在内网中,你的机器是客户端角色,而squid是服务器角色。这与刚才对外访问的过程是不同的。所以在这里,源端口是3128,而不是32768:61000。

    iptables -A OUTPUT -o eth2 -p udp --dport 53 -j ACCEPT
    iptables -A INPUT -i eth2 -p udp --sport 53 -j ACCEPT
    当然,DNS是不可缺少的。

    iptables -A INPUT -i eth+ -p tcp --dport 80 -j LOG --log-prefix "iptables_80_alert" --log-level info
    iptables -A INPUT -i eth+ -p tcp --dport 21 -j LOG --log-prefix "iptables_21_alert" --log-level info
    iptables -A INPUT -i eth+ -p tcp --dport 22 -j LOG --log-prefix "iptables_22_alert" --log-level info
    iptables -A INPUT -i eth+ -p tcp --dport 25 -j LOG --log-prefix "iptables_25_alert" --log-level info
    iptables -A INPUT -i eth+ -p icmp --icmp-type 8 -j LOG --log-prefix "iptables_icmp8_alert" --log-level info
    当然了,来点日志记录会对网管员有所帮助。

    iptables 基本命令使用举例


          一、链的基本操作
    1、清除所有的规则。
    1)清除预设表filter中所有规则链中的规则。
    # iptables -F
    2)清除预设表filter中使用者自定链中的规则。
    #iptables -X
    #iptables -Z
    2、设置链的默认策略。一般有两种方法。
    1)首先允许所有的包,然后再禁止有危险的包通过放火墙。
    #iptables -P INPUT ACCEPT
    #iptables -P OUTPUT ACCEPT
    #iptables -P FORWARD ACCEPT
    2)首先禁止所有的包,然后根据需要的服务允许特定的包通过防火墙。
    #iptables -P INPUT DROP
    #iptables -P OUTPUT DROP
    #iptables -P FORWARD DROP
    3、列出表/链中的所有规则。默认只列出filter表。
    #iptables -L
    4、向链中添加规则。下面的语句用于开放网络接口:
    #iptables -A INPUT -i lo -j ACCEPT
    #iptables -A OUTPUT -o lo -j ACCEPT
    #iptables -A INPUT -i eth0 -j ACEPT
    #iptables -A OUTPUT -o eth1 -j ACCEPT
    #iptables -A FORWARD -i eth1 -j ACCEPT
    #iptables -A FORWARD -0 eth1 -j ACCEPT
    注意:由于本地进程不会经过FORWARD链,因此回环接口lo只在INPUT和OUTPUT两个链上作用。
    5、使用者自定义链。
    #iptables -N custom
    #iptables -A custom -s 0/0 -d 0/0 -p icmp -j DROP
    #iptables -A INPUT -s 0/0 -d 0/0 -j DROP
    二、设置基本的规则匹配
    1、指定协议匹配。
    1)匹配指定协议。
    #iptables -A INPUT -p tcp
    2)匹配指定协议之外的所有协议。
    #iptables -A INPUT -p !tcp
    2、指定地址匹配。
    1)指定匹配的主机。
    #iptables -A INPUT -s 192.168.0.18
    2)指定匹配的网络。
    #iptables -A INPUT -s 192.168.2.0/24
    3)匹配指定主机之外的地址。
    #iptables -A FORWARD -s !192.168.0.19
    4)匹配指定网络之外的网络。
    #iptables -A FORWARD -s ! 192.168.3.0/24
    3、指定网络接口匹配。
    1)指定单一的网络接口匹配。
    #iptables -A INPUT -i eth0
    #iptables -A FORWARD -o eth0
    2)指定同类型的网络接口匹配。
    #iptables -A FORWARD -o ppp+
    4、指定端口匹配。
    1)指定单一端口匹配。
    #iptables -A INPUT -p tcp --sport www
    #iptables -A INPUT -p udp –dport 53
    2)匹配指定端口之外的端口。
    #iptables -A INPUT -p tcp –dport !22
    3)匹配端口范围。
    #iptables -A INPUT -p tcp –sport 22:80
    4)匹配ICMP端口和ICMP类型。
    #iptables -A INOUT -p icmp –icimp-type 8
    5)指定ip碎片。

    个网络接口都有一个MTU(最大传输单元),这个参数定义了可以通过的数据包的最大尺寸。如果一个数据包大于这个参数值时,系统会将其划分成更小的数据包
    (称为ip碎片)来传输,而接受方则对这些ip碎片再进行重组以还原整个包。这样会导致一个问题:当系统将大数据包划分成ip碎片传输时,第一个碎片含有
    完整的包头信息(IP+TCP、UDP和ICMP),但是后续的碎片只有包头的部分信息(如源地址、目的地址)。因此,检查后面的ip碎片的头部(象有
    TCP、UDP和ICMP一样)是不可能的。假如有这样的一条规则:
    #iptables -A FORWARD -p tcp -s 192.168.1.0/24 -d 192.168.2.100 –dport 80 -j ACCEPT
    并且这时的FORWARD的policy为DROP时,系统只会让第一个ip碎片通过,而余下的碎片因为包头信息不完整而无法通过。可以通过—fragment/-f 选项来指定第二个及以后的ip碎片解决上述问题。
    #iptables -A FORWARD -f -s 192.168.1.0/24 -d 192.168.2.100 -j ACCEPT
    注意现在有许多进行ip碎片攻击的实例,如DoS攻击,因此允许ip碎片通过是有安全隐患的,对于这一点可以采用iptables的匹配扩展来进行限制。
    三、设置扩展的规则匹配(举例已忽略目标动作)
    1、多端口匹配。
    1)匹配多个源端口。
    #iptables -A INPUT -p tcp -m multiport –sport 22,53,80,110
    2)匹配多个目的端口。
    #iptables -A INPUT -p tcp -m multiport –dpoort 22,53,80
    3)匹配多端口(无论是源端口还是目的端口)
    #iptables -A INPUT -p tcp -m multiport –port 22,53,80,110
    2、指定TCP匹配扩展
    使用 –tcp-flags 选项可以根据tcp包的标志位进行过滤。
    #iptables -A INPUT -p tcp –tcp-flags SYN,FIN,ACK SYN
    #iptables -A FROWARD -p tcp –tcp-flags ALL SYN,ACK
    上实例中第一个表示SYN、ACK、FIN的标志都检查,但是只有SYN匹配。第二个表示ALL(SYN,ACK,FIN,RST,URG,PSH)的标志都检查,但是只有设置了SYN和ACK的匹配。
    #iptables -A FORWARD -p tcp --syn
    选项—syn相当于”--tcp-flags SYN,RST,ACK SYN”的简写。
    3、limit速率匹配扩展。
    1)指定单位时间内允许通过的数据包个数,单位时间可以是/second、/minute、/hour、/day或使用第一个子母。
    #iptables -A INPUT -m limit --limit 300/hour
    2 )指定触发事件的阀值。
    #iptables -A INPUT -m limit –limit-burst 10
    用来比对一次同时涌入的封包是否超过10个,超过此上限的包将直接丢弃。
    3)同时指定速率限制和触发阀值。
    #iptables -A INPUT -p icmp -m limit –-limit 3/m –limit-burst 3
    表示每分钟允许的最大包数量为限制速率(本例为3)加上当前的触发阀值burst数。任何情况下,都可保证3个数据包通过,触发阀值burst相当于允许额外的包数量。
    4)基于状态的匹配扩展(连接跟踪)
    每个网络连接包括以下信息:源地址、目标地址、源端口、目的端口,称为套接字对(socket pairs);协议类型、连接状态(TCP协议)
    和超时时间等。防火墙把这些信息称为状态(stateful)。状态包过滤防火墙能在内存中维护一个跟踪状态的表,比简单包过滤防火墙具有更大的安全性,命令格式如下:
    iptables -m state –-state [!]state [,state,state,state]
    其中,state表是一个逗号分割的列表,用来指定连接状态,4种:
    >NEW: 该包想要开始一个新的连接(重新连接或连接重定向)
    >RELATED:该包是属于某个已经建立的连接所建立的新连接。举例:
    FTP的数据传输连接和控制连接之间就是RELATED关系。
    >ESTABLISHED:该包属于某个已经建立的连接。
    >INVALID:该包不匹配于任何连接,通常这些包被DROP。
    例如:
    (1)在INPUT链添加一条规则,匹配已经建立的连接或由已经建立的连接所建立的新连接。即匹配所有的TCP回应包。
    #iptables -A INPUT -m state –state RELATED,ESTABLISHED
    (2)在INPUT链链添加一条规则,匹配所有从非eth0接口来的连接请求包。
    #iptables -A INPUT -m state -–state NEW -i !eth0
    又如,对于ftp连接可以使用下面的连接跟踪:
    (1)被动(Passive)ftp连接模式。
    #iptables -A INPUT -p tcp --sport 1024: --dport 1024: -m state –-state ESTABLISHED -j ACCEPT
    #iptables -A OUTPUT -p tcp --sport 1024: --dport 1024: -m
    state -–state ESTABLISHED,RELATED -j ACCEPT
    (2)主动(Active)ftp连接模式
    #iptables -A INNPUT -p tcp --sport 20 -m state –-state ESTABLISHED,RELATED -j ACCEPT
    #iptables -A OUTPUT -p tcp –OUTPUT -p tcp –dport 20 -m state --state ESTABLISHED -j ACCEPT

    Linux 关闭端口

    iptable

    sudo iptables -A INPUT -p tcp --dport $PORT -j DROP"
    sudo iptables -A OUTPUT -p tcp --dport $PORT -j DROP"   
    kill
    kill -9 PID" (PID:进程号)

         1)通过iptables工具将该端口禁掉,如:  
         2)或者关掉对应的应用程序,则端口就自然关闭了

    Linux Kill

         使用kill关闭进程使用的-9,下面介绍一下kill的使用, kill 实际的实际作用是给进程发信号(signal), 其常用格式为

    Kill

    kill -sig pid
     

         这里的 sig 可以是信号对应的数字,也可以是信号名,比如你如果用 kill -9 pid 实际是发 9号信号给进城,9对应的信号名是 KILL。所以 kill -9 等价于 kill -KILL pid。 常用的几个信号是

    Kill

    INT  这个就是你在bash下面用Ctrl+C 来结束一个程序时,bash会向进程发送这个信号,默认的,进程收到这个程序会结束。 你可以用 kill -INT pid 来发这个信号。
    QUIT  这个是你在bash下用 Ctrl+\ 来结束程序时,发的信号,进程默认受到这个信号后也是结束 
    KILL  这个信号之所以被称为“强杀”,就是因为无法改变进程收到这个信号后所执行的动作,进程只能退出。(前面说的两个信号,虽然默认是退出,但是应用程序自己可以通过signal系统调用来修改成其他动作,比如忽略那两个信号等动作)

         更多信息,可以man kill,有时间学习一下linux的信号机制,信号相关的系统调用等。

    LINUX 修改端口 以SSH默认22端口为例

      首先修改配置文件  vi /etc/ssh/sshd_config

      找到#Port 22一段,这里是标识默认使用22端口,修改为如下:

      Port 22  Port 50000  然后保存退出

      执行/etc/init.d/sshd restart  这样SSH端口将同时工作与22和50000上。

      现在编辑防火墙配置:vi /etc/sysconfig/iptables

      启用50000端口。  执行/etc/init.d/iptables restart

      现在请使用ssh工具连接50000端口,来测试是否成功。如果连接成功了,则再次编辑sshd_config的设置,将里边的Port22删除,即可。

      之所以先设置成两个端口,测试成功后再关闭一个端口,是为了方式在修改conf的过程中,万一出现掉线、断网、误操作等未知情况时候,还能通过另外一个端口连接上去调试以免发生连接不上必须派人去机房,导致问题更加复杂麻烦。

     

     



    1)先添加一个维护账号:msa

    2)然后su - msa

    3)ssh-keygen -t rsa
    指定密钥路径和输入口令之后,即在/home/msa/.ssh/中生成公钥和私钥:id_rsa id_rsa.pub

    4)cat id_rsa.pub >> authorized_keys
    至于为什么要生成这个文件,因为sshd_config里面写的就是这个。
    然后chmod 400 authorized_keys,稍微保护一下。

    5)用psftp把把id_rsa拉回本地,然后把服务器上的id_rsa和id_rsa.pub干掉

    6)配置/etc/ssh/sshd_config
    Protocol 2
    ServerKeyBits 1024
    PermitRootLogin no  #禁止root登录而已,与本文无关,加上安全些

    #以下三行没什么要改的,把默认的#注释去掉就行了
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile    .ssh/authorized_keys

    PasswordAuthentication no
    PermitEmptyPasswords no

    7)重启sshd
    /sbin/service sshd restart

    8)转换证书格式,迁就一下putty
    运行puttygen,转换id_rsa为putty的ppk证书文件

    9)配置putty登录
    在connection--SSH--Auth中,点击Browse,选择刚刚转换好的证书。
    然后在connection-Data填写一下auto login username,例如我的是msa
    在session中填写服务器的IP地址,高兴的话可以save一下

    10)解决一点小麻烦
    做到这一步的时候,很可能会空欢喜一场,此时就兴冲冲的登录,没准登不进去:
    No supported authentication methods available

    这时可以修改一下sshd_config,把
    PasswordAuthentication no临时改为:
    PasswordAuthentication yes 并重启sshd

    这样可以登录成功,退出登录后,再重新把PasswordAuthentication的值改为no,重启sshd。
    以后登录就会正常的询问你密钥文件的密码了,答对了就能高高兴兴的登进去。

    至于psftp命令,加上个-i参数,指定证书文件路径就行了。

    展开全文
  • nmap 151.151.1.70 -p 1521

    yum安装nmap

    >yum install nmap #输入y安装

    wget安装nmap

    >$wget http://nmap.org/dist/nmap-7.01.tar.bz2
    >$tar -xvf nmap-7.01.tar.bz2 
    >cd nmap-7.01
    >./configure
    >make
    >make install

    检测是否安装成功

    >map -v

    检测端口是否打开

    >nmap 151.151.1.70 -p 1521
    
    Nmap scan report for 151.151.1.70
    Host is up (0.00091s latency).
    PORT     STATE SERVICE
    1521/tcp open  oracle
    
    Nmap done: 1 IP address (1 host up) scanned in 13.09 seconds
    展开全文
  • 【数据资料来自互联网,个人收集总结...我用这个工具的目的是查看自己服务器RHEL5所开放的端口,发现没有必要的端口就关闭,并不是用来扫描别的机器端口……善哉善哉…… nmap是个跨平台的工具,在Linux、Linu
  • 脚本实现telnet检测指定机器端口的连通性,先通过ping检测ip的连通性,接着通过telnet检测指定端口的连通性
  • 本文介绍linux如何查看端口被哪个进程占用的方法: 1、lsof -i:端口号 2、netstat -tunlp|grep 端口号 都可以查看指定端口被哪个进程占用的情况 工具/原料 linux,windows xshell 方法/步骤 ...
  • 一、 使用wget判断 wget是linux下的下载工具,需要先安装. 用法: wget ip:port ...如果是linux机器,需要安装telnet. 用法: telnet ip port 安装telnet 1、检测telnet-server的rpm包是否安装  ...
  • 方式1:telnet host port telnet 118.31.63.105 9999 方式2:nc -v host port ...方式3:ssh -v -p port username@ip ...-p 指定端口 username可以随意 连接不存在端口 [wyq@localhost ~]$ ssh...
  • 1、使用lsof 命令来查看端口是否开放 lsof -i:6379 //如果有显示说明已经开放了,如果没有显示说明没有开放 [root@localhost ~]# lsof -i:6379 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME redis-ser ...
  • 这个工具以前使用的初衷是内网渗透,需要将内网ssh端口转发到外网服务器上。但这个工具同样适用于运维工程师进行远程内网维护。 当然这一切的前提是内网可以访问外网,检测方法当然就是直接ping 一个外网IP即可。 这...
  • 1,tcp 端口检测 telnet ip port [dev@kf-dev-node-004 ~]$ telnet 10.32.2.231 5060 失败: Trying 10.32.2.231… telnet: connect to address 10.32.2.231: Connection refused 成功: [dev@kf-dev-node-...
  • 1.windows机器,控制端,输入命令:telnet ip port;例如: telnet 192.168.75.1 3306; 2.linux下,输入:netstat -tnl
  • linux 查看 端口3306

    2019-07-05 10:14:50
    1,查看3306端口被什么程序占用 lsof -i :3306    2,查看3306端口是被哪个服务使用着   netstat -tunlp | grep :3306    3,查看3306端口的是否已在使用中,可验证使用该...
  • 在讨论这个问题前,我们先来了解一下物理端口、逻辑端口端口号等计算机概念。 端口相关的概念: 在网络技术中,端口(Port)包括逻辑端口和物理端口两种类型。物理端口指的是物理存在的端口,如ADSL Modem、集线...
  • 怎样检测TCP/UDP端口的连通性 1 TCP端口的连通性 TC端口的连通性,一般通过telnet检测: TCP协议是面向连接的,可以直接通过telnet命令连接 telnet host-ip port 2 UDP端口的连通性 因为公司网络防火墙一般对端口会...
  • 针对Linux系统:有1、2、3、4四种方法针对Windows系统:有2、5两种通用方法一般情况下使用"telnet ip port"判断端口通不通,其实测试方法不止这一种,还有很多种方法,下面小编给大家分享了几种方法,具体内容请往下...
  • 检查ip是否能访问我们用 ping ip 那么检查端口号是否能访问我们用 telnet ip port 如果执行不了,先yum安装下就好了 yum install telnet
  • 一般来说linux系统都会有网络防火墙设置,如果防火墙关闭,那么只要linux上某个端口起了某个服务,那这个端口就能telnet的通,telnet某个端口能通的前提是这个端口起了服务,并且防火墙允许该端口的访问。...
1 2 3 4 5 ... 20
收藏数 46,120
精华内容 18,448