解决Linux中文乱码

方法一:    修改/root/.bash_profile文件,增加export LANG=zh_CN.GB18030

对于其他用户,也必须相应修改该文件

    使用该方法时putty能显示中文,但桌面系统是英文,而且所有的网页中文显示还是乱码

方法二:

引用:

修改/etc/sysconfig/i18n文件

#LANG=”en_US.UTF-8″
#SUPPORTED=”en_US.UTF-8:en_US:en”
#SYSFONT=”latarcyrheb-sun16″

改为

LANG=”zh_CN.GB18030″
LANGUAGE=”zh_CN.GB18030:zh_CN.GB2312:zh_CN”
SUPPORTED=”zh_CN.GB18030:zh_CN:zh”
SYSFONT=”lat0-sun16″
SYSFONTACM=”8859-15″

解决Linux中文乱码

方法一:    修改/root/.bash_profile文件,增加export LANG=zh_CN.GB18030

对于其他用户,也必须相应修改该文件

    使用该方法时putty能显示中文,但桌面系统是英文,而且所有的网页中文显示还是乱码

方法二:

引用:

修改/etc/sysconfig/i18n文件

#LANG=”en_US.UTF-8″
#SUPPORTED=”en_US.UTF-8:en_US:en”
#SYSFONT=”latarcyrheb-sun16″

改为

LANG=”zh_CN.GB18030″
LANGUAGE=”zh_CN.GB18030:zh_CN.GB2312:zh_CN”
SUPPORTED=”zh_CN.GB18030:zh_CN:zh”
SYSFONT=”lat0-sun16″
SYSFONTACM=”8859-15″

饥荒联机版服务器搭建_Linux 搭建饥荒联机版服务器

工具

步骤

安装运行环境

yum install -y mailx postfix curl wget bzip2 gzip unzip python tmux glibc.i686 libstdc++ libstdc++.i686 libcurl.i686

Note: 如何配置阿里Yum源加速,请参考CentOS配置阿里Yum源。

配置专用用户并登录

adduser dstserver

su – dstserver

下载并执行脚本

wget -N –no-check-certificate https://gameservermanagers.com/dl/linuxgsm.sh && \

chmod +x linuxgsm.sh && \

bash linuxgsm.sh dstserver

下载饥荒服务器安装脚本 (坐等安装,需要好久0.0)

./dstserver install

安装完成后,绑定Cluster Token

运行服务器

./dstserver start

加入世界, 欢迎来到我的的饥荒世界

服务器Mods

安装mod,需修改/home/dstserver/serverfiles/mods/dedicated_server_mods_setup.lua

# /home/dstserver/serverfiles/mods/dedicated_server_mods_setup.lua

ServerModSetup(“MOD_ID”)

启用mod,需修改/home/dstserver/serverfiles/mods/modsettings.lua

# /home/dstserver/serverfiles/mods/modsettings.lua

ForceEnableMod(“workshop-MOD_ID”)

备注

服务器常用命令

./dstserver 查看命令列表

./dstserver start 启动服务器

./dstserver stop 停止服务器

./dstserver restart 重启服务器

./dstserver details 查看服务器信息

./dstserver console 控制台模式

./dstserver update 更新服务器

./dstserver validate 校验服务器

./dstserver backup 备份服务器

服务器文件解析

文件夹:

/home/dstserver/.klei/DoNotStarveTogether/Cluster_1/ –服务器根目录

/home/dstserver/.klei/DoNotStarveTogether/Cluster_1/Master –地表存档根目录

/home/dstserver/.klei/DoNotStarveTogether/Cluster_1/Caves –洞穴存档根目录

文件:

/home/dstserver/.klei/DoNotStarveTogether/Cluster_1/cluster.ini –服务器设置文件

/home/dstserver/.klei/DoNotStarveTogether/Cluster_1/cluster_token.txt –令牌文件

/home/dstserver/.klei/DoNotStarveTogether/Cluster_1/Master /server.ini –地表存档设置文件

/home/dstserver/.klei/DoNotStarveTogether/Cluster_1/Master /modoverrides.lua –mod配置文件

/home/dstserver/.klei/DoNotStarveTogether/Cluster_1/Master/worldgenoverride.lua(可选) –地图配置文件

/home/dstserver/.klei/DoNotStarveTogether/Cluster_1/Caves/server.ini –洞穴存档设置文件

文档/home/dstserver/.klei/DoNotStarveTogether/Cluster_1/Caves/modoverrides.lua –mod配置文件

文档/home/dstserver/.klei/DoNotStarveTogether/Cluster_1/Caves/worldgenoverride.lua –地图配置文件

cluster.ini 解析

[GAMEPLAY]

game_mode = endless # 游戏模式

max_players = 8 # *大玩家人数

pvp = false # pvp开关

pause_when_empty = true # 没人在线时暂停世界

vote_enabled = true # 投票开关(投票T人,投票重置世界)

[NETWORK]

lan_only_cluster = false # 只允许本地局域网加入开关

offline_cluster = false # 离线游戏

cluster_description = ‘0.0’ # 服务器简介

cluster_name = ‘My World’ # 服务器名称

cluster_intention = cooperative # 服务类型

cluster_password = 123456 # 服务器密码

tick_rate = 30 # 帧刷新频率

connection_timeout = 120000 # 掉线等待时间,单位毫秒

whitelist_slots = 1 # 白名单个数

autosaver_enabled = true # 天亮自动保存

【MISC]

console_enable = true # 是否开启控制台

max_snapshots = 6 # *大快照

[SHARD]

shard_enabled = true # 是否多世界

bind_ip = 127.0.0.1 # 主从世界在同一台服务器上(默认)

master_ip = 127.0.0.1 # 主从世界在同一台服务器上(默认)

master_port = 10888 # 端口

cluster_key = rain # 主从世界连接密码

[STEAM]

steam_group_only = false # 是否只允许同steam组的人加入

steam_group_id = 2222222 # steam组ID

steam_group_admins = true # steam组员自动成为管理员

JVM 与 Linux 的内存关系详解

转载自:https://mp.weixin.qq.com/s/pSCBUqMqW1kW4iPOLq824A

在一些物理内存为8g的服务器上,主要运行一个Java服务,系统内存分配如下:Java服务的JVM堆大小设置为6g,一个监控进程占用大约 600m,Linux自身使用大约800m。

从表面上,物理内存应该是足够使用的;但实际运行的情况是,会发生大量使用SWAP(说明物理内存不够使用 了),如下图所示。由于SWAP和GC同时发生会致使JVM严重卡顿,所以我们要追问:内存究竟去哪儿了?

 

 

要分析这个问题,理解JVM和操作系统之间的内存关系非常重要。接下来主要就Linux与JVM之间的内存关系进行一些分析。

一、Linux与进程内存模型

JVM以一个进程(Process)的身份运行在Linux系统上,了解Linux与进程的内存关系,是理解JVM与Linux内存的关系的基础。下图给出了硬件、系统、进程三个层面的内存之间的概要关系。

 

从硬件上看,Linux系统的内存空间由两个部分构成:物理内存和SWAP(位于磁盘)。物理内存是Linux活动时使用的主要内存区域;当物理内存不够使用时,Linux会把一部分暂时不用的内存数据放到磁盘上的SWAP中去,以便腾出更多的可用内存空间;而当需要使用位于SWAP的数据时,必须 先将其换回到内存中。

从Linux系统上看,除了引导系统的BIN区,整个内存空间主要被分成两个部分:内核内存(Kernel space)、用户内存(User space)。

内核内存是Linux自身使用的内存空间,主要提供给程序调度、内存分配、连接硬件资源等程序逻辑使用。

用户内存是提供给各个进程主要空间,Linux给各个进程提供相同的虚拟内存空间;这使得进程之间相互独立,互不干扰。实现的方法是采用虚拟内存技术:给每一个进程一定虚拟内存空间,而只有当虚拟内存实 际被使用时,才分配物理内存。

如下图所示,对于32的Linux系统来说,一般将0~3G的虚拟内存空间分配做为用户空间,将3~4G的虚拟内存空间分配 为内核空间;64位系统的划分情况是类似的。

 

从进程的角度来看,进程能直接访问的用户内存(虚拟内存空间)被划分为5个部分:代码区、数据区、堆区、栈区、未使用区。

代码区中存放应用程序的机器代码,运行过程中代码不能被修改,具有只读和固定大小的特点。

数据区中存放了应用程序中的全局数据,静态数据和一些常量字符串等,其大小也是固定的。

堆是运行时程序动态申请的空间,属于程序运行时直接申请、释放的内存资源。

栈区用来存放函数的传入参数、临时变量,以及返回地址等数据。

未使用区是分配新内 存空间的预备区域。

二、进程与JVM内存空间

JVM本质就是一个进程,因此其内存空间(也称之为运行时数据区,注意与JMM的区别)也有进程的一般特点。深入浅出 Java 中 JVM 内存管理,这篇参考下。

但是,JVM又不是一个普通的进程,其在内存空间上有许多崭新的特点,主要原因有两 个:

1.JVM将许多本来属于操作系统管理范畴的东西,移植到了JVM内部,目的在于减少系统调用的次数;

2. Java NIO,目的在于减少用于读写IO的系统调用的开销。JVM进程与普通进程内存模型比较如下图:

 

需要说明的是,这个模型的并不是JVM内存使用的精确模型,更侧重于从操作系统的角度而省略了一些JVM的内部细节(尽管也很重要)。下面从用户内存和内核内存两个方面讲解JVM进程的内存特点。

1.用户内存

上图特别强调了JVM进程模型的代码区和数据区指的是JVM自身的,而非Java程序的。普通进程栈区,在JVM一般仅仅用做线程栈。JVM的堆区和普通进程的差别是*大的,下面具体详细说明:

首先是永久代。永久代本质上是Java程序的代码区和数据区。Java程序中类(class),会被加载到整个区域的不同数据结构中去,包括常量池、域、方法数据、方法体、构造函数、以及类中的专用方法、实例初始化、接口初始化等。这个区域对于操作系统来说,是堆的一个部分;而对于Java程序来 说,这是容纳程序本身及静态资源的空间,使得JVM能够解释执行Java程序。

其次是新生代和老年代。新生代和老年代才是Java程序真正使用的堆空间,主要用于内存对象的存储;但是其管理方式和普通进程有本质的区别。

普通进程在运行时给内存对象分配空间时,比如C++执行new操作时,会触发一次分配内存空间的系统调用,由操作系统的线程根据对象的大小分配好空间后返 回;同时,程序释放对象时,比如C++执行delete操作时,也会触发一次系统调用,通知操作系统对象所占用的空间已经可以回收。

JVM对内存的使用和一般进程不同。JVM向操作系统申请一整段内存区域(具体大小可以在JVM参数调节)作为Java程序的堆(分为新生代和老年代);当Java程序申请内存空间,比如执行new操作,JVM将在这段空间中按所需大小分配给Java程序,并且Java程序不负责通知JVM何时可以释放这 个对象的空间,垃圾对象内存空间的回收由JVM进行。

JVM的内存管理方式的优点是显而易见的,包括:*,减少系统调用的次数,JVM在给Java程序分配内存空间时不需要操作系统干预,仅仅在 Java堆大小变化时需要向操作系统申请内存或通知回收,而普通程序每次内存空间的分配回收都需要系统调用参与;第二,减少内存泄漏,普通程序没有(或者 没有及时)通知操作系统内存空间的释放是内存泄漏的重要原因之一,而由JVM统一管理,可以避免程序员带来的内存泄漏问题。

*后是未使用区,未使用区是分配新内存空间的预备区域。对于普通进程来说,这个区域被可用于堆和栈空间的申请及释放,每次堆内存分配都会使用这个区 域,因此大小变动频繁;对于JVM进程来说,调整堆大小及线程栈时会使用该区域,而堆大小一般较少调整,因此大小相对稳定。操作系统会动态调整这个区域的 大小,并且这个区域通常并没有被分配实际的物理内存,只是允许进程在这个区域申请堆或栈空间。

2.内核内存

应用程序通常不直接和内核内存打交道,内核内存由操作系统进行管理和使用;不过随着Linux对性能的关注及改进,一些新的特性使得应用程序可以使 用内核内存,或者是映射到内核空间。Java NIO正是在这种背景下诞生的,其充分利用了Linux系统的新特性,提升了Java程序的IO性能。

 

上图给出了Java NIO使用的内核内存在linux系统中的分布情况。nio buffer主要包括:nio使用各种channel时所使用的ByteBuffer、Java程序主动使用 ByteBuffer.allocateDirector申请分配的Buffer。

而在PageCache里面,nio使用的内存主要包 括:FileChannel.map方式打开文件占用mapped、FileChannel.transferTo和 FileChannel.transferFrom所需要的Cache(图中标示 nio file)。

通过JMX可以监控到NIO Buffer和 mapped 的使用情况,如下图所示。不过,FileChannel的实现是通过系统调用使用原生的PageCache,过程对于Java是透明的,无法监控到这部分内存的使用大小。

 

Linux和Java NIO在内核内存上开辟空间给程序使用,主要是减少不要的复制,以减少IO操作系统调用的开销。例如,将磁盘文件的数据发送网卡,使用普通方法和NIO时,数据流动比较下图所示:

 

将数据在内核内存和用户内存之间拷贝是比较消耗资源和时间的事情,而从上图我们可以看到,通过NIO的方式减少了2次内核内存和用户内存之间的数据拷贝。这是Java NIO高性能的重要机制之一(另一个是异步非阻塞)。

从上面可以看出,内核内存对于Java程序性能也非常重要,因此,在划分系统内存使用时候,一定要给内核留出一定可用空间。

三、案例分析

1.内存分配问题

通过上面的分析,省略比较小的区域,可以总结JVM占用的内存:
JVM内存 ≈ Java永久代 + Java堆(新生代和老年代) + 线程栈+ Java NIO

回到文章开头提出的问题,原来的内存分配是:6g(java堆) + 600m(监控) + 800m(系统),剩余大约600m内存未分配。

现在分析这600m内存的分配情况:

  1. Linux保留大约200m,这部分是Linux正常运行的需要,
  2. Java服务的线程数量是160个,JVM默认的线程栈大小是1m,因此使用160m内存,
  3. Java NIO buffer,通过JMX查到*多占用了200m,
  4. Java服务使用NIO大量读写文件,需要使用PageCache,正如前面分析,这个暂时不好定量估算大小。

前三项加起来已经560m,因此可以断定Linux物理内存不够使用。

细心的人会发现,引言中给出两个服务器,一个SWAP*多占用了2.16g,另外一个SWAP*多占用了871m;但是,似乎我们的内存缺口没有那么大。事实上,这是由于SWAP和GC同时进行造成的,从下图可以看到,SWAP的使用和长时间的GC在同一时刻发生。

 

 

SWAP和GC同时发生会导致GC时间很长,JVM严重卡顿,*端的情况下会导致服务崩溃。原因如下:JVM进行GC时,时需要对相应堆分区的已用 内存进行遍历;假如GC的时候,有堆的一部分内容被交换到SWAP中,遍历到这部分的时候就需要将其交换回内存,同时由于内存空间不足,就需要把内存中堆 的另外一部分换到SWAP中去;于是在遍历堆分区的过程中,(*端情况下)会把整个堆分区轮流往SWAP写一遍。Linux对SWAP的回收是滞后的,我 们就会看到大量SWAP占用。上述问题,可以通过减少堆大小,或者增加物理内存解决。

因此,我们得出一个结论:部署Java服务的Linux系统,在内存分配上,需要避免SWAP的使用;具体如何分配需要综合考虑不同场景下JVM对Java永久代 、Java堆(新生代和老年代)、线程栈、Java NIO所使用内存的需求。

2.内存泄漏问题

另一个案例是,8g内存的服务器,Linux使用800m,监控进程使用600m,堆大小设置4g;系统可用内存有2.5g左右,但是也发生了大量的SWAP占用。

分析这个问题如下:

  1. 在这个场景中, Java永久代 、Java堆(新生代和老年代)、线程栈所用内存基本是固定的,因此,占用内存过多的原因就定位在Java NIO上。
  2. 根据前面的模型,Java NIO使用的内存主要分布在Linux内核内存的System区和PageCache区。查看监控的记录,如下图,我们可以看到发生SWAP之前,也就是 物理内存不够使用的时候,PageCache急剧缩小。因此,可以定位在System区的Java NIO Buffer发生内存泄漏。

     

     

     

  3. 由于NIO的DirectByteBuffer需要在GC的后期被回收,因此连续申请DirectByteBuffer的程序,通常需要调用 System.gc(),避免长时间不发生FullGC导致引用在old区的DirectByteBuffer内存泄漏。分析到此,可以推断有两种可能的 原因:*,Java程序没有在必要的时候调用System.gc();第二,System.gc()被禁用。
  4. *后是要排查JVM启动参数和Java程序的DirectByteBuffer使用情况。在本例中,查看JVM启动参数,发现启用了-XX:+DisableExplicitGC导致System.gc()被禁用。

四、总结

本文详细分析了Linux与JVM的内存关系,比较了一般进程与JVM进程使用内存的异同点,理解这些特性将对Linux系统内存分配、JVM调优、Java程序优化有帮助。限于篇幅关系仅仅列举两个案例,希望起到抛砖引玉的作用。

Linux 如何挂载NAS盘

linux下需要将nas盘挂在到系统中;
方法:
首先创建一个挂载目录:

    mkdir /mnt/nas

 

挂载目录:

    mount  -o username=flt,password=a^6r9SDy,iocharset=utf8 //192.168.2.90/产品部 /mnt/nas

 

如果是想要mount的是windows文件系统,需要加上cifs:

    mount -t cifs -o username=flt,password=a^6r9SDy,iocharset=utf8 //192.168.2.90/产品部 /mnt/nas

 

参数说明:

        username=flt                        [nas用户名]
        password=a^6r9dSDy                  [nas密码]     
        iocharset=utf8                      [路径中如有中文则添加此项,支持中文路径] 
        //192.168.2.90/产品部                [nas路径]
        /mnt/nas                            [挂载路径]

参数之间用,(逗号)分隔。

如果密码中有’,’号,则以上命令无法执行完成,因为需要参数之间用“,”逗号分隔,导致会认为提前结束了。
所以可以用下面方法,创建一个环境变量:

export PASSWD='!3\5g6,B'

mount -o username=mkx,iocharset=utf8 //192.168.10.90/产品部 /mnt/nas

注:shell会自动查找PASSWD

使用完成后将其卸载:

umount -l /mnt/nas

更改 vsftpd 的端口号

vsftpd启动后,默认的ftp端口是21,现在我想把ftp端口改成 801 ,修改后能保证

用户上传下载不受影响1.编辑 /etc/vsftpd/vsftpd.conf 文件,在该配置文件中添加此行:listen_port=801
2.编辑 /etc/services 文件,将其中的 ftp 21/tcp 改为 ftp 801/tcp , ftp
21/udp
改为 ftp 801/udp
3.执行 /etc/init.d/vsftpd restart 重新启动 vsftpd 服务。启动完成后可以使
用 netstat -ntpl | grep vsftpd 命令可以查看到系统现
监听的 vsftpd 的端口为 801
4.使用 lftp 192.168.0.1:801(192.168.0.1 是 vsftpd 服务器的地址 ),这样既
可以访问到 ftp 服务器了。

linux 生成KEY的方法与使用

服务器A: 192.168.1.1

服务器B: 192.168.1.2

 

服务器A:

配置:

ssh-keygen -b 2048 -t rsa

#这里的-b 2048 是密钥加密的长度,*好设大点,有消息称美国有黑客解决 ssh的密钥进行破解。
#http://bbs.yuloo.com/thread-860154-1-1.html

直接回车3次

key文件会保存在/root/.ssh目录下

这时候.ssh目下会多出几个文件

id_rsa   私钥文件

id_rsa.pub  公钥文件,这个文件里的内容要放到其它主机里面去。

查看 id_rsa.pub  文件

cat /roor/.ssh/id_rsa.pub

 

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIcAvh6Lz9ghftghtfghSv+kSrxVLC9UDKq27mg5vhfghAaWcgFgllZhfg2DLnGotmeL/08bp6jMW/ekSq1BY1eiouiluiliuliul2Rr84x0bB5YShhpgJwuPbwr/pymgukyukyukyuthjkiytiliunzdfkuykyuIZgVvgPTzNdN/RDwJMsafsdvgsdsfsdfdsfsdaflozStYcWjrwzYxsroDPBy4zjd0gH5zMYhj+vS4OOAZZ8rtHEfx+sTE0= root@localhost.localdomain

 

 

 

服务器B:

配置:

新建文件夹与文件

mkdir /root/.ssh

vim /root/.ssh/authorized_keys

把A服务器上查看的KEY文件内容,复制到B服务器的authorized_keys中

主要是将root@localhost.localdomain修改为root@192.168.1.1 这样方便查看是哪台服务器的KEY,可能会有多台服务器的key。

 

修改sshd 的主配置文件,关闭密码认证登陆,使用key登陆。

vim /etc/ssh/sshd_config

找到 PasswordAuthentication yes

改成 PasswordAuthentication no

service sshd restart

 

 

测试:

在A服务器上执行

ssh root@192.168.1.2

首次登陆会需要你输入YES。看是不是不需要密码就可以登陆B服务了。

入侵LINUX服务器详解

在网上有许多网友提出这样的问题:究竟网站的主页是如何被黑的?黑客们到底是如何入侵服务器的?
在讨论这部分知识前,读者需要知道——入侵网站是非法的;但是在网络上找到网站的入侵漏洞并通知该网站是受到欢迎的。为什么要这样寻找入侵漏洞或入侵哪, 著名的黑客H ackalot说过“入侵网站是利用所学的知识来学习新的知识的一种办法”,这也就是中国人所常说的“温故而知新”。

【原理】
尽管为服务器设计软件的软件工程师们想方设法提高系统的安全性,然而由于系统管理员的水平参差不齐或安全意识底下,往往给黑客提供了入侵的机会。

其实每一个黑客都有自己独到的方法。笔者对于入侵网站服务器的资料收集了很多,但是因为实际情况的不同,往往造成许多方法的失效;由此可见,每一个网站的 情况都不同,需要入侵者区分对待。假设深圳的线路比北京的线路要好的多,从而给了词典穷举很大的方便,深圳用户就可以依靠这个优势在线攻击口令,作为北京 的用户就需要优先考虑其它办法了。针对这么多的入侵手段,笔者参考H ackalot先生这位黑客界名人的一篇文章给大家介绍一下入侵网站的基本步骤。
分析一部分的主页被黑的事例可以发现使用入侵者*热衷于入侵Web服务器和FTP服务器,因为相对来说这是*简单的两种途径。在假设读者对U NIX系统和WEB SERVER的知识不曾了解的情况下,笔者给出下面的步骤。

一、了解要入侵的系统
现在网络上用作服务器的操作系统以UNIX和Linux为主流,如果要入侵这些系统则必须对它们有一个了解。
大部份在 DOS 上使用的指令在 UNIX 及 Linux 上都有对应的指令(因为早期的dos开发借鉴了UNIX),以下列出在使用 SHELL帐号 (shell account)时*主要的一些指令对应的dos指令:
HELP=HELP
CP=COPY
MV= MOVE
LS= DIR
RM =DEL
CD=CD
要看谁同時也在该系統上用户可以键入 WHO 指令,要知道系統上某一位使用者的资料, 可以鍵入 FINGER。这些基本的 UNIX 指令可以让你得到你正使用系統的信息。

二、破解密码
在UNIX操作系统中, 所有系统使用者的密码都存放在一个文件中,这个文件存放在 /etc这个目录下面, 它的文件名就叫做passwd。如果读者认为所要做的工作就是拿到这个文件按照上面的密码登陆系统的话那就大错特错了。UNIX和Linux下的p asswd文件是特殊的,在它里面所有帐号的密码都已经经过重新编译的(也就是前面说过的DES加密方法),而且这些密码所进行的都是单向编译( one-way encrypted),也就是说没有办法可以反编译它的(decrypt)。
但是还是有些程序可以得到这些原始的密码。笔者向大家推荐一个破解密码的程序“Cracker Jack”,它也是一个使用字典来对字典文件进行穷举的软件。首先“Cracker Jack”会把字典文件里的每一个值进行编译,然后将编译过的值与密码文件中的内容进行比较,得到相同的结果就会报告对应的未经编译密码。这个软件巧妙的 绕过密码无法反编译的限制,使用穷举比较获得密码。使用这种原理获得密码的工具有许多,读者可以到网络上去搜寻一下。

三、获得密码文件
这是*困难的一部分。很明显,如果管理员有那么一个密码文件的话他当然不会放在那里让其它人舒舒服服的拿到的。入侵者必须找到好方法以不进入系统的方式拿到密码文件。这里笔者向大家介绍两种方法,大家可以试试,有可能会成功。
1.tc目录在FTP服务上不会被锁住,入侵可以用FTP client程序使用anoymously匿名帐号登陆,然后检查一下/etc/passwd是否为匿名设置了被读取的权限,如果有马上备份下来使用软件解码。
2.些系统中,/cgi-bin目录下会有个叫PHF的文件,如果准备入侵的服务器上有的话那就要方便的多了。因为PHF允许使用者对网站系统里的文件作远端读取,以此为据,用户可以使用浏览器抓取p asswd文件,只要在浏览器地址栏中键入URL:http://xxx.xxx.xxx/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd,其中xxx.xxx.xxx 是要入侵的网站名。
如果这两种方法都行不通的话,那入侵者必须实施其它的办法了。
在 有些情况下入侵者找到的密码文件的第二部分是X、!或者*,那么说明该密码文件已经被锁死,这是系统管理员使用的加强安全的手段之一。但是将密码文件完全 隐藏起来的情况是不太有的。通常情况下都会有未经锁死的密码文件备份在系统中,这样入侵者就可以加以利用,比如:入侵者通常会寻找/ etc/shadow目录或类似的目录,看能否找到密码文件的备份。

四、建立自己的shell帐号
经过 二、三两个关键的步骤入侵者终于拿到了关键的密码文件,并且破解出了密码。现在可以运行TELNET程序,登陆主机了。当连上服务器时服务器会向你显示自 己的一些信息,通常是U NIX、linux、 aix、 irix、 ultrix、 bsd 甚至是 DOS 和VAX/Vms;然后是Login提示符出现在屏幕上,这时键入得来的帐号和密码即可登陆系统。此时入侵者就可以利用自己的UNIX知识做自己喜欢做的 事了。

*后对一份密码文件做一个分析,该文件内容如下:
root:1234aaab:0:1:Operator:/:/bin/csh
nobody:*:12345:12345::/:
daemon:*:1:1::/:
sys:*:2:2::/:/bin/csh
sun:123456hhh:0:1:Operator:/:/bin/csh
bin:*:3:3::/bin:
uucp:*:4:8::/var/spool/uucppublic:
news:*:6:6::/var/spool/news:/bin/csh
audit:*:9:9::/etc/security/audit:/bin/csh
sync::1:1::/:/bin/sync
sysdiag:*:0:1:Old System
Diagnostic:/usr/diag/sysdiag:/usr/diag/sysdiag/sysdiag
sundiag:*:0:1:System
Diagnostic:/usr/diag/sundiag:/usr/diag/sundiag/sundiag
tom:456lll45uu:100:20::/home/tom:/bin/csh
john:456fff76Sl:101:20:john:/home/john:/bin/csh
henry:AusTs45Yus:102:20:henry:/home/henry:/bin/csh
harry:SyduSrd5sY:103:20:harry:/home/harry:/bin/csh
steven:GEs45Yds5Ry:104:20:steven:/home/steven:/bin/csh
+::0:0:::

其中以“:”分成几个栏位,比如: tom:456lll45uu:100:20:tomchang:/home/tom:/bin/csh的含义是:
User Name: tom
Password: 456lll45uu
User No: 100
Group No: 20
Real Name: tom chang
Home Dir: /home/tom
Shell: /bin/csh

读者可以发现以上诸如nobody、 daemon、 sys、 bin、 uucp、 news、 audit、 sysdiag、sundiag 等的密码栏位都是*,也就是说这些帐号的密码都已锁死,无法直接利用。

值得注意的是,许多系统在首次安装后会有一些缺省帐号和密码,这给投机主义的黑客带来方便,以下就是一些UNIX下缺省的帐号和密码。
ACCOUNT PASSWORD
———– —————-
root root
sys sys / system / bin
bin sys / bin
mountfsys mountfsys
adm adm
uucp uucp
nuucp anon
anon anon
user user
games games
install install
reboot 供“command login”使用
demo demo
umountfsys umountfsys
sync sync
admin admin
guest guest
daemon daemon

其中 root mountfsys umountfsys install (有時候 sync也是) 等都是root级别的帐号, 也就是拥有了sysop (系统管理员)的权限。

*后有必要介绍一下UNIX的日志文件。很多入侵者不希望侵入的电脑追踪他们,那到底如何做那。
系统管理员主要依靠系统的LOG,即我们时常所说的日志文件来获得入侵的痕迹及入侵者进来的IP和其他信息。当然也有些管理员使用第三方工具来记录侵入电脑的信息,这里主要讲的是一般U NIX系统里记录入侵踪迹的文件。

UNIX系统有多个版本,各个系统有不同的LOG文件,但大多数都应该有差不多的存放位置,*普通的位置就是下面的这几个:
/usr/adm,早期版本的UNIX;
/var/adm,新一点的版本使用这个位置;
/var/log,一些版本的Solaris,Linux BSD,Free BSD使用这个位置;
/etc,大多数UNIX版本把utmp放在此处,一些也把wtmp放在这里,这也是 syslog.conf的位置。

下面列举一些文件的功能,当然他们也根据入侵的系统不同而不同。
acct 或 pacct,记录每个用户使用的命令记录;
access_log,主要使用来服务器运行了NCSA HTTPD,这个记录文件会有什么站点连接过你的服务器;
aculog,保存着你拨出去的MODEMS记录;
lastlog,记录了用户*近的登陆记录和每个用户的*初目的地,有时是*后不成功登陆的记录;
loginlog,记录一些不正常的登陆记录;
messages,记录输出到系统控制台的记录,另外的信息由syslog来生成;
security,记录一些使用UUCP系统企图进入限制范围的事例;
sulog,记录使用su命令的记录;
utmp,记录当前登录到系统中的所有用户,这个文件伴随着用户进入和离开系统而不断变化;
utmpx,UTMP的扩展;
wtmp,记录用户登录和退出事件;
syslog,*重要的日志文件,使用syslogd守护程序来获得。
日志信息:
/dev/log,一个UNIX域套接字,接受在本地机器上运行的进程所产生的消息;
/dev/klog,一个从UNIX内核接受消息的设备;
514端口,一个INTERNET套接字,接受其他机器通过UDP产生的syslog消息;
Uucp,记录的UUCP的信息,可以被本地UUCP活动更新,也可有远程站点发起的动作修改,信息包括发出和接受的呼叫,发出的请求,发送者,发送时间和发送主机;
lpd-errs,处理打印机故障信息的日志;
ftp日志,执行带-l选项的ftpd能够获得记录功能;
httpd日志,HTTPD服务器在日志中记录每一个WEB访问记录;
history日志,这个文件保存了用户*近输入命令的记录;
vold.log,记录使用外接媒介时遇到的错误记录。

以上介绍了一下入侵服务器的主要步骤,读者现在应该对它有一些基础的认识了。需要再次强调的是如果读者对UNIX系统缺乏了解的话那是*对不可能掌握它的

国内公共DNS

腾讯 DNS:119.29.29.29、182.254.116.116

阿里 DNS:223.5.5.5、223.6.6.6

百度 DNS:180.76.76.76

114DNS:114.114.114.114、114.114.115.115

CNNIC DNS:1.2.4.8、210.2.4.8

OneDNS:117.50.11.11、117.50.22.22

清华大学 TUNA 协会 DNS 服务器:101.6.6.6

 

PS:

8.8.8.8 是谷歌的dns服务器地址,在国内优先选择国内的dns服务器