切换桌面

#switchdesk   gnome  或 kde

.修改系统时间

date -s “2003-04-14 cst”,cst指时区,时间设定用date -s 18:10

.设置启动模式

·/etc/inittab

id:3:initdefault文本模式

id:5:initdefault图形模式

.设置主机名

[root@localhost default]# vi /etc/sysconfig/network

NETWORKING=yes

#HOSTNAME=localhost.localdomain

HOSTNAME=cnscnlinux

[root@localhost default]# /etc/rc.d/init.d/network restart
正在关闭接口eth0:                                         [  确定  ]

正在关闭接口
eth1:           
                            
[  确定  ]

关闭环回接口:         
            
            
           [
 确定  ]

设置网络参数:         
            
            
           [
 确定  ]

弹出环回接口:         
            
            
           [
 确定  ]

弹出界面
eth0:          
                                 
[  确定  ]

弹出界面
eth1:          
                                 
[  确定  ]

[root@localhost default]# hostname

cnscnlinux

.鼠标设置

redhat-config-mouse

COM1在linux中是/dev/ttyS0

COM2在linux中是/dev/ttyS1

设置成左键鼠标 $gpm  -B  321

.时区设置

/usr/sbin/timeconfig

.显示器休眠

不让显示器休眠

setterm -blank 0

setterm -blank n (n为等待时间)

.vnc图形显示设置

1)在xterm中执行 xhost + 192.168.0.249

2) #export  DISPLAY=192.168.0.88:0

3) 修改vi  $HOME/.vnc/xstartup ,把所有内容注释掉,在最后添加startkde &

[root@CnsLinux3 root]# vi  $HOME/.vnc/xstartup

#!/bin/sh

# Uncomment the following two lines for normal desktop:

# unset SESSION_MANAGER

# exec /etc/X11/xinit/xinitrc

#[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources

#xsetroot -solid grey

#vncconfig -iconic &

#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &

#twm &

startkde &

4)重启vncserver

(确保nfs服务的运行)

.制作启动盘

/sbin/mkbootdisk

.防一用户名由两个人同时登陆

echo "* hard maxlogins 2" >> /etc/security/limits.conf

Notes: This setting do not affact root account.

.防火墙配置

/usr/sbin/lokkit

.改变机器语言

[root@CnsLinux3 sbin]# vi  /etc/sysconfig/i18n

#LANG="en_US.UTF-8"                          
#英文

LANG="zh_CN.GB18030"        
            
    #中文
SUPPORTED="zh_CN.GB18030:zh_CN:zh: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:en_US.UTF-8:en_US:en"

SYSFONT="lat0-sun16"

SYSFONTACM="8859-15"

export LANG=zh_CN.GB1830

export LC_ALL=Zh_CN

.给网卡加第二个IP地址

ifconfig eth0:x ip up

x可以代表很多,就是一块网卡可以绑定很多IP地址。

[root@book ~]# ifconfig eth0:1 192.168.0.89 up

[root@book ~]# ifconfig

eth0      Link encap:Ethernet  HWaddr 00:0A:EB:16:BA:87

inet
addr:192.168.0.88  Bcast:192.168.0.255  Mask:255.255.255.0

inet6 addr: fe80::20a:ebff:fe16:ba87/64 Scope:Link

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:303011 errors:0 dropped:0 overruns:0 frame:0

TX packets:87302 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:33526346 (31.9 MiB)  TX bytes:35230323 (33.5 MiB)

Interrupt:5 Base address:0xc800

eth0:1    Link encap:Ethernet  HWaddr 00:0A:EB:16:BA:87

inet
addr:192.168.0.89  Bcast:192.168.0.255  Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

RX packets:0 errors:0 dropped:0 overruns:0 frame:0

TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Interrupt:5 Base address:0xc800

[root@book ~]# ping 192.168.0.89

PING 192.168.0.89 (192.168.0.89) 56(84) bytes of data.

64 bytes from 192.168.0.89: icmp_seq=0 ttl=64 time=0.082 ms

64 bytes from 192.168.0.89: icmp_seq=1 ttl=64 time=0.071 ms

--- 192.168.0.89 ping statistics ---

2 packets transmitted, 2 received, 0% packet loss, time 999ms

rtt min/avg/max/mdev = 0.071/0.076/0.082/0.010 ms, pipe 2

.禁止文件被rm掉 (但这样文件就不可修改了)

[root@book ~]# touch a.txt

[root@book ~]# chattr +i a.txt

[root@book ~]# rm  -f a.txt

rm: cannot remove `a.txt': Operation not permitted

[root@book ~]# ls

anaconda-ks.cfg  a.txt  Desktop  firstboot.1120181163.33  install.log  install.log.syslog

[root@book ~]# chattr  -i  a.txt

[root@book ~]# rm  -f a.txt

[root@book ~]# ls

anaconda-ks.cfg  Desktop  firstboot.1120181163.33  install.log  install.log.syslog

.命令行的实现汉字显示

set meta-flag on

set input-meta on

set convert-meta off

set output-meta on

这几行主要是实现命令行上实现汉字的输入以及显示。

.用chroot()限制用户

如果的确想限制一个用户,可用chroot()子程序为用户建立一个完全隔离的环境,改变了进程对根目录的概念,因此可用于将一个用户封在整个文件系
统的某一层目录结构中,使用户无法用cd命令转出该层目录结构,不能存取文
件系统中其余部分的任何文件.这种限制方式比加限制的shell好得多.

用户使
用的命令应由系统管理员在新的root目录中建立一个bin目录,并建立用户可
用命令的链到系统的/bin目录中相应命令文件上(若在不同的文件系统则应拷 贝命令文件).

还应建立新的passwd文件,保留系统登录户头(为了使ls -l正确地报告与
受限制的子文件系统中的文件相关的正确登录名)和用户帐户,但系统帐户的
口令改为NOLOGIN以使受限制的用户不能取得系统登录的真实口令,使“破密“ 程序的任何企图成为泡影.

utmp文件是who所需要的,该文件含有系统中已登录用户的列表.

新的/etc/profile文件也不是建链文件,以便受限制的用户可以执行不同
的启动命令.

/dev目录中的终端设备文件被链接到新的/dev目录下,因为命令who产生 输出时要查看这些文件.

在系统V及以后的UNIX版本中,login命令有chroot()的功能.如果口令文
件中用户入口项的登录shell域(最后一个域)是*,login将调用chroot()把用
户的根目录设置成为口令文件中用户入口项登录目录域指定的目录.然后再调
用exec()执行login,新的login将在新子系统文件中执行该用户的登录.

chroot()并不是把root封锁在一个子文件系统中,所以给受限制用户用的
命令时应加以考虑,具有root的SUID许可的程序可能会给予用户root的能力.
应当将这种可能减低到最小程度,交给用户使用的命令应当取自清除了SUID陷
井的系统命令.

链接文件可减少磁盘占用区,但要记住,当与敌对用户打交道时 链接到chroot目录结构(尤其是命令)的系统文件是很危险的.
如果建立一个像这样的限制环境,应确保对安装到新的/bin的每条命令都 做过测试,有些程序可能有系统管理员未曾想到的出乎意料的执行结果.

为了
使这些命令能运行,还得在加限制的子文件系统中加服务目录或文件如:/tmp,
/etc/termcap,/usr/lib/terminfo,/dev/mem,/dev/kmem,/dev/swap,用户所
登录的/dev中的tty文件以及/unix.

有些程序在子文件系统中运行时不会很好,如果将假脱机程序和网络命令
拷贝到加限制的子文件系统中,并放在为两条命令专建的目录层结构下,它们 可能也运行不了.

.init的运行等级(0~6)

0       完全关闭系统

1或S级   单用户模式       关闭所有多用户和远程登录进程,只运行最小软件聚合

2-5     多用户级别

6       重新引导

./etc/inittab

定义了init在它的每个运行级上要做什么事情

./etc/init.d/rc

定义了由/etc/inittab调用的程序

.启动脚本

脚本的主拷贝位于/etc/init.d的目录中,用来负责守护进程

一个简单的启动脚本

#!/bin/sh

#

#Name  : /etc/init.d/sshd

#Author: cnscn

#Time  : 2006-04-23

test -f /usr/local/sbin/sshd || exit 0

case "$1" in

start)

echo -n "Starting sshd: ssd"

/usr/local/sbin/sshd

echo "."

;;

stop)

echo -n "Stopping sshd: sshd"

kill `cat  /var/run/sshd.pid`

echo "."

;;

restart)

echo -n "Stopping sshd: sshd"

kill `cat /var/run/sshd.pid`

echo "."

echo -n "Starting sshd: sshd"

/usr/local/sbin/sshd

echo "."

;;

*)

echo "Usage: /etc/init.d/sshd start|stop|restart"

exit 1

;;

esac

用init自动启动关闭程序 (把程序连接到相应的rcX.d启动目录中)

ln -s /etc/init.d/sshd  /etc/rc2.d/S99sshd

ln -s /etc/init.d/sshd  /etc/rc0.d/K25sshd

ln -s /etc/init.d/sshd  /etc/rc6.d/K25sshd

.直接更改当前的运行等级

#telinit  1               进入运行等级1

.ps监视进程

[root@localhost ~]# ps aux

USER       PID %CPU %MEM 
VSZ  RSS TTY      STAT START 
TIME COMMAND

root      5009  0.0  0.0
3036  744 pts/2    R+   10:39 
0:00 ps aux

USER      进程属主ID

PID       进程ID

%CPU      进程正在使用的CPU时间百分数

%MEM      进程正在使用的实际内存的百分数

VSZ       进程的虚拟大小

RSS       驻留集的大小(内存页的数量)

TTY       控制终端的ID

STAT      当前进程的状态(R=可运行

D=在等磁盘或短期等待

S=在睡眠(<20秒)

T=被跟踪或被停止

Z=僵进程

W=进程被交换出去

<=进程拥有比普通优先级更高的优先级

N=进程拥有比普通优先级更低的优先级

L=有些页面被锁在内存中

)

START     启动进程的时间

TIME      进程消耗掉的CPU时间

COMMAND   命令名和参数

.TOP监视进程

#top

top - 10:52:04 up  2:41,  4 users,  load average: 1.10, 0.87, 0.61

Tasks: 105 total,   1 running, 103 sleeping,   0 stopped,   1 zombie

Cpu(s): 15.8% us, 27.7% sy,  0.0% ni, 56.1% id,  0.0% wa,  0.3% hi,  0.0% si

Mem:    775708k
total,   770204k used,     5504k
free,    12144k buffers

Swap:  1124540k total,      448k used,  1124092k free,   545612k cached

PID
USER      PR  NI  VIRT
RES  SHR S %CPU %MEM    TIME+  COMMAND

4014 root       5 -10  480m 384m 377m S 25.5 50.8  12:18.44 vmware-vmx

3447
root      15   0  123m
28m 8176 S  5.6  3.7   7:05.72 X

4225
root      16   0  146m
56m  20m S  4.6  7.5  16:55.74 firefox-bin

PR        The priority of the task.

NI        Nice value

VIRT      The total amount of virtual memory used by the task

RES       The non-swapped physical memory a task has used

SHR       The amount of shared memory used by a task.

S         The status of the task which can be one of:

D = uninterruptible sleep

R = running

S = sleeping

T = traced or stopped

Z = zombie

TIME+     CPU Time, hundredths

.crontab

分钟   小时    日    月    周     [user]   command

45   
10     *   
*  
1-5           
....     周一到周五的上午10:45运行

0,30 
*      13  
*   
5                     
周五及每月13号每半个小执行

15-45/5
*  
*     *   
*                     
每小时的15-45分钟内每5分钟执行

30   
2      *   
*   
1                     
每周一早上2:30时执行

20   
1      *   
*     *      find /tmp  -atime +3 -exec
rm -f {} ';'  每天早上1:20删除/tmp中3天无人访问的文件

55    23      *     *     0-3,6  find /tmp  -atime +3 -exec rm -f {}   每周日到周三及周六执行

.自动注销
  编辑/etc/profile~
  在HISTFILESIZE=   这一行下面增加
  export TMOUT=600             //10分钟内如无操作则自动退出

.禁ping
$ echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

此后可以用 来判断机器是否运行着
# nmap -sP 192.168.0.88

Starting nmap 3.70 ( [url]http://www.insecure.org/nmap/[/url] ) at 2006-04-09 14:46 CST
Host 192.168.0.88 appears to be up.
MAC Address: 00:11:25:AB:B6:98 (IBM)
Nmap run completed -- 1 IP address (1 host up) scanned in 18.652 seconds

.编辑/etc/host.conf加入

#lookup names via DNS first then fall back to /etc/hosts
order hosts,bind

#We don't have machines with multiple IP address on the same card (like virtual server, IP Aliasing)
#multi off

#Check for IP address spoofing   (防止IP欺骗)
nospoof on

4)禁止和允许的root登陆终端
#vi /etc/securetty
tty1
#tty2
#tty3
#tty4

.取得系统字长
$getconf WORD_BIT
 32

.注销时删除命令记录
编辑 /etc/skel/.bash_logout
增加
    rm -f $HOME/.bash_history
~~~~

.关掉rpc(也就是portmap)服务
# ntsysv~~~
  去掉portmap就可以了

.crontab的权限
如果想限制能建立crontab的用户,可在文件/usr/lib/cron/cron.allow文件中列出允许运行crontab命令的用户.任何未列于该文件的用户不能运行crontab.反之,若更愿意列出不允许运行crontab命令的用户,则可将他们列入/usr/lib/cron/cron.deny文件中,未列于该文件的其他用户将被允许建立crontab.

注意:若两个文件都存在,系统将使用cron.allow,忽略cron.deny.如果两个文件都不存在,则只有root可运行crontab.所以,若要允许系统中的所有用户都可运行crontab命令,应当建立一个空的cron.deny文件,如果cron.allow

也存在,则删除该文件.这个版本的cron命令的安全程度比前一个高,因为用户只能看自己的crontab,系统管理员也不必担心其他用户的程序是否会作为root运行,由于允许每个系统登录用户有自己的crontab,也简化了对程序必须由cron运行,但不必作为root运行的系统程序的处理.必须确保root的crontab文件仅对root可写,并且该文件所在的目录及所有的父目录也仅对root可写.

.保护Portmap的安全性
1)保护 Portmap 的安全性

portmap 服务是用于 RPC 服务(如 NIS 和 NFS)的动态端口分配守护进程。它的验证机制比较薄弱,而且具备为它所控制的服务分配大范围端口的能力。由于这些原因,要保护它的安全比较困难。

如果运行 RPC 服务,请遵守以下基本规则。

2)使用 TCP 会绕程序来保护 portmap。

使用 TCP 会绕程序来限制可以使用 portmap 服务的网络或主机这一点很重要,因为 portmap 没有内建的验证方式。

更进一步,在限制对服务的使用时,只使用 IP 地址。避免使用主机名,因为主机名可以通过 DNS 污染或其它方法被伪造。

3)使用 IPTables 来保护 portmap

要进一步限制对 portmap 服务的使用,在服务器上添加 IPTables 规则来限制到指定网络的进出是一个好办法。

以下是两个 IPTables 命令的例子,允许网络 192.168.0/24TCP 和 localhost(Nautilus 程序使用的 sgi_fam 服务所必需的)到 portmap 服务(监听端口111)的连接。所有其它分组都被放弃。

iptables -A INPUT -p tcp -s! 192.168.0.0/24  --dport 111 -j
DROP

iptables -A INPUT -p tcp -s 127.0.0.1  --dport 111 -j
ACCEPT

要以相似的方法限制 UDP 交通,使用以下命令。

iptables -A INPUT -p udp -s! 192.168.0.0/24  --dport 111 -j DROP

=================================================================
[From] [url]http://www-128.ibm.com/developerworks/cn/security/se-lbuffer/[/url]

级别: 初级

薛静锋北京理工大学计算机科学工程系

2002 年  4 月  01 日


    冲区溢出***是目前***最常用的***手段之一,为了应对不断涌现的缓冲区溢出***,我们研究了在Linux系统下防范缓冲区溢出的方法,通过研究,总结了
    在Linux平台下防范缓冲区溢出***的安全策略,这些安全策略可以应用于一般企业内部服务器,包括web服务器、mail服务器、samba服务器、
    ftp服务器以及proxy服务器等。在实际使用中,我们发现通过这些安全策略的配置能够对缓冲区溢出***起到很好的防范措施。

在对计算机系统安全的
研究中,有一种系统安全漏洞引起了我们的关注。一方面是由于这种安全漏洞的广泛性--几乎使所有的操作系统平台都受到影响。另一方面,我们为***基于此类
安全漏洞所编写的***程序的隐蔽性和强大威力所吸引。这就是缓冲区溢出技术。它可以使看似安全的,正在运行常规服务(如
DNS、ftpd等)的主机在几秒钟内失去控制权。缓冲区溢出***是目前***最常用的***手段。在当前CERT和CIAC等发布的Internet安全事
件报告中,
缓冲区溢出已成为常见的用语。缓冲区溢出***的目的在于扰乱具有某些特权运行的程序的功能。这样可以让***者取得程序的控制权,如果该程序具有足够的权
限,那么整个主机就被控制了。

为了应对不断涌现的缓冲区溢出***,我们研究了在Linux系统下防范缓冲区溢出的方
法,之所以选择Linux平台,主要有两方面的原因:(1)Linux是一个开放源码的平台,有利于我们在研究的过程中深入技术细节,由于Linux及其
上面的大量应用都是基于开放源码,有很多***在其上进行了大量的工作,可以说Linux上的网络***水平代表了整个网络***的最高水平。(2)Linux
是一个类Unix系统,同时也是在Internet中大量使用的操作系统平台,选择Linux作为研究缓冲区溢出技术的平台是非常具有代表性的,在
Linux平台上取得的经验可以非常容易地移植到其他Unix或者类Unix平台上。

通过研究,我们总结了在Linux平台下防范缓冲区溢出的安全策略,这些安全策略可以应用于一般企业内部服务器,包括web服务器、mail服务器、samba服务器、ftp服务器以及proxy服务器等。我们所总结的这些安全策略如下所示:

如果不想让远程登录的用户看到系统的提示信息,可以改变"/etc/inetd.conf"文件中的telnet设置:

在末尾加上"-h"参数可以让daemon不显示任何系统信息,只显示登录提示。当然,只有在服务器上装了telnet服务器才有这样做的必要。

回页首

<>

在默认情况下,当登录装有Linux系统的计算机时,系统会告诉你Linux发行版的名字、版本号、内核版本和服务器名称。这泄露了太多的系统信息。出于安全的考虑,最好只显示一个"Login:"的提示信息。处理方法如下:

(1)编辑"/etc/rc.d/rc.local"文件,在下面这些行的前面加上"#":

# want to make to /etc/issue here or you will lose them when you reboot.
#echo "" > /etc/issue
#echo "$R" >> /etc/issue
#echo "Kernel $(uname -r) on $a $(uname -m)" >> /etc/issue
#
#cp -f /etc/issue /etc/issue.net
#echo >> /etc/issue
……

(2)删除"/etc"目录下的"issue.net"和"issue"文件:

[root@snow]# rm -f /etc/issue.net

"/etc/issue.net"
文件是用户从网络登录计算机时(例如:telnet、SSH)看到的登录提示。同样在"/etc"目录下还有一个"issue"文件,是用户从本地登录时
看到的提示。这两个文件都是文本文件,可以根据需要改变。但是,如果想删掉这两个文件,必须向上面介绍的那样把"/etc/rc.d/rc.local"
脚本中的那些行注释掉,否则每次重新启动的时候,系统又会重新创建这两个文件。

回页首

<>

在Linux系统下,使用finger命令可以显示本地或远程系统中目前已登录用户的详细信息,***可以利用这些信息,增大侵入系统的机会。为了系统的安
全,最好禁止提供finger服务,即从/usr/bin下删除finger 命令。如果要保留
finger服务,应将finger文件换名,或修改其权限,使得只允许root用户执行finger命令。

回页首

<>

inetd也叫作"超级服务器",其作用是根据网络请求装入网络程序。"/etc/inetd.conf"文件告诉inetd监听哪些网络端口,为每个端
口启动哪个服务。把Linux系统放在任何网络环境中,第一件要做的事就是了解一下服务器到底要提供哪些服务。不需要的那些服务应该被禁止掉,最好卸载
掉,这样***就少了一些***系统的机会。查看"/etc/inetd.conf"文件,了解一下inetd提供哪些服务。用加上注释的方法(在一行的开头
加上#号)禁止任何不需要的服务,再给inetd进程发一个SIGHUP信号。具体操作步骤如下:

(1)把文件"/etc/inetd.conf"的许可权限改成600,只允许root来读写该文件。

< 600 chmod>

(2)确定"/etc/inetd.conf"文件所有者为root。

这个命令显示出来的信息应该是:

Size: 2869 Filetype: Regular File
Mode: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)
Device: 8,6 Inode: 18219 Links: 1
Access: Fri Apr 12 14:28:11 2002(00000.00:10:44)
Modify: Wed Apr 10 11:20:22 2002(00002.06:12:16)
Change: Wed Apr 10 11:20:22 2002(00002.06:12:16)

(3)编辑
/etc/inetd.conf文件(vi /etc/inetd.conf),禁止所有不需要的服务,如:ftp、telnet、
shell、login、exec、talk、ntalk、imap、pop-2、pop-3、finger、auth等。把不需要的服务关闭可以使系统
的危险性降低很多。

(4)改变了"inetd.conf"文件之后,要给inetd进程发送一个SIGHUP信号(killall -HUP inetd)。

< -HUP killall root]#>

(5)为了保证"inetd.conf"文件的安全,可以用chattr命令把它设成不可改变的。如下:

< +i chattr>


样可以防止对"inetd.conf"文件的任何修改。一个有"i"属性的文件是不能被改动的(不能删除或重命名,不能创建这个文件的链接,不能向这个文
件里写数据)。唯一可以取消这个属性的人只有root。如果要修改"inetd.conf"文件,首先要取消不可修改的属性,如下:

< chattr -i>

再改变了"inetd.conf"文件后,需要再把它的属性改为不可改变的。

回页首

<>

/etc/rc.d目录下"rc"开头的文件是用来启动系统的初始化文件的。rc系列文件与Ms-
Dos系统下的autoexec.bat很类似。rc的意思是"runtime
commands"。它们决定了init进程要启动哪些服务。redhat系统下,这些脚本在/etc/rc.d/rc3.d(如果系统以x为默认启动的
话,就是/etc/rc.d/rc5.d)。要在启动时禁止某个服务,只需要把大写的S替换为小写的s,同时,redhat也提供一个工具来帮助你关闭服
务,输入/usr/sbin/setup,然后选择"system
services",就可以定制系统启动时运行哪些服务。另外一个选择是chkconfig命令,很多linux版本的系统都自带这个工具。脚本名字中的
数字是启动的顺序,以大写的K开头的是用来杀死进程的。
如将S50snmpd(SNMP简单网络管理协议,远程用户能从中获得许多系统信息)改为s50snmpd,则系统启动时将不会启动这项服务。

用下列命令察看在关闭启动脚本之前有多少服务在运行:

< -eaf|wc ps>

有两个非常有用的工具:ps -xau(输出大量的有关系统运行的信息)和netstat -vat(列出所有和网络相关的信息)。运行他们就可以知道系统在提供、运行哪些服务。

回页首

<>

端口号和标准服务之间的对应关系在RFC1700"Assigned
Numbers"中有详细的定义。"/etc/services"文件使得服务器和客户端的程序能够把服务的名字转成端口号,这张表在每一台主机上都存
在,其文件名是"/etc/services"。只有"root"用户才有权限修改这个文件,而且在通常情况下这个文件是没有必要修改的,因为这个文件中
已经包含了常用的服务所对应的端口号。为了提高安全性,我们可以给这个文件加上保护以避免没有经过授权的删除和改变。为了保护这个文件可以用下面的命令:

<>

回页首

< init.d rc.d>

通过以下方式改变启动和停止daemon的脚本文件的权限。

这样只有root可以读、写和执行这一脚本,因为一般用户不需要知道脚本文件的内容。

回页首

防止系统对ping请求做出反应,对于网络安全是很有好处的,因为没人能够ping你的服务器并得到任何反应。TCP/IP协议本身有很多的弱点,***可
以利用一些技术,把传输正常数据包的通道用来偷偷地传送数据。使你的系统对ping请求没有反应,可以把这个危险减到最小。使用下面的命令:


行完这个命令后,系统对ping就没有反应了。可以把这一行加到"/etc/rc.d/rc.local"文件中去,这样当系统重新启动时,该命令就会自
动运行。对ping命令没有反应,至少可以把绝大多数的***排除到系统之外,因为***不可能知道你的服务器在哪里。重新恢复对ping的响应,可以使用下
面的命令:

< 0>

回页首

SSH协议在开始设计时的目的就是提供尽可能安全的远程存取方式。它可以用来进行任何基于网络的信息传递,而且适应性很强。Linux、Unix、NT等
系统都可以使用。由于在和远程交互时,传递的密钥、认证信息等都是加密的,所以安全性能很好。用ssh完全取代telnet/ftp,它能够确保数据在网
络中的安全传输。

回页首

应该取消普通用户的控制台访问权限,比如shutdown、reboot、halt等命令。

< console.apps security ]#>

其中<servicename>是要注销的程序名。

回页首

<>

Bash
shell在"~/.bash_history"("~/"表示用户目录)文件中保存了500条使用过的命令,这样可以使你输入使用过的长命令变得容易。
每个在系统中拥有账号的用户在他的目录下都有一个".bash_history"文件。bash
shell应该保存少量的命令,并且在每次用户注销时都把这些历史命令删除。具体操作步骤如下:

(1)
"/etc/profile"文件中的"HISTFILESIZE"和"HISTSIZE"行确定所有用户的".bash_history"文件中可以保
存的旧命令条数。建议把"/etc/profile"文件中的"HISTFILESIZE"和"HISTSIZE"行的值设为一个较小的数,比如30。编
辑profile文件(vi /etc/profile),把下面这行改为:

这表示每个用户的".bash_history"文件只可以保存30条旧命令。

(2)网络管理员还应该在"/etc/skel/.bash_logout" 文件中添加一行"rm -f $HOME/.bash_history"。这样,当用户每次注销时,".bash_history"文件都会被删除。

编辑.bash_logout文件(vi /etc/skel/.bash_logout),添加下面这行:

回页首

在"/etc/inittab" 文件中注释掉下面这行(使用#):

改为:

<>

为了使这项改动起作用,输入下面这个命令:

< init>

回页首

<>

缓冲区溢出漏洞和suid/sgid程序的关系紧密,带"s"位的程序往往是系统不安全的根源。应该尽量将不必要的带"s"位的程序删除。

转载于:https://blog.51cto.com/zhaizhenxing/134852

linux下系统安全常见问题2相关推荐

  1. 爱数服务器设置总显示超时,爱数linux下安装及常见问题

    <爱数linux下安装及常见问题>由会员分享,可在线阅读,更多相关<爱数linux下安装及常见问题(2页珍藏版)>请在人人文库网上搜索. 1.爱数linux下安装及常见问题一. ...

  2. Linux下系统如何监控服务器硬件、操作系统、应用服务和业务

    1.Linux监控概述 Linux服务器要保证系统的高可用性,需要实时了解到服务器的硬件.操作系统.应用服务等的运行状况,各项性能指标是否正常,需要使用各种LINUX命令.做到自动化运维就需要,将上述 ...

  3. linux权限体系有哪些角色,详解Linux下系统权限

    一.权限概述 1. 什么是权限 权限:在计算机系统中,权限是指某个计算机用户具有使用软件资源的权利. 软件资源:Linux系统中,一切皆文件!SO,这里的软件资源就是文件资源. 所以,我们今天所讲的权 ...

  4. Linux下启动程序常见问题,linux系统启动流程及常见故障解决方式

    Linux系统中启动的流程: 1.加载bios的硬件信息以及进行自我检测  并根据设置取得第一个启动的设备 2.若以硬盘方式引导  读取并执行引导扇区 MBR 3.加载grub(引导程序)启动菜单(/ ...

  5. Linux下系统与硬件时钟管理

    在无NTP而又处在私网的情况下.所以有效的保证时间的正确性其实可以使用此种方案来保证时间的准确性 1.系统日期时间设定 [root@rhel ~]# date -s "2014-11-27 ...

  6. mysql巡检常用命令_总结Linux下系统巡检常用命令

    Linux系统需要定期巡检,以检查服务器软硬件使用情况,相当于对人的体检,确保可以及时发现问题.解决问题,降低损失,常用的巡检命令如下: # uname -a # 查看内核/操作系统/CPU信息 # ...

  7. Linux下系统恢复

    MBR恢复 查看boot分区所在位置,毁坏该分区的446字节,尝试修复 破坏 dd if=/dev/zero of=/dev/vda bs=446 count=1 开机错误 挂载光盘,设置光盘为第一启 ...

  8. Linux 下 Redis 安装常见问题及解决方案

    安装前 操作系统:Linux CentOS 7.9 64位 redis 安装包:官网下载地址:https://redis.io/download 我使用的版本是 5.0.14 redis-5.0.14 ...

  9. Linux下系统函数open,read,write,lseek函数

    一.简介 1. open 头文件 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> 定 ...

最新文章

  1. CS131-专题7:图像特征(SIFT算法)
  2. 解决PLSQL 查询后显示中文为问号(???)问题
  3. Android踩坑日记:RecyclerView中EditText和ImageView的ViewHolder复用坑
  4. Oracle与mongodb的区别
  5. 数据库原理与应用(SQL Server)笔记 第四章 嵌套查询和其他查询子句
  6. AcWing 274. 移动服务
  7. Ostu最大类间差方法
  8. 基于51的串行通讯原理及协议详解(uart)
  9. linux shell 博客,【博客侠】Linux Shell脚本系列:开始上手(1)
  10. Python中xPath技术和BeautifulSoup的使用
  11. 一个职场小白想当程序员,该从哪学起?做好三大准备,完全不是问题!
  12. SpringMVC相关
  13. c3p0连接池配置连接不上mysql_数据库连接池之c3p0的配置 + 问题解决方案
  14. 路由与交换技术(复习知识点-全)
  15. vue把jade转换为html,vue 使用Jade模板写html,stylus写css的方法
  16. fastjson 1.2.24 反序列化导致任意命令执行漏洞
  17. 边境的悍匪—机器学习实战:第十一章 训练深度神经网络
  18. 一只喵的西行记-5 妈妈咪鸭
  19. java实现图片去掉水印
  20. 又一个充电宝改装,经验升级版。

热门文章

  1. VTK:图片之ImageStencil
  2. QT自定义图表上不同元素的外观
  3. QT的QWGLNativeContext类的使用
  4. QT的QSetIterator类的使用
  5. QT的QDateTimeEdit类的使用
  6. STL常用的遍历算法
  7. 在Windows平台如何选择C语言编译器?
  8. 13.4.虚拟化工具--jmap详解
  9. node软件环境安装
  10. 3线程同步:条件变量