⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1689.html

📁 著名的linux英雄站点的文档打包
💻 HTML
📖 第 1 页 / 共 4 页
字号:
麦子在他写的那篇名为SSH的文章提到——使用telnet进行远程设备维护的时候,由于密码和通讯都是明文的,易受sniffer侦听,所以应采用SSH替代telnet。<br>
<br>
为什么首先提安装OpenSSH而不是其他的是因为xxbin实在不愿意用机器的物理终端或者是telnet来操作机器。<br>
<br>
OpenSSH 是Linux/UNIX上用的最多的SSH Server,xxbin无论是在Linux/FreeBSD还是AIX上都用它,不过请大家注意,OpenSSH的低版本是有漏洞的,另外还有一点特别要小心——OpenSSH以及Apache(SSL Support)等所依靠的软件OpenSSL的低版本也存在一些漏洞的,因此,在安装OpenSSH以及Apache之前,需要安装最新版本的OpenSSL,切记切记,否则即使你安装了最新版本的Apache和OpenSSH,系统还是存在致命的漏洞!<br>
<br>
首先安装OpenSSL:<br>
从 http://www.openssl.org/source/ 下载最新版本的OpenSSL,在写这篇文章的时候,最新版本的OpenSSL为OpenSSL 0.9.7a<br>
<br>
(在安装前请把系统中原来安装的旧的版本的openssl卸载掉)<br>
<br>
tar -xvzf openssl-0.9.7a.tar.gz<br>
cd openssl-0.9.7<br>
./config shared<br>
make<br>
make test<br>
make install<br>
<br>
如果没有问题,那么OpenSSL就被安装在/usr/local/里面了,注意上面的配置命令里面有个shared,意思是创建Shared Libraries,这个选项一定要加上,否则某某程序报错说找不到某某so你就不要来找我。<br>
<br>
另外,为了兼容某些程序比如OpenSSH,需要手动创建一些符号连接:<br>
cd /usr/local/ssl/lib<br>
ln -s libcrypto.so.0.9.7 libcrypto.so.2<br>
ln -s libssl.so.0.9.7 libssl.so.2<br>
<br>
最后要刷新系统的动态连接库配置<br>
echo /usr/local/ssl/lib &gt;&gt; /etc/ld.so.conf<br>
ldconfig -v<br>
<br>
看看/usr/local/ssl/lib下是否存在下面两行:<br>
libcrypto.so.0.9.7 -&gt; libcrypto.so.0.9.7<br>
libssl.so.0.9.7 -&gt; libssl.so.0.9.7<br>
<br>
<br>
接着安装OpenSSH:<br>
从 ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/ 下载最新版本的OpenSSH,在写这篇文章的时候,最新版本的OpenSSH为OpenSSH 3.5 P1。<br>
<br>
tar -xvzf openssh-3.5p1.tar.gz<br>
cd openssh-3.5p1<br>
./configure --with-ssl-dir=/usr/local/ssl<br>
make<br>
make install<br>
<br>
<br>
注意查看configure的输出,找到有关OpenSSL的部分<br>
类似:<br>
checking OpenSSL header version... 90702f (OpenSSL 0.9.7b 10 Apr 2003)<br>
checking OpenSSL library version... 90702f (OpenSSL 0.9.7b 10 Apr 2003)<br>
<br>
看看是否应用了最新版本OpenSSL<br>
<br>
如果没有问题,那么OpenSSH就被安装在/etc/local里面了,所有有关OpenSSH的配置文件都放在/usr/local/etc目录下,修改配置文件/usr/local/etc/sshd_config<br>
<br>
vi /usr/local/etc/sshd_config<br>
<br>
CODE<br>
<br>
<br>
# This is the sshd server system-wide configuration file. &nbsp;See<br>
# sshd_config(5) for more information.<br>
Port 22<br>
Protocol 2,1<br>
ListenAddress 0.0.0.0<br>
<br>
HostKey /usr/local/etc/ssh_host_key<br>
HostKey /usr/local/etc/ssh_host_rsa_key<br>
HostKey /usr/local/etc/ssh_host_dsa_key<br>
<br>
SyslogFacility AUTH<br>
LogLevel INFO<br>
<br>
PermitRootLogin yes<br>
RhostsAuthentication no<br>
IgnoreRhosts yes<br>
<br>
UsePrivilegeSeparation yes<br>
Subsystem sftp /usr/local/libexec/sftp-server<br>
<br>
<br>
这里面主要要改动的就是PermitRootLogin yes。<br>
<br>
<br>
配置OpenSSH自启动:<br>
<br>
cp contrib/redhat/sshd.init /etc/init.d/sshd<br>
ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S55sshd<br>
<br>
<br>
<br>
启动OpenSSH:<br>
<br>
/etc/init.d/sshd start<br>
若系统没有提示错误那就说明sshd已经起来了,可以ps -ef |grep sshd来确认一下,同时也可以用ssh客户端来测试一番。<br>
若系统提示错误,就应该根据错误来进行排错,因为可能的错误实在太多,在这里就不做讨论了。<br>
<br>
<br>
推荐采用的SSH客户端:<br>
如果在Linux/UNIX下,那么用OpenSSH带的ssh客户端就OK了,如果在Windows下,强烈建议采用SecureCRT。<br>
<br>
 第二篇:Linux Kernel<br>
<br>
提起Linux内核(Linux Kernel),网络上有大量的文章讨论如何编译内核,在此,xxbin并不会详细说明整个编译的细节,细节问题请查阅Linux Kernel HOW-TO。<br>
<br>
为什么要自己编译内核?<br>
1&gt; 发行版自带的内核版本不够高,或者有漏洞和bug;<br>
2&gt; 发行版自带的内核不是为你的CPU优化的,比如redhat通常的内核都是for i386的,如果你用高档的芯片,芯片的性能就没有完全发挥出来;<br>
3&gt; 发行版自带的内核太过大众化,不是为你的机器优化的,如果你还用着发行版自带的内核,你可以试着运行一下lsmod,肯定会列出一堆模块,比如网卡的驱动、甚至是文件系统模块等等。<br>
4&gt; 发行版自带的内核提供的功能不能满足你的要求,比如你要用Linux做一个文件服务器,想用IBM的EVMS来做卷管理,想用IBM JFS for Linux来做文件系统,那么你肯定得自己重新编译内核了。<br>
5&gt; more and more<br>
<br>
上面提到过Linux内核的版本,在这里有必要解释一下,Linux的内核分两种,一种是stable版本的,就是稳定版,稳定版从1.0.x开始而且目前是以偶数编号发表的; 象1.0.x/1.2.x/2.0.x /2.2.x/2.4.x等都是稳定版,另外一种版本是测试版,即发展中的内核 (1.1.x/1.3.x/2.1.x/2.3.x/2.5.x等等),专门作为测试用的,如果你是想玩玩测试版内核的新功能倒是没有问题,但是如果用Linux来跑一些比较重要的应用,xxbin强烈建议你用稳定版的内核,在这篇文章写的时候,The latest stable version of the Linux kernel is: 2.4.20 。<br>
<br>
针对我们上面提出的问题,我们需要对我们的内核做一些优化工作:<br>
<br>
1&gt; 发行版自带的内核版本不够高,或者有漏洞和bug;<br>
在通常情况,应该选择最后的稳定版本内核,比如现在我们应该选择2.4.20<br>
<br>
2&gt; 发行版自带的内核不是为你的CPU优化的<br>
在编译内核的时候,注意选择最符合你的CPU型号的选项。(新版本的内核在config的时候会自己选择)<br>
<br>
3&gt; 发行版自带的内核太过大众化,不是为你的机器优化的<br>
首先,运行lsmod,看看你的发行版的内核用了哪些模块,哪些模块是你必须要用的?编译内核在选择某个功能是编译成模块还是编译进内核的一个原则就是看你是否频繁的需要这个功能,比如网卡驱动,SCSI驱动,文件系统等,就不应该编译成模块。<br>
<br>
OK, step by step<br>
<br>
下载内核源代码<br>
建议从 http://www.kernel.org/ 下载你所需要的内核源代码,比如xxbin现在选择的是2.4.20<br>
wget http://www.kernel.org/pub/linux/kernel/v2....-2.4.20.tar.bz2<br>
tar -xvjf linux-2.4.20.tar.bz2<br>
<br>
<br>
确定我们需要的功能和模块<br>
运行 dmesg 来查看你的机器的硬件配置,这里我们关注的是CPU内型,网卡具体型号,SCSI/RAID卡型号(如果有的话 ),并把它们纪录下来。<br>
比如我们论坛的机器:<br>
<br>
CPU: Intel Pentium III (Katmai) stepping 03<br>
agpgart: Detected Intel 440BX chipset<br>
agpgart: AGP aperture is 64M @ 0xe0000000<br>
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx<br>
PIIX4: IDE controller on PCI bus 00 dev 39<br>
hda: QUANTUM FIREBALL CR4.3A, ATA DISK drive<br>
hdc: IBM-DPTA-372050, ATA DISK drive<br>
hdd: ATAPI CD-ROM DRIVE 32X MAXIMUM, ATAPI CD/DVD-ROM drive<br>
eth0: VIA VT6102 Rhine-II at 0xe400, 00:05:5d:a5:06:6f, IRQ 10.<br>
<br>
很简单,我们用PIII的CPU,440BX的主板,显卡是AGP的,用的是普通的IDE硬盘和光驱,IDE控制芯片是PIIX4的,网卡型号是VIA VT6102 Rhine-II。<br>
或许有人会问——声卡呢?显卡的具体型号呢?<br>
注意一点,我们是在配置服务器,对于服务器来说,内核越精简越好,服务器有个普通的显卡驱动能看到字符界面就可以了,声音嘛,有个PC喇叭也就OK了。<br>
<br>
运行mount来看看我们用了什么文件系统:<br>
结果是我们的机器都是用ext3文件系统的,不过需要注意的是,现在的内核启动的时候都需要Initial RAM disk(initrd)的支持,就是说内核在最初启动的时候会建立一个RAMDISK,然后把一个小的initrd image解压到RAMDISK中,先用这个RAMDISK做一些初始化的工作,最后才会chroot到硬盘上的系统。<br>
因此我们需要<br>
ext3<br>
ext2(initrd所需)<br>
initrd<br>
<br>
配置Linux Kernel选项<br>
在Linux Kernel src目录下运行:<br>
make menuconfig<br>
启动字符菜单方式的Kernel配置(这一步看个人喜好,有的人喜欢make config)<br>
<br>
在Processor type and features选项里面选择你机器的CPU型号,这里就是(Pentium-III/Celeron(Coppermine)) Processor family<br>
# 在General setup选项里面去掉 ISA bus support,因为我们没有用到ISA的卡<br>
在Plug and Play configuration选项里面去掉&lt;*&gt; ISA Plug and Play support<br>
进入Block devices选项,按照下面进行选择:<br>
CODE<br>
<br>
&lt;*&gt; Normal floppy disk support<br>
&lt; &gt; XT hard disk support<br>
&lt; &gt; Compaq SMART2 support<br>
&lt; &gt; Compaq Smart Array 5xxx support<br>
&lt; &gt; Mylex DAC960/DAC1100 PCI RAID Controller support<br>
&lt;M&gt; Loopback device support<br>
&lt;M&gt; Network block device support<br>
&lt;*&gt; RAM disk support<br>
(4096) Default RAM disk size (NEW)<br>
[*] Initial RAM disk (initrd) support &nbsp;<br>
<br>
<br>
在这里解释一下,如果你需要一些磁盘阵列或者RAID的支持,那些有关阵列的选项需要关注一下,Loopback device的支持是为了能够直接mount ISO/FS的映像文件,Network block device的支持是为了网络文件系统,因为这两个东西都不是必需的,因此选择成为模块,而RAM disk是必需的(RAM Disk size一般不会超过4096KB,取决于你的initrd映像文件大小),并且需要initrd,因此这两个我们直接编译进入内核。<br>
<br>
在ATA/IDE/MFM/RLL support -&gt; IDE, ATA and ATAPI Block devices中,选择你的IDE芯片,在这里是Intel PIIXn chipsets support。<br>
<br>
如果你有SCSI卡,可以在SCSI support -&gt; SCSI low-level drivers选择你的型号的SCSI支持。<br>
<br>
内核中Multi-device support (RAID and LVM)的配置都是有关LVM和软件RAID的选项,xxbin将在下一篇有关FS/LVM的文章中详细描述。<br>
<br>
在Network device support-&gt;Ethernet (10 or 100Mbit)中选择我们的网卡驱动(在这里是VIA Rhine support),并且去掉PCMCIA network device support。<br>
在 Character devices选项中,选择/dev/agpgart (AGP Support),并且选择Intel 440LX/BX/GX and I815/I820/I830M/I830MP/I840/I845/I850/I860 support,去掉Intel I810/I815/I830M (on-board) support、VIA chipset support、AMD Irongate, 761, and 762 support、Generic SiS support和ALI chipset support等芯片的支持;并且去掉Direct Rendering Manager (XFree86 DRI support)选项。<br>
<br>
在File systems选项中,选择ext3和ext2,并且编译进入内核,把ISO9660选择成为模块方式。<br>
<br>
最后去掉所有有关Sound、USB support和Bluetooth support的支持。<br>
<br>
一切配置好之后保存配置。<br>
<br>
编译Linux Kernel<br>
运行:<br>
make dep (确保所有的依赖关系没有问题,比如include文件)<br>
make mrproper (做最干净的清除动作,可以删除原有的.o文件)<br>
make bzImage (建立压缩的内核映像,编译完成之后你可以从arch/i386/boot(x86 PC 内核)目录下找到 bzImage 文件)<br>
make modules (编译模块)<br>
make modules_install (安装模块,模块被安装到 /usr/lib/&lt;内核版本号&gt;目录下)<br>
<br>
制作新的initrd<br>
<br>
cp /boot/initrd-2.4.18.img /tmp/initrd.gz<br>
<br>
这里的initrd-2.4.18.img是发行版自带的initrd(也可以利用/sbin/mkinitrd命令自己来做一个),因为发行版把ext3 的支持编译成为模块的,并在自带的initrd里面load了这些模块,我们修改了内核的配置,因此也要改改initrd。<br>
<br>
cd /tmp<br>
gzip -d initrd.gz (接压initrd映像文件)<br>
mount -o loop -t ext2 initrd /mnt/ (使用loopback方式mount解压后的initrd映像)<br>
cd mnt (进入mount起来的initrd文件系统)<br>
vi linuxrc<br>
编译initrd的启动文件linuxrc,去掉一些insmod和modprobe的语句(因为很多东西我们都直接编译进入内核了),xxbin的linuxrc文件如何,仅供参考:<br>
CODE<br>
<br>
#!/bin/nash<br>
echo Mounting /proc filesystem<br>
mount -t proc /proc /proc<br>
echo Creating root device<br>
mkrootdev /dev/root<br>
echo 0x0100 &gt; /proc/sys/kernel/real-root-dev<br>
echo Mounting root filesystem<br>
mount --ro -t ext3 /dev/root /sysroot<br>
umount /proc<br>
pivot_root /sysroot /sysroot/initrd<br>
<br>
<br>
cd /tmp (退出/mnt目录,以便umount)<br>
umount /mnt<br>
gzip -9 /tmp/initrd<br>
cp /tmp/initrd.gz /boot/initrd-2.4.20.img<br>
<br>
配置使用新内核并重新启动<br>
<br>
<br>
cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.20<br>
vi /etc/lilo.conf<br>
<br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -