>  기사  >  운영 및 유지보수  >  Linux 및 Unix 서버의 보안을 강화하는 방법

Linux 및 Unix 서버의 보안을 강화하는 방법

PHPz
PHPz앞으로
2023-05-19 14:43:061272검색

1. 시스템 보안 기록 파일

운영 체제 내부의 기록 파일은 네트워크 침입 여부를 탐지하는 중요한 단서입니다. 시스템이 인터넷에 직접 연결되어 있고 시스템에 telnet/ftp 로그인을 시도하는 사람이 많은 경우 "#more /var/log/secure grep 거부됨"을 실행하여 시스템에 대한 공격을 확인할 수 있습니다. SSH를 사용하여 Telnet/rlogin을 대체하는 등의 대응 조치를 취할 수 있습니다.

2. 시작 및 로그인 보안

1. BIOS 보안

플로피 디스크에서 시스템을 부팅하지 못하도록 BIOS 비밀번호를 설정하고 부팅 순서를 수정하세요.

2. 사용자 비밀번호

사용자 비밀번호는 Linux 보안의 기본 시작점입니다. 많은 사람들이 너무 단순한 사용자 비밀번호를 사용하므로, 이론적으로는 충분한 시간과 리소스가 있는 한 침입자가 발생할 수 있습니다. 해독할 수 없는 사용자 비밀번호는 없지만 잘 선택한 비밀번호는 해독하기 어렵습니다. 더 나은 사용자 비밀번호는 해당 사용자만이 쉽게 기억하고 이해할 수 있는 문자열이며, 어디에도 적어서는 안 됩니다.

3. 기본 계정

은 운영 체제 자체에서 시작되는 불필요한 계정을 모두 금지해야 합니다. 이는 시스템을 처음 설치할 때 수행되어야 하며, 계정이 많을수록 시스템이 더 쉽게 공격받을 수 있습니다.

다음 명령을 사용하여 계정을 삭제할 수 있습니다.

# userdel用户名

또는 다음 명령을 사용하여 그룹 사용자 계정을 삭제하세요.

rreee

4. 비밀번호 파일

chattr 명령은 무단 사용자가 권한을 얻지 못하도록 다음 파일에 변경할 수 없는 속성을 추가합니다.

# groupdel username

5. 컴퓨터를 다시 시작하려면 ctrl+alt+delete 명령을 비활성화하세요

/etc/inittab 파일을 수정하고 "ca::ctrlaltdel:/sbin/shutdown -t3 -r now" 줄을 주석 처리하세요. 그런 다음 /etc/rc.d/init.d/ 디렉터리에 있는 모든 파일의 권한을 재설정하고 다음 명령을 실행합니다: ca::ctrlaltdel:/sbin/shutdown -t3 -r now"一行注释掉。然后重新设置/etc/rc.d/init.d/目录下所有文件的许可权限,运行如下命令:

# chattr +i /etc/passwd

# chattr +i /etc/shadow

# chattr +i /etc/group

# chattr +i /etc/gshadow

这样便仅有root可以读、写或执行上述所有脚本文件。

6.限制su命令

如果您不想任何人能够su作为root,可以编辑/etc/pam.d/su文件,增加如下两行:

# chmod -r 700 /etc/rc.d/init.d/*

这时,仅isd组的用户可以su作为root。此后,如果您希望用户admin能够su作为root,可以运行如下命令:

auth sufficient /lib/security/pam_rootok.so debug

auth required /lib/security/pam_wheel.so group=isd

7.删减登录信息

默认情况下,登录提示信息包括linux发行版、内核版本名和服务器主机名等。对于一台安全性要求较高的机器来说这样泄漏了过多的信息。可以编辑/etc/rc.d/rc.local将输出系统信息的如下行注释掉。

# usermod -g10 admin

然后,进行如下操作:

# this will overwrite /etc/issue at every boot. so, make any changes you

# 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

三、限制网络访问

1.nfs访问

如果您使用nfs网络文件系统服务,应该确保您的/etc/exports具有最严格的访问权限设置,也就是意味着不要使用任何通配符、不允许root写权限并且只能安装为只读文件系统。编辑文件/etc/exports并加入如下两行。

# rm -f /etc/issue

# rm -f /etc/issue.net

# touch /etc/issue

# touch /etc/issue.net

/dir/to/export 是您想输出的目录,host.mydomain.com是登录这个目录的机器名,ro意味着mount成只读系统,root_squash禁止root写入该目录。为了使改动生效,运行如下命令。

/dir/to/export host1.mydomain.com(ro,root_squash)

/dir/to/export host2.mydomain.com(ro,root_squash)

2.inetd设置

首先要确认/etc/inetd.conf的所有者是root,且文件权限设置为600。设置完成后,可以使用"stat

# /usr/sbin/exportfs -a

그러면 루트만 위의 모든 스크립트 파일을 읽고, 쓰고, 실행할 수 있습니다.

6. su 명령 제한

누구도 루트로 su할 수 없도록 하려면 /etc/pam.d/su 파일을 편집하고 다음 두 줄을 추가하면 됩니다.

# chmod 600 /etc/inetd.conf

현재는 사용자만 isd 그룹에서는 루트로 su할 수 있습니다. 나중에 사용자 관리자가 루트로 su할 수 있도록 하려면 다음 명령을 실행할 수 있습니다:

ftp telnet shell login exec talk ntalk imap pop-2 pop-3 finger auth

7. 로그인 정보 삭제

기본적으로 로그인 프롬프트 정보에는 Linux 배포 버전, 커널 버전 이름, 서버 호스트 이름 등이 포함됩니다. 보안 요구 사항이 높은 시스템의 경우 너무 많은 정보가 누출됩니다. /etc/rc.d/rc.local을 편집하여 시스템 정보를 출력하는 다음 줄을 주석 처리할 수 있습니다.

#killall -hup inetd

그런 다음 다음을 수행하세요.

# tcpdchk 

3. 네트워크 액세스를 제한하세요

1. nfs 액세스

nfs 네트워크 파일 시스템 서비스를 사용하는 경우 /etc/exports에 가장 제한적인 액세스 설정이 있는지 확인해야 합니다. 즉, 와일드카드를 사용하지 않고 루트 쓰기 액세스를 허용하지 않으며 다음으로만 마운트할 수 있음을 의미합니다. 읽기 전용 파일 시스템. /etc/exports 파일을 편집하고 다음 두 줄을 추가합니다.

# tty1

# tty2

# tty3

# tty4

# tty5

# tty6

/dir/to/export는 내보내려는 디렉터리이고, host.mydomain.com은 이 디렉터리에 로그인된 컴퓨터의 이름이며, ro는 읽기 전용 시스템으로 마운트를 의미하고, root_squash는 루트가 해당 디렉터리에 쓰는 것을 금지합니다. 예배 규칙서. 변경 사항을 적용하려면 다음 명령을 실행하십시오.

telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -
2. inetd 설정

먼저 /etc/inetd.conf의 소유자가 루트이고 파일 권한이 600으로 설정되어 있는지 확인하세요. 설정이 완료되면 "stat" 명령을 사용하여 확인할 수 있습니다.

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

그런 다음 /etc/inetd.conf를 편집하여 다음 서비스를 비활성화하세요.

order bind,hosts

multi off

nospoof on 

ssh/scp가 설치되어 있으면 telnet/ftp도 비활성화할 수 있습니다. 변경 사항을 적용하려면 다음 명령을 실행하세요. 🎜
session required /lib/security/pam_limits.so
🎜기본적으로 대부분의 Linux 시스템은 모든 요청을 허용하며 tcp_wrappers를 사용하여 시스템 보안을 강화하는 것은 매우 쉽습니다. /etc /hosts.deny 및 /etc/hosts.allow는 액세스 제한을 강화합니다. 예를 들어, /etc/hosts.deny를 "all: all"로 설정하면 기본적으로 모든 액세스가 거부됩니다. 그런 다음 /etc/hosts.allow 파일에 허용된 액세스를 추가합니다. 예를 들어, "sshd: 192.168.1.10/255.255.255.0 Gate.openarch.com"은 IP 주소 192.168.1.10 및 호스트 이름 Gate.openarch.com이 ssh를 통해 연결할 수 있음을 의미합니다. 🎜🎜구성이 완료된 후 tcpdchk로 확인할 수 있습니다. 🎜rrreee🎜tcpchk는 tcp 래퍼 구성을 확인하고 발견된 모든 잠재적/기존 문제를 보고하는 tcp_wrapper 구성 확인 도구입니다. 🎜🎜3. 로그인 터미널 설정 🎜🎜/etc/securetty 파일은 루트 로그인을 허용하는 tty 장치를 지정합니다. 이 파일은 /bin/login 프로그램에서 읽혀지며 허용되는 이름 목록입니다. 다음 OK. 🎜rrreee🎜현재 루트는 tty1 터미널에서만 로그인이 가능합니다. 🎜🎜4. 시스템 및 버전 정보를 표시하지 마십시오. 🎜🎜원격 로그인 사용자가 시스템 및 버전 정보를 볼 수 없도록 하려면 다음 작업을 통해 /etc/inetd.conf 파일을 변경할 수 있습니다. 🎜rrreee🎜 -h를 추가하면 텔넷이 시스템 정보를 표시하지 않지만 "로그인:"을 표시합니다. 🎜🎜🎜4. 공격 방지🎜🎜🎜1. 핑 차단 아무도 시스템을 핑할 수 없으면 보안은 자연스럽게 강화됩니다. 이렇게 하려면 /etc/rc.d/rc.local 파일에 다음 줄을 추가하면 됩니다: 🎜rrreee🎜2. IP 스푸핑 방지🎜

编辑host.conf文件并增加如下几行来防止ip欺骗攻击。

order bind,hosts

multi off

nospoof on 

3.防止dos攻击

对系统所有的用户设置资源限制可以防止dos类型攻击。如最大进程数和内存使用数量等。例如,可以在/etc/security/limits.conf中添加如下几行:

  • * hard core 0

  • * hard rss 5000

  • * hard nproc 20

然后必须编辑/etc/pam.d/login文件检查下面一行是否存在。

session required /lib/security/pam_limits.so

上面的命令禁止调试文件,限制进程数为50并且限制内存使用为5mb。

위 내용은 Linux 및 Unix 서버의 보안을 강화하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제