August 2013 Blog Posts

详解TCP端口:作用,漏洞及操作详析

Blog Author 2013-08-05 Networking

    上网的时候,我们经常会看到port( )这个词,也会经常用到port number( ),比如在FTP地址后面增加的“21”,21就表示port number(端口号)。
    那么端口到底是什么意思呢?怎样查看端口号呢?一个端口是否成为网络恶意攻击的大门呢?,我们应该如何面对形形色色的端口呢?下面就将介绍这方面的内容,以供大家参考。  

    21端口: 21端口主要用于FTP(File Transfer Protocol,文件传输协议)服务。

  端口说明:21端口主要用于FTP(File Transfer Protocol,文件传输协议)服务,FTP服务主要是为了在两台计算机之间实现文件的上传与下载,一台计算机作为FTP客户端,另一台计算机作为FTP服务器,可以采用匿名(anonymous)登录和授权用户名与密码登录两种方式登录FTP服务器。目前,通过FTP服务来实现文件的传输是互联网上上传、下载文件最主要的方法。另外,还有一个20端口是用于FTP数据传输的默认端口号。
  在Windows中可以通过Internet信息服务(IIS)来提供FTP连接和管理,也可以单独安装FTP服务器软件来实现FTP功能,比如常见的FTP Serv-U。   操作建议:因为有的FTP服务器可以通过匿名登录,所以常常会被黑客利用。另外,21端口还会被一些木马利用,比如Blade Runner、FTP Trojan、Doly Trojan、WebEx等等。如果不架设FTP服务器,建议关闭21端口。

    23端口: 23端口主要用于Telnet(远程登录)服务,是Internet上普遍采用的登录和仿真程序。

  端口说明:23端口主要用于Telnet(远程登录)服务,是Internet上普遍采用的登录和仿真程序。同样需要设置客户端和服务器端,开启Telnet服务的客户端就可以登录远程Telnet服务器,采用授权用户名和密码登录。登录之后,允许用户使用命令提示符窗口进行相应的操作。在Windows中可以在命令提示符窗口中,键入“Telnet”命令来使用Telnet远程登录。
  操作建议:利用Telnet服务,黑客可以搜索远程登录Unix的服务,扫描操作系统的类型。而且在Windows 2000中Telnet服务存在多个严重的漏洞,比如提升权限、拒绝服务等,可以让远程服务器崩溃。Telnet服务的23端口也是TTS(Tiny Telnet Server)木马的缺省端口。所以,建议关闭23端口。

    25端口: 25端口为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务器所开放,主要用于发送邮件,如今绝大多数邮件服务器都使用该协议。

  端口说明:25端口为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务器所开放,主要用于发送邮件,如今绝大多数邮件服务器都使用该协议。比如我们在使用电子邮件客户端程序的时候,在创建账户时会要求输入SMTP服务器地址,该服务器地址默认情况下使用的就是25端口。
  端口漏洞:
  1. 利用25端口,黑客可以寻找SMTP服务器,用来转发垃圾邮件。
  2. 25端口被很多木马程序所开放,比如Ajan、Antigen、Email Password Sender、ProMail、trojan、Tapiras、Terminator、WinPC、WinSpy等等。拿WinSpy来说,通过开放25端口,可以监视计算机正在运行的所有窗口和模块。
  操作建议:如果不是要架设SMTP邮件服务器,可以将该端口关闭。

    53端口: 53端口为DNS(Domain Name Server,域名服务器)服务器所开放,主要用于域名解析,DNS服务在NT系统中使用的最为广泛。

  端口说明:53端口为DNS(Domain Name Server,域名服务器)服务器所开放,主要用于域名解析,DNS服务在NT系统中使用的最为广泛。通过DNS服务器可以实现域名与IP地址之间的转换,只要记住域名就可以快速访问网站。
  端口漏洞:如果开放DNS服务,黑客可以通过分析DNS服务器而直接获取Web服务器等主机的IP地址,再利用53端口突破某些不稳定的防火墙,从而实施攻击。近日,美国一家公司也公布了10个最易遭黑客攻击的漏洞,其中第一位的就是DNS服务器的BIND漏洞。
  操作建议:如果当前的计算机不是用于提供域名解析服务,建议关闭该端口。

    67、68端口: 67、68端口分别是为Bootp服务的Bootstrap Protocol Server(引导程序协议服务端)和Bootstrap Protocol Client(引导程序协议客户端)开放的端口。

  端口说明:67、68端口分别是为Bootp服务的Bootstrap Protocol Server(引导程序协议服务端)和Bootstrap Protocol Client(引导程序协议客户端)开放的端口。Bootp服务是一种产生于早期Unix的远程启动协议,我们现在经常用到的DHCP服务就是从Bootp服务扩展而来的。通过Bootp服务可以为局域网中的计算机动态分配IP地址,而不需要每个用户去设置静态IP地址。
  端口漏洞:如果开放Bootp服务,常常会被黑客利用分配的一个IP地址作为局部路由器通过“中间人”(man-in-middle)方式进行攻击。
  操作建议:建议关闭该端口。

    69端口: TFTP是Cisco公司开发的一个简单文件传输协议,类似于FTP。

  端口说明:69端口是为TFTP(Trival File Tranfer Protocol,次要文件传输协议)服务开放的,TFTP是Cisco公司开发的一个简单文件传输协议,类似于FTP。不过与FTP相比,TFTP不具有复杂的交互存取接口和认证控制,该服务适用于不需要复杂交换环境的客户端和服务器之间进行数据传输。
  端口漏洞:很多服务器和Bootp服务一起提供TFTP服务,主要用于从系统下载启动代码。可是,因为TFTP服务可以在系统中写入文件,而且黑客还可以利用TFTP的错误配置来从系统获取任何文件。
  操作建议:建议关闭该端口。

    79端口: 79端口是为Finger服务开放的,主要用于查询远程主机在线用户、操作系统类型以及是否缓冲区溢出等用户的详细信息。

  端口说明:79端口是为Finger服务开放的,主要用于查询远程主机在线用户、操作系统类型以及是否缓冲区溢出等用户的详细信息。比如要显示远程计算机www.abc.com上的user01用户的信息,可以在命令行中键入“finger user01@www.abc.com”即可。
  端口漏洞:一般黑客要攻击对方的计算机,都是通过相应的端口扫描工具来获得相关信息,比如使用“流光”就可以利用79端口来扫描远程计算机操作系统版本,获得用户信息,还能探测已知的缓冲区溢出错误。这样,就容易遭遇到黑客的攻击。而且,79端口还被Firehotcker木马作为默认的端口。
  操作建议:建议关闭该端口。

      80端口: 80端口是为HTTP(HyperText Transport Protocol,超文本传输协议)开放的,这是上网冲浪使用最多的协议,主要用于在WWW(World Wide Web,万维网)服务上传输信息的协议。

  端口说明:80端口是为HTTP(HyperText Transport Protocol,超文本传输协议)开放的,这是上网冲浪使用最多的协议,主要用于在WWW(World Wide Web,万维网)服务上传输信息的协议。我们可以通过HTTP地址加“:80”(即常说的“网址”)来访问网站的,比如http://www.cce.com.cn:80,因为浏览网页服务默认的端口号是80,所以只要输入网址,不用输入“:80”。 
  端口漏洞:有些木马程序可以利用80端口来攻击计算机的,比如Executor、RingZero等。
  操作建议:为了能正常上网冲浪,我们必须开启80

    139端口: 139端口是为“NetBIOS Session Service”提供的,主要用于提供Windows文件和打印机共享以及Unix中的Samba服务。

  端口说明:139端口是为“NetBIOS Session Service”提供的,主要用于提供Windows文件和打印机共享以及Unix中的Samba服务。在Windows中要在局域网中进行文件的共享,必须使用该服务。比如在Windows 98中,可以打开“控制面板”,双击“网络”图标,在“配置”选项卡中单击“文件及打印共享”按钮选中相应的设置就可以安装启用该服务;在Windows 2000/XP中,可以打开“控制面板”,双击“网络连接”图标,打开本地连接属性;接着,在属性窗口的“常规”选项卡中选择“Internet协议(TCP/IP)”,单击“属性”按钮;然后在打开的窗口中,单击“高级”按钮;在“高级TCP/IP设置”窗口中选择“WINS”选项卡,在“NetBIOS设置”区域中启用TCP/IP上的NetBIOS。
  端口漏洞:开启139端口虽然可以提供共享服务,但是常常被攻击者所利用进行攻击,比如使用流光、SuperScan等 扫描工具,可以扫描目标计算机的139端口,如果发现有漏洞,可以试图获取用户名和密码,这是非常危险的。
  操作建议:如果不需要提供文件和打印机共享,建议关闭该端口。

CentOS中YUM的用法

Blog Author 2013-08-05 Networking

中YUM的用法:

常用命令:

1.命令:yum check-update -- 列出所有可更新的软件清单
2.命令:yum update  -- 安装所有更新软件
3.命令:yum install <package_name>  -- 仅安装指定的软件
4.命令:yum update <package_name>  -- 仅更新指定的软件
5.命令:yum list  -- 列出所有可安裝的软件清单

安装删除软件
装了系统添加删除软件是常事,yum同样可以胜任这一任务,只要软件是rpm安装的。
安装的命令是,yum install xxx,yum会查询数据库,有无这一软件包,如果有,则检查其依赖冲突关系,如果没有依赖冲突,那么最好,下载安装;如果有,则会给出提示,询问是否要同时安装依赖,或删除冲突的包,你可以自己作出判断。
删除的命令是,yum remove xxx,同安装一样,yum也会查询数据库,给出解决依赖关系的提示。

1.命令:yum install <package_name>  -- 用YUM安装软件包
2.命令:yum remove <package_name>  -- 用YUM删除软件包

查询软件信息
我们常会碰到这样的情况,想要安装一个软件,只知道它和某方面有关,但又不能确切知道它的名字。这时yum的查询功能就起作用了。你可以用 yum search keyword这样的命令来进行搜索,比如我们要则安装一个Instant Messenger,但又不知到底有哪些,这时不妨用 yum search messenger这样的指令进行搜索,yum会搜索所有可用rpm的描述,列出所有描述中和messeger有关的rpm包,于是我们可能得到gaim,kopete等等,并从中选择。
有时我们还会碰到安装了一个包,但又不知道其用途,我们可以用yum info packagename这个指令来获取信息。

1.命令:yum search <keyword>  -- 使用YUM查找软件包
2.命令:yum list  -- 列出所有可安装的软件包
3.命令:yum list updates  -- 列出所有可更新的软件包
4.命令:yum list installed  -- 列出所有已安装的软件包
5.命令:yum list extras  -- 列出所有已安装但不在 Yum Repository 內的软件包
6.命令:yum list <package_name>  -- 列出所指定的软件包
7.命令:yum info <package_name>  -- 使用YUM获取软件包信息
8.命令:yum info  -- 列出所有软件包的信息
9.命令:yum info updates  -- 列出所有可更新的软件包信息
10.命令:yum info installed  -- 列出所有已安裝的软件包信息
11.命令:yum info extras  -- 列出所有已安裝但不在 Yum Repository 內的软件包信息
12.命令:yum provides <package_name>  -- 列出软件包提供哪些文件


清除 缓存
yum 会把下载的软件包和header存储在cache中,而不会自动删除。如果我们觉得它们占用了磁盘空间,可以使用yum clean指令进行清除,更精确的用法是yum clean headers清除header,yum clean packages清除下载的rpm包,yum clean all一股脑儿端

1.命令:yum clean packages  -- 清除缓存目录(/var/cache/yum)下的软件包
2.命令:yum clean headers  -- 清除缓存目录(/var/cache/yum)下的 headers
3.命令:yum clean oldheaders  -- 清除缓存目录(/var/cache/yum)下旧的 headers
4.命令:yum clean, yum clean all (= yum clean packages; yum clean oldheaders)  -- 清除缓存目录(/var/cache/yum)下的软件包及旧的headers

的帮助信息:

[mchu@host ~]# yum 
Loaded plugins: fastestmirror 
Repository base is listed more than once in the configuration 
Repository updates is listed more than once in the configuration 
Repository extras is listed more than once in the configuration 
Repository centosplus is listed more than once in the configuration 
Repository contrib is listed more than once in the configuration 
You need to give some command 
usage: yum [options] COMMAND 

List of Commands: 

check-update   Check for available package updates 
clean          Remove cached data 
deplist        List a package's dependencies 
downgrade      downgrade a package 
erase          Remove a package or packages from your system 
groupinfo      Display details about a package group 
groupinstall   Install the packages in a group on your system 
grouplist      List available package groups 
groupremove    Remove the packages in a group from your system 
help           Display a helpful usage message 
info           Display details about a package or group of packages 
install        Install a package or packages on your system 
list           List a package or groups of packages 
localinstall   Install a local RPM 
makecache      Generate the metadata cache 
provides       Find what package provides the given value 
reinstall      reinstall a package 
repolist       Display the configured software repositories 
resolvedep     Determine which package provides the given dependency 
search         Search package details for the given string 
shell          Run an interactive yum shell 
update         Update a package or packages on your system 
upgrade        Update packages taking obsoletes into account 


options: 
  -h, --help            show this help message and exit 
  -t, --tolerant        be tolerant of errors 
  -C                    run entirely from cache, don't update cache 
  -c  [config file]     config file location 
  -R  [minutes]         maximum command wait time 
  -d  [debug level]     debugging output level 
  --showduplicates      show duplicates, in repos, in list/search commands 
  -e  [error level]     error output level 
  -q, --quiet           quiet operation 
  -v, --verbose         verbose operation 
  -y                    answer yes for all questions 
  --version             show Yum version and exit 
  --installroot=[path]  set install root 
  --enablerepo=[repo]   enable one or more repositories (wildcards allowed) 
  --disablerepo=[repo]  disable one or more repositories (wildcards allowed) 
  -x [package], --exclude=[package] 
                        exclude package(s) by name or glob 
  --disableexcludes=[repo] 
                        disable exclude from main, for a repo or for 
                        everything 
  --obsoletes           enable obsoletes processing during updates 
  --noplugins           disable Yum plugins 
  --nogpgcheck          disable gpg signature checking 
  --disableplugin=[plugin] 
                        disable plugins by name 
  --enableplugin=[plugin] 
                        enable plugins by name 
  --skip-broken         skip packages with depsolving problems 
  --color=COLOR         control whether color is used 

  Plugin Options: 
[mchu@host ~]# 

CentOS操作系统的时间调整

Blog Author 2013-08-05 Networking

操作系统的时间调整

1.安装ntp(Network Time Protocol)

yum install ntp

2.安装后执行

ntpdate time.nist.gov

即可同步国际时间..

3.修改时区

找到相应的时区文件 /usr/share/zoneinfo/Asia/Shanghai

替换当前的/etc/localtime。

修改/etc/sysconfig/clock文件的内容为:

ZONE="Asia/Shanghai" 
UTC=false 
ARC=false

 4.修改日期

时间设定成2013年8月5日的命令如下:

#date -s 08/05/2013

 5.修改时间

将系统时间设定成上午9点30分0秒的命令如下。

#date -s 09:30:00 

6.同步biso时间
同步BIOS时钟,强制把系统时间写入CMOS,命令如下:

#clock -w#/etc/rc.d/init.d/yum-updatesd stop    //停止yum-updatesd 
# yum -y remove yum-updatesd             //卸载 

MAC地址转换LinkLocal地址

Blog Author 2013-08-05 IPv6

    前面介绍过 地址是通过网卡MAC地址转换而来的,这里再提供一个小程序来转换;用C语言写个程序:先获取本机MAC地址,据此得到Link Local地址( )。

#include 
#include 
#include 

void byte2Hex(unsigned char bData,unsigned char hex[])
{
    int high=bData/16,low =bData %16;
    hex[0] = (high <10)?('0'+high):('A'+high-10);
    hex[1] = (low <10)?('0'+low):('A'+low-10);
}

int getLocalMac(unsigned char *mac) //获取本机MAC地址 
{
    ULONG ulSize=0;
    PIP_ADAPTER_INFO pInfo=NULL;
    int temp=0;
    temp = GetAdaptersInfo(pInfo,&ulSize);//第一次调用,获取缓冲区大小
    pInfo=(PIP_ADAPTER_INFO)malloc(ulSize);
    temp = GetAdaptersInfo(pInfo,&ulSize);

    int iCount=0;
    while(pInfo)//遍历每一张网卡
    {
        //  pInfo->Address 是MAC地址
        for(int i=0;i<(int)pInfo->AddressLength;i++)
        {
            byte2Hex(pInfo->Address[i],&mac[iCount]);
            iCount+=2;
            if(i<(int)pInfo->AddressLength-1)
            {
                mac[iCount++] = ':';
            }else
            {
                mac[iCount++] = '#';
            }
        }
        pInfo = pInfo->Next;
    }

    if(iCount >0)
    {
        mac[--iCount]='\0';
        return iCount;
    }
    else return -1;
}

int main(int argc, char* argv[])
{
    unsigned char address[1024];
    if(getLocalMac(address)>0)
    {
        printf("mac-%s\n",address);
    }else
    {
        printf("invoke getMAC error!\n");
    }
    return 0;
}

需要这两个:iphlpapi.lib , ws2_32.lib 静态库(VC添加到工程LINK里)。