해당 내용을 기준으로 리눅스에서 설정한다.

 

Subnet IP:         192.168.164.0

Subnet Mask:    255.255.255.0

Gateway IP:       192.168.164.2

 

1. vi /etc/sysconfig/network-scripts/ifcfg-eth0

처음 설치시 설정된 값 

 

DEVICE=eth0

HWADDR=XX:XX:XX:XX:XX:XX

TYPE=Ethernet

UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

ONBOOT=no

NM_CONTROLLED=yes

BOOTPROTO=dhcp

 

수정된 값

DEVICE=eth0

HWADDR=XX:XX:XX:XX:XX:XX

TYPE=Ethernet

UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

ONBOOT=yes

NM_CONTROLLED=yes

BOOTPROTO=dhcp

BROADCAST=192.168.164.255

IPADDR=192.168.164.100

NETMASK=255.255.255.0

NETWORK=192.168.164.0

GATEWAY=192.168.164.2


BROADCAST는 마지막에 255를 넣어주면 되고 IPADDR은 3~255까지 원하는 숫자를 적어준다.

GATEWAY, NETMASK,, NETWORK는 위에서 구한 값을 적어주면 된다.


2. vi /etc/resolv.conf

nameserver 192.168.164.2


게이트웨이 아이피를 써주도록한다.


모든 설정이 끝났으니 네트워크 재시작


/etc/init.d/network restart

 

혹은

 

service network restart

 

 

해당 내용은 http://dgoh.tistory.com/78 포스트를 참고 하였습니다.



출처: http://chule.tistory.com/77 [ChulE]

1. 원하는 크기만큼 (현재 :1000byte )읽는 방법
: 크기를 지정했기 때문에 딱 그만큼만 읽습니다. 
- 문자열이 그보다 작다면 다 읽을 것이요, 크면 짤릴 것이오~

$fp = fopen("document.txt","r");
$fr = fread($fp,1000);
fclose($fp);
echo $fr;

2. 1번보다는 유동적으로 사이즈크기를 통해 읽는 방법
: 딱 해당 파일의 문자열 크기만큼 읽기 때문에 좋은 방법입니다.

$fp = fopen("document.txt","r");
$fr = fread($fp, filesize("document.txt"));
fclose($fp);
echo $fr;

3. 한 글자씩 읽는 방법
: fgetc() 함수를 통해 한 글자씩 읽습니다.


$fp = fopen("document.txt","r");
while( !feof($fp) )
fclose($fp);
echo $doc_data;


4. 한 라인씩 읽는 방법
fgets() 함수를 통해 한 라인씩 읽습니다. 


$fp = fopen("document.txt","r");
while( !feof($fp) )
    $doc_data = fgets($fp);
fclose($fp);
echo $doc_data;


5. implode 함수를 사용해서 읽는 방법

implode함수는 주어진 배열을 문자열로 반환해주는 함수입니다.

string implode ( array $pieces )
string implode ( string $glue , array $pieces 

저희는 연결문자($glue)를 공백으로 했기때문에 공백없이 그대로~  문자열로 반환합니다. 
+ 정반대의 기능을 가진 explode함수도 있습니다.
array explode ( string $delimiter , string $string [, int $limit ] )


$doc = file("document.txt");
$doc_data = implode("", $doc);
echo $doc_data;


6. join 함수를 사용해서 읽는 방법
join 함수는 5.에서 사용한 implude 함수의 별칭입니다. 
$doc_data = join('', file("document.txt"));
echo $doc_data;




1 ~ 4 번의 방법은 fopen() 함수( 파일이나 URL을 여는 함수입니다. )를 통해서 파일을 열고,
fread(), fgetc(), fgets() 함수들을 통해서 파일을 읽는 방법으로 다른 언어와 마찬가지로.....
open이 있으면 close는 필수인 거 다 아시죠? 



출처: http://winplz.tistory.com/entry/PHP파일-읽기 [윈플]

RHEL 7 부터는 방화벽을 관리하는 데몬이 firewalld 로 변경되었고 방화벽 설정은 복잡한 iptables 명령어대신 firewall-cmd (콘솔), firewall-config(X-Windows) 명령어를 사용하는 것을 권장합니다.

firewall-cmd 는 iptables 를 쓰기 쉽게 하는 wrapper 이고 복잡한 규칙을 사용할 경우 --direct 옵션으로 iptables 내부에 접근해야 합니다.

    설치

    yum install firewalld
    systemctl start firewalld
    systemctl enable firewalld


    설정

    설정 파일

    기본 설정은 /usr/lib/firewalld/ 에 위치하고 있으며 미리 설정된 zone과 zone 별 허용하는 서비스등은 이 폴더를 보면 확인할 수 있습니다.


    시스템 개별 설정은 /etc/firewalld/ 에 위치하며 default zone 등 firewall 의 동작은 /etc/firewalld/firewalld.conf 에서 지정할 수 있으며 예로 default zone 을 dmz로 변경하려면 아래와 같이 설정하고 firewalld 를 재시작하면 됩니다.

    /etc/firewalld/firewalld.conf
    DefaultZone=dmz


    커스터마이징된 zone 설정은 /etc/firewalld/zones//[ZONE].xml 에서 확인할 수 있으며 예로 public 존은 /etc/firewalld/zones/public.xml 에 설정합니다.

    <?xml version="1.0" encoding="utf-8"?>
    <zone>
      <short>Public</short>
      <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accept
    ed.</description>
      <service name="dhcpv6-client"/>
      <service name="http"/>
      <service name="ssh"/>
      <service name="https"/>
    </zone>


    재구동

    서비스 재구동시 service iptables restart 대신 firewall-cmd 명령어를 사용합니다.

    firewall-cmd --reload


    zone

    존은 서버의 용도에 맞게 사전에 정의된 네트워크의 신뢰 레벨을 의미.


    사전 정의된 존 목록 출력

    firewall-cmd --get-zones
     
     
    work drop internal external trusted home dmz public block


    전체 존 목록을 상세하게 출력

    firewall-cmd --list-all-zones


    기본 존 출력

    default 로 설정된 존 출력

    firewall-cmd --get-default-zone
     
     
    public


    활성화된 존 출력

    firewall-cmd --get-active-zone


    새로운 존 추가

    --new-zone=ZONENAME 으로 추가

    firewall-cmd --permanent --new-zone=webserver


    존 삭제

    --delete-zone=ZONENAME 으로 삭제

    firewall-cmd --permanent --delete-zone=webserver



    서비스 목록

    사전에 정의된 서비스의 목록은 --get-services 으로 확인 가능

    firewall-cmd --get-services
     
     
    RH-Satellite-6 amanda-client bacula bacula-client dhcp dhcpv6 dhcpv6-client dns freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imaps ipp ipp-client ipsec iscsi-target kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3s postgresql proxy-dhcp radius rpc-bind rsyncd samba samba-client smtp ssh telnet tftp tftp-client transmission-client vdsm vnc-server wbem-https

    permanent 로 등록된 서비스 목록

    dmz 존에 영구적으로 등록된 서비스 목록 확인
    firewall-cmd --permanent --list-all --zone=dmz


    서비스 추가

    --add-service=SERVICE_NAME 으로 추가할 서비스 지정

    firewall-cmd --permanent --zone=dmz --add-service=http

    서비스 삭제

    --remove-service=SERVICE_NAME 으로 삭제할 서비스 지정

    firewall-cmd --permanent --zone=dmz --remove-service=http

    포트 추가

    --add-port=<portid>[-<portid>]/<protocol> 옵션을 사용하여 포트 추가

    포트 추가/변경, IP 추가/변경는 --reload 옵션을 실행해야 반영됨.

    firewall-cmd --permanent --zone=public --add-port=8080/tcp

    포트를 범위로 지정하려면 - 구분자를 넣어서 설정

    4000 ~ 4100 포트 오픈
    firewall-cmd --permanent --zone=public --add-port=4000-4100/tcp


    포트 삭제

    --remove-port=<portid>[-<portid>]/<protocol> 옵션 사용

    firewall-cmd --permanent --zone=public --remove-port=8080/tcp

    허용 IP 추가

    --add-source=<source range>/netmask 옵션을 사용하여 IP 추가


    아래 예는 192.168.1. 대역에서 ssh 접근을 허용

    firewall-cmd --permanent --zone=public --add-source=192.168.1.0/24 --add-port=22/tcp
     
     
    firewall-cmd --reload

    rich-rule

    보다 복잡한 규칙 설정이 필요할때나 firewall-cmd에서 필요로 하는 옵션을 제공하지 않을 경우 rich rule 언어를 사용하여 직접 방화벽 규칙을 설정할 수 있음.

    새로운 룰 추가는 --add-rich-rule='<rule>' 와 같은 형식으로 설정


    firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4"  source address="192.168.10.0/24"  port protocol="tcp" port="9000" accept"



    direct

    --direct 옵션을 사용하면 기존의 iptables 명령처럼 직접 방화벽 내부에 접근해서 설정할 수 있음

    $ sudo firewall-cmd  --direct --get-all-rules
     
    ipv4 filter INPUT 0 -p tcp -m multiport --dports ssh -m set --match-set fail2ban-sshd src -j REJECT --reject-with icmp-port-unreachable



    firewall-cmd --direct --add-rule ipv4 nat POSTROUTING 0 -o eth_ext -j MASQUERADE


    서비스 설정

    웹 서버 방화벽 설정

    1. 새로운 zone 생성

      firewall-cmd --permanent --new-zone=webserver
    2. 활성화

      firewall-cmd --set-default-zone=webserver
    3. 방화벽에 포트 추가

      firewall-cmd --permanent --zone=webserver --add-service=http
      firewall-cmd --permanent --zone=webserver --add-service=https

      기본 zone이 webserver 이므로 --zone=webserver 옵션은 생략 가능

    4. firewalld 재시작

      firewall-cmd --reload
    5. 정상 설정 여부 확인

      firewall-cmd --list-services   --zone=webserver
        
      dhcpv6-client http https ssh

    apache 웹서버 설정

    1. 서비스 활성화

      systemctl enable httpd
    2. 서비스 시작

      systemctl start httpd

    nginx 설정

    1. 기존에 아파치 httpd 가 설치되어 있으면 비활성화

      systemctl stop httpd
      systemctl disable httpd
    2. 서비스 활성화

      systemctl enable nginx.service
    3. 시작

      systemctl start nginx.service



    ※ 출처 : https://www.lesstif.com/pages/viewpage.action?pageId=22053128#RHEL/CentOS7%EC%97%90%EC%84%9C%EB%B0%A9%ED%99%94%EB%B2%BD(firewalld)%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%B0-permanent%EB%A1%9C%EB%93%B1%EB%A1%9D%EB%90%9C%EC%84%9C%EB%B9%84%EC%8A%A4%EB%AA%A9%EB%A1%9D

    + Recent posts