[작성자:] webhost2

  • rocky linux 보안 iptables 설정하기

    rocky linux 서버 보안관련

    iptables 설정하기

    # vim /etc/sysconfig/iptables

    #Firewall configuration written by system-config-securitylevel

    #Manual customization of this file is not recommended.

    *filter
    :INPUT ACCEPT [0:0]
    :FORWARD ACCEPT [0:0]
    :OUTPUT ACCEPT [0:0]
    :RH-Firewall-1-INPUT – [0:0]
    -A INPUT -j RH-Firewall-1-INPUT
    -A FORWARD -j RH-Firewall-1-INPUT
    -A RH-Firewall-1-INPUT -i lo -j ACCEPT
    -A RH-Firewall-1-INPUT -i eth0 -j ACCEPT
    -A RH-Firewall-1-INPUT -p icmp –icmp-type any -j ACCEPT
    -A RH-Firewall-1-INPUT -p 50 -j ACCEPT
    -A RH-Firewall-1-INPUT -p 51 -j ACCEPT
    -A RH-Firewall-1-INPUT -p udp –dport 5353 -d 224.0.0.251 -j ACCEPT
    -A RH-Firewall-1-INPUT -p udp -m udp –dport 631 -j ACCEPT
    -A RH-Firewall-1-INPUT -p tcp -m tcp –dport 631 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
    -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport xxxx -j ACCEPT 추가하고싶은 포트 적어넣기
    -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 25 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 53 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state –state NEW -m udp -p udp –dport 53 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 443 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3389 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 873 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 953 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 49152:65534 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 5000 -j ACCEPT
    -A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 5100 -j ACCEPT
    -A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited
    COMMIT

    저장한 후에

    # systemctl start iptables

    동작 확인하기

    # systemctl status iptables

    # iptable -nvL

    [root@danda33 /]# iptables -nvL
    Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target prot opt in out source destination
    220 36973 RH-Firewall-1-INPUT all — * * 0.0.0.0/0 0.0.0.0/0

    Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts bytes target prot opt in out source destination
    0 0 RH-Firewall-1-INPUT all — * * 0.0.0.0/0 0.0.0.0/0

    Chain OUTPUT (policy ACCEPT 134 packets, 18961 bytes)
    pkts bytes target prot opt in out source destination

    Chain RH-Firewall-1-INPUT (2 references)
    pkts bytes target prot opt in out source destination
    17 5573 ACCEPT all — lo * 0.0.0.0/0 0.0.0.0/0
    203 31400 ACCEPT all — eth0 * 0.0.0.0/0 0.0.0.0/0
    0 0 ACCEPT icmp — * * 0.0.0.0/0 0.0.0.0/0 icmptype 255
    0 0 ACCEPT esp — * * 0.0.0.0/0 0.0.0.0/0
    0 0 ACCEPT ah — * * 0.0.0.0/0 0.0.0.0/0
    0 0 ACCEPT udp — * * 0.0.0.0/0 224.0.0.251 udp dpt:5353
    0 0 ACCEPT udp — * * 0.0.0.0/0 0.0.0.0/0 udp dpt:631
    0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:631
    0 0 ACCEPT all — * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
    0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
    0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:xxxx 추가한 포트들
    0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
    0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:21
    0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25
    0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:53
    0 0 ACCEPT udp — * * 0.0.0.0/0 0.0.0.0/0 state NEW udp dpt:53
    0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443
    0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3306
    0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:3389
    0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:873
    0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:953
    0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpts:49152:65534
    0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:5000
    0 0 ACCEPT tcp — * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:5100
    0 0 REJECT all — * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
    [root@]#

    기록 : 2025-03-23

  • Linux server 초기 퍼미션 설정

    리눅스 서버

    초기설정시

    서버의 퍼미션설정 정보입니다.

    cd /
    chmod 711 .
    chmod 711 /
    chmod 1777 tmp
    chmod 500 proc

    #

    기록 : 2025-03-23

  • 워드프레스 siteurl 수정하기

    MariaDB [webhost2]> desc wp_options;
    +————–+———————+——+—–+———+—————-+
    | Field | Type | Null | Key | Default | Extra |
    +————–+———————+——+—–+———+—————-+
    | option_id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
    | option_name | varchar(191) | NO | UNI | | |
    | option_value | longtext | NO | | NULL | |
    | autoload | varchar(20) | NO | MUL | yes | |
    +————–+———————+——+—–+———+—————-+
    4 rows in set (0.001 sec)

    MariaDB [webhost2]> select * from wp_options where option_name=’siteurl’;
    +———–+————-+—————————–+———-+
    | option_id | option_name | option_value | autoload |
    +———–+————-+—————————–+———-+
    | 2 | siteurl | https://www.webhost.co.kr/wp | on |
    +———–+————-+—————————–+———-+
    1 row in set (0.000 sec)

    MariaDB [webhost2]> update wp_options set option_value=’http://demo9.webhost.co.kr/wp’ where option_value=’https://www.webhost.co.kr/wp’;
    Query OK, 2 rows affected (0.002 sec)
    Rows matched: 2 Changed: 2 Warnings: 0

    MariaDB [webhost2]> flush privileges;
    Query OK, 0 rows affected (0.008 sec)

    MariaDB [webhost2]>

    워드프레스에 사이트주소가 잘못된 경우 접속이 안됩니다.

    이때 mysql db에서 바로 수정하는 방법입니다.

    기록 : 2025-03-21

  • 서버보드 에러시 스피커소리에 따른 증상

    ▩ 제목 Bios 의 비프음으로 에러내용 진단하기
    ▩ 작성자 이원준 (jooni2)
    ▩ 작성일 2004-01-28
    ▩ 내용 컴퓨터를 조립하다가 보면
    이유없이 부팅이 안되는 경우가 종종 있을수 있습니다.
    이때 메인보드의 나는 비프음을 듣고 대충 어느부분에 문제가 있는지 알수있습니다.

    *AWARD BIOS *
    짧은 신호음1회: 시스템 부팅성공
    짧은 신호음2회: CMOS 설정 오류
    긴 신호음1회, 짧은 신호음1회: DRAM또는 마더보드 오류
    긴 신호음1회, 짧은 신호음2회: 모니터 또는 디스플레이 카드 오류
    긴 신호음1회, 짧은 신호음3회: 키보드 오류
    긴 신호음1회, 짧은 신호음9회: BIOS ROM 오류
    긴 연속 신호음: DRAM 오류
    짧은 연속 신호음: 전원 오류

    *AMI BIOS *
    -시스템이 성공적으로 부팅 되면 짧은 신호음이 1회 나옵니다.
    -신호음 코드 8번을 제외한 나머지 코드들은 항상 치명적입니다.
    신호음1회: 리프레시(refresh) 장애
    신호음2회: 패리티(parity)오류
    신호음3회: 베이스64K 메모리 장애
    신호음4회: 타이머 작동안함
    신호음5회: 프로세서 오류
    신호음6회: 8042- 게이트 A20장애
    신호음7회: 프로세서 예외 중단 (exception interrupt)오류
    신호음8회: 디스플레이 메모리 읽기/쓰기 장애
    신호음9회: ROM검사합(checksum)오류
    신호음10회: CMOS셧다운 레지스터(shutdown register)읽기/쓰기 오류
    신호음11회: 캐시 메모리 불량

    흔히 있는 경우가 주로 램이나 VGA카드 때문에 에러가 많이 나는데,
    이때는 뺐다가 다시 잘 꽂아보시거나, 슬롯과 접촉되는 금도금부분을
    (지우개로) 잘 닦아서 꽂으면 해결되는 경우가 많습니다.

    자료 : pc4all.co.kr

    1. 한 번 짧게 -> 이러한 소리는 정상적인 소리입니다. 가장 듣기 좋은 소리죠.

    2. 한 번 길게 -> 메모리의 리프레시(Refresh) 사이클 과정에서 에러가 생긴 경우입니다.
    ☞ 메모리를 확실하게 다시 꽂아봅니다. 그래도 계속 같은 비프음이 나온다면 메모리를 교체해야 합니다.

    3. 2번 -> 패리티 이상입니다. 시스텀의 기본 메모리(처음의 64KB)에서 패리티 에러가 생긴 경우죠. 해결 방법은 [2번]과 동일.

    4. 3번 -> 64KB의 기본 메모리에 이상이 생긴 경우입니다. 해결 방법은 [2번]과 동일.

    5. 4번 -> 타이머가 동작하지 않는 경우입니다. 기본 메모리에서 메모리 이상을 발견했거나 시스템의 첫번째 타이머가 동작하지 않습니다.
    ☞ 이때는 거의 메모리와 메인보드의 불량입니다.
    가장 많이 나타나는 오류의 하나로 사용자가 실수로 설치 과정 중
    메인 보드에 충격을 줄 수도 있습니다.
    깨끗하게 없었던 것으로 하고 “바꿔”(누구 노래 같다…)

    6. 5번 -> 프로세서의 이상입니다. 즉, CPU에서 에러를 발견했다는 소리죠.
    ☞ CPU나 메인보드를 “바꿔” …이렇게 5회 이상을 넘기게 되면 오늘을 넘기기 어렵습니다.
    CPU나 그래픽 카드, 사운드 카드 등의 이상에서 많이 나타나죠.

    7. 6번 -> 이 경우는 복잡한 경우입니다. 어려운 말로 8042-게이트 A20 에러입니다. 키보드 컨트롤러(8042)는 CPU를 가상 모드에서 작동시키기 위해서 게이트 A20 이라는 스위치를 가지고 있습니다. 이 에러는 CPU를 보호모드에서 동작시킬 수 없음을 의미합니다 (에이 무신말 인지…).
    ☞ 키보드 컨트롤러 칩을 다시 꽂아 봅니다. 그래도 해결되지 않으면 키보드 컨트롤러 칩을 교체해야죠. 여기까지의 시도가 먹혀 들어가지 않으면 키보드의 퓨즈 또는 키보드 자체를 “바꿔”

    8. 7번 -> 시스템의 프로세서가 익셉션 인터럽트 에러(Exception interrupt Error)를 발생시켰습니다.
    ☞ 메인보드 불량이니 교체 바랍니다.

    9. 8번 -> 그래픽 카드를 찾을 수 없거나 그래픽 카드의 메모리에 이상이 있는 경우입니다.
    ☞ 그래픽카드의 메모리를 교체하면 됩니다. 교체할 수 없거나 교체를 해도 에러가 나오면 그래픽 카드의 몸통을 바꿔야죠.

    10. 9번 -> 롬(Rom)의 체크 값이 바이오스에 기록된 것과 다른 경우입니다.
    ☞ 새로운 바이오스 롬 칩을 써야 합니다.(앗! ..CIH다!)

    11. 10번 -> CMOS 메모리의 셧다운 레지스터에 이상이 있는 경우입니다.
    ☞ 메인보드 불량입니다. 결국 메인보드를 바꿔야 한다는 소리죠.

    12. 비프음이 계속된다 -> 전원이나 파워 서플라이 문제입니다.

    13. 짧은 비프음이 계속 -> 확장 슬롯에서 카드접속 불량이나 합선일 경우입니다.

    14. 긴 비프음 한 번 후, 짧은 비프음 한 번 -> 메인보드의 고장일 가능성이 높습니다.

    15. 부팅시 한 번의 비프음 이후 화면에 아무것도 나타나지 않거나, 긴 비프음 한 번 후 다시 짧은 비프음 한 번 -> 비디오 카드의 불량인 경우

    16. 긴 비프음 한 번 후 다시 짧은 비프음 두 번, 긴 비프음 한 번 후 긴 비프음 세 번 -> 비디오 카드 접속 상태를 점검하세요.

    17. 짧은 비프음과 함께 화면에 ‘keyboard error’출력 -> 키보드 접속 불량이니 접속을 확실히 해보세요.(무엇이든지 구멍에 맞추어 잘 끼워야지요 헤헤…)

    18. 기타 이외에도 다른 비프음이 나는 경우는 주로 슬롯에 끼워진 카드들이 제대로 끼워지지 않은 경우가 많습니다.

  • ncftpget 으로 백업하기

    [root@mail WEBHOST]# ncftpget -R -u 아이디 -p 비밀번호 -P 포트번호 도메인명 . ‘상대경로’
    점(.)은 현재폴더를 의미합니다.
    상대경로란 /test 라 하면, 도메인명/test가 된다는 것입니다.
    즉, 아이디의 상대경로다음부터 적용되는 폴더입니다.

  • 서버셋팅시, 서버퍼미션설정 (서버초기작업시)

    Name    
       rootman  

    Subject  
       서버세팅시 방장의 퍼미션 권한 설정

    간만에 제 홈페이지를 들어오네요.. 휴~~
    바쁭건 아닌데.. 여유가 좀처럼 없네요.

    서버세팅시 제가 즐겨설정하는 것입니다.
    auto.sh 라는 화일을 만들어서 퍼미션 및 유저를 삭제합니다..

    해당 사항은 아래와 같습니다.

    보탬이나, 부족한 부분있으면 덧붙여 주십시요.. ^^…………

    #!/bin/sh
    # 제목 : 퍼미션 및 유저삭제
    #
    chmod 700 /usr/bin/finger
    chmod 700 /usr/bin/nslookup
    chmod 700 /usr/bin/gcc
    chmod 700 /usr/bin/suidperl
    chmod 700 /usr/bin/whereis
    chmod 700 /usr/bin/cc
    chmod 700 /usr/bin/chage
    chmod 700 /usr/bin/chfn
    chmod 700 /usr/bin/sperl5.00503
    chmod 700 /usr/bin/c++
    chmod 700 /usr/bin/make
    chmod 755 /usr/bin/man
    chmod 700 /usr/bin/nslookup
    chmod 700 /usr/bin/pstree
    chmod 700 /usr/bin/rlog
    chmod 700 /usr/bin/rlogin
    chmod 700 /usr/bin/which
    chmod 700 /usr/bin/who
    chmod 700 /usr/bin/write
    chmod 700 /usr/bin/wall
    chmod 700 /usr/bin/w

    chmod 700 /usr/sbin/usernetctl
    chmod 700 /sbin/netreport
    chmod 750 /sbin/ifconfig
    chmod 700 /bin/mount
    chmod 700 /bin/umonut
    chmod 750 /bin/mail
    chmod 750 /bin/ps
    chmod 750 /bin/df
    chmod 750 /bin/dmesg

    chmod 700 /etc/fstab
    chmod 700 /etc/exports

    chmod 644 /etc/hosts
    chmod 644 /etc/hosts.deny
    chmod 644 /etc/hosts.allow
    * 이 부분을 600등으로 막으면, imap쪽 getaddress가 동작하지 않음 – 주의할것

    chmod -R 700 /etc/sysconfig/
    chmod -R 700 /var/log/

    chgrp wheel /sbin/ifconfig
    chgrp wheel /bin/ps
    chgrp wheel /bin/netstat
    chgrp wheel /bin/dmesg
    chgrp wheel /bin/df
    chgrp wheel /usr/bin/w
    chgrp wheel /usr/bin/who
    chgrp wheel /usr/bin/finger
    chgrp wheel /usr/bin/last
    chgrp wheel /usr/bin/top

    chattr +i /etc/mail/sendmail.cf or /etc/sendmail.cf
    chattr +i /etc/mail/local-host-names
    chattr +i /etc/mail/aliases or /etc/aliases
    chattr +i /etc/mail/access
    chattr +i /etc/services

    chmod 4750 /sbin/dump
    #——————————————————————
    userdel adm && userdel lp && userdel sync && userdel shutdown
    userdel halt && userdel news && userdel uucp && userdel operator
    userdel games && userdel gopher && userdel ftp
    #——————————————————————
    groupdel adm && groupdel lp && groupdel news && groupdel uucp
    groupdel games && groupdel games && groupdel dip
    groupdel pppusers && groupdel slipusers
    #——————————————————————

  • mysql 의 root 비밀번호 분실시 대처요령

    1. mysqld 를 중지시킨다.

    2. bin폴더 혹은 실행파일중에서 아래 명령을 실행

    /usr/local/mysql/bin/mysqld_safe –user=root –skip-grant-tables &
    혹은 safe_mysqld 이다. 실행파일은 확인할것

    3. mysql로 접근
    mysql
    use mysql

    mysql> update user set Password=password(‘새비밀번호’) where Host=’localhost’ and User=’root’;
    Query OK, 1 row affected (0.00 sec)
    Rows matched: 1  Changed: 1  Warnings: 0

    mysql> flush privileges;
    Query OK, 0 rows affected (0.02 sec)

    mysql> quit

    4. mysqld 재구동
    [root@eshop bin]# killall mysqld_safe

    [root@eshop bin]# ps -ax|grep mysqld_safe
    Warning: bad syntax, perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.3/FAQ

    10115 pts/0    S      0:00 /bin/sh ./mysqld_safe –user=root –skip-grant-tables
    10161 pts/0    S+     0:00 grep mysqld_safe

    [root@eshop bin]# kill -9 10115

    [root@eshop bin]# ps -ax|grep mysqld_safe

    Warning: bad syntax, perhaps a bogus ‘-‘? See /usr/share/doc/procps-3.2.3/FAQ
    10166 pts/0    S+     0:00 grep mysqld_safe
    [1]+  죽었음                  ./mysqld_safe –user=root –skip-grant-tables
    [root@eshop bin]# /etc/rc.d/init.d/mysqld start

    ㅡㅡ

  • 하위 디렉토리까지 뒤져 특정파일의 내용을 replace하기

    출처 : http://kltp.kldp.org/stories.php?story=02/01/17/8416340

    find . -name ‘*.php’ -exec perl -pi -e ‘s/문자열/변경할문자열/g’ {} \;

    웹호스트에서 검증한 명령어입니다. 칸띄우기등 그대로 사용하세요.

  • find 명령으로 특정파일 특정문자열 찾아내기

    /home 디렉토리 하단에 .htaccess 파일중에서
    “avi”란 단어가 들어간 파일을 모두 찾아보자.

    [root@zero7 jasmine]# grep “avi” `find /home -name .htaccess`
    /home/mech007/public_html/main/.htaccess:RewriteCond %{DOCUMENT_ROOT}//main/attach/1/favicon.ico -f
    /home/mech007/public_html/main/.htaccess:RewriteRule ^favicon\.ico$ attach/1/favicon.ico [E=SURI:1,L]
    /home/mech007/public_html/main/.htaccess:RewriteRule ^favicon\.ico$ image/icon_favicon_default.ico [E=SURI:1,L]

    만약, 검색한 파일리스트만 출력하려면, 아래와 같이 하면 된다.

    [root@zero7 jasmine]# grep -l “avi” `find /home -name .htaccess`
    /home/mech007/public_html/main/.htaccess
    [root@zero7 jasmine]#

    입력시 `는 키보드좌측 탭키 바로위 ~자판임.