Kernel Parameter 조회하기

# cat /proc/sys/시스템정보명/세부정보명/설정파라미터명

 

Kernel Parameter 사용하기

* 커널 파라미터 설정파일 : /etc/sysctl.conf


* 커널 파라미터 설정 명령어

# sysctl [옵션] '변수 = 값'

(옵션)

a : 설정 확인

p : 파라미터 설정파일(/etc/sysctl.conf) 재적용

n : 변수 질의

w : 값 설정

 

 

명령어로 설정하는 예제)

# vi /etc/sysctl.conf 파일내 "net.ipv4.tcp_syscookies=1" 설정 후 # sysctl -p
또는
# sysctl -w net.ipv4.tcp_syscookies=1

※ echo 명령이나 vi 명령을 이용하여 '/etc/sysctl.conf' 파일에 적용하는 것을 권장한다.

  -> 추후 변경이 용이하며 내용증적이 남기때문에...

 


[ 권장 Parameter 설정 ] - 'echo" 를 이용한 방법을 권장

* ping 신호 차단
  - 모든 ping(icmp) 신호에 대한 응답 거부, [기본값 : 0]

# echo "net.ipv4.icmp_echo_ignore_all = 1" >> /etc/sysctl.conf
또는
# sysctl -w net.ipv4.icmp_echo_ignore_all=1

 

* broadcast로 보내는 ping 신호 차단
  - Broadcast 주소를 대상으로 한 ping 신호를 거부 (스머프 공격 방지) 

     # echo "net.ipv4.icmp_echo_ignore_broadcasts = 1" >> /etc/sysctl.conf
     또는
     # sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1

 

* TCP SYN Flooding 공격 차단
  - dos공격 방지를 위한 커널 값에서 차단

# echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf
또는
# sysctl -w net.ipv4.tcp_syncookies=1

 

* IP Spoofing 악용 차단
  - dos 공격의 소스 IP로 사용될 가능성을 차단 

# echo "net.ipv4.conf.default.rp_filter = 1" >> /etc/sysctl.conf    [기본값 : 0]

# echo "net.ipv4.conf.conf.rp_filter = 1" >> /etc/sysctl.conf

# echo "net.ipv4.conf.lo.rp_filter = 1" >> /etc/sysctl.conf

# echo "net.ipv4.conf.eth0.rp_filter = 1" >> /etc/sysctl.conf
또는
# sysctl -w net.ipv4.conf.default.rp_filter=1    [기본값 : 0]

# sysctl -w net.ipv4.conf.conf.rp_filter=1

# sysctl -w net.ipv4.conf.lo.rp_filter=1

# sysctl -w net.ipv4.conf.eth0.rp_filter=1

 

* 세션 종료시간 지정
  - 접속종료 후 세션 정보를 유지하는 시간(단위:초), [기본값 : 60] 

# echo "net.ipv4.tcp_fin_timeout = 10" >> /etc/sysctl.conf
또는
# sysctl -w net.ipv4.tcp_fin_timeout=10

 

* TCP Keep Alive 시간조절
  - 접속 후 유후 대기 시간에 따른 세션 유지 가능 시간(단위:초), [기본값 : 7200] 

# echo "net.ipv4.tcp_keepalive_time = 1800" >> /etc/sysctl.conf
또는
# sysctl net.ipv4.tcp_keepalive_time=1800

 

* 서버 날짜/시간 정보 유출방지
  - 서버내 TimeServer 정보에 대한 유출 방지, [기본값 : 1] 

# echo "net.ipv4.tcp_timestamps = 0" >> /etc/sysctl.conf
또는
# sysctl -w net.ipv4.tcp_timestamps=0


* IP source routing 차단
  - 라우팅 패킷을 허가 불가. 신뢰 호스트로 위장되는 것을 방지 (spoofing 공격 대비) 

# echo "net.ipv4.conf.all.accept_source_route = 0" >> /etc/sysctl.conf

# echo "net.ipv4.default.accept_source_route = 0" >> /etc/sysctl.conf

# echo "net.ipv4.conf.eth0.accept_source_route = 0" >> /etc/sysctl.conf

# echo "net.ipv4.conf.lo.accept_source_route = 0" >> /etc/sysctl.conf

# echo "net.ipv4.conf.default.accept_source_route = 0" >> /etc/sysctl.conf
또는

# sysctl -w net.ipv4.conf.all.accept_source_route=0

# sysctl -w net.ipv4.default.accept_source_route=0

# sysctl -w net.ipv4.conf.eth0.accept_source_route=0

# sysctl -w net.ipv4.conf.lo.accept_source_route=0

# sysctl -w net.ipv4.conf.default.accept_source_route=0

 

* ICMP Redirect 차단(수신 패킷 차단)
  - 서버의 라우팅 경로를 확인하는 icmp redirect를 허용하지 않음

    (임의로 라우팅 테이블을 테이블을 변경할 수 없도록한다.) 

# echo "net.ipv4.conf.all.accept_redirects = 0" >> /etc/sysctl.conf   [기본값 : 1]

# echo "net.ipv4.conf.eth0.accept_redirects = 0" >> /etc/sysctl.conf

# echo "net.ipv4.conf.lo.accept_redirects = 0" >> /etc/sysctl.conf

또는
# sysctl -w net.ipv4.conf.all.accept_redirects=0   [기본값 : 1]

# sysctl -w net.ipv4.conf.eth0.accept_redirects=0

# sysctl -w net.ipv4.conf.lo.accept_redirects=0


* ICMP Redirect 차단(발송 패킷 차단)
  - 서버에서 내보내는 icmp redirect 패킷을 허용하지 않음 

# echo "net.ipv4.conf.default.send_redirects = 0" >> /etc/sysctl.conf   [기본값 : 1]

# echo "net.ipv4.conf.eth0.send_redirects = 0" >> /etc/sysctl.conf

# echo "net.ipv4.conf.lo.send_redirects = 0" >> /etc/sysctl.conf

# echo "net.ipv4.conf.all.send_redirects = 0" >> /etc/sysctl.conf
또는
# sysctl -w net.ipv4.conf.default.send_redirects=0   [기본값 : 1]

# sysctl -w net.ipv4.conf.eth0.send_redirects=0

# sysctl -w net.ipv4.conf.lo.send_redirects=0

# sysctl -w net.ipv4.conf.all.send_redirects=0

 

* IP 패킷 로그 파일로 저장
  - 스푸핑, 소스 라우팅, 리다이렉트된 패킷에 대한 로그 기록 

# echo "net.ipv4.conf.all.log_martians = 1" >> /etc/sysctl.conf   [기본값 : 0]

# echo "net.ipv4.conf.eth0.log_martians = 1" >> /etc/sysctl.conf

# echo "net.ipv4.conf.lo.log_martians = 1" >> /etc/sysctl.conf

# echo "net.ipv4.conf.all.log_martians = 1" >> /etc/sysctl.conf
또는
# sysctl -w net.ipv4.conf.all.log_martians=1   [기본값 : 0]

# sysctl -w net.ipv4.conf.eth0.log_martians=1

# sysctl -w net.ipv4.conf.lo.log_martians=1

# sysctl -w net.ipv4.conf.all.log_martians=1

 

 

[ 기타 Parameter 설정 ]

* SYN flooding 공격 대응
  - 정상적인 ACK 패킷이 아닌 경우 backlog queue 에 저장하지 않거나 Queue 사이즈를 늘임 

# echo "net.ipv4.tvp_max_syn_backlog = 1024" >> /etc/sysctl.conf
또는
# sysctl -w net.ipv4.tvp_max_syn_backlog=1024


* Port 범위 설정
  - Well-know port 를 제외하고 local port로 사용가능한 범위를 지정 

# echo "net.ipv4.ip_local_port_range = 32768 61000" >> /etc/sysctl.conf
또는
# sysctl -w net.ipv4.ip_local_port_range=32768 61000


* IP forwarding 방지
  - 현재 서버를 통한 포워딩을 허용불가 

# echo "net.ipv4.ip_forward = 0" >> /etc/sysctl.conf

또는
# sysctl -w net.ipv4.ip_forward=0


 

AND

==================================================================================================

※ 해당 내용의 경우 VMware를 이용한 로컬 네트웍 상에서 작업을 하는 내용을 안내하여 드립니당~!

[ 시스템 설정을 위한 내용 ]

설치된 Base Windows  : Windows 7 Pro
설치된 CentOS Server  : CentOS 5.3

설치된 PostgreSQL      : postgresql-8.1.18 (다중PKG)
설치된 VMware Program : VM workstation 10.0.1

==================================================================================================

CentOS 를 사용하시는 분들은 대부분이 "mysql" 을 사용하시면서 MariaDB 형태로 전환되고 합니다.

다만, 오픈소스 무료 DBMS 중 PostgreSQL 이란 프로그램도 기본으로 내장되어 배포되고 있는데요.

기본 명령어나 설치법은 공개사이트에서 확인하실 수 있으니 참고하시기 바랍니다.

 

지금은 PostgreSQL 을 사용하면서 root, 즉 "postgres" 에 대한 비밀번호를 초기화하는 방법을

하나씩 진행해보겠습니당!!! Follow ME~!!

 

 

1. PostgreSQL 의 정보를 조작하기 위해 해당 데몬을 먼저 동작중지 해야합니다.

 

#ps -aef | grep postgre

를 이용하여 해당 프로세스가 떠있는지 확인을 하시기 바랍니다.

PostgreSQL 프로세스가 동작하고 있는 경우는 아래와 같이 종료해주세요.

 

#/etc/rc.d/init.d/postgresql stop      or     # service postgresql stop

 

 

2. 설정파일(/var/lib/pgsql/data/pg_hba.conf) 에서 postgres 계정의 권한을 수정합니다.

※단, configure 시 다르게 지정될 수 있으므로 "find"를 이용하여 확인할 것을 권장합니다.

 

#nano /var/lib/pgsql/data/pg_hba.conf

 

위 파일에서 아래과 같이 내용을 수정 후 파일을 저장합니다.

 

local    all    all    ident     ->       local    all    postgres    trust

 

 

3. 설정파일 수정이 완료되면 PostgreSQL 데몬을 동작 시켜줍니다.

 

#/etc/rc.d/init.d/postgresql start      or     # service postgresql start

 

4. "postgres" 사용자로 SQL 을 구동하여 비밀번호를 변경해줍니다.

#su - postgres                                               //postgres 사용자로 전환

$psql -d template1 -U postgres                          //postgres 사용자로 template1 데이터베이스에 접속

 

=#alter user postgres with password 'new_pw';    //postgres 사용자의 비번을 "new_pw" 로 변경

=#\q                                                            //postgresql 접속 종료 

 

위 처럼 DBMS 로 접속해서 변경할 수 도 있지만, 명령어를 입력해주는 방식인 아래처럼 변경도 가능합니다.

 

$psql -U postgres -d template1 -c "alter user postgres with password 'new_pw';"

 

 

5. 2번 항목에서 수정한 파일을 원복하기 위해 데몬을 종료합니다.

 

#/etc/rc.d/init.d/postgresql stop      or     # service postgresql stop

 

 

6. 설정파일을 원복합니다.

 

#nano /var/lib/pgsql/data/pg_hba.conf

 

위 파일에서 아래과 같이 내용을 수정 후 파일을 저장합니다.

 

local    all    postgres    trust     ->       local    all    all    ident

 

 

7. 설정파일의 복원을 마쳤으면, PostgreSQL  데몬을 시작하고 정상적으로 변경되었는지 확인합니다.

 

#/etc/rc.d/init.d/postgresql start      or     # service postgresql start

 

#su - postgres                                               //postgres 사용자로 전환

$psql -d template1 -U postgres                          //postgres 사용자로 template1 데이터베이스에 접속

Password :                                                                 //변경한 비밀번호로 정상 로그인되면 아래와 같은 프롬프트가 출력됨

 

template1=#

 

정상적으로 잘 변경된 부분을 확인하셧나요.. ?? 다 잘되셨을거 같습니다 ㅎㅎ.

변경된 사용자 정보를 가지고 착하게!!!!!! DBMS 를 관리해보세요^^

단, 너무 자주 잊어버리시지 마시고, 꼭!!!!!!!!!!!!!!! 계정정보를 알고 계시길 바랍니당.

 

'Databases > PostgreSQL' 카테고리의 다른 글

PostgreSQL 설치하기[CentOS 6.x, 7.x]  (0) 2016.07.26
AND

==================================================================================================

※ 해당 내용의 경우 VMware를 이용한 로컬 네트웍 상에서 작업을 하는 내용을 안내하여 드립니당~!

[ 시스템 설정을 위한 내용 ]

설치된 Base Windows  : Windows 7 Pro
설치된 CentOS Server  : CentOS 6.5
설치된 VMware Program : VM workstation 10.0.1

==================================================================================================

 

CentOS 를 사용하다보면 NetworkManager 에 의해서 SYSTEM 상에서 변경된 NIC 정보를 받아올 수 없어 "Auto-eth"가

발생하는 경우가 상당 수 있습니다.

 

그런 경우 Auto-eth 로 사용하면 "ifconfig" 명령을 치는 경우에도 고정값이 없으므로 확인하기 번거로울 때가 종종 있습니다.

아래의 내용을 이용하여 "eth0" 또는 다른 명칭으로 강제설정을 해보도록 하죠.!!! Follow ME~!

 

우선 시스템상에 입력된 Mac Address 를 알아야겠죠???

아래에 기재된 2개의 NIC Mac Address 를 확인하면 서로 다르기 때문에 Auth-eth 가 발생되는 것을 알 수 있습니다.

ㄱ. VM-Ware 내 Mac Address : 가상머신내 설정편집에서 NIC 부분 주소를 확인

ㄴ. Linux 내 Mac Address : /etc/sysconfig/network-scripts/ifcfg-XXXXX 파일내 "HWADDR" 항목

 

초기화를 진행하는 방법도 있고, 초기화를 하지 않고 강제로 적용하는 방법도 있지만 가능한 원본을 삭제하지

않는 것이 관리자의 소임이므로 강제적용법으로 알려드립니다.

 

우선 Windows VM-ware 에서 확인된 NIC Mac Address 정보를 확인 후 메모해두시기 바랍니다.

아래의 예제는 임의로 작성된 제 Mac Address 이므로 여러분들 정보에 맞게 수정하여 사용하셔야 합니다.

제 Mac Address 가 "00:50:56:82:30:16" 이라고 가정하겠습니다.

 

리눅스에서는 아래의 스크린샷과 같이 출력되고 있다고 보고 수정을 하도록 하겠습니다. 

[ "/etc/sysconfig/network-scripts/ifcfg-eth0" File]

 

보시면 기존 Mac Address 가 입력해야 되는 부분과 다르므로 수정을 합니다.

해당 파일의 수정할 곳은 2군데 입니다.

 

또한, 기존에 사용하던 NIC Mac Address 가 저장되어서 "eth0" 라는 이름을 갖도록 설정하는 곳이

"/etc/udev/rules.d/" 경로에서  "70-persistent-net.rules" 파일에 지정되어 있습니다.

아래와 같이 해당 파일의 내용을 수정합니다.

 

 

 

모든 작업이 완료되고 나면 시스템을 재부팅해서 NIC 가 정상적으로 동작하는지 확인하시면 됩니다.^^

참~~~ 쉽죠잉~~!!!

AND