Bash 패치

IT세상/Linux 2017. 6. 30. 09:45

For RHEL 5.x:

rpm -Uvh bash-3.2-33.el5_11.4.x86_64.rpm
rpm -Uvh bash-debuginfo-3.2-33.el5_11.4.x86_64.rpm

--------------------------------------------------------------------------------

For RHEL 6.x:

rpm -Uvh bash-4.1.2-15.el6_5.2.x86_64.rpm
rpm -Uvh bash-debuginfo-4.1.2-15.el6_5.2.x86_64.rpm
rpm -Uvh bash-doc-4.1.2-15.el6_5.2.x86_64.rpm






RHEL 4
1. mkdir -p /root/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS} 

2. echo "%_topdir /root/rpmbuild/" > /root/.rpmmacros


4. cd /root/rpmbuild/SOURcd CES/


6. bash30-017 파일 내용 중 3.0.16 3.0 으로 수정

7. cd /root/rpmbuild/SPECS/

8. bash.spec 파일 내용을 다음과 같이 수정

Release: 27%{?dist} -> Release: 27.2%{?dist}

Patch17: bash30-017 추가

#%patch16 -p0 -b .016 주석 해제
%patch17 -p0 -b .017 추가

9. rpmbuild -ba bash.spec

10. rpm -Fvh /root/rpmbuild/RPMS/i386/bash-3.0-27.2.i386.rpm



TEST 환경 : OpenSUSE 11.3 64bit, Ubuntu 14.04 32bit

1. bash 보안 취약점 확인 방법.
: 터미널에서 다음과 같이 입력하도록 합니다.

# env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

결과 값으로 다음과 같이 확인이 가능합니다.

# this is a test -> 정상




# vulnerable
# this is a test -> 업그레이드 필요.

2. upgrade 방법

- CentOS 계열 : # yum update bash
- Ubuntu/Debian 계열 : # apt-get install bash

이밖의 리눅스 계열이나, 혹시 정상적으로 업그레이드가 되지 않은 경우. 다음과 같이 메뉴얼로 업데이트 할 수 있도록 합니다.

# cd /tmp
# tar zxf bash-master.tar.gz
# cd bash-master/
# ./configure
# make
# ./bash --version
# sudo mv /bin/bash /bin/bash.old
# sudo chmod a-x /bin/bash.old
# sudo cp -an bash /bin

# sudo make install

 

'IT세상 > Linux' 카테고리의 다른 글

NetworkManager Disable  (0) 2017.06.30
linux RPM 명령어  (0) 2017.06.30
리눅스 계정 관리  (0) 2017.06.30
linux 네트워크 기본 명령어  (0) 2017.06.30
linux Route 설정  (0) 2017.06.30
블로그 이미지

문형근

,

 

1. 리눅스 계정 관리

1.1 Default 계정 삭제

리눅스를 설치하면 자동으로 생성되는 계정 가운데 lp, sync, shutdown, halt, news, uucp, operator, games, gopher 등  실제로 사용하지 않는 계정은 모두 없애는 것이 좋다.
ftp, xfs, adm, lp, newes, gopher를 /etc/passwd와 /etc/group 에서 주석처리 또는 userdel uid, groupdel gid를 하면 된다.
#userdel adm
#userdel  lp
#userdel sync
#userdel shutdown
#userdel halt
#userdel news
#userdel uucp

#userdel uuucp
#userdel operator
#userdel games
#userdel gopher
#userdel ftp (anymous FTP server를 운영하지 않으면 삭제 한다.)



1.2 ROOT 권한

/etc/passwd 파일에서 UID가 0인 일반계정의 UID를 100이상으로 수정 필요

>변경 방법 # usermod -u 2222 of (of 계정의 UID를 2222로 변경)



/etc/passwd, /etc/group, 파일의 접근권한을 제한

>변경 방법 # chmod 644 /etc/passwd 

               # chmod 644 /etc/group

               # chmod 400 /etc/shadow



쉘 로그인 필요없는 계정 Shell 제한

>변경 방법 # vi /etc/passwd

daemon : x : 1 : 1  : : / : /bin/false



• Passwd 파일구조
root : x : 0 : 0 : root : /root : /bin/bash

(1)   (2) (3) (4) (5)     (6)       (7)


(1)Login Name : 사용자 계정을 의미한다.
(2)Password : 사용자 암호가 들어갈 자리이나, /etc/shadow 파일에 저장된다.
(3)User ID : 사용자 ID를 의미하며, root의 경우 0이 된다.
(4)User Group ID : 사용자가 속한 그룹 ID를 의미하며, root 그룹의 경우 0 이다.
(5)Comments : 사용자의 코멘트 정보를 적는 곳이다.
(6)Home Directory : 사용자의 홈 디렉토리를 지정한다.
(7)Shell : 사용자가 기본으로 사용하는 쉘 종류가 지정된다.



• shadow 파일구조

Root : $1$Fz4q1GjE$G/EskZPyPdMo9.cNhRKSY.:14806: 0 : 99999 : 7 : : :
(1)                      (2)                                        (3)   (4) (5)     (6) (7) (8) (9)

각 필드의 구분자는 콜론(:)이며, 각 필드는 아래의 의미를 가지고 있다.

(1)Login Name : 사용자 계정
(2)Encrypted : 패스워드를 암호화시킨 값
(3)Last Changed : 1970년부터 1월 1일부터 패스워드가 수정된 날짜의 일수를 계산
(4)Minimum : 패스워드가 변경되기 전 최소사용기간(일수)
(5)Maximum : 패스워드 변경 전 최대사용기간(일수)
(6)Warn : 패스워드 사용 만기일 전에 경고 메시지를 제공하는 일수
(7)Inactive : 로그인 접속차단 일 수
(8)Expire : 로그인 사용을 금지하는 일 수 (월/일/연도)
(9)Reserved : 사용되지 않음



1.3 패스워드 규칙 설정

/etc/login.defs는 'useradd' 명령이 수행될 수 있도록 하는 기본 설정 파일이다.

> 패스워드 길이는 8자이상                        PASS_MIN_LEN   8

> 패스워드 최대 사용기간을 60일 이하         PASS_MAX_DAYS 60

> 패스워드 최소 기간을 1일 이상으로 설정     pASS_MIN_DAYS    1


 MAIL_DIR/var/spool/mail
 메일 스풀 디렉토리 지정

PASS_MAX_DAYS 99
 패스워드의 변경 없이 사용할 수 있는 최대일자

PASS_MIN_DAYS 0
 패스워드의 변경 없이 사용할 수 있는 최소일자

PASS_MIN_LEN 10
 패스워드 최소바이트 수

UID_MIN 500
 새로 생성되는 사용자의 UID 시작번호

UID_MAX 600
 최대로 생성될 수 있는 UID개수

GID_MIN 500
 새로 생성되는 그룹의 GID 시작번호

GID_MAX 600
 최대로 생성될 수 있는 GID개수

CREATE_HOME yes
 홈디렉토리를 자동으로 생성할 것인가의 여부






1.4 SU 제한


 1) /etc/pam.d/su 파일 수정

auth        sufficient   /lib/security/pam_rootok.so
auth       required   /lib/security/pam_wheel.so debug group=wheel

2) wheel group 생성

# Groupadd wheel

3) wheel 그룹에 SU사용할 사용자 추가


# usermod -G wheel 계정명

'IT세상 > Linux' 카테고리의 다른 글

linux RPM 명령어  (0) 2017.06.30
Bash 패치  (0) 2017.06.30
linux 네트워크 기본 명령어  (0) 2017.06.30
linux Route 설정  (0) 2017.06.30
Linux LAN Card Speed 설정  (0) 2017.06.30
블로그 이미지

문형근

,

 

리눅스 서버의 라우팅 테이블 확인
netstat -nr

2. 리눅스 서버의 인터페이스 확인
ifconfig -a

.MTU(Maximum Transfer Unit) : 1500
.RX packets(부팅 후 현재까지 받은 패킷수) :
.TX packets(부팅 후 현재까지 보내어진 패킷수) :
.Collisions : 0
.Interrupt 주소 : 21번
.현재 UP(사용가능)되어 있음도 알 수 있음

3. 리눅스에서 네트워크 설정 파일
. Default Gatewya 설정 파일
#cat /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=clubcm
GATEYAYDEV : eth0
GATEWAY=211.220.193.254

. 호스트 설정 파일
#cat /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
BOOTPROTO=static
BROADCAST=211.220.193.255
IPADDR=211.220.193.248
NETMASK=255.255.255.224
NETWORK=211.220.193.224
ONBOOT=yes

. 기본 DNS 설정 파일
#cat /etc/resolv.conf

nameserver 168.126.63.1

. HOSTNAME 대상파일
/etc/sysconfig/network
/etc/HOSTNAME (이파일은 위의 파일에서 읽어와 저장되는 파일 임)

* HOSTNAME변경후 네트워크 재 실행 스크립트
/etc/rc.d/init.d/network restart

4. ifconfig를 이용한 ip 할당하는 방법
#ifconfig eth0 down

#ifconfig eth0 up

#ifconfig eth0 192.168.0.100 netmask 255.255.255.255.0 broadcast 192.168.0.255 up


5. 네트워설정 파일들을 이용한 서버 IP Address 변경하는 방법
. 네트워크 주소 설정 파일 두개
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0

. 위의 두 파일설정 후 네트워크 설정을 위해 사용할 네트워크 스크립트
/etc/rc.d/init.d/network restart

./usr/sbin/netconfig
/usr/sbin/netconfig eth0


6. 리눗스 네트워크 관련 명령어

. ping
-s 옵션 : Ping 테스트시 사용할 패킷 사이즈 크기 설정 옵션
-q 옵션 : 종합결과를 보여줌
- i 옵션 : interval을 설정, 즉 지연 시간을 의미
- b옵션 : Ping 테스트를 하는 서버와 동일한 네트웍에 있는 모든 호스트로 패킷을 보냄
- c옵션 : Ping 테스트시 보낼 패킷 수를 지정해 주는 옵션

'IT세상 > Linux' 카테고리의 다른 글

linux RPM 명령어  (0) 2017.06.30
Bash 패치  (0) 2017.06.30
리눅스 계정 관리  (0) 2017.06.30
linux Route 설정  (0) 2017.06.30
Linux LAN Card Speed 설정  (0) 2017.06.30
블로그 이미지

문형근

,