l 查看软件包有没有安装
apt-cache search ssh
l 显示软件包的详细信息
apt-cache show openssh-client
l 配置软件安装或升级的本地源
目的是将光盘作为本地源,用以安装和升级软件。
Step 1: 挂载光盘
1. modprobe loop
2. mount –t iso9660 –o loop /dev/cdrom/mnt/cdrom
Step 2: 修改/etc/apt/sources.list,先备份,然后删除所有的内容并添加下面一行。
deb file:///mnt/cdrom maverick mainrestricted
其实,这句话帮助apt-get到以下的地方寻找软件包。
1. /mnt/cdrom/dists/maverick/main
2. /mnt/cdrom/dists/maverick/restricted
实验方法:安装一个openssh-server
sudo apt-get install openssh-server*
apt-cache show openssh-server
l 图形界面安装“任务”的命令:tasksel。
比如说安装一个“mail server”
root@patrick:/usr/share/tasksel#tasksel - -task-packages mail-server
dovecot-imapd
procmail
dovecot-common
libpth20
postfix
libgpgme11
libmysqlclient16
mutt
ssl-cert
libpq5
bsd-mailx
dovecot-pop3d
mysql-common
root@patrick:/usr/share/tasksel# tasksel --list-tasks
u eucalyptus-walrus Cloud computing: Walrus storage service
u eucalyptus-simple-cluster Cloud computing: all-in-one cluster
u eucalyptus-cluster Cloud computing: cluster controller
u eucalyptus-node Cloud computing: node controller
u eucalyptus-storage Cloud computing: storage controller
u eucalyptus-cloud Cloud computing: top-level cloudcontroller
u dns-server DNS server
u lamp-server LAMP server
u mail-server Mail server
i openssh-server OpenSSH server
u postgresql-server PostgreSQL database
u print-server Print server
u samba-server Samba file server
u tomcat-server Tomcat Java server
u virt-host Virtual Machine host
u manual Manual package selection
l dpkg命令
1) #dpkg –l openssh*
查看软件包是否安装
2) # dpkg –L openssh-server
显示软件包中包含的文件
3) # dpkg –S /usr/share/man/man1/ssh-import-lp-id.1.gz
显示文件包含在哪个包中。
openssh-server:/usr/share/man/man1/ssh-import-lp-id.1.gz
root@patrick:/usr/share/tasksel# dpkg -S/bin/ls
coreutils: /bin/ls
l 设置ssh开机自动启动
# update-rc.d ssh defaults
update-rc.d: warning: ssh stop runlevelarguments (0 1 6) do not match LSB Default-Stop values (none)
Adding system startup for /etc/init.d/ssh ...
/etc/rc0.d/K20ssh -> ../init.d/ssh
/etc/rc1.d/K20ssh -> ../init.d/ssh
/etc/rc6.d/K20ssh -> ../init.d/ssh
/etc/rc2.d/S20ssh -> ../init.d/ssh
/etc/rc3.d/S20ssh -> ../init.d/ssh
/etc/rc4.d/S20ssh -> ../init.d/ssh
/etc/rc5.d/S20ssh -> ../init.d/ssh
从上面的输出可以看到,执行这条命令的结果是在/etc/rc2(3,4,5).d/中添加启动ssh服务的脚本,而在/etc/rc0(1,6).d/中添加停止ssh的脚本。
还有更加灵活的命令。如指定某shell脚本在运行级别2,3开机运行,同时指定在级别1,5中默认停止。
先把test.sh拷贝到/etc/init.d/中,然后执行:
root@patrick:/etc/rc2.d# update-rc.d test.sh start 802 3 . stop 82 1 5 .
update-rc.d: warning: /etc/init.d/test.shmissing LSB information
update-rc.d: see
Adding system startup for /etc/init.d/test.sh...
/etc/rc1.d/K82test.sh -> ../init.d/test.sh
/etc/rc5.d/K82test.sh -> ../init.d/test.sh
/etc/rc2.d/S80test.sh -> ../init.d/test.sh
/etc/rc3.d/S80test.sh -> ../init.d/test.sh
要删除这些链接,执行命令:
# apt-get –f test.sh remove
# sysv-rc-conf apache2 off
# sysv-rc-conf apache2 on ==update-rc.d apach2 defaults
# sysv-rc-conf --level 2345 iptables on
root@patrick:/etc/network#cat interfaces (/etc/network/interfaces)
# This file describes the networkinterfaces available on your system
# and how to activate them. For moreinformation, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
# iface eth0 inet static
address192.168.217.136
netmask255.255.255.0
gateway192.168.217.1
重启网络服务:/etc/init.d/networking restart
l FTP实现的功能
4) 支持TLS加密
5) 支持chroot
6) 支持FXP协议
7) 虚拟用户(锁定/解锁)
8) 磁盘限额(quota)
9) 文件数量的限制
10) (上传/下载)速率限制
11) 同一个IP的并发数限制
12) 上传/下载比例限制
13) 支持匿名访问
14) 通过Web管理FTP用户
FTP服务器软件
ProFTPd
Pure-FTPd
vsFTPd
1) 安装Pure-FTPd
#apt-getpure-ftpd-mysql mysql-server
安装mysql的目的是用于用户认证。
2) 添加用户和组
# groupadd –g 2001ftpgroup
# useradd –u 2001 –s/bin/false –d /dev/null –c “Pure-FTPd User” –g ftpgroup ftpuser
3) Chroot设置
sh –c “echo ‘yes’> /etc/pure-ftpd/conf/ChrootEveryone”
4) 手工创建用户目录
告诉Pure-FTPd不要为用户自动创建HOME目录。
# sh –c “echo ‘No’> /etc/pure-ftpd/conf/CreateHomeDir”
nmap的使用
1)扫描网段的所有主机
# nmap –sP192.168.220.*
# nmap –sP192.168.220.0/24
2) 扫描主机(192.168.220.6)所有已经使用的端口
# nmap –sS192.168.220.6 –D 192.168.220.6
# nmap –sT192.168.220.6
3) 扫描主机的端口25
# nmap –sT –p 25 –oG– 192.168.220.6
比如打开IP包的Forward功能。
在文件/etc/sysctl.conf中找到net.ipv4.ip_forward,把其设置为1。
然后加载一遍sysctl –p
iptables
iptables –t nat –A PREROUTING –p tcp --dport 80 –j DNAT -- to-dest 192.168.0.20
iptables –t nat –A OUTPUT –p tcp –dport 80 –jDNAT - -to-dest 192.168.0.200:3128
iptables –A INPUT –t tcp –s192.168.220.0/24 –dport 80 –j ACCEPT
保存和开机恢复iptables的rules。
iptables-save > /etc/iptables.up.rules
在文件/etc/network/interfaces中添加:
pre-up iptables-restore
l 显示打开文件test.tmp的进程
lsof ./test.tmp
l 22端口被什么程序打开
lsof –i:22
l 进程sshd打开的文件
lsof –c sshd
l 显示归属gid的进程情况
lsof -g gid
l 显示用户patrick打开的文件
lsof –u Patrick
l 显示PID为2042的进程打开的文件
lsof –p 2042
l 显示目录/home/patrick/test下的文件被进程打开的情况
lsof +d/home/patrick/test/
# /etc/shells: valid login shells
/bin/csh
/bin/sh
/usr/bin/es
/usr/bin/ksh
/bin/ksh
/usr/bin/rc
/usr/bin/tcsh
/bin/tcsh
/usr/bin/esh
/bin/dash
/bin/bash
/bin/rbash
root@patrick:/etc/init.d# which du
/usr/bin/du