검색 엔진의 방문이 늘어나고 있군...

Posted
Filed under 프로그램과 명령어/네트워크와 보안
참조 원문: Linux Terminal: speedtest_cli checks your real bandwidth speed.

인터넷 속도를 측정하는 사이트 중 SpeedTest 라는 웹 서비스(웹 브라우저, 모바일 애플리케이션 모두 존재)가 있는데 speedtest_cli라는 파이선 스크립트를 통해 커맨드 라인에서도 해당 서비스를 이용할 수 있습니다. 따라서 브라우저나 GUI가 없는 서버에서도 속도를 테스트할 수 있죠.

설치
speedtest_cli는 파이선 스크립트기 때문에 설치와 사용이 용이합니다. 설치 방법은 아래 몇 가지 방법 중 하나를 이용하면 됩니다.

1) pip / easy_install
터미널을 열어 아래 두 명령어 중 하나를 사용합니다.
pip install speedtest-cli
또는
easy_install speedtest-cli

2) Github

github로부터 직접 설치하는 방법입니다.
pip install git+https://github.com/sivel/speedtest-cli.git
또는
git clone https://github.com/sivel/speedtest-cli.git
python speedtest-cli/setup.py install

3) Ubuntu/Debian 또는 Mint 패키지

getdeb 저장소를 이용하는 방법으로 먼저 아래 방법으로 저장소를 추가해야 합니다.
getdeb 패키지 설치
또는
- 저장소 수동 설정
System -> Administration -> Software Sources -> Third-Party Software 탭에서 아래 라인을 추가합니다.
deb http://archive.getdeb.net/ubuntu trusty-getdeb apps
저장소 GPG키를 추가하기 위해 터미널 창을 열어서 아래 내용을 실행합니다.
wget -q -O- http://archive.getdeb.net/getdeb-archive.key | sudo apt-key add -
아래 명령어로 speedtest-cli 패키지를 설치합니다.
sudo apt-get update
sudo apt-get install python-speedtest-cli

4) 그냥 다운로드

마지막 방법으로 원하는 곳에서 파이선 스크립트를 다운로드하여 실행하는 방법입니다.
wget -O speedtest-cli https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
chmod +x speedtest-cli
또는
curl -o speedtest-cli https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
chmod +x speedtest-cli

기본 사용법
  옵션 없이 그냥 speedtest_cli.py 를 실행해도 대역폭 속도를 확인할 수 있습니다. 아래는 제가 직접 테스트한 결과입니다.
[root@localhost speedtest-cli]# ./speedtest_cli.py
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Korea Telecom (210.223.38.159)...
Selecting best server based on latency...
Hosted by China Unicom (Qingdao) [611.01 km]: 50.13 ms
Testing download speed........................................
Download: 8.23 Mbit/s
Testing upload speed..................................................
Upload: 38.19 Mbit/s
  어째서인지 중국 서버를 잡아 테스트했네요. 분명 서울에 있는 서버도 있는데...어쨌든 기본 사용법은 이렇습니다. 결과를 그림 파일로 만들고 싶다면 --share 옵션을 추가하면 됩니다. 그러면 speedtest 사이트에 업로드되고 그 링크가 출력됩니다.
[root@localhost speedtest-cli]# ./speedtest_cli.py
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Korea Telecom (210.223.38.159)...
Selecting best server based on latency...
Hosted by China Unicom (Qingdao) [611.01 km]: 50.13 ms
Testing download speed........................................
Download: 8.23 Mbit/s
Testing upload speed..................................................
Upload: 38.19 Mbit/s
[root@localhost speedtest-cli]# ./speedtest_cli.py --share
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Korea Telecom (210.223.38.159)...
Selecting best server based on latency...
Hosted by China Unicom,Changchun Branch (Changchun) [712.22 km]: 56.195 ms
Testing download speed........................................
Download: 7.77 Mbit/s
Testing upload speed..................................................
Upload: 31.63 Mbit/s
Share results: https://www.speedtest.net/result/4455322670.png
  결과는 아래와 같은 형식의 그림 파일입니다.
  또 다른 중요한 옵션은 --list 입니다. 거리순으로 speedtest.net 서버를 출력합니다. 서버명 앞에 ID가 출력되는데 --server 옵션과 ID 값을 사용하면 나열된 서버 중 원하는 서버를 이용할 수 있습니다.
[root@localhost speedtest-cli]# ./speedtest_cli.py --list|more
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
5017) China Unicom,Liaoning Branch (Shenyang, China) [530.54 km]
5710) China Unicom (Qingdao, China) [611.01 km]
1185) China Unicom,Changchun Branch (Changchun, China) [712.22 km]
3133) Rostelecom (Vladivostok, Russian Federation) [744.06 km]
6457) Extreme-VL.ru (Vladivostok, Russian Federation) [744.06 km]
4024) Vladlink (Vladivostok, Russian Federation) [744.06 km]
5652) MegaFon (Vladivostok, Russian Federation) [744.06 km]
6316) Podryad (Vladivostok, Russian Federation) [744.06 km]
이하 생략

[root@localhost speedtest-cli]# ./speedtest_cli.py --server 3133
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Korea Telecom (210.223.38.159)...
Hosted by Rostelecom (Vladivostok) [744.06 km]: 335.484 ms
Testing download speed........................................
Download: 19.15 Mbit/s
Testing upload speed..................................................
Upload: 15.48 Mbit/s
  다만 웹이나 모바일에서 할 때는 서울 서버가 나오는데 이 방법으로는 이상하게 서울 서버가 나오지 않아서 효용성이 떨어지는 것 같아 아쉽네요.


2015/06/24 15:07 2015/06/24 15:07
Posted
Filed under 프로그램과 명령어/네트워크와 보안
참조 원문: How to manage a WiFi connection from the command line

  GUI 없이 WiFi 접속을 다루는 내용입니다. 일반적으로 서버에서 무선을 쓰는 일은 없고 일반 PC에서 GUI를 안 쓰는 일도 거의 없으므로 실제로 사용할 일이 별로 없는 내용이지만 기초라는 건 언제나 중요한 법이죠. 그에 따라 사용하는 프로그램도 최대한 배포판에 상관 없이 기본 패키지에 포함되어 설치되는 것을 위주로 사용하여 설명합니다.

  먼저 사용하는 무선 LAN카드(NIC)를 위한 적절한 드라이버가 로드되어 있다고 가정한 상태에서 진행합니다. 드라이버가 없으면 아무것도 할 수 없죠. 적절한 드라이버가 있는 상태에서 아래 명령어를 통해 무선 접속을 지원하는 인터페이스를 확인할 수 있습니다.
$ iwconfig

출처: http://xmodulo.com/manage-wifi-connection-command-line.html

  보통 무선 인터페이스의 이름은 위의 모습처럼 wlan0이 됩니다. 인터페이스가 up 상태인지 확인하려면 아래 명령어를 사용합니다.
$ sudo ip link set wlan0 up
  인터페이스가 작동한다면 주변의 무선 네트워크를 스캔할 수 있어야 합니다.
$ sudo iw dev wlan0 scan | less

출처: http://xmodulo.com/manage-wifi-connection-command-line.html

  출력 결과를 통해 네트워크 이름(SSID), 신호 강도, 보안 타입(WEP, WPA/WPA2 등)을 알 수 있습니다. 여기서 다음 단계의 난이도가 나눠집니다. 만약 접속하려는 네트워크가 암호화를 사용하지 않는다면 아래 명령어를 통해 바로 접속이 가능합니다.
$ sudo iw dev wlan0 connect 네트워크_SSID
  WEP 암호화를 사용할 경우도 비슷한 방법으로 접속할 수 있습니다.
$ sudo iw dev wlan0 connect 네트워크_SSID key 0:키값
  하지만 WPA나 WPA2를 사용하는 네트워크라면 방법이 좀 복잡합니다. 이 경우에는 wpa_supplicant라는 유틸리티를 사용해야 하며 이 유틸리티는 배포판에 따라 기본으로 설치되지 않을 수도 있습니다. 이 유틸리티를 사용하려면 먼저 /etc/wpa_supplicant/wpa_supplicant.conf 파일에 있는 내용들을 주석처리하고 아래 내용을 추가합니다. 참고로 SSID 대신 AP의 이름을 넣는 것도 가능하며 그 경우 wpa_supplicant가 그에 해당하는 SSID로 변경합니다.
network={
    ssid="네트워크_SSID"
    psk="패스프레이즈"
    priority=1
}
  설정을 끝내면 아래 명령어를 사용하여 wpa_supplicant를 백그라운드로 돌립니다.
$ sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf
  이제 IP를 받기 위해 DHCP를 사용합니다.
$ sudo dhcpcd wlan0
  이제 DHCP를 통해 로컬 IP를 받으며 프로세스가 백그라운드에서 fork 됩니다. 접속여부를 확인하고 싶다면 iwconfig 명령어를 사용합니다.
$ iwconfig

출처: http://xmodulo.com/manage-wifi-connection-command-line.html

2015/03/05 17:35 2015/03/05 17:35
Posted
Filed under 프로그램과 명령어/네트워크와 보안
참조 원문: Unix: Gaining network insights with tcpdump

  tcpdump는 들어온 패킷(더 정확히는 "프레임")을 잡아 내용을 볼 수 있는 "스니퍼"입니다. 기본적으로 로컬 머신에 들어온 모든 트래픽을 볼 수 있는 promiscuous mode로 동작하는데 이 상태에서는 목적지가 로컬 머신이 아닌 트래픽도 모두 잡아서 볼 수 있습니다. 이 기능을 꺼서 자신이 적절한 목적지인 트래픽만 보고 싶다면 -p 옵션을 주면 됩니다. 여담으로 -p가 "promiscuous를 켜라"가 아니라 "promiscuous를 꺼라"라는 의미라서 좀 햇갈리죠.

  만약 tcpdump를 실행했을 때 "No suitable driver found"라는 메시지와 함께 종료된다면 root 권한이 없어서 그런 겁니다. 안타깝게도 이 프로그램을 사용하려면 root 권한이 필요하죠.

  일단 실행에 성공하면 엄청난 내용들이 화면에 가득하게 됩니다. 심지어 트래픽이 거의 없는 네트워크라도 말이죠. 그래서 옵션이 중요합니다. 먼저 알아볼 옵션은 원하는 개수의 패킷(정확히는 "프레임")만 출력하고 종료하는 겁니다. -c (숫자) 옵션을 주면 수집할 프레임의 개수를 정할 수 있습니다.
# tcpdump -c 2
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
13:40:11.368233 IP xyz-boson-1.particles.com.ssh > 10.2.230.115.58774: P 3706680
062:3706680258(196) ack 474521172 win 71
13:40:11.368501 IP 10.20.30.115.58774 > xyz-boson-1.particles.com.ssh: . ack 196
 win 255
2 packets captured
5 packets received by filter
0 packets dropped by kernel
  출력된 프레임의 내용 중 첫 번째 항목은 시간입니다. 위에서 13:40:11.507360에 해당하는 부분이죠. 그 뒤에는 출발지(>의 왼쪽)와 목적지(>의 오른쪽) 및 패킷의 내용이 있습니다.

  패킷을 파일로 캡쳐해서 나중에 다시 볼 수도 있습니다. 아래는 10개의 패킷을 캡쳐해서 /tmp/c10 파일에 저장하는 모습입니다.
# tcpdump -c 10 -w /tmp/c10
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
10 packets captured
12 packets received by filter
0 packets dropped by kernel
  이렇게 만든 파일은 아래의 방법으로 읽을 수 있습니다.
# tcpdump -r /tmp/c10
  이러면 저장했던 내용을 모두 읽습니다.

  -i 옵션을 통해 사용할 인터페이스를 지정할 수 있습니다.
# tcpdump -c 10 -w /tmp/c10 -i bond0
tcpdump: listening on bond0, link-type EN10MB (Ethernet), capture size 96 bytes
10 packets captured
10 packets received by filter
0 packets dropped by kernel
  -D 옵션을 사용하면 패킷을 수집할 수 있는 인터페이스 목록을 보여줍니다.
# tcpdump -D
1.eth0
2.bond0
3.eth1
4.any (모든 인터페이스를 캡쳐하는 가상 장치)
5.lo
  수집할 패킷의 출발지나 목적지(또는 둘 다)를 지정하는 것도 가능합니다. 다만 출발지를 10.20.30.40로 지정하고 목적지를 10.20.30.50으로 지정했다면 10.20.30.50이 10.20.30.40에게 응답하는 패킷을 볼 수 없습니다. 서로의 역할이 뒤바꼈기 때문이죠. 특정 시스템으로 향하거나 그곳으로부터 오는 것을 모두 볼 때는 "host"라는 단어를 사용할 수도 있습니다.
# tcpdump -c 100 src fermion.particles.org
# tcpdump host boson.particles.org -w /tmp/boson$$
  비슷한 명령어를 통해 출발 포트나 목적 포트를 지정하는 것도 가능합니다. 아래의 예는 로컬 웹 서버로 가는 트래픽을 수집합니다.
# tcpdump -i bond0 dst port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on bond0, link-type EN10MB (Ethernet), capture size 96 bytes
14:38:13.301801 IP nagios.particles.com.59344 > www.particles.org.http: S 3558234
391:3558234391(0) win 5840 <mss 1460,sackOK,timestamp 3398452148 0,nop,wscale 7>
14:38:13.301900 IP nagios.particles.com.59344 > www.particles.org.http: . ack 231
4423727 win 46 <nop,nop,timestamp 3398452148 2437740292>
  수집하는 패킷을 어떤 모습으로 출력시킬지도 선택할 수 있습니다. 아래는 수집한 패킷을 헥스와 ASCII 형태로 모두 출력하고 있습니다.
# tcpdump -i bond0 -c 1 -XX
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on bond0, link-type EN10MB (Ethernet), capture size 96 bytes
17:38:31.570524 IP xyz-boson-1.particles.com.ssh > 10.20.30.115.54669: P 3162608
328:3162608524(196) ack 830478067 win 80
        0x0000:  0000 0c07 ac01 782b cb5f a949 0800 4510  ......x+._.I..E.
        0x0010:  00ec 3cc6 4000 4006 0025 0a01 029b 0a02  ..<.@.@..%......
        0x0020:  e673 0016 d58d bc81 92c8 3180 16f3 5018  .s........1...P.
        0x0030:  0050 33c4 0000 8775 514e a605 e7f7 505c  .P3....uQN....P\
        0x0040:  f6e6 559e 3bc7 2317 f28d 9a29 8798 cf04  ..U.;.#....)....
        0x0050:  b4a7 36f0 30e9 89d1 1da0 0860 3bb7 cfed  ..6.0......`;...
2015/03/03 15:12 2015/03/03 15:12
Posted
Filed under 프로그램과 명령어/네트워크와 보안
참조 원문: 10 examples of Linux ss command to monitor network connections

ss - socket statistics
  ss 명령어는 deprecated 된 netstat 명령어를 대체하는 명령어입니다. netstat 보다 많은 정보를 출력할 수 있으며 더 빠릅니다. netstat 명령어가 정보를 수집하기 위해 다양한 /proc 파일들을 읽는데 이러한 방식은 표시할 연결이 많을 경우 속도를 느리게 만듭니다. 이와 달리 ss 명령어는 정보를 커널 스페이스에서 직접 가져옵니다. ss 명령어에 사용하는 옵션은 netstat과 매우 비슷하기 때문에 쉽게 대체 사용이 가능합니다.

1. 모든 연결 출력
$ ss | less
Netid  State      Recv-Q Send-Q   Local Address:Port       Peer Address:Port  
u_str  ESTAB      0      0                    * 15545                 * 15544 
u_str  ESTAB      0      0                    * 12240                 * 12241 
u_str  ESTAB      0      0      @/tmp/dbus-2hQdRvvg49 12726                 * 12159 
u_str  ESTAB      0      0                    * 11808                 * 11256 
u_str  ESTAB      0      0                    * 15204                 * 15205 
.....

2. TCP, UDP, UNIX 연결 필터링
  TCP는 t, UDP는 u, UNIX는 x 옵션 사용
$ ss -t 또는 ss -A tcp
State      Recv-Q Send-Q    Local Address:Port        Peer Address:Port  
ESTAB      0      0           192.168.1.2:43839     108.160.162.37:http   
ESTAB      0      0           192.168.1.2:43622     199.59.149.201:https  
ESTAB      0      0           192.168.1.2:33141      83.170.73.249:ircd   
ESTAB      0      0           192.168.1.2:54028     74.125.135.125:xmpp-client
  기본적으로 t 옵션은 "established"나 "CONNECTED" 상태인 연결만 출력합니다. 즉, "LISTENING" 상태인 것들은 출력하지 않습니다. 그것들까지 출력하려면 -a 옵션을 t 옵션과 함께 사용하면 됩니다.
$ ss -ua 또는 ss -a -A udp
State      Recv-Q Send-Q    Local Address:Port        Peer Address:Port  
UNCONN     0      0           192.168.1.2:48268                  *:*      
UNCONN     0      0           192.168.1.2:56575                  *:*      
UNCONN     0      0                     *:40309                  *:*      
UNCONN     0      0           192.168.1.2:56879                  *:*      
UNCONN     0      0                     *:49014                  *:*      
UNCONN     0      0           192.168.1.2:53124                  *:*      
UNCONN     0      0             127.0.1.1:domain                 *:*
  a 옵션은 "CONNECTED"와 "LISTENING" 상태의 소켓을 출력합니다. UDP는 연결이 없는 프로토콜이기 때문에 대부분의 경우 "ss -u" 명령어로는 아무 내용도 출력되지 않으므로 모든 UDP 연결을 출력하려면 a 옵션을 사용해야 합니다.

3. 호스트네임 해석 방지
  빠른 출력을 위해 n 옵션을 사용하여 IP 주소를 호스트네임으로 해석하는 것을 막을 수 있습니다. 다만 포트 번호도 해석하지 않게 됩니다.
$ ss -nt
State      Recv-Q Send-Q      Local Address:Port        Peer Address:Port
ESTAB      0      0             192.168.1.2:43839     108.160.162.37:80   
ESTAB      0      0             192.168.1.2:51350      74.125.200.84:443  
ESTAB      0      0             192.168.1.2:33141      83.170.73.249:6667 
ESTAB      0      0             192.168.1.2:54028     74.125.135.125:5222 
ESTAB      0      0             192.168.1.2:48156      66.196.120.44:5050

4. LISTENING 소켓만 출력
$ ss -ltn
State      Recv-Q Send-Q        Local Address:Port          Peer Address:Port
LISTEN     0      5                 127.0.1.1:53                       *:*    
LISTEN     0      128               127.0.0.1:631                      *:*    
LISTEN     0      128                     ::1:631                     :::*
  위 명령어는 모든 "listening" "tcp" 연결을 출력합니다. n 옵션은 IP 주소를 호스트네임으로 번역하는 것을 막아 출력을 더 빠르게 해줍니다.

  모든 listening udp 연결을 출력시키려면 t를 u로 바꿉니다.
$ ss -lun
State      Recv-Q Send-Q        Local Address:Port          Peer Address:Port
UNCONN     0      0                 127.0.1.1:53                       *:*    
UNCONN     0      0                         *:68                       *:*    
UNCONN     0      0               192.168.1.2:123                      *:*    
UNCONN     0      0                 127.0.0.1:123                      *:*    
UNCONN     0      0                         *:123                      *:*    
UNCONN     0      0                         *:5353                     *:*    
UNCONN     0      0                         *:47799                    *:*    
UNCONN     0      0                         *:25322                    *:*    
UNCONN     0      0                        :::54310                   :::*    
.....

5. 프로세스 이름과 PID 출력
  연결을 소유한 프로세스 이름/PID를 출력할 때는 p 옵션을 사용합니다.
$ ss -ltp
State      Recv-Q Send-Q    Local Address:Port        Peer Address:Port  
LISTEN     0      100           127.0.0.1:smtp                   *:*      
LISTEN     0      128           127.0.0.1:9050                   *:*      
LISTEN     0      128                   *:90                     *:*      
LISTEN     0      128                   *:db-lsp                 *:*        users:(("dropbox",3566,32))
LISTEN     0      5             127.0.0.1:6600                   *:*      
LISTEN     0      128           127.0.0.1:9000                   *:*        users:(("php5-fpm",1620,0),("php5-fpm",1619,0))
  root 권한으로 실행하면 더 많은 출력 결과가 나옵니다.
s -ltp
[sudo] password for enlightened:
State      Recv-Q Send-Q    Local Address:Port        Peer Address:Port  
LISTEN     0      100           127.0.0.1:smtp                   *:*        users:(("master",2051,12))
LISTEN     0      128                   *:90                     *:*        users:(("nginx",1701,6),("nginx",1700,6),("nginx",1699,6),("nginx",1697,6),("nginx",1696,6))
LISTEN     0      5             127.0.0.1:6600                   *:*        users:(("mpd",2392,5))
LISTEN     0      128           127.0.0.1:9000                   *:*        users:(("php5-fpm",1620,0),("php5-fpm",1619,0),("php5-fpm",1616,7))
LISTEN     0      16                    *:2633                   *:*        users:(("oned",1853,16))
LISTEN     0      50            127.0.0.1:mysql                  *:*        users:(("mysqld",1095,10))
LISTEN     0      5             127.0.1.1:domain                 *:*        users:(("dnsmasq",1347,5))
LISTEN     0      32                    *:ftp                    *:*        users:(("vsftpd",1051,3))
LISTEN     0      128                   *:ssh                    *:*        users:(("sshd",1015,3))
LISTEN     0      128           127.0.0.1:ipp                    *:*        users:(("cupsd",688,11))
LISTEN     0      128                  :::http                  :::*        users:(("apache2",5322,4),("apache2",5321,4),("apache2",5317,4),("apache2",5316,4),("apache2",5313,4),("apache2",2505,4))
LISTEN     0      128                  :::ssh                   :::*        users:(("sshd",1015,4))
LISTEN     0      128                 ::1:ipp                   :::*        users:(("cupsd",688,10))

6. 통계 현황 출력
$ ss -s
Total: 526 (kernel 0)
TCP:   10 (estab 7, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0

Transport Total     IP        IPv6
*      0         -         -       
RAW      0         0         0       
UDP      15        9         6       
TCP      10        9         1       
INET      25        18        7       
FRAG      0         0         0

7. 연결 유지 시간 출력
$ ss -tn -o
State      Recv-Q Send-Q      Local Address:Port        Peer Address:Port
ESTAB      0      0             192.168.1.2:43839     108.160.162.37:80   
ESTAB      0      0             192.168.1.2:36335     204.144.140.26:80     timer:(keepalive,26sec,0)
ESTAB      0      0             192.168.1.2:33141      83.170.73.249:6667 
ESTAB      0      0             192.168.1.2:58857      74.121.141.84:80     timer:(keepalive,23sec,0)
ESTAB      0      0             192.168.1.2:42794     173.194.40.239:80     timer:(keepalive,32sec,0)

8. IPv4 또는 IPv6 소켓 연결만 출력
  IPv4 소켓 연결만 출력하려면 '-f inet' 옵션이나 '-4' 옵션을 사용한다.
$ ss -tl -f inet
State      Recv-Q Send-Q    Local Address:Port        Peer Address:Port  
LISTEN     0      100           127.0.0.1:smtp                   *:*      
LISTEN     0      128           127.0.0.1:9050                   *:*      
LISTEN     0      128                   *:90                     *:*      
LISTEN     0      128                   *:db-lsp                 *:*      
LISTEN     0      5             127.0.0.1:6600                   *:*
  IPv6 연결만 출력하려면 '-f inet6' 옵션이나 '-6' 옵션을 사용한다.
$ ss -tl6
State      Recv-Q Send-Q    Local Address:Port        Peer Address:Port  
LISTEN     0      100                 ::1:smtp                  :::*      
LISTEN     0      128                  :::12865                 :::*      
LISTEN     0      128                  :::http                  :::*      
LISTEN     0      128                  :::ssh                   :::*      
LISTEN     0      128                 ::1:ipp                   :::*

9. TCP 상태에 따른 필터링
  특정 연결에 대해서만 출력시킬 수 있다. 필터 표현식은 모든 옵션 뒤에 나열해야 한다. 아래와 같은 형식으로 사용할 수 있다.
$ ss [ OPTIONS ] [ STATE-FILTER ] [ ADDRESS-FILTER ]
  "CONNECTED" 상태인 모든 IPv4 TCP 소켓을 출력하는 방법은 아래와 같다.
$ ss -t4 state established
Recv-Q Send-Q         Local Address:Port             Peer Address:Port  
0      0                192.168.1.2:54436          165.193.246.23:https  
0      0                192.168.1.2:43386          173.194.72.125:xmpp-client
0      0                192.168.1.2:38355           199.59.150.46:https  
0      0                192.168.1.2:56198          108.160.162.37:http
  'TIME-WAIT' 상태인 소켓을 출력하는 방법은 아래와 같다.
$ ss -t4 state time-wait
Recv-Q Send-Q         Local Address:Port             Peer Address:Port  
0      0                192.168.1.2:42261           199.59.150.39:https  
0      0                  127.0.0.1:43541               127.0.0.1:2633
  상태는 아래와 같은 것들이 있다.
1. established
2. syn-sent
3. syn-recv
4. fin-wait-1
5. fin-wait-2
6. time-wait
7. closed
8. close-wait
9. last-ack
10. closing
11. all - 위의 모든 상태 포함
12. connected - listen과 closed를 제외한 모든 상태
13. synchronized - syn-sent를 제외한 모든 connected 상태
14. bucket - 미니소켓으로 유지되고 있는 상태(예: time-wait과 syn-recv)
15. big - bucket과 정반대 상태
  syn-sent, syn-recv를 포함한 많은 상태들은 볼 일이 많지 않다. 그런 상태는 매우 짧은 시간 동안만 존재하기 때문이다. 그런 상태를 실시간으로 감지하려면 watch 명령어를 사용하는 것이 좋다.
$ watch -n 1 "ss -t4 state syn-sent"
  위의 명령어를 실행한 후 브라우저에서 아무 웹사이트나 열어보거나 뭔가를 다운로드 하고 즉시 출력 결과를 살펴보면 짧은 시간 동안 아래처럼 특수한 상태를 확인할 수 있다.
Every 1.0s: ss -t4 state syn-sent                   Tue Apr  1 10:07:33 2014
Recv-Q Send-Q           Local Address:Port               Peer Address:Port
0      1                  192.168.1.2:55089            202.79.210.121:https
0      1                  192.168.1.2:33733             203.84.220.80:https
0      1                  192.168.1.2:36240             106.10.198.33:https

10. 주소와 포트 번호로 출력 걸러내기
  출발지나 목적지 포트가 SSH인 모든 소켓 연결을 출력
$ ss -at '( dport = :ssh or sport = :ssh )'
State      Recv-Q Send-Q    Local Address:Port        Peer Address:Port  
LISTEN     0      128                   *:ssh                    *:*      
LISTEN     0      128                  :::ssh                   :::*
  목적지 포트가 443이나 80인 소켓
$ ss -nt '( dst :443 or dst :80 )'
State      Recv-Q Send-Q      Local Address:Port        Peer Address:Port
ESTAB      0      0             192.168.1.2:58844      199.59.148.82:443  
ESTAB      0      0             192.168.1.2:55320     165.193.246.23:443  
ESTAB      0      0             192.168.1.2:56198     108.160.162.37:80   
ESTAB      0      0             192.168.1.2:54889    192.241.177.148:443  
ESTAB      0      0             192.168.1.2:39893      173.255.230.5:80   
ESTAB      0      0             192.168.1.2:33440      38.127.167.38:443
  아래의 명령어로 위와 같은 효과를 얻을 수 있다.
$ ss -nt dst :443 or dst :80
  기타 예제
# 주소로 걸러내기
$ ss -nt dst 74.125.236.178

# CIDR 표기법도 지원
$ ss -nt dst 74.125.236.178/16

# 주소와 포트 모두 이용
$ ss -nt dst 74.125.236.178:80
  포트는 dport와 sport 옵션을 통해서도 걸러낼 수 있다. 포트 번호 앞에는 ":"을 반드시 붙여야 한다.
$ ss -nt dport = :80
State      Recv-Q Send-Q      Local Address:Port        Peer Address:Port
ESTAB      0      0             192.168.1.2:56198     108.160.162.37:80   
ESTAB      0      0             192.168.1.2:39893      173.255.230.5:80   
ESTAB      0      0             192.168.1.2:55043     74.125.236.178:80
  'ss -nt dst :80' 명령어로 위의 명령어와 같은 효과를 볼 수 있다.

  아래는 필터링에 대한 다른 예제이다.
# 출발지 주소가 127.0.0.1이며 출발지 포트가 5000보다 큰 경우
$ ss -nt src 127.0.0.1 sport gt :5000

# 로컬 SMTP(25번 포트) 소켓
$ sudo ss -ntlp sport eq :smtp

# 포트 번호가 25보다 큰 경우
$ sudo ss -nt sport gt :1024

# 원격지의 포트가 100 미만인 경우
$ sudo ss -nt dport \< :100

# 원격지 포트 80번에 대한 연결
$ sudo ss -nt state connected dport = :80
  아래 연산자는 포트 번호를 비교할 때 사용할 수 있다.
<= or le : 포트 이하
>= or ge : 포트 이상
== or eq : 해당 포트
!= or ne : 해당 포트가 아닌 포트
< or gt : 포트 미만
> or lt : 포트 초과
  필터 문법에 대한 문서는 iproute2-doc 패키지(데비안/우분투 시스템 기준)에 있으며 /usr/share/doc/iproute2-doc/ss.html 파일에 ss 명령어의 필터 문법이 상세히 기록되어 있다.


2014/10/21 15:45 2014/10/21 15:45
Posted
Filed under 프로그램과 명령어/네트워크와 보안
참조 원문 : How to conduct security vulnerability assessment of a remote server with OpenVAS

  OpenVAS는 취약점 스캐닝 및 관리 도구로 이루어진 오픈 소스 프레임워크로서 GPL 라이선스로 다양한 플랫폼에서 자유롭게 사용할 수 있습니다.

출처: http://www.openvas.org/

  이 글에서는 OpenVAS로 원격 서버에 대한 보안 취약점 분석 방법을 알아보겠습니다. OpenVAS는 소스 코드나 리눅스 패키지로 설치할 수 있으며 원한다면 가상 어플라이언스로서 실행하는 것도 가능합니다. 이 글에서는 VirtualBox를 이용해 가상 어플라이언스로 돌리는 것을 기준으로 하겠습니다.


1. OpenVAS 가상 어플라이언스 설치
  먼저 OpenVAS OVA 이미지를 내려받습니다. 그 후 VirtualBox를 실행하고 "Import Appliance"를 선택하여 OVA 이미지를 추출합니다. "Bridge Adapter"를 선택하고 스캔 대상이 있는 네트워크에 연결합니다.

  OpenVAS 어플라이언스를 켭니다. 콘솔 스크린이 나타나면 root로 로그인합니다. 디폴트 root 패스워드는 "root"입니다.

  OpenVAS는 Debian Squeeze를 기반으로 합니다. 기본적으로 설치 직후에 기반 시스템을 업그레이드하여 최신 보안 업데이트를 설치하는 것이 좋습니다.
# apt-get dist-upgrade
# apt-get upgrade
  미리 설치된 암호키를 제거한 뒤, 새로운 키를 생성합니다. 이 키는 인증된 스캔 결과와 기타 인증 정보를 암호화할 때 사용합니다.
# gpg --homedir=/usr/local/etc/openvas/gnupg --delete-secret-keys 94094F5B
# gpg --homedir=/usr/local/etc/openvas/gnupg --delete-keys 94094F5B
# openvasmd --create-credentials-encryption-key
  참고로 위의 키 생성 작업은 많은 시간을 소요할 수 있습니다.(최대 60분) 키 생성이 끝나면 OpenVAS 매니저를 재시작합니다.
# /etc/init.d/openvas-manager restart
  OpenVAS에는 Greenbone Security Assistant라는 웹 클라이언트가 포함되어 있습니다. 이 웹 클라이언트는 OpenVAS의 모든 기능을 활용하기 위해 최적화된 웹 기반의 인터페이스를 제공합니다.

2. OpenVAS 관리 웹 인터페이스에 접속
  OpenVAS의 웹 인터페이스에 접속하려면 https://<OpenVAS 어플라이언스의 IP 주소>로 접속합니다. OpenVAS는 자체 서명한 SSL 인증서를 사용합니다. 그러므로 웹 브라우저로 처음 접속했을 때 예외 사이트로 등록해야 합니다. 미리 설정된 관리용 OpenVAS 계정(login: "admin", 패스워드: "admin")으로 로그인합니다. 그러면 아래와 같은 OpenVAS의 메인 윈도우를 볼 수 있습니다.

출처: 참조 원문 사이트


3. 스캔 대상 설정
  먼저 할 일은 스캔 대상(예: 스캔할 원격 호스트)을 설정하는 겁니다. "Configuration" -> "Targets" 메뉴에서 새로운 대상을 추가하기 위해 별 모양의 아이콘을 클릭합니다.

  "manual"을 선택하여 원격 호스트의 IP 주소를 입력합니다. 드랍 다운 리스트에서 포트 리스트를 선택합니다. 완료하면 "Create Target" 버튼을 클릭합니다.

출처: 참조 원문 사이트


4. 설정과 스캔 시작
  스캐닝 시작을 위해 새로운 작업을 생성합니다. "Scan Management" -> "New Task" 메뉴를 선택합니다. 새로운 스캔의 이름을 입력합니다. "Scan Config"에서 원하는 설정을 선택합니다. 이것은 어떤 취약점 테스트를 진행할지를 결정합니다. 밑에서도 설명하겠지만 원하는대로 직접 scan config를 만들 수도 있습니다. "Scan Target"에서 아까 만든 대상을 선택합니다. 모든 선택이 끝나면 "Create Task" 버튼을 클릭합니다.

출처: 참조 원문 사이트

  작업을 생성하면 "Actions" 필드에 있는 "Play" 버튼을 클릭하여 대상에 대한 스캐닝을 시작합니다. Task Details 페이지에서 스캔 진행률을 확인할 수 있습니다.

출처: 참조 원문 사이트


5. 취약점 스캔 보고서 확인
  스캔이 끝난 후 "Actions" 필드에 있는 돋보기 아이콘을 클릭하여 스캔 결과의 요약 내용을 확인할 수 있습니다.

  스캔 결과는 "High", "Medium", "Low" 위험도로 분류되며, 자세한 로그도 포함하고 있습니다. 밝혀진 보안 문제마다 요약된 취약점 내용, 영향도, 관계된 소프트웨어/OS, 보완 방법을 보고합니다. 아래는 샘플 스캔 보고서의 스크린샷입니다.

출처: 참조 원문 사이트

  원한다면 스캔 보고서를 다운로드가 가능한 문서로 출력할 수 있습니다. OpenVAS는 스캔 보고서를 PDF, TXT, HTML, XML을 포함한 다양한 포맷으로 출력하는 것을 지원합니다.

  또한 "Asset Management" -> "Hosts" 메뉴를 통해 각 스캔 대상에 대해 자세한 "prognostic(진단)" 보고서를 확인할 수 있습니다. 조사를 원하는 대상에 대해 "Prognostic Report" 아이콘을 클릭합니다. 위에서 이미 설명했던 스캔 보고서가 특정 스캔에 대한 결과를 제공했다면, 진단 보고서는 특정 호스트에 대한 모든 이전 스캔의 총체적인 결과를 자세히 제공합니다. 일반적인 진단 보고서는 아래와 같이 생겼습니다.

출처: 참조 원문 사이트


6. 취약점 스캔을 원하는대로 설정하기
  스캔 설정을 원하는대로 생성하거나 수정하는 것도 가능합니다. 이미 있는 스캔 설정을 보려면 "Configuration" -> "Scan Configs"로 갑니다. 아래는 스캔 설정이 네트워크 취약점 테스트(NVTs) 목록을 포함하고 있는 모습입니다. 현재 스캔 설정을 수정하기 위해 설정을 XML로 출력할 수 있으며, 그것을 수정한 후 다시 읽어들일 수 있습니다.

출처: 참조 원문 사이트

  또한 "Configuration" -> "Port Lists"에서 스캔할 포트의 목록도 수정할 수 있습니다.

출처: 참조 원문 사이트


7. 최신 취약점 테스트 도구 다운로드
  OpenVAS 프로젝트는 네트워크 취약점 테스트(NVTs), 보안 컨텐트 자동화 프로토콜(SCAP), CERT 자문의 공개 정보 공급을 유지하고 있습니다. 간단히 "Administration"에서 "Synchronizing with Feed now" 버튼을 클릭함으로써 최신 정보 공급을 반영할 수 있습니다.

출처: 참조 원문 사이트

2013/08/18 17:12 2013/08/18 17:12
Posted
Filed under 프로그램과 명령어/네트워크와 보안
참조 원문 : 10 Useful “IP” Commands to Configure Network Interfaces
관련 글 : [리눅스] iproute2의 유용한 명령어들

  이 글에서는 리눅스에서 deprecated된(하지만 아직 사용 가능한) ifconfig 대신 ip 명령어로 IP, 정적 라우트, 디폴트 게이트웨이 등을 설정하는 방법을 다룹니다.

0. 설정 파일을 통해 관련 정보를 설정하는 방법
  IP 관련 정보를 영구적으로 변경하려면 네트워크 설정 파일을 수정해야 합니다. 물론 관련 파일의 수정 및 네트워크 서비스 재시작에 root 권한이 필요합니다.

  레드햇 계열은 /etc/sysconfig/network-scripts/ifcfg-eth0 파일(eth0 부분을 알맞은 인터페이스명으로 변경)을 수정하여 변경할 수 있습니다. 아래는 해당 파일 내용의 예입니다.
DEVICE="eth0"
BOOTPROTO=static
ONBOOT=yes
TYPE="Ethernet"
IPADDR=192.168.50.2
NAME="System eth0"
HWADDR=00:0C:29:28:FD:4C
GATEWAY=192.168.50.1
  데비안 계열은 /etc/network/interfaces 파일을 통해 변경할 수 있습니다.
auto eth0
iface eth0 inet static
address 192.168.50.2
netmask 255.255.255.0
gateway 192.168.50.1
  설정 변경 후 네트워크 서비스를 재시작합니다. 루트 권한이 필요합니다.
# /etc/init.d/networking restart

1. 특정 인터페이스에 IP 설정
# ip addr add 192.168.50.5 dev eth0

2. IP 확인
# ip addr show

3. IP 제거
# ip addr del 192.168.50.5/24 dev eth0

4. 네트워크 인터페이스 활성화
# ip link set eth0 up

5. 네트워크 인터페이스 비활성화
# ip link set eth1 down

6. 라우트 테이블 확인
# ip route show

7. 정적 라우트 추가
# ip route add 10.10.20.0/24 via 192.168.50.100 dev eth0

8. 정적 라우트 제거
# ip route del 10.10.20.0/24

9. 정적 라우트를 영구적으로 추가
  위 명령어들로 하는 모든 설정들은 리부팅을 하면 전부 사라집니다. 정적 라우트를 영구적으로 추가하려면 관련 파일에 해당 정보를 추가해야 합니다.

(1) 레드햇 계열
# vi /etc/sysconfig/network-scripts/route-eth0
10.10.20.0/24 via 192.168.50.100 dev eth0
(2) 데비안 계열
$ sudo vi /etc/network/interfaces
up ip route add 10.10.20.0/24 via 192.168.50.100 dev eth0
   그 후 네트워크 서비스를 재시작해야 합니다.

10. 디폴트 게이트웨이 추가
# ip route add default via 192.168.50.100


2013/07/09 17:08 2013/07/09 17:08
Posted
Filed under 프로그램과 명령어/네트워크와 보안
참조 원문 : Some useful command with iproute2

  iproute2는 단일 프로그램이 아닌 패키지 이름으로서 과거 유닉스의 네트워크 관련 명령어들(흔히 net-tools 패키지로 불림)이 10년 이상 변화 없이 존재하자 그것들을 대체하기 위해 탄생했습니다. 이 글에서는 이 새로운 슈트로 기존 명령어들을 어떻게 대체할 수 있는지 알아보겠습니다.

1. 인터페이스 설정
  아래는 인터페이스를 활성화시키고 IP를 부여하는 기존 방법입니다.
# ifconfig eth0 up
# ifconfig eth0 192.168.1.1 netmask 255.255.255.0
  아래는 iproute2를 활용하는 방법입니다.
# ip link set eth0 up
# ip addr add 192.0.2.1/24 dev eth0
또는
# ip addr add 192.0.2.1 25.255.255.0 dev eth0
  결과를 확인하거나 시스템에 설정된 IP 주소를 확인하는 방법은 아래와 같습니다. 처음 2개는 같은 결과를 보여주며 세 번째 방법은 eth0 장치의 IP만 보여줍니다.
# ip addr ls
# ip addr show
# ip addr ls eth0

2. 이더넷 앨리어스 생성하기
  eth0의 IP가 192.0.2.1이라고 가정했을 때 IP가 192.0.2.2인 eth0:0 앨리어스를 생성하는 예전 방법은 아래와 같았습니다.
# ifconfig eth0:0 192.0.2.2 up
  과거에는 콜론과 숫자를 넣어 해당 IP가 앨리어스임을 표현했으나 iproute2에서는 그냥 처음과 같은 방법으로 IP를 앨리어스로서 추가할 수 있습니다.
# ip addr add 192.0.2.2 255.255.255.0 dev eth0

3. 라우팅
  과거의 route -n을 대체하는 명령어는 ip ro 입니다. 아래는 두 명령어의 결과를 보여주고 있습니다.
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
0.0.0.0         192.168.2.1     0.0.0.0         UG    0      0        0 eth0

# ip ro
192.168.2.0/24 dev eth0  proto kernel  scope link  src 192.168.2.10
169.254.0.0/16 dev eth0  scope link  metric 1002
default via 192.168.2.1 dev eth0  proto static
  경로를 추가하거나 제거하는 방법은 아래와 같습니다.
# ip ro add 10.0.0.0/16 via 192.168.0.1
# ip ro del 10.0.0.0/16 via 192.168.0.1

4. 어떤 주소까지의 경로 찾기
  여러 인터페이스가 있는 상태에서 각각 다른 용도로 사용하고 있을 때 특정 IP까지 어떤 인터페이스의 IP와 게이트웨이를 이용하는지 조사하는 명령어는 아래와 같습니다.
# ip route get 8.8.8.8
8.8.8.8 via 192.168.0.1 dev wlan0  src 192.168.0.3

5. MAC 주소
  유닉스 머신에서 ARP 테이블을 확인하는 명령어인 arp -na와 같은 역할을 하는 iproute2 명령어는 아래와 같습니다.
# ip n
또는
# ip neigh
또는
# ip neighbor
192.168.2.1 dev eth0 lladdr 00:26:66:d4:eb:24 REACHABLE
2013/07/08 03:15 2013/07/08 03:15
Posted
Filed under 프로그램과 명령어/네트워크와 보안
참조 원문 : Using OpenSSL to encrypt messages and files on Linux

  OpenSSL로 키를 만들어 사용하는 건 많이 볼 수 있어도 직접 암호화에 사용하는 경우는 은근히 없죠. 여기서는 OpenSSL로 파일을 직접 암호화하는 방법과 복호화하는 방법을 알아보겠습니다.

1. 메시지 암복호화
  파일을 암호화하기 전에 메시지를 암복호화하는 방법을 먼저 알아보겠습니다. 아래는 문자열을 Base64 인코딩으로 암호화하는 명령어입니다.
$ echo "abc" | openssl enc -base64
YWJjCg==
  출력 결과가 암호화된 결과입니다. 복호화할 땐 -d 옵션을 붙입니다.
$ echo "YWJjCg==" | openssl enc -base64 -d
  근데 키를 사용하지 않은 암호화이므로 사실상 의미가 없죠. 키를 사용한 암호화 예는 다음과 같습니다.
$ echo "OpenSSL" | openssl enc -aes-256-cbc -a
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
U2FsdGVkX1/JemLPx7cmSW3Ik8M2Od7kSRvTW+BuI8w=
  키를 사용한 복호화 예는 아래와 같습니다.
echo "U2FsdGVkX1/JemLPx7cmSW3Ik8M2Od7kSRvTW+BuI8w=" | openssl enc -aes-256-cbc -d -a
enter aes-256-cbc decryption password:
OpenSSL
  파일로 입출력하는 방법은 아래와 같습니다.
$ echo "OpenSSL" | openssl enc -aes-256-cbc > openssl.dat
$ openssl enc -aes-256-cbc -d -in openssl.dat

2. 파일 암복호화
  위 방법과 비슷한데 차이가 있다면 echo 대신 -in 옵션과 -out 옵션으로 암복호할 파일을 선택하는 것입니다.
$ openssl enc -aes-256-cbc -in /etc/services -out services.dat
$ openssl enc -aes-256-cbc -d -in services.dat > services.txt
enter aes-256-cbc decryption password:

3. 디렉토리 암복호화
  그냥 tar로 묶어서 넘기고, 넘기받아 푸는 방법입니다.
# tar cz /etc | openssl enc -aes-256-cbc -out etc.tar.gz.dat
tar: Removing leading `/' from member names
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:

# openssl enc -aes-256-cbc -d -in etc.tar.gz.dat | tar xz
enter aes-256-cbc decryption password:

4. 공개키와 개인키 사용방법
  먼저 개인키와 공개키를 생성합니다.
개인키를 생성
$ openssl genrsa -out private_key.pem 1024
Generating RSA private key, 1024 bit long modulus
............................++++++
..........++++++
e is 65537 (0x10001)

개인키를 이용해 공개키를 생성
$ openssl rsa -in private_key.pem -out public_key.pem -outform PEM -pubout
writing RSA key
공개키로 암호화하는 방법은 아래와 같습니다.
$ openssl rsautl -encrypt -inkey public_key.pem -pubin -in encrypt.txt -out encrypt.dat
개인키로 복호화하는 방법은 아래와 같습니다.
$ openssl rsautl -decrypt -inkey private_key.pem -in encrypt.dat -out new_encrypt.txt
2013/07/07 13:07 2013/07/07 13:07
Posted
Filed under 프로그램과 명령어/네트워크와 보안
참조 원문 : Basics of SELinux in Linux

1. SElinux란?
  SELinux는 전체적인 보안성을 향상시키기 위해 머신에 적용하는 보안 정책/모듈의 집합체입니다. 서비스/파일 접근에 대한 보안을 향상시키기 위해 커널에 로드되는 리눅스 보안 모듈(LSM)이죠. SELinux는 Security Enhanced Linux의 약어입니다. RHEL5부터 기본적으로 탑재되어 있으며 어떤 보안 기능보다 뛰어납니다.

2. SELinux의 설정
  SELinux에는 3가지 모드가 있습니다.
  • Enforcing - SELinux를 활성화시키고 SELinux 정책을 시행합니다.
  • Permissive - 정책을 시행하는 대신 경고만 출력합니다.
  • Disabled - SELinux 정책을 로드하지 않습니다. SELinux 정책을 완전히 비활성화시킵니다.
  또한 2가지 레벨이 있습니다.
  • Targeted - 대상으로 삼은 프로세스를 보호합니다.
  • Mls - 다중 레벨 보안(Multi Level Security) 보호 상태입니다.

3. SELinux 상태 확인
(1) SELinux가 활성된 상태인지 확인
# getenforce
Disabled

(2) SELinux의 상태 확인
# sestatus
SElinux status : enabled
SELinux mount : /selinux
Current mode : enforcing
Mode from config file : enforcing
Policy version : 21
Policy from config file : targeted
  -b 옵션을 사용하면 각종 옵션 현황을 확인할 수 있습니다.

3. SELinux 비활성화시키기
(1) 영구히 SELinux를 비활성화시키는 방법
  /etc/selinux/config 파일에서
SELINUX=enforcing

SELINUX=disabled
로 수정합니다.

(2) 일시적으로 SELinux를 비활성화시키는 방법
echo 0 > /selinux/enforce
또는
setenforce 0

4. SELinux 활성화시키기
(1) 영구히 SELinux를 활성화시키는 방법
  /etc/selinux/config 파일에서
SELINUX=disabled

SELINUX=enforcing
로 수정합니다.

(2) 일시적으로 SELinux를 활성화시키는 방법
echo 1 > /selinux/enforce
또는
setenforce 1
2013/07/04 00:39 2013/07/04 00:39