TCP/IP 命令安全性
TCP/IP 中的一些命令提供操作过程中的安全环境。这些命令是ftp、rexec和telnet。ftp功能提供文件传送过程中的安全性。rexec命令为在外部主机上运行命令提供安全环境。telnet 功能为登录外部主机提供安全性。
ftp、rexec和telnet命令仅在它们操作过程中提供安全性。也就是说,它们并不建立与其它命令一起使用的安全环境。为了保护系统进行其它操作,使用securetcpip命令。此命令通过禁用非可信守护程序和应用程序,及提供保护IP 层网络协议的选项,提供您保护系统安全的能力。
ftp、rexec、securetcpip和telnet命令提供以下形式的系统及数据安全性:
ftp ftp命令提供传送文件的安全环境。当用户对外部主机调用ftp命令时,提示用户输入登录标识。显示的缺省登录标识为:用户在本地主机的当前登录标识。
提示用户输入远程主机的密码。
自动登录过程搜索本地用户的$HOME/rc文件以获取用于外部主机的用
户标识及密码。对于安全性,$HOME/rc文件的许可权必须设置为600(只
能由所有者读写)。否则,自动登录失败。
注:因为rc文件的使用需要将密码存储在非加密文件中,当系统配置了
securetcpip命令时,ftp命令的自动登录功能不可用。通过将ftp命令从
/etc/security/config文件的tcpip 节中除去可以重新启用此功能。
要使用文件传送功能,ftp命令需要两个TCP/IP 连接,一个用于“文件传输协
议”(FTP),另一个用于数据传输。协议连接是主要的而且是安全的,因为它
建立在可靠的通信端口上。第二连接是实际数据传输所必需的,且本地及远程
主机都验证了此连接的另一端由与主要连接相同的主机建立的。如果主要连接
和第二连接不是由相同主机建立,ftp命令首先显示错误消息,指出数据连接未
认证,然后退出。第二连接的这种验证防止第三主机拦截要送至另一主机的数
据。
rexec rexec命令为在外部主机上执行命令提供安全环境。提示用户输入登录标识及密码。
自动登录功能引起rexec命令搜索本地用户的$HOME/rc文件以获取外
部主机上的用户标识及密码。对于安全性,$HOME/rc文件的许可权必须
设置为600(只能由所有者读写)。否则,自动登录失败。
注:因为rc文件的使用需要将密码存储在非加密文件中,当系统在安全状
态下操作时,rexec的自动登录功能不可用。通过将rexec项从
/etc/security/config文件中的tcpip 节除去可以重新启用此功能。securetcpip securetcpip命令启用TCP/IP 安全功能。发出此命令时,从系统中除去对非可信命令的访问。通过运行securetcpip命令来除去以下每一个命令:
∙rlogin和rlogind
∙rcp、rsh和rshd
∙tftp和tftpd
∙trpt
使用securetcpip命令将系统从标准安全性级别转换为更高安全性级别。系统转换后,除非重装了TCP/IP,否则不必再次发出securetcpip命令。
telnet或tn telnet(TELNET)命令提供登录到外部主机的安全环境。提示用户输入登录标识及密码。将用户终端看作直接与主机连接的终端。即访问终端受控于许可位。其它用户(组及其它)没有对终端的读访问权,但如果所有者给予它们写许可权,它们就可以对终端写消息。telnet命令也通过SAK 提供对远程系统上可信shell 的访问。此按键顺序不同于调用本地可信路径的顺序,并可以在telnet 命令中定义。
限制文件传送程序用户(/etc/ftpusers)
/etc/ftpusers文件中列出的用户受到保护,不允许远程FTP 访问。例如,假设用户A 登录到远程系统,而且他知道系统上用户  B 的密码。如果用户  B 列在/etc/ftpusers文件中,即使用户  A 知道用户  B 的密码,用户  A 也不能用FTP 对用户  B 的帐户上传或下载文件。
下表提供有关如何使用基于Web 的系统管理器、SMIT 或命令行列出、添加及除去受限用户的信息。
怎样禁止user用户telnet登陆?
用命令:
# chuser rlogin=false username
禁止su操作:
# chuser su=false username
怎么限制,只有某些ip才可以登陆机器
1. 修改//f文件,主要是用tcpd(tcpwrapper中的文件)更换掉原有的守候进程(如:ftpd/telnetd),在/usr/local/lib/tcp_wrappers-7.6目录下有一个修改方法的实例文件f(不是用这个文件替换/f!!!),下面的内容是我根据aix的f 做出的修改示例:
ftp stream tcp6 nowait root /usr/local/bin/tcpd ftpd
telnet stream tcp6 nowait root /usr/local/bin/tcpd telnetd -a
shell stream tcp6 nowait root /usr/local/bin/tcpd rshd
login stream tcp6 nowait root /usr/local/bin/tcpd rlogind
2. 修改f后,执行refresh -s inetd,让inetd接受新的配置;
3. 创建/etc/hosts.allow、/etc/hosts.deny,来控制允许访问的ip/主机名,这些文件的设置方法见man 5 hosts_access的说明,下面给出一个例子(只允许192.168.0网段上的主机访问本主机):
hosts.deny:
ALL: ALL
hosts.allow:
ALL: 192.168.0.
4. 可以用tcpdmatch <daemon> <ip/host>来检查规则的设置,例如检查是否允许192.168.0.1通过telnet访问本机:
tcpdmatch telnetd 192.168.0.1
5. tcp-wrapper支持访问日志的控制,它使用与sendmail相同的日志记录方式,所以要修改/f,把mail.debug前的注释去掉,然后touch /var/spool/mqueue/syslog创建空日志文件,refresh -s syslogd刷新syslogd进程。
6. 非法的访问记录都将记录在/var/spool/mqueue/syslog中了。
非root用户的登录问题
如果用户(包括root用户)收到下面的错误信息,可能预示着一个组文件损坏或者丢失:3004-010 failed setting terminal ownership and mode
在/etc/passwd 文件里发现的那个用户的基本组可能在/etc/group文件里无法到:
tps:!:215:1::/u/tps:/bin/ksh
在这个例子里,组ID为1,需要检查/etc/group 文件并确保组号1存在。
如果只有root用户能够登陆,普通用户收到下面的错误信息:
3004-009 failed running login shell
或者是system unavailable
执行命令su - user_name 返回如下信息:
tcpip协议在设计时就考虑了如何解决安全问题3004-505 Cannot set process environment
登录以后,用户得到下面的信息:
0653-345 permission denied (当登录后试图作任何事情时)
或者
ksh: pwd: Cannot access parent directories (当登录后执行pwd命令时)
这些故障现象都是由于用户不能够执行登录shell(ksh,csh或者bsh,依靠哪一个被使用来定)或者是主目录路径的权限问题引起的。
检查问题文件和目录的步骤
下面的步骤介绍了如何检查可能有权限、属主或者属组问题的文件和目录。如果任何文件或者目录有问题,均可以使用chmod、chown或者chgrp 命令来改变权限、属主或属组。如果一个符号连接丢失,可以使用ln 命令来重新建立它,例如,想要建立/bin到/usr/bin的连接,运行下面的命令:
#ln -s /usr/bin /bin
具体的步骤如下:
1. 以root身份登录进入系统;
2. 如果以非root用户登录系统时看到信息“ system unavailable”,继续这一步,否则跳到下一步;
检查/etc/nologin文件是否存在:
#ls -l /etc/nologin
如果/etc/nologin文件存在,把它删除掉:
#rm /etc/nologin
输入下面的命令并执行:
#cd /
#ls -al
类似输出如下:
drwxr-xr-x 19 bin bin 1024 Dec 12 21:14 .
drwxr-xr-x 19 bin bin 1024 Dec 12 21:14 ..
lrwxrwxrwx 1 bin bin 8 Nov 22 09:37 bin -> /usr/bin
drwxrwxr-x 4 root system 2048 Dec 12 21:12 dev
drwxr-xr-x 12 root system 2048 Dec 12 21:11 etc
drwxr-xr-x 5 bin bin 512 Nov 22 14:51 home
lrwxrwxrwx 1 bin bin 8 Nov 22 09:37 lib -> /usr/lib
drwxr-xr-x 20 bin bin 512 Nov 22 13:33 lpp
drwxr-xr-x 3 bin bin 512 Nov 22 09:37 sbin
lrwxrwxrwx 1 bin bin 5 Nov 22 09:37 u -> /home
drwxr-xr-x 20 bin bin 512 Nov 22 14:24 usr
drwxr-xr-x 12 bin bin 512 Nov 22 12:59 var
3. 输入下面的命令并执行:
#ls -ld /usr/bin /usr/lib /tmp
类似的输出如下:
drwxr-xr-x 3 bin bin 10752 Nov 22 12:53 /usr/bin
drwxr-xr-x 28 bin bin 4096 Dec 15 17:08 /usr/lib/
drwxrwxrwt 8 bin bin 2560 Jan 22 14:46 /tmp/
4. 输入下面的命令并执行:
#ls -l /usr/bin/csh /usr/bin/ksh /usr/bin/bsh
类似的输出如下:
-r-xr-xr-x 2 bin bin 341020 Nov 22 09:37 /usr/bin/bsh
-r-xr-xr-x 1 bin bin 154412 Nov 22 09:37 /usr/bin/csh
-r-xr-xr-x 4 bin bin 230148 Nov 22 09:37 /usr/bin/ksh
确定用户的主目录,在这些步骤里,我将以用户"user_one"的用户ID和目录为例。
5. 输入下面的命令并执行:
#ls -ld u/user_one (使用用户的目录路径名)
类似的输出如下:
-drwxr-xr-x 9 user_one system 7680 Dec 24 15:00 /u/user_one
这个目录将被用户拥有并且用户对它有读、写和执行的权限。
6. 输入下面的命令并执行:
#cd /u/user_one
#ls -al | pg
类似的输出如下:
drwxr-xr-x 9 user_one system 7680 Dec 24 15:00 .
drwxr-xr-x 71 bin bin 1536 Dec 14 09:37 ..
"."目录的属主将是这个用户,".." 这个目录的权限将至少组用户权限是读和写和其他组用户权限是读和写。
7. 如果用户仍然有权限被拒绝而不是登录的问题,可能是由于文件系统装载点的权限引起的,为了检查装载点的权限,文件系统必须首先被卸载下来,有些文件系统的装载点只能在用启动介质启动进入维护模式下能够被检查。装载点的权限将应该至少是d--x--x--x,建议使用全权限许可(drwxrwxrwx),装载文件系统的权限设定能够用来限制访问。
如何记录下远程主机对本机文件所做的ftp操作?
用户有时希望查看到是否有远程主机通过ftp连接到本机并对本机的文件进行了ftp传输操作,如何实现?
解答  1. 编辑/f文件,增加如下行:
daemon.info /tmp/daemon.log
2. 使用下面命令在/tmp目录下创建文件daemon.log:
# touch /tmp/daemon.log
3. 刷新syslogd daemon:
# refresh -s syslogd
4. 检查/f文件中对应ftpd的行,对ftpd的调用应带有"-l"参数。
进行完以上设置后,其它主机对本机进行的ftp操作就会被记录在/tmp/daemon.log文件中了。
何限制用户改变密码
可以用命令pwdadm -f ADMIN username来实现,如果想让用户恢复更改密码的权利,运行pwdadm -f ADMCHG username 来重置.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。