linux联盟原创www.xxlinux.com www.linuxunion.org转脓h明出?作者上上智
看了q么久的blog,我自写一炚w|哈
现在有很多想学习linux的h, 是因ؓ不能配置上网,所以不惛_习现在我从adsl配置到nat全过E如?
1)安装rp-pppoe-3.5-2?br>在安装系l时,Ҏ用户一般选择全部安装?那就安装?以后rpm, 或者tarball?q很方便,对初学?
eg:
rpm -ivh rp-pppoe-3.5-2.rpm
tarball 安装:
tar zxvf rp-pppoe-3.5-2.tar.gz
cd rp-pppoe-3.5-2
./configure
make
make install
2)rp-pppoe-3.5-2配置
步骤:
a) adsl-setup
出现:
Welcome to the ADSL client setup. First, I will run some checks on
your system to make sure the PPPoE client is installed properly...
The following DSL config was found on your system:
Device: Name:
ppp0
Please enter the device if you want to configure the present DSL config
(default ppp0) or enter 'n' if you want to create a new one:
//q是我已l安装过?主要是写文档:选择默认按回?br>LOGIN NAME
Enter your Login Name (default lanlgn409ldj@zgcnc):
//q是我已l安装过?:没有安装是输入adsl用户?br>INTERFACE
Enter the Ethernet interface connected to the ADSL modem
For Solaris, this is likely to be something like /dev/hme0.
For Linux, it will be ethX, where 'X' is a number.
(default eth0):
//选择默认按回?br>Do you want the link to come up on demand, or stay up continuously?
If you want it to come up on demand, enter the idle time in seconds
after which the link should be dropped. If you want the link to
stay up permanently, enter 'no' (two letters, lower-case.)
NOTE: Demand-activated links do not interact well with dynamic IP
addresses. You may have some problems with demand-activated links.
Enter the demand value (default no):
//选择默认按回?br>DNS
Please enter the IP address of your ISP's primary DNS server.
If your ISP claims that 'the server will provide dynamic DNS addresses',
enter 'server' (all lower-case) here.
If you just press enter, I will assume you know what you are
doing and not modify your DNS setup.
Enter the DNS information here:
// 输入server自动得到dns,server的ip
PASSWORD
Please enter your Password:
USERCTRL
Please enter 'yes' (two letters, lower-case.) if you want to allow
normal user to start or stop DSL connection (default yes):
//选择默认按回车问你是否连?br>Please choose the firewall rules to use. Note that these rules are
very basic. You are strongly encouraged to use a more sophisticated
firewall setup; however, these will provide basic security. If you
are running any servers on your machine, you must choose 'NONE' and
set up firewalling yourself. Otherwise, the firewall rules will deny
access to all standard servers like Web, e-mail, ftp, etc. If you
are using SSH, the rules will block outgoing SSH connections which
allocate a privileged source port.
The firewall choices are:
0 - NONE: This script will not set any firewall rules. You are responsible
for ensuring the security of your machine. You are STRONGLY
recommended to use some kind of firewall rules.
1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation
2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway
for a LAN
Choose a type of firewall (0-2):
//是否讄firwall
Do you want to start this connection at boot time?
Please enter no or yes (default no):
//启动时是否连?br>Do you want to start this connection at boot time?
Please enter no or yes (default no):
** Summary of what you entered **
Ethernet Interface: eth0
User name: lanlgn409ldj@zgcnc
Activate-on-demand: No
DNS: Do not adjust
Firewalling: NONE
User Control: yes
Accept these settings and adjust configuration files (y/n)?
//是否写入配置文g?选择 y
3)假如你是用别人的macq接
1 redhat9.0改mac:
ifconfig eth0 down
ifconfig eth0 hw ether 5254ab323d51
ifconfig eth0 up
ifup ppp0
2 fedora 4.0改mac:
ifdown eth0
ifconfig eth0 hw ether 5254ab323d51
ifup eth0
ifup ppp0 & adsl-start
4)试一?br>ping modprobe ip_tables
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -F -t nat
/sbin/iptables -X -t nat
/sbin/iptables -Z -t nat
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
/sbin/iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE//不是adsl也可以把ppp0Ҏeth0 ,
1一般网卡nat:
[root@test root]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
BROADCAST=192.168.0.255
IPADDR=192.168.0.1
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
[root@test root]# vi /etc/sysconfig/network-scripts/ifcfg-eth0:0
DEVICE=eth0:0
BOOTPROTO=static
BROADCAST=192.168..255
IPADDR=192.168.1.2
NETMASK=255.255.255.0
NETWORK=192.168..0
ONBOOT=yes
2 两块|卡nat:
只是那?eth0:0 Ҏ?eth1 而已?其它都是一L讄
6)dns 讄
在里?etc/resolv.conf
把你的ip写入里面?br>nameserver 192.168.0.1
然后重启要不?客户Z能上|?/p>
]]>
3.2 VSFTP 安全与效能兼备的ftp 服务?
3.2.1 VSFTP 概述
FTPQfile transfer protocolQ这是档案传输的通讯协议Q也是一般最常用来传送档案的方式。读者在使用RedHat9 的时候,可能会感受到ftp server 有一些改变:W一Q就是ftp server 只剩下vsftpQ原有的wuftp {都没放?W二Q就是vsftp 从XINETD 中独立出来,q将讑֮档从/etc/vsftpd.conf 之中Ud/etc/vsftpd/vsftpd.conf?
Z么做q样的改变?可以惌的是vsftp 已有独立q作的能力,不需要XINETD 来做更进一步的控Qƈ且类似sendmail、httpd、ssh、samba {,设定文件的攑օ/etc 下独立的目录?
FTP 分ؓ两类Q一UؓPORT FTPQ也是一般的FTP 另一cLPASVFTPQ分q如下:
PORT FTP
q是一般Ş式的FTPQ首先会建立控制频道Q默认值是port 21Q也是跟port 21 建立联机Qƈ透过此联Z达指令。第二,由FTP server 端会建立数据传输频道Q默认gؓ20Q也是跟port 20 建立联机Qƈ透过port 20 作数据的传输?
PASV FTP
跟PORT FTP cMQ首先会建立控制频道Q默认值是port 21Q也是跟port 21 建立联机Qƈ透过此联Z达指令。第二,会由client 端做出数据传输的hQ包括数据传输port 的数字?
q两者的差异ZQPORT FTP 当中的数据传输port 是由FTP server 指定Q而PASV FTP 的数据传输port 是由FTP client 军_。通常我们使用PASV FTPQ是在有防火墙的环境之下Q透过client 与server 的沟通,军_数据传输的port?br>3.2.2 范例
3.2.1. 直接启动VSFTP 服务
q个范例是套用RedHat 的预设范?直接启动vsftp?
[root@relay vsftpd]# /sbin/service vsftpd start
Starting vsftpd for vsftpd: OK ]
3.2.2. 更换port 提供服务Q将预设的port 21 更换?121
Z安全Q或是以port 来区隔不同的ftp 服务Q我们可能会ftp port 改ؓ21 之外的portQ那么,可参考以下步骤?
Step1. 修改/etc/vsftpd/vsftpd.conf
新增底下一?
listen_port=2121
Step2. 重新启动vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
3.2.3. 特定使用者peter、john 不得变更目录
使用者的预设目录?home/usernameQ若是我们不希望使用者在ftp 时能?
切换C一层目?homeQ则可参考以下步骤?
Step1. 修改/etc/vsftpd/vsftpd.conf
底下三?
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
改ؓ
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
Step2. 新增一个档? /etc/vsftpd/chroot_list
内容增加两行Q?
peter
john
Step3. 重新启动vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
若是peter Ʋ切换到根目录以外的目录Q则会出C下警告:
ftp> cd /home
550 Failed to change directory.
3.2.4. 取消anonymous d
若是读者的L不希望用者匿名登入,则可参考以下步骤?br>Step1. 修改/etc/vsftpd/vsftpd.conf
?
anonymous_enable=YES
改ؓ
anonymous_enable=NO
Step2. 重新启动vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
3.2.5. 安排Ƣ迎话语
若是我们希望使用者在dӞ能够看到Ƣ迎话语Q可能包括对该主机的说明Q或是目录的介绍Q可参考以下步骤?br>首先定?etc/vsftpd/vsftpd.conf 当中是否有底下这一?
dirmessage_enable=YES
RedHat9 的默认值是有上面这行的?
接着Q在各目录之中,新增名ؓ.message 的档案,再这边假设有一个用者test1Q且此用者的根目录下有个目录名ؓabcQ那首先我们?home/test1
之下新增.messageQ内容如下:
Hello~ Welcome to the home directory
This is for test only...
接着Q在/home/test1/abc 的目录下新增.messageQ内容如下:
Welcome to abc's directory
This is subdir...
那么Q当使用者test1 dӞ会看C下讯息:
230- Hello~ Welcome to the home directory
230-
230- This is for test only...
230-
若是切换到abc 的目录,则会出现以下讯息Q?
250- Welcome to abc's directory
250-
250- This is subdir ...
3.2.6. 对于每一个联机,以独立的process 来运?br>一般启动vsftp Ӟ我们只会看到一个名为vsftpd 的process 在运作,但若是读者希望每一个联机,都能以独立的process 来呈玎ͼ则可执行以下步骤?br>Step1. 修改/etc/vsftpd/vsftpd.conf
新增底下一?
setproctitle_enable=YES
Step2. 重新启动vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
使用ps -ef 的指令,可以看告不同使用者联机的情ŞQ如下图所C:
[root@home vsftpd]# ps -ef|grep ftp
root 2090 1 0 16:41 pts/0 00:00:00 vsftpd: LISTENER
nobody 2120 2090 0 17:18 ? 00:00:00 vsftpd: 192.168.10.244:
connected
test1 2122 2120 0 17:18 ? 00:00:00 vsftpd: 192.168.10.244/test1:
IDLE
nobody 2124 2090 0 17:19 ? 00:00:00 vsftpd: 192.168.10.244:
connected
test2 2126 2124 0 17:19 ? 00:00:00 vsftpd: 192.168.10.244/test2:
IDLE
root 2129 1343 0 17:20 pts/0 00:00:00 grep ftp
[root@home vsftpd]#
3.2.7. 限制传输档案的速度Q?br>本机的用者最高速度?00KBytes/sQ匿名登入者所能用的最高速度?0KBytes/s
Step1. 修改/etc/vsftpd/vsftpd.conf
新增底下两行
anon_max_rate=50000
local_max_rate=200000
Step2. 重新启动vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
在这辚w度的单位ؓBytes/sQ其中anon_max_rate 所限制的是匿名d?
使用者,而local_max_rate 所限制的是本机的用者。VSFTPD 对于速度的限
Ӟ范围大概?0%?20%之间Q也是我们限制最高速度?00KBytes/sQ?
但实际的速度可能?0KBytes/s ?20KBytes/s 之间Q当Ӟ若是频宽不
Ӟ数g低于此限制?br>3.2.8. 针对不同的用者限制不同的速度Q?br>假设test1 所能用的最高速度?50KBytes/sQtest2 所能用的最高速度?00KBytes/s?
Step1. 修改/etc/vsftpd/vsftpd.conf
新增底下一?
user_config_dir=/etc/vsftpd/userconf
Step2. 新增一个目录:/etc/vsftpd/userconf
mkdir /etc/vsftpd/userconf
Step3. ?etc/vsftpd/userconf 之下新增一个名为test1 的档?
内容增加一行:
local_max_rate=250000
Step4. ?etc/vsftpd/userconf 之下新增一个名为test2 的档?
内容增加一行:
local_max_rate=500000
Step5. 重新启动vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
3.2.9-1. 建置一个防火墙下的ftp serverQ用PORT FTP modeQ?br>预设的ftp port:21 以及ftp data port:20
启动VSFTPD 之后执行以下两行指oQ只允许port 21 以及port 20 开放,其它关闭?
iptables -A INPUT -p tcp -m multiport --dport 21,20 -j ACCEPT
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset
3.2.9-2. 建置一个防火墙下的ftp serverQ用PORT FTP modeQ?br>ftp port:2121 以及ftp data port:2020
Step1. 执行以下两行指oQ只允许port 2121 以及port 2020 开放,其它关闭?
iptables -A INPUT -p tcp -m multiport --dport 2121,2020 -j ACCEPT
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset
Step2. 修改/etc/vsftpd/vsftpd.conf
新增底下两行
listen_port=2121
ftp_data_port=2020
Step3. 重新启动vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
在这边要注意Q?? 两个例子中,ftp clientQ如cuteftpQ的联机方式不能够选择passive modeQ否则无法徏立数据的联机。也是读者可以连上ftp
serverQ但是执行ls、get {等的指令时Q便无法q作?br>3.2.10. 建置一个防火墙下的ftp serverQ用PASS FTP modeQ?br>ftp port:2121 以及ftp data port ?981 ?986?
Step1. 执行以下两行指oQ只允许port 2121 以及port 9981-9990 开放,其它关闭?
iptables -A INPUT -p tcp -m multiport --dport
2121,9981,9982,9983,9984,9985,9986,9987,9988,9989,9990 -j ACCEPT
iptables -A INPUT -p tcp -j REJECT --reject-with tcp-reset
Step2. 修改/etc/vsftpd/vsftpd.conf
新增底下四行
listen_port=2121
pasv_enable=YES
pasv_min_port=9981
pasv_max_port=9986
Step3. 重新启动vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
在这边要注意Q在10 q个例子中,ftp clientQ如cuteftpQ的联机方式必须选择passive modeQ否则无法徏立数据的联机。也是读者可以连上ftp serverQ但是执行ls,get {等的指令时Q便无法q作?br>3.2.11. vsftpd 与TCP_wrapper l合
若是读者希望直接在/etc/hosts.allow 之中定义允许或是拒绝的来源地址Q可执行以下步骤。这是简易的防火墙设定?
Step1. 定/etc/vsftpd/vsftpd.conf 之中tcp_wrappers 的设定ؓYESQ如下图所
C:
tcp_wrappers=YES
q是RedHat9 的默认|基本上不需修改?
Step2. 重新启动vsftpd
[root@home vsftpd]# /sbin/service vsftpd restart
Shutting down vsftpd: OK ]
Starting vsftpd for vsftpd: OK ]
Step3. 讑֮/etc/hosts.allowQ譬如提?11.22.33.4 以及10.1.1.1 ?0.1.1.254 q?
U,则可做下图之讑֮Q?
vsftpd : 111.22.33.4 10.1.1. : allow
ALL : ALL : DENY
3.2.12. vsftpd q入XINETD
若是读者希望将vsftpd q入XINETD 之中Q也是7.x 版的预设讑֮Q那
么读者可以执行以下步骤?
Step1. 修改/etc/vsftpd/vsftpd.conf
?
listen=YES
改ؓ
listen=NO
Step2. 新增一个档案: /etc/xinetd.d/vsftpd
内容如下Q?
service vsftpd
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/vsftpd
port = 21
log_on_success += PID HOST DURATION
log_on_failure += HOST
}
Step3. 重新启动xinetd
[root@home vsftpd]# /sbin/service xinetd restart
Stopping xinetd: OK ]
Starting xinetd: OK ]
3.2.3 讑֮档说?br>在范例中Q有些省略的讑֮可以在这Ҏ刎ͼ譬如联机的L、同一个位址的联机数、显C档案拥有者的名称{等Q希望读者细dQ可以做出最适合自己的设定?br>格式
vsftpd.conf 的内定w常单U,每一行即Z设定。若是空白行或是开头ؓ#的一行,会被忽略。内容的格式只有一U,如下所C?
option=value
要注意的是,{号两边不能加空白,不然是不正确的设定?
Q=Qascii 讑֮Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?
ascii_download_enable
控是否可用ASCII 模式下蝲。默认gؓNO?
ascii_upload_enable
控是否可用ASCII 模式上传。默认gؓNO?
Q=Q个别用者设定=Q=Q=Q=Q=Q=Q=Q=Q=Q=
chroot_list_enable
如果启动q项功能Q则所有的本机使用者登入均可进到根目录之外的数据夹Q除了列
?etc/vsftpd.chroot_list 之中的用者之外。默认gؓNO?
userlist_enable
用法QYES/NO
若是启动此功能,则会d/etc/vsftpd.user_list 当中的用者名U。此功能可以在询问密码前就出现p|讯息Q而不需要检验密码的E序。默认gؓ关闭?
userlist_deny
用法QYES/NO
q个选项只有在userlist_enable 启动时才会被验。如果将q个选项设ؓYESQ则?etc/vsftpd.user_list 中的使用者将无法d 若设为NO Q?则只有在
/etc/vsftpd.user_list 中的使用者才能登入。而且此项功能可以在询问密码前出现错误讯息,而不需要检验密码的E序?
user_config_dir
定义个别使用者设定文件所在的目录Q例如定义user_config_dir=/etc/vsftpd/userconfQ且L上有使用者test1,test2Q那我们可以在user_config_dir 的目录新增文件名为test1 以及test2。若是test1 dQ则会读取user_config_dir 下的test1 q个档案内的讑֮。默认gؓ无?
Q=Q欢q语讑֮Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?
dirmessage_enable
如果启动q个选项Q用者第一ơ进入一个目录时Q会查该目录下是否有.messageq个档案Q若是有Q则会出现此档案的内容,通常q个档案会放|欢q话语,或是对该目录的说明。默认gؓ开启?
banner_file
当用者登入时Q会昄此设定所在的档案内容Q通常为欢q话语或是说明。默认gؓ无?
ftpd_banner
q边可定义欢q话语的字符Ԍ相较于banner_file 是档案的形式Q而ftpd_banner 是字串的格式。预设ؓ无?
Q=Q特D安全设定=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?
chroot_local_user
如果讑֮为YESQ那么所有的本机的用者都可以切换到根目录以外的数据夹。预讑րgؓNO?
hide_ids
如果启动q项功能Q所有档案的拥有者与组都ؓftpQ也是使用者登入用ls -al之类的指令,所看到的档案拥有者跟组均ؓftp。默认gؓ关闭?
ls_recurse_enable
若是启动此功能,则允许登入者用ls -R q个指o。默认gؓNO?
write_enable
用法QYES/NO
q个选项可以控制FTP 的指令是否允许更改file systemQ譬如STOR、DELE?
RNFR、RNTO、MKD、RMD、APPE 以及SITE。预设是关闭?
setproctitle_enable
用法QYES/NO
启动q项功能Qvsftpd 会将所有联机的状况已不同的process 呈现出来Q换句话_使用ps -ef q类的指令就可以看到联机的状态。默认gؓ关闭?
tcp_wrappers
用法QYES/NO
如果启动Q则会将vsftpd 与tcp wrapper l合Q也是可以?etc/hosts.allow ?etc/hosts.deny 中定义可联机或是拒绝的来源地址?
pam_service_name
q边定义PAM 所使用的名Uͼ预设为vsftpd?
secure_chroot_dir
q个选项必须指定一个空的数据夹且Q何登入者都不能有写入的权限Q当vsftpd 不需要file system 的权限时Q就会将使用者限制在此数据夹中。默认gؓ/usr/share/empty
Q=Q纪录文件设定=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=
xferlog_enable
用法QYES/NO
如果启动Q上传与下蝲的信息将被完整纪录在底下xferlog_file 所定义的档案中。预设ؓ开启?
xferlog_file
q个选项可设定纪录文件所在的位置Q默认gؓ/var/log/vsftpd.log?
xferlog_std_format
如果启动Q则U录文g会写ؓxferlog 的标准格式,如同wu-ftpd 一般。默认gؓ关闭?
Q=Q逾时讑֮Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=
accept_timeout
接受建立联机的逾时讑֮Q单位ؓU。默认gؓ60?
connect_timeout
响应PORT 方式的数据联机的逾时讑֮Q单位ؓU。默认gؓ60?
data_connection_timeout
建立数据联机的逾时讑֮。默认gؓ300 U?
idle_session_timeout
发呆的逾时讑֮Q若是超旉没有数据的传送或是指令的输入Q则会强q断U,单位为秒。默认gؓ300?
Q=Q速率限制Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=
anon_max_rate
匿名d所能用的最大传输速度Q单位ؓ每秒多少bytesQ? 表示不限速度。默认gؓ0?
local_max_rate
本机使用者所能用的最大传输速度Q单位ؓ每秒多少bytesQ? 表示不限速度。预讑րgؓ0?
Q=Q新增档案权限设定=Q=Q=Q=Q=Q=Q=Q=Q=Q?
anon_umask
匿名d者新增档案时的umask 数倹{默认gؓ077?
file_open_mode
上传档案的权限,与chmod 所使用的数值相同。默认gؓ0666?
local_umask
本机d者新增档案时的umask 数倹{默认gؓ077?
Q=Qport 讑֮Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=
connect_from_port_20
用法QYES/NO
若设为YESQ则ftp-data 的数据传送用port 20。默认gؓYES?
ftp_data_port
讑֮ftp 数据联机所使用的port。默认gؓ20?
listen_port
FTP server 所使用的port。默认gؓ21?
pasv_max_port
建立资料联机所可以使用port 范围的上界,0 表示L。默认gؓ0?
pasv_min_port
建立资料联机所可以使用port 范围的下界,0 表示L。默认gؓ0?
Q=Q其它=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?
anon_root
使用匿名dӞ所d的目录。默认gؓ无?
local_enable
用法QYES/NO
启动此功能则允许本机使用者登入。默认gؓYES?
local_root
本机使用者登入时Q将被更换到定义的目录下。默认gؓ无?
text_userdb_names
用法QYES/NO
当用者登入后使用ls -al 之类的指令查询该档案的管理权Ӟ预设会出现拥有者的UIDQ而不是该档案拥有者的名称。若是希望出现拥有者的名称Q则此功能开启。默认gؓNO?
pasv_enable
若是设ؓNOQ则不允怋用PASV 的模式徏立数据的联机。默认gؓ开启?
Q=Q更换档案所有权Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?
chown_uploads
用法QYES/NO
若是启动Q所有匿名上传数据的拥有者将被更换ؓchown_username 当中所讑֮的用者。这L选项对于安全及管理,是很有用的。默认gؓNO?
chown_username
q里可以定义当匿名登入者上传档案时Q该档案的拥有者将被置换的使用者名U。预讑րgؓroot?
Q=Qguest 讑֮Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?
guest_enable
用法QYES/NO
若是启动q项功能Q所有的非匿名登入者都视ؓguest。默认gؓ关闭?
guest_username
q里定义guest 的用者名U。默认gؓftp?
Q=Qanonymous 讑֮Q=Q=Q=Q=Q=Q=Q=Q=Q=
anonymous_enable
用法QYES/NO
控使否允许匿名dQYES 为允许匿名登入,NO Z允许。默认gؓYES?
no_anon_password
若是启动q项功能Q则使用匿名dӞ不会询问密码。默认gؓNO?
anon_mkdir_write_enable
用法QYES/NO
如果设ؓYESQ匿名登入者会被允许新增目录,当然Q匿名用者必要有对上层目录的写入权。默认gؓNO?
anon_other_write_enable
用法QYES/NO
如果设ؓYESQ匿名登入者会被允许更多于上传与徏立目录之外的权限Q譬如删除或是更名。默认gؓNO?
anon_upload_enable
用法QYES/NO
如果设ؓYESQ匿名登入者会被允怸传目录的权限Q当Ӟ匿名使用者必要有对上层目录的写入权。默认gؓNO?
anon_world_readable_only
用法QYES/NO
如果设ؓYESQ匿名登入者会被允怸载可阅读的档案。默认gؓYES?
ftp_username
定义匿名d的用者名U。默认gؓftp?
deny_email_enable
若是启动q项功能Q则必须提供一个档?etc/vsftpd.banner_emailsQ内容ؓemail
address。若是用匿名登入,则会要求输入email addressQ若输入的email address 在此档案内,则不允许联机。默认gؓNO?
Q=QStandalone 选项Q=Q=Q=Q=Q=Q=Q=Q=Q=
listen
用法QYES/NO
若是启动Q则vsftpd 会以独立运作的方式执行Q若是vsftpd 独立执行Q如RedHat9的默认|则必d?若是vsftpd 包含在xinetd 之中Q则必须关闭此功能,如RedHat8。在RedHat9 的默认gؓYES?
listen_address
若是vsftpd 使用standalone 的模式,可用这个参数定义用哪个IP address 提供q项服务Q若是主Z只有定义一个IP addressQ则此选项不需使用Q若是有多个IP addressQ可定义在哪个IP address 上提供ftp 服务。若是不讑֮Q则所有的IP address均会提供此服务。默认gؓ无?
max_clients
若是vsftpd 使用standalone 的模式,可用这个参数定义最大的总联机数。超q这个数目将会拒l联机,0 表示不限。默认gؓ0?
max_per_ip
若是vsftpd 使用standalone 的模式,可用这个参数定义每个ip address 所可以联机的数目。超q这个数目将会拒l联机,0 表示不限。默认gؓ0?
Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?
3.2.4 FTP 数字代码的意?
110 重新启动标记应答?
120 服务在多久时间内ready?
125 数据链\埠开启,准备传送?
150 文g状态正常,开启数据连接端口?
200 命o执行成功?
202 命o执行p|?
211 pȝ状态或是系l求助响应?
212 目录的状态?
213 文g的状态?
214 求助的讯息?
215 名称pȝcd?
220 新的联机服务ready?
221 服务的控制连接埠关闭Q可以注销?
225 数据q结开启,但无传输动作?
226 关闭数据q接端口Q请求的文g操作成功?
227 q入passive mode?
230 使用者登入?
250 h的文件操作完成?
257 昄目前的\径名U?
331 用户名称正确Q需要密码?
332 d旉要̎号信息?
350 h的操作需要进一部的命o?
421 无法提供服务Q关闭控制连l?
425 无法开启数据链路?
426 关闭联机Q终止传输?
450 h的操作未执行?
451 命ol止Q有本地的错误?
452 未执行命令:盘I间不?
500 格式错误Q无法识别命令?
501 参数语法错误?
502 命o执行p|?
503 命o序错误?
504 命o所接的参数不正?
530 未登入?
532 储存文g需要̎L入?
550 未执行请求的操作?
551 h的命令终止,cd未知?
552 h的文件终止,储存位溢出?
553 未执行请求的的命令,名称不正?/p>
1. 什么是grub
grub 是一个多重启动管理器。grub是GRand Unified Bootloader的羃写,它可以在多个操作pȝ共存旉择引导哪个pȝ。它可以引导的操作系包括linux,FreeBSD,Solaris,NetBSD,BeOSi,OS/2,Windows95/98,Windows NT,Windows2000。它可以载入操作pȝ的内核和初始化操作系l(如Linux,FreeBSDQ,或者把引导权交l操作系l(如Windows 98Q来完成引导?
2. grub的特?
grub可以代替lilo来完成对Linux的引|特别适用于linux与其它操作系l共存情况,与lilo相比Q它有以下特点:
支持大硬?
现在大多数Linux发行版本的lilo都有同样的一个问题:根分?/boot分区)不能分在过1024柱面的地方,一般是?.4G左右的地方,否则lilo不能安装Q或者安装后不能正确引导pȝ。而grub׃会出现这U情况,只要安装时你的大盘是在LBA模式下,grub可以引导根分区?G以外的操作系l?
支持开机画?
grub支持在引导开机的同时昄一个开机画面。对于玩家来_q样可以制作自己的个性化开机画面;对于PC厂商Q这样可以在开机时昄电脑的一些信息和厂商的标志等。grub支持640x480,800x600,1024x768各种模式的开机画面,而且可以自动侦测选择最x式,与Windows?20x400的开机画面不可同日而语?
两种执行模式
grub不但可以通过配置文gq行例行的引|q可以在选择引导前动态改变引导时的参敎ͼq可以动态加载各U设备。例如你在Linux下编译了一个新的核心,但不能确定它能不能工作,你就可以在引导时动态改变grub的参敎ͼ试装蝲q个新的核心q行使用。Grub的命令行有非常强大的功能Q而且支持如bash或doskey一L历史功能Q你可以用上下键来寻找以前的命o?
菜单式选择
在lilo下,你需要手工输入操作系l的名字来引g同的操作pȝ。而grub使用一个菜单来选择不同的系l进行引对{你q可以自己配|各U参敎ͼ如gq时_默认操作pȝ{?
分区位置改变后不必重新配|?
lilo是通过d盘上的l对扇区来装入操作系l,因此每次分区改变都必重新配|liloQ例如你用PQ magic调整了分区的大小Q那lilo在你重新配置好之前就不能引导q个分区的操作系l了。而grub是通过文gpȝ直接把核心读取到内存Q因此只要操作系l核心的路径没有改变Qgrub可以引导系l?除此之外QGrubq有许多非常强大的功能。例如支持多U外部设备,动态装载操作系l内核,甚至可以通过|络装蝲操作pȝ核心。Grub支持多种文gpȝQ支持多U可执行文g格式Q支持自动解压,可以引导不支持多重引导的操作pȝ{?
3. grub的?
安装grub
如果已经安装了蓝点Linux2.0则grub是默认安装的。要把grub重新安装C引导扇区上,只需要简单打入makebootable命o可以了?
制作grub启动?
首先定grub已经安装Q然后进入grub的目录,键入Q?
#cd /boot/grub
攑օ一张Y盘,然后敲入命oQ?
#dd if=stage1 of=/dev/fd0 bs=512 count=1
#dd if=/stage2 of=/dev/fd0 bs512 seek=1
q样可以做好一张启动盘了?
开?
安装了grub开机后会出C个菜单,列出所有的启动选项。如果设|了启动画面则会昄启动画面Q按Esc键则可以取消启动画面昄菜单选项。蓝点Linux所带的grub的命令提C是全中文的Q在菜单下面详细列出如按e是编辑启动命令,按c是用命令行{。用上下键可以选择菜单,按回车启动所选项。按e键可以编辑所选项的启动命令,你可以用q个功能临时改变你的pȝ的启动参敎ͼ参见配置grub一节。按c键则q入命o行模式?
在命令行模式下可以打入命令直接执行,例如你可以敲入poweroff关闭计算机。按Tab键可以列出所有支持的命o。蓝点Linux已经把grub汉化了,其中一部分命o敲入名字后会l出中文提示Q显C命令的用法和参数?
4. 配置grub
grub启动时会?boot/grub/中寻找一个名字ؓmenu.lst的配|文Ӟ如果找不到此文g则不q入菜单模式而直接进入命令行模式?
menu.lst 是一个文本文Ӟ你可以用M一个文本编辑器来打开它。每一行代表一个配|命令,如果一行的W一个字Wؓ井号"#"则这一行ؓ注释Q你可以单地用增加或减少注释行来改变配置?
~辑menu.lstQ一般会有以下各?
timeout second
讑֮在secondU之后引导默认的操作pȝ?
蓝点Linux默认是timeout 5Q就?U没有其他指令就引导pȝQ如果设?1Q则grub会一直等待直到用户选择一个选项为止?
default num
默认启动Wnum+1行选项Q也pdefault=0则默认启动菜单第一行的操作pȝQdefault=1则启动第2行的pȝQ如此类推?
splash pathname/filename
指出开机画面的文g所存放的\径和文g名,?splash /boot/logo/800x600x8.img 是指用在/boot/logo路径下的800x600.img文g作ؓ开机画?
title OSname title
后面的字W就是你在菜单项上所看见的选项Q你可以写上操作pȝ的名字和描述Q如?
title BluePoint Linux, Single Mode 代表q一选项是引D点Linux的单用户模式?
下面l合两个pȝ引导描述来解释几个引导选项的意?
title BluePoint Linux, Default Mode
root (hd0,1)
kernel /boot/vmlinuz vga=auto root=/dev/hda2
hd0是指W一个硬?ȝ? (hd0,1)是指W一个硬盘的W二个分区?kernel /boot/vmlinuz 是指出Linux核心的\径在/boot/vmlinuz中。vga=auto 是设定显C模式,root=/dev/hda2是指把第一个硬盘的W二个分Z为根挂蝲点("/"Q?
title Microsoft Windows
root (hd1,0)
chainloader (hd1,0)+1 root (hd1,0)q是指第二个盘(从硬?上第一个分?
chainloader (hd1,0)+1 装入一个扇区的数据然后把引导权交给它?
5. 从Y盘启动grub
制作启动盘后可以用Y盘启动引导硬盘上的操作系l?插入制作好的启动软盘Q进入BIOS讑֮软盘启动。Y盘启动成功后׃q入grub的命令行模式
grub>
要启动一个操作系l,首先指定引导哪个分区上的pȝQ例如要引导指第一个硬盘上的第一个分区的操作pȝQ先键入
grub>root (hd0,0)
接着如果要启动的是WindowspȝQ键?grub>chainloader (hd0,0)+1
注意(hd0,0)要随着盘和分区的不同而改变数字?如果要引导Linux或其他系l,应键?
grub>kernel Qhd0,0Q?boot/vmlinuz root=/dev/hda1
注意hda1参数也要随着盘和分区的不同而改变,如从W二个硬盘的W一个分区引导则用hdb1? 最后敲入boot可以启动系l了?
在Q何时候不能确定命令或者命令的参数都可以按Tab获得相关的帮助。用上下键可以获得命令的历史记录?其实q些命o是menu.lst的启动描qͼ您也可以Ҏ那些描述来自己键入启动命令,最后敲入boot可以引导系l了?/p>
DHCP是动态主机配|协?q个协议用于向计机自动提供IP地址,子网掩码和\׃息。网l管理员通常会分配某个范围的 IP 地址来分发给局域网上的客户机。当讑֤接入q个局域网Ӟ它们会向 DHCP 服务器请求一?IP 地址。然?DHCP 服务器ؓ每个h的设备分配一个地址Q直到分配完该范围内的所?IP 地址为止。已l分配的 IP 地址必须定时地g长借用期。这个g期的q程UC leasingQ确保了当客h讑֤在正常地释放 IP 地址之前H然从网l断开时被分配的地址可以归还l服务器。本文以Redhat Linux 9.0ZQ介l如何徏立一个完整和安全的DHCP服务器?
一、徏立DHCP服务器配|文?
可以使用Redhat Linux 9.0自n携带rpm包安装。安装结束后, DHCP 端口监督E序 dhcpd 配置文g?/etc 目录中的名ؓ dhcpd.conf 的文件。下面手工徏?etc/dhcpd.conf文g?etc/dhcpd.conf通常包括三部分:parameters、declarations 、option?
1. DHCP配置文g中的parametersQ参敎ͼQ表明如何执行Q务,是否要执行Q务,或将哪些|络配置选项发送给客户。主要内容见?Q?
参数 解释
ddns-update-style 配置DHCP-DNS 互动更新模式?
default-lease-time 指定省U赁旉的长度,单位是秒?
max-lease-time 指定最大租赁时间长度,单位是秒?
hardware 指定|卡接口cd和MAC地址?
server-name 通知DHCP客户服务器名U?
get-lease-hostnames flag 查客L使用的IP地址?
fixed-address ip 分配l客L一个固定的地址?
authritative 拒绝不正的IP地址的要求?
2. DHCP配置文g中的declarations Q声明)Q用来描q网l布局、提供客LIP地址{。主要内容见?Q?
声明 解释
shared-network 用来告知是否一些子|络分n相同|络?
subnet 描述一个IP地址是否属于该子|?
range 起始IP l止IP 提供动态分配IP 的范围?
host L名称 参考特别的L?
group Zl参数提供声明?
allow unknown-clients Hdeny unknown-client 是否动态分配IPl未知的使用者?
allow bootp;deny bootp 是否响应ȀzL询?
allow bootingHdeny booting 是否响应使用者查询?
filename 开始启动文件的名称Q应用于无盘工作站?
next-server 讄服务器从引导文g中装如主机名Q应用于无盘工作站?
3. DHCP配置文g中的optionQ选项Q:用来配置DHCP可选参敎ͼ全部用option关键字作为开始,主要内容包括见表3Q?
选项 解释
subnet-mask 为客L讑֮子网掩码?
domain-name 为客L指明DNS名字?
domain-name-servers 为客L指明DNS服务器IP地址?
host-name 为客L指定L名称?
routers 为客L讑֮默认|关?
broadcast-address 为客L讑֮q播地址?
ntp-server 为客L讑֮|络旉服务器IP地址?
timeQoffset 为客L讑֮和格林威L间的偏移旉Q单位是U?
注意Q如果客L使用的是视窗操作pȝQ不要选择“host-name”选项Q即不要为其指定L名称?
下面是一个笔者用的DHCP配置文gQ这是一个Ecȝl,?26个IP地址可以分配的例子。读者可以复制后使用Q注意红色部分是必须要修改的?
ddns-update-style interim;
ignore client-updates;
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.254;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option domain-name-servers 192.168.1.3;
option domain-name "option domain-name-servers 192.168.1.3;
option time-offset -18000;
range dynamic-bootp 192.168.1.128 192.168.1.255;
default-lease-time 21600;
max-lease-time 43200;
host ns {
hardware ethernet 52:54:AB:34:5B:09;Q运行DHCP的网l接口的MAC地址Q?
fixed-address 192.168.1.9;
}
}
二、徏立客LU文?
q行DHCP服务器还需要一个名?dhcpd.leases 的文Ӟ保持所有已l分发出ȝ IP 地址。在Redhat Linux 发行版本中,该文件位?/var/lib/dhcp/ 目录中。如果您通过 RPM 安装 ISC DHCPQ那么该目录应该已经存在。dhcpd.leases的文件格式ؓQ?
Leases address {statement?
一个典型的文g内容如下Q?
lease 192.168.1.255 { #DHCP服务器分配的IP地址#
starts 1 2005/05/02 03:02:26; # lease 开始租U时?
ends 1 2005/05/02 09:02:26; # lease l束U约旉#
binding state active;
next binding state free;
hardware ethernet 00:00:e8:a0:25:86; #客户机网卡MAC地址#
uid "\001\000\000\350\240%\206"; #用来验证客户机的UID标示#
client-hostname "cjh1"; #客户机名U?
}
注意lease 开始租U时间和lease l束U约旉是格林威L准时_GMTQ,不是本地旉?
W一ơ运行DHCP服务器时dhcpd.leases是一个空文gQ也不用手工建立。如果不是通过 RPM 安装 ISC DHCPQ或?dhcpd 已经安装Q那么您应该试着定 dhcpd 其 lease 文g写到何处Qƈ保该文件存在。也可以手工建立一个空文gQ?
#touch /var/lib/dhcp/dhcpd.leases
三、启动和查DHCP服务?
使用命o启动DHCP服务器:
#service dhcpd start
使用ps命o查dhcpdq程Q?
#ps -ef | grep dhcpd
root 2402 1 0 14:25 ? 00:00:00 /usr/sbin/dhcpd
root 2764 2725 0 14:29 pts/2 00:00:00 grep dhcpd
使用查dhcpdq行的端口:
# netstat -nutap | grep dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 2402/dhcpd
四、配|DHCP客户?
通常|管员用选择手工配置 DHCP 客户Q需要修?/etc/sysconfig/network 文g来启用联|;q修?/etc/sysconfig/network-scripts 目录中每个网l设备的配置文g。在该目录中Q每个设备都有一个叫?ifcfg-ethQ?的配|文ӞethQ是|络讑֤的名U?如eth0{。如果你惛_引导时启动联|,NETWORKING 变量必须 被设?yes?除了此处之外/etc/sysconfig/network 文g应该包含以下行:
NETWORKING=yes
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
五、DHCP配置常见错误排除
通常配置DHCP 服务器很ҎQ不q,在这里有一些技巧可以帮助您避免出现问题。对服务器而言Q要保|卡正常工作Qƈ具备q播功能。对客户言Q还要确保客h的网卡正常工作。最后,要考虑|络的拓扑,q考虑客户机向 DHCP 服务器发出的q播消息是否会受到阻。另外如果dhcpdq程没有启动Q那么可以浏?syslog 消息文g来确定是哪里Z问题。这个消息文仉常?/var/log/messages?
典型故障Q?
1.DHCP服务器配|完成,没有语法错误。但是网l中的客h却没办法取得IP地址?
通常是Linux DHCP服务器沒有办法接收來?55.255.255.255 ?DHCP 客户机的Request 包造成的。一般是Linux DHCP服务器的|卡没有讄hMULTICAST功能。ؓ了让dhcpd(dhcpE序的守护进E?能够正常的和DHCP客户机沟通,dhcpd必须传送封包到255.255.255.255q个IP地址Q但是有些Linuxpȝ?55.255.255.255q个IP地址被用来做为监听区域子|域Qlocal subnetQ广播的 IP地址Q所以需要在路由表(routing tableQ里加入255.255.255.255以激zMULTICAST功能Q?
使用命oQ?
route add -host 255.255.255.255 dev eth0
如果报告错误消息Q?55.255.255.255QUnkown host
那么请先修改/etc/hosts加入一行:
255.255.255.255 dhcp
2. DHCP客户端程序和DHCP服务器不兼容
׃Linux有许多发现版本,不同版本使用DHCP客户端程序和DHCP服务器也不相同。Linux提供了四UDHCP客户端程序:pump, dhclient, dhcpxd, 和dhcpcd。了解不同Linux发行版本的服务器端和客户端程序对于常见错误排除是必要的。笔者曾l遇到过使用SuSE Linux 9.1 DHCP服务器和使用Mandrake Linux 9.0客户Z兼容的情c此时就必须更换客户端程序。方法是先停止客h的网l服务,卸蝲原程序,安装和服务器端兼容程序。附表:主要Linux发行版用的DHCP客户端?
发行版本
~省 DHCP客户?可?DHCP 客户?DHCP客户端启?
脚本 附加配置文g
Red Hat Linux 9.0 dhclient ?/sbin/ifup /etc/sysconfig/network,
/etc/sysconfig/network-scripts/ifcfg-eth0
Debian Linux 3.0 dhclient ?/sbin/ifup /etc/network/interfaces,
/etc/dhclient.conf
Mandrake Linux 9.1 dhclient dhcpcd, dhcpxd, pump /sbin/ifup /etc/sysconfig/network,
/etc/sysconfig/network-scripts/ifcfg-eth0,
/etc/dhclient-eth0.conf
SuSE Linux 9.1 dhcpcd dhclient /sbin/ifup-dhcp /etc/sysconfig/network/dhcp,
/etc/sysconfig/network/ifcfg-eth0
六、DHCP服务器的安全
1. 在指定网l接口启动DHCP服务?
如果你的Linuxpȝq接了不止一个网l界面,但是你只惌 DHCP 服务器启动其中之一Q你可以配置 DHCP 服务器只在那个设备上启动。在 /etc/sysconfig/dhcpd 中,把界面的名称d?DHCPDARGS 的列表中Q?
DHCPDARGS=eth0
或者直接用命令:
Echo “DHCPDARGS=eth0”>> /etc/ sysconfig/dhcpd
q样对于带有两个|卡的防火墙机器Q更加安全:一个网卡可以被配置?DHCP 客户来从互联|上?IP 地址Q另一个网卡可以被用作防火墙之后的内部|络?DHCP 服务器。仅指定q接到内部网l的|卡使系l更加安全,因ؓ用户无法通过互联|来q接它的守护q程?
2. 让DHCP服务器在监牢中运?
所?#8220;监牢”是指通过chroot机制来更Ҏ个Y件运行时所能看到的根目录,卛_某Y件运行限制在指定目录中,保证该Y件只能对该目录及其子目录的文件有所动作Q从而保证整个服务器的安全。这样即使出现被破壞或被侵入Q所受的損傷也较?
Y件chroot化的一个问题是该Y件运行时需要的所有程序、配|文件和库文仉必须事先安装到chroot目录中,通常U这个目录ؓchroot jailQchroot“监牢”Q。如果要?#8220;监牢”中运行dhcpdQ而事实上Ҏ看不到文件系l中那个真正的目录。因此需要事先创建目录,q将dhcpd复制到其中。同时dhcpd需要几个库文gQ可以用lddQlibrary Dependency Display~写Q命令,ldd作用是显CZ个可执行E序必须使用的共享库?
ldd dhcpd
libc.so.6 => /lib/tls/libc.so.6 (0x42000000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
q意味着q需要在“监牢”中创建lib目录Qƈ库文g复制到其中。手工完成这一工作是非帔R烦的Q此时可以用jail软g包来帮助化chroot“监牢”建立的过E?
Q?QJail软g的编译和安装
Jail官方|站是:http://www.jmcresearch.com/ Q最新版本:1.9a?
#Wget http://www.jmcresearch.com/static/dwn/projects/jail/jail_1.9a.tar.gz
#tar xzvf jail.tar.gz Qcd jail/src
#makeQ?make install
Q?Q用jail创徏监牢
jail软g包提供了几个Perl脚本作ؓ其核心命令,包括mkjailenv、addjailuser和addjailsw?
mkjailenvQ创建chroot“监牢”目录Qƈ且从真实文gpȝ中拷贝基本的软g环境。addjailswQ从真实文gpȝ中拷贝二q制可执行文件及其相关的其它文gQ包括库文g、辅助性文件和讑֤文gQ到?#8220;监牢”中。addjailuserQ创建新的chroot“监牢”用户?
首先停止目前dhcpd服务Q然后徏立chroot目录Q?
#/sbin/service dhcpd start
#mkjailenv /chroot/
mkjailenv
A component of Jail (version 1.9 for linux)
http://www.gsyc.inf.uc3m.es/~assman/jail/
Juan M. Casillas
Making chrooted environment into /chroot
Doing preinstall()
Doing special_devices()
Doing gen_template_password()
Doing postinstall()
Done.
下面的例子展CZؓ“监牢”ddhcpdE序的过E?
# addjailsw /chroot/ -P /usr/sbin/dhcpd
addjailsw
A component of Jail (version 1.9 for linux)
http://www.gsyc.inf.uc3m.es/~assman/jail/
Juan M. Casillas
Guessing dhcpd args(0)
Warning: file /chroot//lib/tls/libc.so.6 exists. Overwritting it
Warning: file /chroot//lib/ld-linux.so.2 exists. Overwritting it
………
Done.
不用在意那些警告信息Q因为jail会调用ldd查dhcpd用到的库文g。而几乎所有基于共享库的二q制可执行文仉需要上q的几个库文件。接下来dhcpd的相x件拷贝到“监牢”中:
# mkdir -p /chroot/dhcp/etc
# cp /etc/dhcpd.conf /chroot/dhcp/etc/
# mkdir -p /chroot/dhcp/var/state/dhcp
# touch /chroot/dhcp/var/state/dhcp/dhcp.leases
此时?#8220;监牢”目录l构见图1?
? “监牢”目录l构
重新启动dhcpdQ?
[root@www root]# /chroot/usr/sbin/dhcpd
使用ps命o查dhcpdq程Q?
#ps -ef | grep dhcpd
root 2402 1 0 14:25 ? 00:00:00 /chroot/usr/sbin/dhcpd
root 2764 2725 0 14:29 pts/2 00:00:00 grep dhcpd
注意此时q程名称已经改变Q用检查dhcpdq行的端口:
# netstat -nutap | grep dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 2402/dhcpd
端口h有改变。现在dhcpd已经成功q行?#8220;监牢”中?
到此为止一个这P一个完整和安全?DHCP服务器就完成了?br>